日志是系統運行的重要文件,當系統發生錯誤,查看日志文件是非常有必要的。但是,當文件過大時,就不能用vi 進行全部查看,需要相應的日志查看命令。如果想查看日志中的某幾行,可以使用tail 、head、sed命令,如果想在日志中匹配關鍵字內容,可以使用grep命令,如果想讓日志文件進行創建、整合添加、顯示整個文件內容可以使用cat命令,cat從第一行開始開始正向顯示日志內容,與此相反有個tac命令,可以從最后一行開始顯示內容。
下面詳細介紹一下各命令具體使用情況:
tail
參數: tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
參數說明:
- -f 該參數用於監視File文件增長。
- -c Number 從 Number 字節位置讀取指定文件
- -n Number 從 Number 行位置讀取指定文件。
- -m Number 從 Number 多字節字符位置讀取指定文件,比方你的文件假設包括中文字,假設指定-c參數,可能導致截斷,但使用-m則會避免該問題。
- -b Number 從 Number 表示的512字節塊位置讀取指定文件。
- -k Number 從 Number 表示的1KB塊位置讀取指定文件。
File 指定操作的目標文件名稱
上述命令中,都涉及到number,假設不指定,默認顯示10行。Number前面可使用正負號,表示該偏移從頂部還是從尾部開始計算。
tail可運行文件一般在/usr/bin/以下。
head
head 僅僅顯示前面幾行
示例:
head -n 10 test.log 查詢日志文件中的頭10行日志;
head -n -10 test.log 查詢日志文件除了最后10行的其他所有日志;
grep
grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
grep [options] 主要參數:
-c:只輸出匹配行的計數。
-I:不區分大 小寫(只適用於單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數
:忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
<:從匹配正則表達 式的行開始。
>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即A符合要求 。
[-]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字符。
- :有字符,長度可以為0。
sed
sed -n '5,10p' filename 說明:只查看文件的第5行到第10行。
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
tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行連續顯示在螢幕上, 而 tac 則是由最后一行到第一行反向在螢幕上顯示出來!
日志最常使用的三種操作命令
第一種:查看實時變化的日志(比較吃內存)
最常用的:
tail -f filename (默認最后10行,相當於增加參數 -n 10)
Ctrl+c 是退出tail命令
其他情況:
tail -n 20 filename (顯示filename最后20行)
tail -n +5 filename (從第5行開始顯示文件)
第二種:搜索關鍵字附近的日志
最常用的:cat -n filename |grep "關鍵字"
其他情況:
- cat filename | grep -C 5 '關鍵字' (顯示日志里匹配字串那行以及前后5行)
- cat filename | grep -B 5 '關鍵字' (顯示匹配字串及前5行)
- cat filename | grep -A 5 '關鍵字' (顯示匹配字串及后5行)
第三種:進入編輯查找:vi(vim)
1、進入vim編輯模式:vim filename
2、輸入“/關鍵字”,按enter鍵查找
3、查找下一個,按“n”即可
退出:按ESC鍵后,接着再輸入 :號 時,vi會在屏幕的最下方等待我們輸入命令
wq! 保存退出;
q! 不保存退出;
其他情況:
/關鍵字 注:正向查找,按n鍵把光標移動到下一個符合條件的地方
?關鍵字 注:反向查找,按shift+n 鍵,把光標移動到下一個符合條件的
參考鏈接:
- https://blog.csdn.net/aoocean/article/details/82595084#tac%20(%E5%8F%8D%E5%90%91%E5%88%97%E7%A4%BA)
- https://blog.csdn.net/qq_28286027/article/details/81121473