1、 顯示當前系統上root、fedora或user1用戶的默認shell;
命令:
cat /etc/passwd | grep -E “^(root|fedroa|user1)” | cut -d: -f1,7
2、 找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello();
grep -oE “\<[a-z]+\>()” /etc/init.d/functions
3、 使用echo命令輸出一個絕對路徑,使用grep取出其基名;
代碼:
echo pwd
| grep -oE “[^/]+/?$” | cut -d/ -f1
注釋:echo中使用“括起來的值會當做命令先運行,返回的值作為echo的參數。
擴展:取出其路徑名
echo pwd
| grep -oE “^/./”
4、 找出ifconfig命令結果中的1-255之間數字;
ifconfig | grep –Eo “[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]”
5、 挑戰題:寫一個模式,能匹配合理的IP地址;
ifconfig | grep -Eo “(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])”
6、 挑戰題:寫一個模式,能匹配出所有的郵件地址;
cat /tmp/mail.txt | grep -E “[0-9,a-z]+@[0-9,a-z].[a-z]”
注釋:正則表達式中匹配.要用轉義字符.
7、 查找/var目錄下屬主為root,且屬組為mail的所有文件或目錄;
涉及知識點:
? locate命令
用于查找文件,非實時查找,依賴于實現構建的索引,可以用updatedb來構建索引。
用法:locate KEYWORD
? find命令
用法:find [option] PATH 條件 動作
條件:-name,-user,-GID,-type,-size,-perm等等
動作:-ls,-delete,-ok COMMAND(對查出的文件執行命令,交互式),-exec COMMAND(對查出的文件執行命令,非交互式)
命令:find /var -user root -group mail
8、 查找當前系統上沒有屬主或屬組的文件;
find / -nouser -o –nogroup
進一步:查找當前系統上沒有屬主或屬組,且最近3天內曾被訪問過的文件或目錄;
命令:find / ( -nouser -o -nogroup ) -a ( -atime -3 )
注釋:注意()要進行轉義,括號和命令中間要有空格
9、 查找/etc目錄下所有用戶都有寫權限的文件;
命令:find /etc -perm -222
10、查找/etc目錄下大于1M,且類型為普通文件的所有文件;
命令:find /etc -size +1M -type f

原創文章,作者:EUSCE,如若轉載,請注明出處:http://www.www58058.com/70920
很好的使用正則能幫助我們在工作中高效的工作~~加油~