運維離不開linux,linux離不開命令操作,熟悉一些好用的linux命令會極大的提升你的作業效率,命令之間靈活的搭配更是會爆發無窮的生產力
1·find命令
一般剛剛接觸linux的人可能僅僅只是把find命令當成了查找檔案的命令,但是它的強大遠遠不止查找檔案,舉例如下,批次見可以自由結合使用滿足不同使用場景
查找指定名字的檔案或目錄
find ./ -name xxx.sh
查找指定大小范圍的檔案或目錄
find ./ -size +50k -a -size -2M (-a 是而且,-o是或者,-not 是相反)
查找指定檔案型別
find ./ -type f (普通檔案f 檔案夾檔案d 符號檔案l 字符設備c 塊設備b等)
查找指定修改時間的檔案或目錄
方式1:【 -atime 訪問時間(天) 】【 -ctime 改變狀態的時間(天) 】 【 -mtime 修改的時間(天) 】【 -amin 訪問時間(分鐘) 】【 -cmin 改變狀態的時間(分鐘) 】 【 -mmin 修改的時間(分鐘) 】
find ./ -mtime +1 -a mtime -3 (修改時大于1天,小于3天)
find ./ -mmin +1 -a mmin -3 (修改時大于1分鐘,小于3分鐘)
方式2:-newerXY,用于所尋找的檔案的時間戳 X 比參照檔案的時間戳 Y 更新一些的檔案,X 和 Y 可選引數:【a: 參照檔案的訪問時間 】【B: 參照檔案的創建時間】【c:參照檔案的 inode 狀態改變時間【 m:參照檔案的修改時間】【t:直接指定一個絕對時間】
find ./ -newermt '2020-12-02' (修改時間小于2020-12-02的檔案或目錄)
查找到檔案后做出對應操作
-delete 【洗掉查找到的檔案】
find ./ -name xx.sh -delete
-exec 命令 {} \; 【執行命令(當前目錄下執行)】
find ./ -name README.txt -exec ls {} \;
find / -name 10086.txt -exec cat {} \;


-ok 命令 {} \; 【 執行命令,執行前會詢問(當前目錄下執行)】
find ./ -name README.txt -ok ls {} \;
find / -name 10086.txt -ok cat {} \;


-execdir 命令 {} \; 【執行命令(在查找到的檔案或目錄所在目錄下執行)】
find / -name 10086.txt -execdir pwd \;

-ok 命令 {} \; 【執行命令,執行前會詢問(在查找到的檔案或目錄所在目錄下執行)】
find / -name 10086.txt -okdir pwd \;

2·xargs命令
xargs命令是給命令傳遞引數的一個過濾器,也是組合多個命令的一個工具,可以將管道或標準輸入(stdin)資料轉換成命令列引數,也能夠從檔案的輸出中讀取資料,一般是和管道一起使用,
這里只講我認為最強大的 -I 或者是-i 引數的功能(根據自己的linux),別的使用我這里不講,因為我覺得不是最重要的功能
這里簡單舉例和find和awk的搭配,能搭配的命令那是千變萬化的
命令格式: xargs -I {} 命令{}
-I引數和find搭配
find / -name 10086.txt | xargs -I {} cat {}
![]()
-I引數和awk搭配
ll |awk '{print $9}' |xargs -I {} mv {} {}_bak

-d和-n引數
xargs默認的命令就是echo,-d可以指定分割符,-n可以指定一次輸出的數量


3·awk和sort命令
awk命令這里就不詳細介紹,簡單的舉幾個使用的例子,具體的awk使用介紹可以看我的這篇文章 https://wangxiaolong.blog.csdn.net/article/details/107094812
sort命令都是和別的命令搭配使用的,往往是別的命令完成資料的統計,sort命令則對統計出來的資料資訊做一個排序,這里簡單舉例和awk的搭配,和別的命令搭配也是類似
sort常用引數:【-k 指定用第幾列配許】【-n 按照數值大小排序】【-r 以從大到小的順序排序】【d 排序時,處理英文字母、數字及空格字符外,忽略其他的字符,】
舉例:a.acc日志格式如下:
100.120.239.186 - - [15/Mar/2020:11:12:40 +0800] "HEAD / HTTP/1.0" 200 273 "-" "-"
統計各個IP的訪問量,并排序
awk '{a[$1]++}END{for(i in a) print i,a[i] }' a.acc | sort -n -r -k

統計200狀態的各個IP的訪問量,并排序
awk '$9==200{a[$1]++}END{for(i in a) print i,a[i] }' a.acc | sort -n -r -k 2

統計5-10行區間內 各個IP的訪問量,并排序
awk '{if(NR>=5&&NR<=10)a[$1]++}END{for(i in a)print i,a[i]}' a.acc | sort -n -r -k 2

后面也會不斷補充實用的命令操作到這篇文章中來
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229813.html
標籤:其他
上一篇:Docker倉庫管理
