grep命令與正則表達式的應用示例、find命令應用示例
-
顯示當前系統上root、fedora或user1用戶的默認shell。
使用擴展正則表達式,它支持使用A|B表示或者之意。查看用戶的默認shell,cat /etc/passwd文件,根據用戶名所處位置進行錨定,其最后一個字段即表示該用戶的默認shell。實現方式及結果如下:
-
找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello()。
這里需要注意的是小括號因為和正則表達式的元字符相沖突,如果直接寫()會有歧義,因此需要對小括號進行轉義:()。具體結果如下所示:
-
使用echo命令輸出一個絕對路徑,使用grep分別取出其基名。
取出基名:
-
找出ifconfig命令結果中的1-255之間的數字。
1-255之間的數字,如果按照如下方式分解:
一位數:1-9
二位數:10-99
三位數:100-199,200-255
使用正則表達式可以這樣匹配:
-
寫一個模式能匹配合理的IP地址。
要匹配出合理的IP地址,個人理解還需要結合子網掩碼來判斷,如果是要匹配出ifconfig中合理的ip地址,可以使用如下模式進行匹配:
-
寫一個模式能匹配出所有的郵件地址。
-
查找/var目錄下屬主為root且屬組為mail的所有文件或目錄。
find使用-user
選項指定屬主,使用-group
選項指定屬組。結果如下:
-
查找當前系統上沒有屬主或屬組的文件,且最近3天內曾被訪問過的文件或目錄。
find使用-nouser
選項指定查找沒有屬主的文件;使用-nogroup
選項查找沒有屬組的文件;使用 -atime選項指定按文件的最后訪問時間查找。結果如下:
-
查找/etc目錄下所有用戶都有寫權限的文件。
find使用-perm
選項可以根據文件權限進行查找,常用的有為兩種使用方式,一種是-perm /mode
,表示任何一類用戶中的任何一位權限滿足條件即可;一種是-perm -mode
,表示每一類用戶中的每一位權限滿足條件才行。這里要求的是所有用戶都有寫權限,因此應該使用-perm -mode
這種方式。
結果如下:
也可以使用find /etc -perm -a+w
-
查找/etc目錄下大于1M,且類型為普通文件的所有文件。
find使用-size選項可以根據文件的大小進行查找,常用的有兩種使用方式,一種是-size +#unit (unit表示數字單位,有K,M,G),表示查找大于指定大小的文件;一種是-size -#unit,表示查找小于指定大小的文件。
結果如下:
-
查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件。
-
查找/usr目錄下不屬于root,bin或hadoop的文件。
find支持使用操作符-a(相當于and),-o(相當于or),在這里使用-o操作符。!表示取反,類似于-not。
-
查找/etc目錄下至少有一類用戶沒有寫權限的文件。
-
查找/etc目錄下最近一周內其內容被修改過且不屬于root或hadoop的文件。
括號要使用轉義符,“-7”表示在7天內。> [root@localhost etc]# find /etc -mtime -7 ! \( -user root -o -user hadoop \)
原創文章,作者:N24_lantian,如若轉載,請注明出處:http://www.www58058.com/61160
作業寫的很棒,有圖有真相