一、find
根據檔案的名稱或者屬性查找檔案,
語法格式:
find [查找范圍] [引數]
引數:
-name : 按照檔案的名字查找檔案
* :通配符
-iname : 按照檔案的名字查找檔案(忽略大小寫)
-size : 按照檔案的大小查詢檔案
+ : 大于
- : 小于
沒符號 : 等于
-mtime : 按照修改時間去查詢
+(可以省略) : n 天以前
- : n 天以內
-atime :按照訪問時間去查詢(引數同上)
-ctime :按照更改時間去查詢(引數同上)
-user :按照用戶的屬主查詢
-group : 按照用戶的屬組查詢
-type : 按照檔案的型別查詢
d : 檔案夾
l : 鏈接檔案
s : 套接字檔案
p : 管道檔案
c : 字符檔案
b :磁盤檔案
f : 普通檔案
-perm : 按照檔案的權限查詢
-inum : 根據index node號碼查詢
-a : 并且(可以省略,默認時并且)
-o : 或者
-maxdepth : 查詢的目錄深度(必須放置與第一個引數位)
-exec : 將find處理好的結果交給其他命令繼續處理,
案例演示:
案例1:查詢/etc目錄下hosts檔案
[root@localhost ~]# find /etc/ -name 'hosts'
案例2:查詢/etc目錄下名稱中包含hosts檔案
[root@localhost ~]# find /etc/ -name '*hosts*'
案例3:要求把/etc目錄下,所有的普通檔案打包壓縮到/tmp目錄
[root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
知識儲備:
dd : 生成檔案
if :從什么地方讀
of : 寫入到什么檔案
bs : 每次寫入多少內容
count : 寫入多少次
| : 前面一個命令的結果交給后面一個命令處理
xargs : 把處理的文本變成以空格分割的一行
`` : 提前執行命令,然后將結果交給其他命令來處理
二、grep
grep是Linux三劍客之一,是一種文本過濾器(根據文本內容過濾檔案),
Linux中grep經常搭配正則運算式一起使用,所以關于正則相關的知識請查看筆者之前的博客,里面有詳細的介紹,這里就不再過多介紹了,
語法格式:
grep [引數] [匹配規則] [操作物件]
引數:
-n : 過濾文本時,將過濾出來的內容在檔案內的行號顯示出來
-A : 匹配成功之后,將匹配行的后n行顯示出來
-B : 匹配成功之后,將匹配行的前n行顯示出來
-C : 匹配成功之后,將匹配行的前后各n行顯示出來
-c : 只顯示匹配成功的行數
-o : 只顯示匹配成功的內容
-v : 反向過濾
-q : 靜默輸出
-i : 忽略大小寫
-l : 匹配成功之后,將文本的名稱列印出來
-R|-r : 遞回匹配
-E : 使用拓展正則運算式 等價于 egrep
需要使用拓展正則的相關符號:
{} :匹配的次數
{n} : 匹配n次
{n,} :至少匹配n次
{n,m} :匹配 n 到 m 次
{,m} :最多匹配m次
+ :匹配至少有一個前導字符
? : 匹配一個或零個前導字符
| :或
知識儲備:
知識儲備:
$? : 上一行命令執行的結果,0代表執行成功,其他數字代表執行失敗,
wc : 匹配行數
-l : 列印匹配行數
-c : 列印匹配的位元組數
eg:在/etc目錄下,有多少個檔案包含root,
grep -rl 'root' /etc/ | wc -l
搭配正則運算式相關案例演示:
案例1:在/etc/passwd檔案中,匹配以ftp開頭的行
grep '^ftp' /etc/passwd
案例2:在/etc/passwd檔案中,匹配以bash結尾的行
grep 'bash$' /etc/passwd
案例3:匹配本機中有哪些ip
ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
案例4:要求將/etc/fstab中的去掉包含 # 開頭的行,且要求 # 后至少有一個空格
grep -vE '^#\ +' /etc/fstab
案例5:找出檔案中至少有一個空格的行
grep -E '\ +' xxx
案例6:將 nginx.conf 檔案中以#開頭的行和空行,全部洗掉
grep -vE '^\ *#|^$' /etc/nginx/nginx.conf
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387677.html
標籤:其他
下一篇:海王星記憶體使用
