由於在生產環境會遇到不少問題,那麼最快的定位方式莫過於去看日誌,咱們都知道服務器天天會產生大量的日誌,那麼如何快速的定位也就是最關鍵的。git
本文介紹六種查看日誌的命令:tail
、head
、cat
、more
、less
、sed
。github
tail
tail
命令從指定點開始將文件寫到標準輸出。服務器
tail[必要參數][選擇參數][文件]
less
-f 循環讀取 -q 不顯示處理信息 -v 顯示詳細的處理信息 -c<數目> 顯示的字節數 -n<行數> 顯示行數 -q, --quiet, --silent 從不輸出給出文件名的首部 -s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒
tail -n 10 file.log 查詢日誌尾部最後10行的日誌; tail -n +10 file.log 查詢第10行以後的全部日誌; tail -fn 100 file.log 循環實時查看最後100行記錄
tail
通常還會配合着grep
用tail -fn 1000 file.log | grep '關鍵字'
Ctrl + F
或者 空格鍵能夠翻頁查看tail -n 5000 file.log |more -1000
head
head
跟tail
是相反,用來顯示檔案的開頭至標準輸出中,默認head
命令打印其相應文件的開頭10
行。編輯器
head -n 10 file.log 查詢日誌文件中的頭10行日誌; head -n -10 file.log 查詢日誌文件除了最後10行的其餘全部日誌;
tail[必要參數][選擇參數][文件]
post
參考tail
ui
cat
cat filename
cat > filename
cat file1 file2 > file
cat [選項] [文件]...
spa
-A, --show-all 等價於 -vET -b, --number-nonblank 對非空輸出行編號 -e 等價於 -vE -E, --show-ends 在每行結束處顯示 $ -n, --number 對輸出的全部行編號,由1開始對全部輸出的行數編號 -s, --squeeze-blank 有連續兩行以上的空白行,就代換爲一行的空白行 -t 與 -vT 等價 -T, --show-tabs 將跳格字符顯示爲 ^I -v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 以外
file1.log
的文件內容加上行號後輸入 file2.log
這個文件裏cat -n file1.log file2.log
file1.log
和 file2.log
的文件內容加上行號(空白行不加)以後將內容附加到 file.log
裏cat -b file1.log file1.log file.log
file1.log
的文件內容加上行號後輸入 file.log
這個文件裏cat -n file1.log > file.log
tac
是將cat
反寫過來,因此他的功能就跟cat
相反日誌
more
more
命令和cat
的功能同樣都是查看文件裏的內容,但有所不一樣的是more
能夠按頁來查看文件的內容,還支持直接跳轉行等功能。code
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
+n 從笫n行開始顯示 -n 定義屏幕大小爲n行 +/pattern 在每一個檔案顯示前搜尋該字串(pattern),而後從該字串前兩行以後開始顯示 -c 從頂部清屏,而後顯示 -d 提示「Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)」,禁用響鈴功能 -l 忽略Ctrl+l(換頁)字符 -p 經過清除窗口而不是滾屏來對文件進行換頁,與-c選項類似 -s 把連續的多個空行顯示爲一行 -u 把文件內容中的下畫線去掉
Enter 向下n行,須要定義,默認爲1行 Ctrl + F 向下滾動一屏 空格鍵 向下滾動一屏 Ctrl + B 返回上一屏 = 輸出當前行的行號 :f 輸出文件名和當前行的行號 V 調用vi編輯器 !命令 調用Shell,並執行命令 q 退出more
3
行起的內容more +3 file.log
test
字符串的行,並從該處前兩行開始顯示輸出more +/test file.log
more -5 log2012.log
less
less
與more
相似,使用less
能夠隨意瀏覽文件,而more
僅能向前移動,不能向後移動,而 less
既能夠向前移動,也能夠向後移動。
less [參數] 文件
-b <緩衝區大小> 設置緩衝區的大小 -e 當文件顯示結束後,自動離開 -f 強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件 -g 只標誌最後搜索的關鍵詞 -i 忽略搜索時的大小寫 -m 顯示相似more命令的百分比 -N 顯示每行的行號 -o <文件名> 將less 輸出的內容在指定文件中保存起來 -Q 不使用警告音 -s 顯示連續空行爲一行 -S 行過長時間將超出部分捨棄 -x <數字> 將「tab」鍵顯示爲規定的數字空格
/字符串:向下搜索「字符串」的功能 ?字符串:向上搜索「字符串」的功能 n:重複前一個搜索(與 / 或 ? 有關) N:反向重複前一個搜索(與 / 或 ? 有關) b 向後翻一頁 d 向後翻半頁 h 顯示幫助界面 Q 退出less 命令 u 向前滾動半頁 y 向前滾動一行 空格鍵 滾動一行 回車鍵 滾動一頁 [pagedown]: 向下翻動一頁 [pageup]: 向上翻動一頁
less
命令在查詢日誌時,通常流程是這樣的less file.log
shift + G
命令到文件尾部 而後輸入 ?
加上你要搜索的關鍵字例如:?test
n
向上查找關鍵字shift + n
反向查找關鍵字sed
這個命令能夠查找日誌文件特定的一段 , 根據時間的一個範圍查詢,能夠按照行號和時間範圍查詢
5
行到第10
行sed -n '5,10p' file.log
sed -n '/2019-12-17 16:17:20/,/2019-12-17 16:17:36/p' file.log