Linux 檢視日誌檔案命令
- tail
- head
- cat
- tac
- 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命令 |