1;顯示當前系統上root, fedora或user1用戶的默認shell。
# grep "^\(root\|fedora\|user1\)" /etc/passwd # grep -E "^(root|fedora|user1)" /etc/passwd # egrep "^(root|fedora|user1)" /etc/passwd
2;找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello();
# grep -E -o "[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
3;使用echo命令輸出一個絕對路徑,使用grep取出其基名;
# echo /etc/rc.d/init.d/functions | grep -E -o "[^/]+/?$"
-
擴展:取出其路徑名
# echo /etc/rc.d/init.d/functions | grep -E -o "^/.+/"
4;找出ifconfig命令結果中的1-255之間數字。
# ifconfig | grep -E -o "\b([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b" | sort -n
5;挑戰題:寫一個模式,能匹配合理的IP地址。
# grep -E -o "((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])"
6;挑戰題:寫一個模式,能匹配出所有的郵件地址。
# grep -E -o "([a-z]|[A-Z]|[0-9])+\@([a-z]|[A-Z]|[0-9])+\.([a-z]|[A-Z]){2,3}" # grep -E -o "[[:alnum:]]+\@[[:alnum:]]+\.[[:alpha:]]{2,3}"
7;查找/var/目錄下屬主為root, 且屬組為mail 的所有文件或目錄。
# find /var -user root -a -group mail -ls
8;查找當前系統上沒有屬主或屬組,且最近3天內曾被訪問過的文件或目錄。
# find / \( -nouser -o -nogroup \) -a -atime -3 -ls
9;查找/etc目錄下所有用戶都有寫權限的文件。
# find /etc/ -perm -222 -ls
10;查找/etc目錄下大于1M,且類型為普通文件的所有文件。
# find /etc/ -size +1M -type f -ls
11;查找/etc/init.d/目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件。
# find /etc/init.d/ -perm -111 -a -perm /002
12;查找/usr目錄下不屬于root, bin或hadoop的文件。
# find /usr/ ! \( -user root -o -user bin -o -user hadoop \) -ls
13;查找/etc/目錄下至少有一類用戶沒有寫權限的文件。
# find /etc/ ! -perm -222 -ls
14;查找/etc/目錄下最近一周其內容被修改過,且不屬于root或hadoop的文件。
# find /etc/ -ctime -7 -a ! \( -user root -o -user hadoop \) -a -type f -ls
原創文章,作者:c_c,如若轉載,請注明出處:http://www.www58058.com/66694
find和grep作為基礎命令,希望能熟練、靈活的使用~~~加油??!