我們經(jīng)常需要查找文件、統(tǒng)計(jì)信息,這就需要用到find、grep、wc等命令。
grep命令
grep是linux下常用的文本查找工具之一(其他還有awk、sed等);其是支持正則表達(dá)式的多用途文本搜索工具,常與其他命令組合使用(通過管道|)。
grep [選項(xiàng)] [匹配模式/查詢內(nèi)容] [文件...]
-c
只輸出匹配行的數(shù)量
搜索時(shí)忽略大小寫
不支持正則表達(dá)式,按字符串字面意思搜索
查詢多文件時(shí)不顯示文件名
只列出符合匹配的文件名,而不列出具體的匹配行
列出所有匹配行,并顯示行號
不顯示不存在或無匹配文本的錯誤信息
顯示不包含匹配文本的所有行
匹配整詞
匹配整行
遞歸搜索當(dāng)前及子目錄
禁止輸出任何結(jié)果,以退出狀態(tài)表示搜索是否成功
打印匹配行距文件頭部的偏移量,以自己為單位
與-b結(jié)合使用,打印匹配詞距頭部文件的偏移量
支持?jǐn)U展正則表達(dá)式
pattern正則表達(dá)式主要參數(shù):
簡單示例
$grep ‘test’ *.txt
顯示所有txt文件中包含 test的行。
$grep ‘test’ aa bb cc
顯示在aa,bb,cc文件中包含 test的行。
$grep ‘[a-z]\{5\}’ aa 或grep -E ‘[a-z]{5}’ aa
顯示所有包含每個(gè)字符串至少有5個(gè)連續(xù)小寫字符的字符串的行。
$grep ‘w\(es\)t.*\1′ aa
$ grep 'w/(es/)t.*/1' aa 如果west被匹配,則es就被存儲到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.*),這些字符后面緊跟著另外一個(gè)es(/1),找到就顯示該行。如果west被匹配,則es就被存儲到內(nèi)存中,并標(biāo)記為1,然后搜索任意個(gè)字符(.*)linux命令,這些字符后面緊跟著另外一個(gè)es(/1),找到就顯示該行!緍ewriterule ^(.*)$ /blog/$1】重寫規(guī)則,最重要的部分,意思是當(dāng)上面的rewritecond條件都滿足的時(shí)候,將會執(zhí)行此重寫規(guī)則,^(.*)$是一個(gè)正則表達(dá)的匹配,匹配的是當(dāng)前請求的url,^(.*)$意思是匹配當(dāng)前url任意字符,.表示任意單個(gè)字符,*表示匹配0次或n次(n>0),后面/blog/$1是重寫成分,意思是將前面匹配的字符重寫成/blog/$1,這個(gè)$1表示反向匹配,引用的是前面第一個(gè)圓括號的成分,即^(.*)$中的.* ,其實(shí)這兒將會出現(xiàn)一個(gè)問題,后面討論。
find命令
find命令是用來在給定的目錄下查找符合給定條件的文件
find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]
OPTIONS參數(shù):-P、-L、-H:控制軟連接的對待方式,用的不多。
查找路徑:就是個(gè)目錄路徑linux命令,相對和絕對都可以。
查找條件:
-size [+,-][b,k,M,G] 按文件的修改時(shí)間等查找
時(shí)間屬性{-atime/-ctime/-mtime/-amin/-cmin/-mmin} [-/+]n
不帶符號表示符合該數(shù)量的,帶-表示符合該數(shù)量以后的,帶+表示符合該數(shù)量以前的。
-perm MODE 按文件權(quán)限查找
按文件所屬組
組合查找
處理動作
wc命令
wc統(tǒng)計(jì)文件里面有多少單詞、多少行、多少字符。
wc [-lwm]選項(xiàng)與參數(shù):
這些選項(xiàng)可以組合使用。 輸出列的順序和數(shù)目不受選項(xiàng)的順序和數(shù)目的影響?偸前聪率鲰樞蝻@示并且每項(xiàng)最多一列。
行數(shù)、字?jǐn)?shù)、字節(jié)數(shù)、文件名
例子:
ls -l | wc -l #當(dāng)前目錄下的文件數(shù)
ps -ef | grep procName | wc -l # 進(jìn)程數(shù)量
wc -l `find -name *.c` # .c文件數(shù)量