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