1. 程式人生 > >Linux 檢視日誌檔案命令

Linux 檢視日誌檔案命令

  1. tail
  2. head
  3. cat
  4. tac
  5. echo

1. tail

tail -f test.log

你會看到螢幕不斷有內容被打印出來. 這時候中斷第一個程序Ctrl-C。

2. head

linux 如何顯示一個檔案的某幾行(中間幾行)

從第3000行開始,顯示1000行。即顯示3000~3999行

cat test.log | tail -n +3000 | head -n 1000

顯示1000行到3000行

cat test.log | head -n 3000 | tail -n +1000

*注意兩種方法的順序

分解:

tail -n 1000:顯示最後1000行
tail -n +1000:從1000行開始顯示,顯示1000
行以後的 head -n 1000:顯示前面1000

用sed命令

sed -n '5,10p' test.log 這樣你就可以只檢視檔案的第5行到第10行。

例:

cat test.log | tail -n 1000 # 輸出mylog.log 檔案最後一千行

3. cat

cat主要有三大功能:
1.一次顯示整個檔案。

$ cat filename

2.從鍵盤建立一個檔案。

$ cat > filename 

只能建立新檔案,不能編輯已有檔案.
3.將幾個檔案合併為一個檔案:

$cat file1 file2 > file

引數:

-n
--number 由 1 開始對所有輸出的行數編號 -b--number-nonblank-n 相似,只不過對於空白行不編號 -s--squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行 -v--show-nonprinting

例:

把 textfile1 的檔案內容加上行號後輸入 textfile2 這個檔案裡

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之後將內容附加到 textfile3 裡。

cat -b textfile1 textfile2 >>
textfile3

把test.txt檔案扔進垃圾箱,賦空值test.txt

cat /dev/null > /etc/test.txt 

注意:>意思是建立,>>是追加。千萬不要弄混了。

4. tac

tac (反向列示)

tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反。

cat 是由第一行到最後一行連續顯示在螢幕上,

而 tac 則是由最後一行到第一行反向在螢幕上顯示出來!

5. echo

在Linux中echo命令用來在標準輸出上顯示一段字元,比如:

echo "the echo command test!"

這個就會輸出“the echo command test!”這一行文字!

echo "the echo command test!">a.sh

這個就會在a.sh檔案中輸出“the echo command test!”這一行文字!

該命令的一般格式為: echo [ -n ] 字串其中選項n表示輸出文字後不換行;字串能加引號,也能不加引號。

用echo命令輸出加引號的字串時,將字串原樣輸出;

用echo命令輸出不加引號的字串時,將字串中的各個單詞作為字串輸出,各字串之間用一個空格分割。

grep 同時滿足多個關鍵字和滿足任意關鍵字

1.滿足任意條件

grep -E "word1|word2|word3"   file.txt

滿足任意條件(word1、word2和word3之一)將匹配。

2.滿足所有條件

grep word1 file.txt | grep word2 |grep word3

必須同時滿足三個條件(word1、word2和word3)才匹配。

多管道,多次篩選。

3.使用正則表示式 -E 選項

grep -E "[1-9]+" 

egrep "[1-9]+"

常用命令

1.檢視日誌常用命令

tail:  
   -n  是顯示行號;相當於nl命令;例子如下:
        tail -100f      test.log        實時監控100行日誌
        tail  -n  10    test.log        查詢日誌尾部最後10行的日誌;
        tail -n +10     test.log        查詢10行之後的所有日誌;
head:  
    跟tail是相反的,tail是看後多少行日誌;例子如下:
        head -n 10      test.log   查詢日誌檔案中的頭10行日誌;
        head -n -10     test.log   查詢日誌檔案除了最後10行的其他所有日誌;
cat: 
    tac是倒序檢視,是cat單詞反寫;例子如下:
        cat -n test.log |grep "debug"   查詢關鍵字的日誌

1. 按行號檢視—過濾出關鍵字附近的日誌

1)cat -n test.log | grep “debug”

得到關鍵日誌的行號

2)cat -n test.log | tail -n +92 | head -n 20

選擇關鍵字所在的中間一行. 然後檢視這個關鍵字前10行和後10行的日誌:

tail -n +92 表示查詢92行之後的日誌

head -n 20 則表示在前面的查詢結果裡再查前20條記錄

2. 根據日期查詢日誌

sed -n '/2017-08-23 00:05:00,446/,/2017-08-23 00:05:00,546/p'  test.log

特別說明:上面的兩個日期必須是日誌中打印出來的日誌,否則無效;

先 grep ‘2014-12-17 16:17:20’ test.log 來確定日誌中是否有該 時間點

3. 日誌內容特別多,列印在螢幕上不方便檢視

1.使用 more 和 less 命令,

cat -n test.log |grep "debug" |more     

這樣就分頁列印了,通過點選空格鍵翻頁

2.使用 >xxx.txt 將其儲存到檔案中,到時可以拉下這個檔案分析

cat -n test.log |grep "debug"  >debug.txt

more命令

more命令是一個基於vi編輯器文字過濾器,它以全螢幕的方式按頁顯示文字檔案的內容,支援vi中的關鍵字定位操作。

該命令一次顯示一屏文字,滿屏後停下來,並且在螢幕的底部出現一個提示資訊,給出至今己顯示的該檔案的百分比:–More–(XX%)

可以用下列不同的方法對提示做出回答:

按鍵 說明
按Space鍵: 顯示文字的下一屏內容。
按B鍵: 顯示上一屏內容。
按Enter鍵: 只顯示文字的下一行內容。
按斜線符: 接著輸入一個模式,可以在文字中尋找下一個相匹配的模式。
按H鍵: 顯示幫助屏,該屏上有相關的幫助資訊。
按Q鍵: 退出more命令