linux查看日志的命令:1、tail命令,可查看實(shí)時(shí)變化的日志,語法“tail[必要參數(shù)][選擇參數(shù)][文件]”;2、head命令,可查看前多少行日志,語法“head -n? 行數(shù) 文件”;3、cat命令,可搜索關(guān)鍵字附近的日志;4、more命令,能以全屏幕的方式按頁顯示日志文件的內(nèi)容;5、sed命令,可以查找日志文件特定的一段;6、less命令,可以查找日志文件內(nèi)容。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
作為一名后端程序員,和Linux打交道的地方很多,不會(huì)看Linux日志,非常容易受到來自同事和面試官的嘲諷,所以掌握一種或者幾種查看日志的方法非常重要。
Linux查看日志的命令有多種: tail、cat、tac、head、echo等,本文只介紹幾種常用的方法。
1、tail–查看實(shí)時(shí)變化的日志
命令格式:tail[必要參數(shù)][選擇參數(shù)][文件]
-
-f 循環(huán)讀取
-
-q 不顯示處理信息
-
-v 顯示詳細(xì)的處理信息
-
-c 顯示的字節(jié)數(shù)
-
-n 顯示行數(shù)
-
-q, –quiet, –silent 從不輸出給出文件名的首部
- -s, –sleep-interval=S 與-f合用,表示在每次反復(fù)的間隔休眠S秒
用法如下:
tail??-n??10???test.log???查詢?nèi)罩疚膊孔詈?0行的日志; tail??-n?+10???test.log???查詢10行之后的所有日志; tail??-fn?10???test.log???循環(huán)實(shí)時(shí)查看最后1000行記錄(最常用的)
一般還會(huì)配合著grep用,例如 :
?tail?-fn?1000?test.log?|?grep?'關(guān)鍵字'
如果一次性查詢的數(shù)據(jù)量太大,可以進(jìn)行翻頁查看,例如:
tail?-n?4700??aa.log?|more?-1000?可以進(jìn)行多屏顯示(ctrl?+?f?或者?空格鍵可以快捷鍵)
2、head
跟tail是相反的head是看前多少行日志
head?-n??10??test.log???查詢?nèi)罩疚募械念^10行日志; head?-n?-10??test.log???查詢?nèi)罩疚募俗詈?0行的其他所有日志;
head其他參數(shù)參考tail
3、cat-搜索關(guān)鍵字附近的日志
cat 是由第一行到最后一行連續(xù)顯示在屏幕上
最常用的:cat -n filename |grep “關(guān)鍵字”
其他情況:
cat app.log | grep -C 5 ‘關(guān)鍵字’ (顯示日志里匹配字串那行以及前后5行)
cat app.log | grep -B 5 ‘關(guān)鍵字’ (顯示匹配字串及前5行)
cat app.log | grep -A 5 ‘關(guān)鍵字’ (顯示匹配字串及后5行)
擴(kuò)展知識(shí):
一次顯示整個(gè)文件 :
?$?cat?filename
從鍵盤創(chuàng)建一個(gè)文件 :
$cat?>?filename
將幾個(gè)文件合并為一個(gè)文件:
$cat?file1?file2?>?file?只能創(chuàng)建新文件,不能編輯已有文件.
將一個(gè)日志文件的內(nèi)容追加到另外一個(gè) :
$cat?-n?textfile1?>?textfile2
清空一個(gè)日志文件:
$cat?:?>textfile2
注意:> 意思是創(chuàng)建,>>是追加。千萬不要弄混了。
cat其他參數(shù)參考tail
4、more
more命令是一個(gè)基于vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內(nèi)容,支持vi中的關(guān)鍵字定位操作。more名單中內(nèi)置了若干快捷鍵,常用的有H(獲得幫助信息),Enter(向下翻滾一行),空格(向下滾動(dòng)一屏),Q(退出命令)。more命令從前向后讀取文件,因此在啟動(dòng)時(shí)就加載整個(gè)文件。
該命令一次顯示一屏文本,滿屏后停下來,并且在屏幕的底部出現(xiàn)一個(gè)提示信息,給出至今己顯示的該文件的百分比:–More–(XX%)
more的語法:more 文件名
-
Enter 向下n行,需要定義,默認(rèn)為1行
-
Ctrl f 向下滾動(dòng)一屏
-
空格鍵 向下滾動(dòng)一屏
-
Ctrl b 返回上一屏
-
= 輸出當(dāng)前行的行號(hào)
-
:f 輸出文件名和當(dāng)前行的行號(hào)
-
v 調(diào)用vi編輯器
-
!命令 調(diào)用Shell,并執(zhí)行命令
-
q退出more
5、sed
這個(gè)命令可以查找日志文件特定的一段 , 根據(jù)時(shí)間的一個(gè)范圍查詢,可以按照行號(hào)和時(shí)間范圍查詢
按照行號(hào)
sed?-n?'5,10p'?filename?這樣你就可以只查看文件的第5行到第10行。
按照時(shí)間段
?sed?-n?'/2014-12-17?16:17:20/,/2014-12-17?16:17:36/p'??test.log
6、less
less命令在查詢?nèi)罩緯r(shí),一般流程是這樣的
less?log.log shift?+?G?命令到文件尾部??然后輸入??加上你要搜索的關(guān)鍵字例如??1213 按?n?向上查找關(guān)鍵字 shift+n??反向查找關(guān)鍵字
less與more類似,使用less可以隨意瀏覽文件,而more僅能向前移動(dòng),不能向后移動(dòng),而且?less?在查看之前不會(huì)加載整個(gè)文件。 less?log2013.log?查看文件 ps?-ef?|?less???ps查看進(jìn)程信息并通過less分頁顯示 history?|?less???查看命令歷史使用記錄并通過less分頁顯示 less?log2013.log?log2014.log???瀏覽多個(gè)文件
常用命令參數(shù):
less與more類似,使用less可以隨意瀏覽文件,而more僅能向前移動(dòng),不能向后移動(dòng),而且?less?在查看之前不會(huì)加載整個(gè)文件。 less?log2013.log?查看文件 ps?-ef?|?less???ps查看進(jìn)程信息并通過less分頁顯示 history?|?less???查看命令歷史使用記錄并通過less分頁顯示 less?log2013.log?log2014.log???瀏覽多個(gè)文件 常用命令參數(shù): -b??設(shè)置緩沖區(qū)的大小 -g?只標(biāo)志最后搜索的關(guān)鍵詞 -i?忽略搜索時(shí)的大小寫 -m?顯示類似more命令的百分比 -N?顯示每行的行號(hào) -o??將less?輸出的內(nèi)容在指定文件中保存起來 -Q?不使用警告音 -s?顯示連續(xù)空行為一行 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重復(fù)前一個(gè)搜索(與?/?或???有關(guān)) N:反向重復(fù)前一個(gè)搜索(與?/?或???有關(guān)) b?向后翻一頁 h?顯示幫助界面 q?退出less?命令
linux日志文件說明
/var/log/message?系統(tǒng)啟動(dòng)后的信息和錯(cuò)誤日志,是Red?Hat?Linux中最常用的日志之一 /var/log/secure?與安全相關(guān)的日志信息 /var/log/maillog?與郵件相關(guān)的日志信息 /var/log/cron?與定時(shí)任務(wù)相關(guān)的日志信息 /var/log/spooler?與UUCP和news設(shè)備相關(guān)的日志信息 /var/log/boot.log?守護(hù)進(jìn)程啟動(dòng)和停止相關(guān)的日志消息 /var/log/wtmp?該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動(dòng)、停機(jī)的事件
相關(guān)推薦:《Linux視頻教程》