1、显示当前系统上root、fedora或user1用户的默认shell;

    cat /etc/passwd | cut -d: -f1,7 | grep -e "root" -e "fedora" -e "user1"    root:/bin/bash    user1:/bin/bash    fedora:/bin/nologin

2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

       cat /etc/rc.d/init.d/functions | grep -E -o "[[:alpha:]]\+\(\)"               cat /etc/rc.d/init.d/functions | egrep -o "[[:alpha:]]+\(\)"                    -o:只显示匹配到的内容;

3、使用echo命令输出一个绝对路径,使用grep取出其基名;

    扩展:取出其路径名

   grep方式:      echo '/etc/rc.d/init.d/functions' | grep -o "[^/]\+/\?"      echo '/etc/rc.d/init.d/functions' | grep -o "^.*/"   egrep方式:      echo '/etc/rc.d/init.d/functions' | egrep -o '[^/]+\?'      echo '/etc/rc.d/init.d/functions' | egrep -o ".*/"                注:\?匹配0次或1次,可有可无;

4、找出ifconfig命令结果中的1-255之间数字;

     ifconfig | grep -E "\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9]{2}\>|\<[2][0-5]{2}\>"          每个数的词首词尾必须锚定\< \>

5、挑战题:写一个模式,能匹配合理的IP地址(痛彻心扉);

echo -e "192.168.1.3\a.b.c.d\192.168.3.26\192.68.3.2a" | egrep --color=auto -o  "(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9]{2}\>|\<[2][0-5]{2}\>)\.([1-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-5]{2})\.([1-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-5]{2})\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9]{2}\>|\<[2][0-5]{2}\>)"

 

头尾锚定中间两组数字没有进行锚定,

6、挑战题:写一个模式,能匹配出所有的邮件地址(体无完肤);

echo "w32_a+@163.com\s_aaa3A@a.Bss\1333@qq.com" | egrep -o "[[:alnum:]](([-._]?[[:alnum:]]+)*)@[[:alnum:]](([-._]?[[:alnum:]]+)*)\.([[:alnum:]]{2,})"

    

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

       find /var -user root -group mail -ls
        -user: 属主;            -group:属组;        -ls:查看查找到文件和目录的属性信息-ls:查看查找到的文件和目录的属性信息

8、查找当前系统上没有属主或属组的文件;进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;

没有属主或属组的文件:

    find / -type f \( -nouser -o -nogroup \) -ls

且最近3天内曾被访问过的文件或目录:

    find / \( -nouser -o -nogroup \) -atime -3 -ls

-3:三天以内;

+3:三天以前;

3:3天但不超过4天.

9、查找/etc目录下所有用户都有写权限的文件;

    find /etc -perm -222

-222:每一类对象都必须同时拥有为其指定的权限标准;

+222:任何一类对象的权限中,只要能有一位匹配即可;

222:精确权限匹配;

10、查找/etc目录下大于1M,且类型为普通文件的所有文件;

    find /etc -size +1M -type f -exec ls -lh {} \;

+1M指大于1M;

1M:小于等于1M大于0M;

-1M:小于等于0M

11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;

    find /etc/init.d/ -perm +111 -perm -002 -ls

12、查找/usr目录下不属于root、bin或hadoop的文件;

    find /usr -not (-user root -o -user bin -o -user hadoop) -ls        find /usr -not -user root  -not -user bin -not -user hadoop -ls

13、查找/etc/目录下至少有一类用户没有写权限的文件;

    find /etc -not -perm -222 -ls

-222:每一类对象都必须同时拥有为写权限;-not,不是 每一类对象都必须拥有写权限;

14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;

    find /etc -mtime -7 -not ( -user root -o -user hadoop ) -ls    find /etc -mtime -7 -not -user root -not -user hadoop -ls