如何快速查看Linux日誌?

由於在生產環境會遇到不少問題,那麼最快的定位方式莫過於去看日誌,咱們都知道服務器天天會產生大量的日誌,那麼如何快速的定位也就是最關鍵的。git

本文介紹六種查看日誌的命令:tailheadcatmorelesssedgithub

1、tail

1.1 命令功能

tail 命令從指定點開始將文件寫到標準輸出。服務器

1.2 命令格式

tail[必要參數][選擇參數][文件]less

1.3 命令參數

-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒

1.4 使用實例

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

2、head

2.1 命令功能

headtail是相反,用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。編輯器

head -n  10  file.log   查詢日誌文件中的頭10行日誌;
head -n -10  file.log   查詢日誌文件除了最後10行的其餘全部日誌;

2.2 命令格式

tail[必要參數][選擇參數][文件]post

2.3 命令參數

參考tailui

3、cat

3.1 命令功能

  1. 一次顯示整個文件:cat filename
  2. 從鍵盤建立一個文件(只能建立新文件,不能編輯已有文件):cat > filename
  3. 將幾個文件合併爲一個文件:cat file1 file2 > file

3.2 命令格式

cat [選項] [文件]...spa

3.3 命令參數

-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 以外

3.4 使用實例

  • file1.log 的文件內容加上行號後輸入 file2.log 這個文件裏
cat -n file1.log file2.log
  • file1.logfile2.log 的文件內容加上行號(空白行不加)以後將內容附加到 file.log
cat -b file1.log file1.log file.log
  • file1.log 的文件內容加上行號後輸入 file.log 這個文件裏
cat -n file1.log > file.log

tac 是將 cat 反寫過來,因此他的功能就跟 cat 相反日誌

4、more

4.1 命令功能

more命令和cat的功能同樣都是查看文件裏的內容,但有所不一樣的是more能夠按頁來查看文件的內容,還支持直接跳轉行等功能。code

4.2 命令語法

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]

4.3 命令參數

+n      從笫n行開始顯示
-n       定義屏幕大小爲n行
+/pattern 在每一個檔案顯示前搜尋該字串(pattern),而後從該字串前兩行以後開始顯示  
-c       從頂部清屏,而後顯示
-d       提示「Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)」,禁用響鈴功能
-l        忽略Ctrl+l(換頁)字符
-p       經過清除窗口而不是滾屏來對文件進行換頁,與-c選項類似
-s       把連續的多個空行顯示爲一行
-u       把文件內容中的下畫線去掉

4.4 經常使用操做命令

Enter 向下n行,須要定義,默認爲1行
Ctrl + F 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl + B 返回上一屏
= 輸出當前行的行號
:f 輸出文件名和當前行的行號
V 調用vi編輯器
!命令 調用Shell,並執行命令
q 退出more

4.5 使用示例

  • 顯示文件中從第3行起的內容
more +3 file.log
  • 從文件中查找第一個出現test字符串的行,並從該處前兩行開始顯示輸出
more +/test file.log
  • 設定每屏顯示行數
more -5 log2012.log

5、less

5.1 命令功能

lessmore相似,使用less能夠隨意瀏覽文件,而more僅能向前移動,不能向後移動,而 less 既能夠向前移動,也能夠向後移動。

5.2 命令格式

less [參數]  文件

5.3 命令參數

-b <緩衝區大小> 設置緩衝區的大小
-e  當文件顯示結束後,自動離開
-f  強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g  只標誌最後搜索的關鍵詞
-i  忽略搜索時的大小寫
-m  顯示相似more命令的百分比
-N  顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q  不使用警告音
-s  顯示連續空行爲一行
-S  行過長時間將超出部分捨棄
-x <數字> 將「tab」鍵顯示爲規定的數字空格

5.4 經常使用操做命令

/字符串:向下搜索「字符串」的功能
?字符串:向上搜索「字符串」的功能
n:重複前一個搜索(與 / 或 ? 有關)
N:反向重複前一個搜索(與 / 或 ? 有關)
b  向後翻一頁
d  向後翻半頁
h  顯示幫助界面
Q  退出less 命令
u  向前滾動半頁
y  向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]:   向上翻動一頁

5.5 less命令在查詢日誌時,通常流程是這樣的

  1. less file.log
  2. shift + G 命令到文件尾部 而後輸入 加上你要搜索的關鍵字例如:?test
  3. n 向上查找關鍵字
  4. shift + n 反向查找關鍵字

6、sed

6.1 命令功能

這個命令能夠查找日誌文件特定的一段 , 根據時間的一個範圍查詢,能夠按照行號和時間範圍查詢

6.2 使用示例

  • 按照行號:只查看文件的第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

7、技術交流

  1. 風塵博客
  2. 風塵博客-掘金
  3. 風塵博客-博客園
  4. Github
相關文章
相關標籤/搜索