find,正則,gerp
阿新 • • 發佈:2021-12-20
1.find
查詢'檔案' 根據檔案的名稱或者屬性查詢檔案 man find 語法格式: find [查詢範文] [引數] 引數: -name :按照檔案的名字查詢檔案 find / -name '檔名稱' * :萬用字元 -iname :按照檔案的名字查詢(忽略大小寫) -size :按照檔案的大小查詢 + :大於指定檔案大小 - :小於指定檔案大小 沒有符號 :等於 -mtiame :按照修改時間查詢 +n :n天以前 -n :n天以後 -ctime :同上 -atime :同上 -user :按照使用者的屬主查詢 -group :按照使用者的屬組查詢 -type :按照檔案型別查詢 -inum :依據檔案的index node號查詢 -perm :按照檔案額許可權查詢(數字許可權) -a :並且(連結多個引數。預設) -o :或者 -maxdepth :查詢的目錄深度(必須放置第一引數位) -exec :將前面find處理好的結果交給其他命令執行 知識儲備: dd :生成指定大小檔案 dd if=/dev/zero of=100.txt bs-10M count-10 if :從什麼地方讀檔案 of :寫入到什麼檔案 bs :每次寫入多少大小 count :寫入多少次 案例: 案例1: 查詢/etc目錄下hosts檔案 find [/etc/] -name 'hosts' 案例2: 查詢/etc目錄下名稱中包含hosts檔案 find /etc/ -name '*hosts*' '*hosts' 案例3:要求把/etc目錄下,所有的普通檔案打包壓縮到/tmp目錄 tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs` 知識儲備: |:前面一個命令的結果交給後面的一個命令處理 xargs:把處理的文字變成以空格分割的一行 ``:提前執行命令,然後將結果交給其他命令來處理
grep命令
三劍客之一:grep(文字過濾器) 根據文字內容過濾檔案 語法格式: grep [引數] [匹配規則] [操作物件] 引數: -n :過濾文字時,將過濾出來的內容在檔案內的行號顯示出來 -A :匹配成之後將匹配行後n行顯示出來 grep -n -A ‘規則’ 操作物件 -B :前n行,同上取反 -C :前後n行,同上 -c :只顯示匹配 -o :只顯示匹配成功的內容 -v :反向過濾(列印內容是非匹配物件) -q :靜默輸出 -i :忽略大小寫 -l :匹配成功之後將文字的名稱打印出來,不成功不列印 -R|-r :遞迴匹配 -E :使用擴充套件正則等價於egrep 知識儲備: echo $? :命令列中上一行命令執行的結果 0 :代表執行成功 其他 :執行失敗 wc :匹配行數 -l :列印匹配行數 -c :列印匹配的位元組數
正則
1.正則表示式分類: 1.普通正則匹配 2.擴充套件正則匹配 2.普通正則匹配: ^ :以某字元開頭 $ :已某字元結尾 . :匹配除換行符意外的任意單個字元 * :匹配前導字元的任意個數 [] :某組字串內的任意字元 [^] :取反 [a-z] :匹配小寫字母 [A-Z] :匹配大寫字母 [a-zA-Z] :匹配字母 [0-9] :匹配數字 \ :取消轉義 () :分組 \n :代表第n個分組 3.擴充套件正則表示式: {} :匹配的次數 {n} :匹配n次 {n,} :匹配最少n次 {n,m} :匹配n-m次 {,m} :最多匹配m次 + :匹配至少一個前導字元 ? :匹配一個或零個前導字元 | :或 案例: 案例1:在/etc/passwd檔案中,匹配以ftp開頭的行 grep '^ftp' /etc/passwd 案例2:在/etc/passwd檔案中,匹配以bash結尾的行 grep 'bash$' /etc/passwd 案例x:匹配 grep 'f*' test.txt 0和多個都匹配出來 案例3:匹配本機中有哪些ip ip a | egrep -o '[0-9]{1,3}/.{3}[0-9]{1,3}' 案例4:將/etc/fstab中去掉包含#開頭的行,且要求# 後至少有一個空格 egrep '^#\ +' /etc/fstab 案例5:找出檔案中至少有一個空格的行 egrep '\ +' 案例6:將nginx.conf檔案中以#開頭的行和空行全部排除 egrep -v '^\ *#|^$' /etc/nginx/nginx.conf