week 4

作者: Pu2zL3he4d | 来源:发表于2018-12-03 10:13 被阅读0次
    Q1:定义一个对所有用户都生效的命令别名,例如:lftps='lftp 172.168.0.1/pub

    编辑/etc/bashrc文件,在最后一行追加内容 "lftps='lftp 172.168.0.1/pub",保存后执行source /etc/bashrc

    image.png
    image.png
    Q2:显示/etc/passwd文件中不以/bin/bash结尾的行

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

    image.png
    Q3:找出/etc/passwd文件中,包含二位数字或者三位数字的行

    egrep "\b[[:digit:]]{2,3}\b" /etc/passwd
    egrep "<[[:digit:]]{2,3}>" /etc/passwd
    grep "<[[:digit:]]{2,3}>" /etc/passwd
    grep -E "<[0-9]{2,3}>" /etc/passwd

    image.png image.png image.png
    image.png
    Q4:显示/proc/meminfo文件中以大写或小写S开头的行;用三种方式实现

    egrep -i "^s" /proc/meminfo
    egrep "^[s|S].*" /proc/meminfo
    sed -n "/^[s|S]/p" /proc/meminfo
    sed "/^[s|S]/! d" /proc/meminfo
    grep -i ^s /proc/meminfo
    grep "^[sS]" /proc/meminfo
    egrep "^(s|S)" /proc/meminfo

    image.png
    Q5:使用echo输出一个绝对路径,使用egrep取出路径名,类似执行dirname /etc/passwd的结果

    echo /etc/passwd | egrep -o '^/.+/'

    image.png
    Q6:找出ifconfig中的ip地址。要求结果只显示IP地址
      ifconfig | egrep -o "(([[:digit:]]{1,2}|1[[:digit:]]{2}|2[0-5]{2})\.){3}([[:digit:]]{1,2}|1[[:digit:]]{2}|2[0-5]{2})"
      ifconfig | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
      ifconfig | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
    
    image.png
    Q7:vim定制自动缩进四个字符

    编辑/etc/vimrc文件,追加如下内容
    set ai
    set ts=4

    /etc/vimrc文件添加:
    set tabstop=4

    Q8:编写脚本,实现自动添加三个用户,并计算这三个用户的uid之和
     [root@localhost ~]# vim sumtest.sh
      #!/bin/bash
      id_sum=0
      [ $# -lt 3 ] && echo "请输入三个用户:" && exit 1
      for i in $* ;do
       useradd $i && echo "${i}创建成功"
    id_num=$(id -u $i)
    id_sum=$[${id_sum}+${id_num}]
    done
      echo "三个用户uid之和为: ${id_sum}"
    
    [root@localhost ~]# bash uid_sum.sh us1 us2 us3
      us1创建成功
      us2创建成功
      us3创建成功
      三个用户uid之和为: 3039
    
    image.png image.png
    Q9:find用法及常用用法的实例演示
    find命令:

    概述:find用于文件查找,它提供了非常多的查找条件,功能强大,可以通过遍历指定起始路径完成文件查找。

    用法:
      find [OPTIONS] [path...] [expression] [action]
      path: 查找起始路径,需要指定搜索目标起始路径,默认为当前目录
    
      expression: 查找条件可以根据文件名、大小、类型、从属关系、权限等标准进行,默认为找出指定路径下的所有文件
    
      action:处理动作,对符合条件的文件做出的操作,例如删除等,默认为输出至标准输出
    
    常用用法:

    1.根据文件名查找:

    -name  "pattern" //根据文件名查找(精确查找)
    -iname "pattern" //根据文件名查找,但是不区分大小写
    支持glob风格的通配符:
    *, ?, [], [^]
    例:find /tmp -name "[ab]*"  查找/tmp目录下名称包含ab任意字符的文件
    

    2.根据文件从属关系查找:

    -user     //根据属主来查找文件;  find /var/log -user root  -ls
    -group    //根据属组来查找文件;  find /var/log -group root  -ls
    -uid UID  //查找属主指定的UID的所有文件; find /tmp -uid 500 
    -gid GID  //查找属组指定的GID的所有文件; find  /tmp  -gid  1000 
    -nouser   //查找没有属主的文件;  find  /tmp -nouser
    -nogroup  //查找没有属组的文件;  find  /tmp -nogroup
    

    3.根据文件类型查找:

     -type TYPE:
    f: 普通文件
    d: 目录文件
    l: 符号链接文件
    b: 块设备文件
    c: 字符设备文件
    p: 管道文件
    s: 套接字文件
    例:find /tmp -type f  查找/tmp目录下的普通文件
    

    4.根据文件的大小查找:

     -size [+|-]#UNIT
    常用单位:k, M, G
    
    find  /tmp  -size   2M           //查找在/tmp 目录下等于2M的文件
    find  /tmp  -size  +2M           //查找在/tmp 目录下大于2M的文件
    find  /tmp  -size  -2M           //查找在/tmp 目录下小于2M的文件
    

    5.根据时间戳查找:

    以“天”为单位:
     -atime  [+|-]#
    例: find  /tmp  –atime  +5           //表示查找在五天内没有访问过的文件
        find  /tmp  -atime  -5            //表示查找在五天内访问过的文件
     -mtime
     -ctime
    
    以“分钟”为单位:
     -amin
     -mmin
     -cmin
    

    6.根据文件权限查找文件

    -perm  [/|-]mode
    mode:精确权限匹配;
    /mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;
    -mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;9位权限之间存在“与”关系;
    
    find  /tmp  -perm  755           //查找在/tmp目录下权限是755的文件
    find  /tmp  -perm  +222          //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
    find  /tmp  -perm  -222          //表示必须所有类别用户都满足有写权限
    

    7.组合条件

    与:-a, 默认组合逻辑;
    或:-o
    非:-not, !
    处理动作:
    
    -print      //默认的动作输出至标准输出;
    -ls         //查找到后用"ls -l"命令显示出来;
    -delete     //删除查找到的文件;
    -fls /PATH/TO/SOMEFILE      //把查找到的所有文件的长格式信息保存至指定文件中;
    -ok COMMAND {} \;           //对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
    -exec COMMAND {} \;         //对查找到的每个文件执行由COMMAND表示的命令;
    
    例:find /tmp -atime +7 –exec rm –rf {} \;  //删除查找到的超过7天没有访问过文件

    相关文章

      网友评论

          本文标题:week 4

          本文链接:https://www.haomeiwen.com/subject/iuuecqtx.html