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

[root@localhost ~]# egrep '^(root|fedora|user1)' /etc/passwd | awk  -F':' '{print $NF}'
/bin/bash
/bin/bash
/bin/bash



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

[root@localhost ~]# grep -o  "^[[:alpha:]]\+()" /etc/rc.d/init.d/functions
checkpid()
daemon()
killproc()
pidfileofproc()
pidofproc()
status()
success()
failure()
passed()
warning()
action()
strstr()
confirm()



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

扩展:取出其路径名

基名:
[root@localhost ~]# echo "/etc/passwd"|grep -o "[[:alpha:]]\+$" 
passwd
路径名:
[root@localhost ~]# echo "/etc/passwd"|grep -o "/.*/\<" 
/etc/


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

[root@localhost ~]# ifconfig|egrep -o  "\<[1-9]\>|\<[1-9][0-9]\>|\<1[0-9][0-9]\>|\<2[0-5][0-5]\>"
52
54
96
192
168
122
94
192
168
122
255
255
255
255
64
1
18
7
2
8
127
1
255
1
128
1
26
26




5、挑战题:写一个模式,能匹配合理的IP地址;

[root@localhost ~]# ifconfig |egrep -o  "((\<[0-9]\>|\<[1-9][0-9]\>|\<1[0-9][0-9]\>|\<2[0-4][0-9]\>|\<25[0-5]\>)\.){3}(\<[1-9]\>|\<[1-9][0-9]\>|\<1[0-9][0-9]\>|\<2[0-4][0-9]\>|\<25[0-4]\>)"
192.168.199.119
127.0.0.1




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

[root@localhost ~]# echo '51ctolf@163.com'| egrep  '[[:alnum:]]+@[[:alnum:]]+\.[[:alnum:]]+'
51ctolf@163.com
[root@localhost ~]# echo 'ctolf51@qq.cn'| egrep  '[[:alnum:]]+@[[:alnum:]]+\.[[:alnum:]]+'
ctolf51@qq.cn





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

[root@localhost ~]# find /var -user root -group mail
2362561 2388 -rw-------   1 root     mail      2439694 9月  1 23:30 /var/spool/mail/root
2360179    0 -rw-rw----   1 root     mail            0 7月 28  2015 /var/spool/mail/admin



8、查找当前系统上没有属主或属组的文件;

[root@localhost ~]# find / \( -nouser -o -nogroup \) -ls
1459809    4 drwxr-xr-x   3 admin    1000         4096 12月  8  2015 /opt/sshpass-1.05
1459815    4 -rw-r--r--   1 1000     1000          145 7月 22  2010 /opt/sshpass-1.05/Makefile.am
1459820  200 -rwxr-xr-x   1 1000     1000       201436 8月  6  2011 /opt/sshpass-1.05/configure
...
...


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

[root@localhost ~]# find /  -atime -3 \( -nouser -o -nogroup  \) -ls
1459809    4 drwxr-xr-x   3 admin    1000         4096 12月  8  2015 /opt/sshpass-1.05
1321949    4 drwxr-xr-x   9 1001     1001         4096 11月  3  2015 /opt/nginx-1.4.7
1704029    4 drwxr-xr-x   2 1001     1001         4096 11月  3  2015 /opt/nginx-1.4.7/man
...
...
-atime      文件访问时间
-mtime        文件修改时间
-ctime     文件元数据状态改变时间



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

[root@localhost ~]# find /etc/ -perm -222 -ls
921927    0 lrwxrwxrwx   1 root     root           56 7月 28  2015 /etc/favicon.png -> /usr/share/icons/hicolor/16x16/apps/system-logo-icon.png
919681    0 lrwxrwxrwx   1 root     root           11 7月 28  2015 /etc/init.d -> rc.d/init.d
919690    0 lrwxrwxrwx   1 root     root           10 7月 28  2015 /etc/rc1.d -> rc.d/rc1.d
...
...    
-perm mode:文件许可正好符合mode                精确匹配
 
-perm +mode:文件许可部分符合mode              ugo任意一项包含mode
 
-perm -mode: 文件许可完全符合mode             ugo所有的项都包含mode


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

[root@localhost ~]# find /etc   -type f -size +1M -ls 
922936 7124 -rw-r--r--   1 root     root      7292689 7月 28  2015 /etc/selinux/targeted/policy/policy.24
922933 7124 -rw-r--r--   1 root     root      7292689 7月 28  2015 /etc/selinux/targeted/modules/active/policy.kern


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

[root@localhost ~]# find /etc/init.d/ -type f  -perm -113 -ls
922945    8 -rwxr-xrwx   1 root     root         4534 11月 23  2013 /etc/init.d/sshd


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

[root@localhost ~]# find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls
667494    4 drwx------   2 nginx    root         4096 11月  3  2015 /usr/uwsgi_temp
1310722 96704 -rw-r--r--   1 admin    admin    99021656 9月 28  2015 /usr/src/CollabNetSubversionEdge-5.1.0_linux-x86_64.tar.gz
1310723 70400 -rwxr-xr-x   1 admin    admin    72087592 9月 28  2015 /usr/src/jdk-6u45-linux-x64.bin
...
...


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

[root@localhost ~]# find /etc/ ! -perm -222  -ls 
917505    4 drwxr-xr-x  76 root     root         4096 9月  2 11:01 /etc/
1048927    4 drwxr-xr-x   5 root     root         4096 7月 28  2015 /etc/polkit-1
1048937    4 drwxr-xr-x   2 root     root         4096 7月 28  2015 /etc/polkit-1/nullbackend.conf.d
...
...


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

[root@localhost ~]#find /etc  -mtime -7 \( ! -user root -a ! -user hadoop \) -ls