1、顯示當前系統上root、fedora或user1用戶的默認shell;
1. egrep "^(root|user1|fedora)" /etc/passwd|cut –d: –f7
2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello();
1. egrep "^[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
3、使用echo命令輸出一個絕對路徑,使用grep取出其基名;
1. ~]#echo "/etc/init.d/" | grep –oE "[^/]+/?$"
2. init.d/
3. 擴展:取出其路徑名
4. ~]#echo "/etc/init.d/" | grep –o "/[A-Za-z0-9]\+.*/"
5. /etc/init.d/
4、找出ifconfig命令結果中的1-255之間數字;
1. ifconfig | egrep –o "\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>"
5、挑戰題:寫一個模式,能匹配合理的IP地址;
1. ifconfig | egrep –o "(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>)\.(\<[0-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>)\.(\<[0-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>).(\<[0-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>)"
6、挑戰題:寫一個模式,能匹配出所有的郵件地址;
1. ~]# echo "My Email:jinjianping@qq.com" | grep –o "\<[[:alpha:]]\+.*@[0-9a-z]\+\.[[:alpha:]]\+\>"
2. My Email:jinjianping@qq.com
7、查找/var目錄下屬主為root,且屬組為mail的所有文件或目錄;
1. ~]# find /var –user root –group mail –ls
2. 134311219 4 drwxrwxr–x 2 root mail 4096 Nov 24 15:32 /var/spool/mail
3. 135420759 4 –rw——- 1 root mail 1355 Nov 9 15:45 /var/spool/mail/root
8、查找當前系統上沒有屬主或屬組的文件;
1. ~]# find / \( –nouser –o –nogroup \) –ls
2. find: ‘/proc/5594/task/5594/fd/6’: No such file or directory
3. find: ‘/proc/5594/task/5594/fdinfo/6’: No such file or directory
4. find: ‘/proc/5594/fd/6’: No such file or directory
5. find: ‘/proc/5594/fdinfo/6’: No such file or directory
6. 135441653 0 –rw–rw—- 1 3005 mail 0 Nov 5 18:21 /var/spool/mail/gentoo
7. find: File system loop detected; ‘/home1’ is part of the same file system loop as ‘/’.
進一步:查找當前系統上沒有屬主或屬組,且最近3天內曾被訪問過的文件或目錄;
1. ~]# find / –atime –3 \( –nouser –o –nogroup \) –ls
2. find: ‘/proc/5601/task/5601/fd/6’: No such file or directory
3. find: ‘/proc/5601/task/5601/fdinfo/6’: No such file or directory
4. find: ‘/proc/5601/fd/6’: No such file or directory
5. find: ‘/proc/5601/fdinfo/6’: No such file or directory
6. find: File system loop detected; ‘/home1’ is part of the same file system loop as ‘/’.
9、查找/etc目錄下所有用戶都有寫權限的文件;
1. find /etc –perm –222 –ls
10、查找/etc目錄下大于1M,且類型為普通文件的所有文件;
1. find /etc –type f –size +1M –ls
11、查找/etc/init.d/目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件;
1. find /etc/init.d/ –type f –perm –113
12、查找/usr目錄下不屬于root、bin或hadoop的文件;
1. find /usr ! \( –user root –o –user bin –o –user hadoop \) –ls
13、查找/etc/目錄下至少有一類用戶沒有寫權限的文件;
1. find /etc/ \( ! –perm +200 –o ! –perm +020 –o ! –perm +002 \) –ls
14、查找/etc目錄下最近一周內其內容被修改過,且不屬于root或hadoop的文件;
1. find /etc \( –mtime –7 ! –user root –a ! –user hadoop \) –ls
原創文章,作者:N24_JJP,如若轉載,請注明出處:http://www.www58058.com/61304
grep與find是基礎命令,希望你能牢記,正則表達式主要是需要多練習的,加油!