第三周

1、定义一个对所有用户都生效的命令别名,例如:lftps='lftp 172.168.0.1/pub'

    echo "alias lp='cd /sss/sss/'" >> /etc/bashrc    

2、显示/etc/passwd文件中不以/bin/bash结尾的行

    grep -v "/bin/bash$" /etc/passwd

3、找出/etc/passwd文件中,包含二位数字或者三位数的行。

    grep "\<[0-9]\{2,3\}\>" /etc/passwd

4、显示/proc/meminfo文件中以大写或小写S开头的行;用三种方式实现。

    第一种:grep "^\<[sS]" /proc/meminfo

    第二种:grep -E "^(s|S)" /proc/meminfo

    第三种:grep -i "^s" /proc/meminfo

5、使用echo输出一个绝对路径,使用egrep取出路径名,类型执行dirname /etc/passwd 的结果。

    echo "/etc/passwd" | egrep -o "^/etc"

6、找出ifconfig中的ip地址。要求结果只显示IP地址。

先查看网卡对应的信息:

[ouyang@localhost ~]$ ifconfig ens33

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.114  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::7bcd:9d41:364a:4ea0  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:27:09:b2  txqueuelen 1000  (Ethernet)

        RX packets 183  bytes 16893 (16.4 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 43  bytes 5309 (5.1 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

筛选出IP信息:ifconfig ens33 | cut -c 14-26 | sed -n '2p'

7、vim定制自动缩进四个字符。

    echo "set tabstop=4" >>  /root/.vimrc

8、编写脚本,实现自动添加三个用户,并计算这三个用户的uid之和。

先生成脚本文件:touch uidadd.sh

添加执行权限:chmod +x uidadd.sh

编辑脚本:vim uidadd.sh

#!/bin/sh

id ac1 || useradd ac1  

id ac2 || useradd ac2 

id ac3 || useradd ac3 

echo "$[$(id -u ac1)+$(id -u ac2)+$(id -u ac3)]"

运行脚本:./uidadd.sh

9、find用法以及常用用法的实例演示。

find     实时查找工具,通过遍历指定路径完成文件查找

工作特点:查找速度略慢;精确查找;实时查找;可能只搜索用户具备读取和执行权限的目录

语法:find [OPTION]... [查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径;默认为当前目录

查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕

查找条件:

#指搜索层级

         -maxdepth level 最大搜索目录深度,指定目录为第1级

          -mindepth level 最小搜索目录深度

#先处理目录内的文件,再处理目录

          -depth

#根据文件名和inode查找:

          -name "文件名称":支持使用glob

                      *, ?, [], [^]

          -iname "文件名称":不区分字母大小写

          -inum n 按inode号查找

          -samefile name 相同inode号的文件

           -links n 链接数为n的文件

           -regex “PATTERN” :以PATTERN匹配整个文件路径,而非文件名称

#根据属主、属组查找:

           -user USERNAME:查找属主为指定用户(UID)的文件

           -group GRPNAME: 查找属组为指定组(GID)的文件

           -uid UserID:查找属主为指定的UID号的文件

           -gid GroupID:查找属组为指定的GID号的文件

           -nouser:查找没有属主的文件

           -nogroup:查找没有属组的文件

#根据文件类型查找:

           -type TYPE:

              f: 普通文件

              d: 目录文件

              l: 符号链接文件

              s:套接字文件

               b: 块设备文件

               c: 字符设备文件

               p: 管道文件

#空文件或目录

           -empty

           find /app -type d -empty

#组合条件:

          与: -a

          或: -o

          非: -not, !

#德·摩根定律:

         (非 A) 或 (非 B) = 非(A 且 B)

         (非 A) 且 (非 B) = 非(A 或 B)

#示例:

          !A -a !B = !(A -o B)

          !A -o !B = !(A -a B)

#根据文件大小来查找:

           -size [+|-]#UNIT

                   常用单位: k, M, G, c(byte)

           #UNIT: (#-1, #]

            -#UNIT: [0,#-1]

            +#UNIT: (#,∞)

#根据时间戳:

           以“天”为单位

               -atime [+|-]#,

                   #: [#,#+1)

                   +#: [#+1,∞]

                   -#: [0,#)

               -mtime

               -ctime

           以“分钟”为单位

                -amin

                -mmin

                 -cmin

#根据权限查找:

                -perm [/|-]MODE

                       MODE: 精确权限匹配

                       /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系, +

                       -MODE:每一类对象都必须同时拥有指定权限,与关系

         find -perm 755 会匹配权限模式恰好是755的文件

         只要当任意人有写权限时, find -perm +222就会匹配

         只有当每个人都有写权限时, find -perm -222才会匹配

         只有当其它人(other)有写权限时, find -perm -002才会匹配

处理动作

      -print:默认的处理动作,显示至屏幕

      -ls:类似于对查找到的文件执行“ls -l” 命令

      -delete:删除查找到的文件

      -fls file:查找到的所有文件的长格式信息保存至指定文件中

      -ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认

      -exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令

      {}: 用于引用查找到的文件名称自身

      find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令

实例:

查找 /var 目录下属主为root,且属组为mail的所有文件或目录

find /var -user root -a -group mail -ls

查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件

find /etc -path ‘/etc/sane.d’ -a –prune -o -name “*.conf”

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、定义一个对所有用户都生效的命令别名,例如:iftps='lftp 172.168.0.1/pub'编辑/etc...
    wbyyy阅读 2,463评论 0 0
  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1.chown chown将指定文件的拥...
    jyt802341阅读 2,563评论 0 0
  • 1、定义一个对所有用户都生效的命令别名,例如:lftps='lftp 172.168.0.1/pub' 编辑文件/...
    小邢_阅读 1,807评论 0 0
  • Linux启动过程 1.开机自检BIOS 2.MBR引导 3.GRUB菜单 4.加载内核 5.运行init进程 6...
    康乐_SH阅读 3,352评论 0 0
  • 既没有做投资的经验,也还没有开始创业,对于我这个不小心闯进创投圈的边缘人,却在这里意外地找到了归属感...
    柳岸观荷绿头鸭阅读 3,544评论 0 1