Linux 命令備忘(2)

1. tail

tail 命令的功能是查看文件內容的末尾幾行,默認10行。這個命令在查看線上 log 時使用頻率是最高的,其比較重要的參數選項如下:

-n : 其後接 數字N 表示指定顯示末尾的 N-f :追蹤顯示文件的更新,使用這個指令後終端會停駐在這裏,等待文件更新再顯示出新內容。通常用於查看日誌,
持續顯示新加入的內容,也可用 tailf 替代

2. zgrep

zgrep的功能是在壓縮文件中尋找匹配的正則表達式,用法和grep命令近乎完全一致。這個命令存在的價值在於線上 log 的大小到達一定閾值的時候都會被壓縮處理,這時候將其解壓出來再過濾顯然是不現實的。
另外zgrep/grep 默認是只過濾出帶有匹配字符的那一行內容,這在排查線上問題的時候是非常不便的,因爲我們通常需要錯誤 log 附近的其他 log 共同判斷問題所在。這個需求可以通過指定 -C參數實現,常用的命令組合如下:

過濾當前目錄下所有壓縮文件,找出帶有關鍵字 error 的那一行log及其前後 10 行的內容
zgrep -niC10 error ./*

3. lsof

顯示打開文件的列表,可用於查看端口占用 lsof -i :49172

COMMAND   PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
idea    85040 nathan.yang  949u  IPv4 0x592f1a341f736e8b      0t0  TCP localhost:49172 (LISTEN)

較重要的列信息的意義如下

COMMAND:進程的名稱
PID:進程標識符
USER:進程所有者
FD:文件描述符,應用程序通過文件描述符識別該文件

其參數列表如下:

參數 功能
-a 列出打開文件存在的進程
-c<進程名> 列出指定進程所打開的文件
-g 列出GID號進程詳情
-d<文件號> 列出佔用該文件號的進程
+d<目錄> 列出目錄下被打開的文件
+D<目錄> 遞歸列出目錄下被打開的文件
-n<目錄> 列出使用NFS的文件
-i<條件> 列出符合條件的進程(4、6、協議、:端口、 @ip )
-p<進程號> 列出指定進程號所打開的文件
-u 列出UID號進程詳情

4. tar

tar 命令用於打包或者解壓文件,需注意打包是指將一大堆文件或目錄變成一個總的文件,壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。區分這兩個概念的原因在於Linux 中很多壓縮程序只能針對一個文件進行壓縮,這樣當想要壓縮一大堆文件時,必須先將這一大堆文件先打成一個包(tar命令),然後再用壓縮程序進行壓縮。常用的壓縮/解壓命令有zip/unzip gzip/gunzip

tar 的常用命令組合及參數表如下

壓縮:tar -zcvf destName.tar.gz srcFile
解壓:tar -zxvf srcName.tar.gz
參數 功能
-A或–catenate 新增文件到已經存在的備份文件
-B 設置區塊大小
-c或–create 建立新的備份文件
-C <目錄> 這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項
-d 記錄文件的差別
-x或–extract或–get 從備份文件中還原文件
-t或–list 列出備份文件的內容
-z或–gzip或–ungzip 通過gzip指令處理備份文件
-Z或–compress或–uncompress 通過compress指令處理備份文件
-f<備份文件>或–file=<備份文件> 指定備份文件
-v或–verbose 顯示指令執行過程
-r 添加文件到已經壓縮的文件
-u 添加改變了和現有的文件到已經存在的壓縮文件
-j 支持bzip2解壓文件
-v 顯示操作過程
-l 文件系統邊界設置
-k 保留原有文件不覆蓋
-m 保留文件不被覆蓋
-w 確認壓縮文件的正確性
-p或–same-permissions 用原來的文件權限還原文件
-P或–absolute-names 文件名使用絕對名稱,不移除文件名稱前的“/”號
-N <日期格式> 或 --newer=<日期時間> 只將較指定日期更新的文件保存到備份文件裏
–exclude=<範本樣式> 排除符合範本樣式的文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章