日誌的查看
1 less
less [參數] 文件
命令參數:
-b <緩衝區大小> 設置緩衝區的大小
-e 當文件顯示結束後,自動離開
-f 強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g 只標誌最後搜索的關鍵詞
-i 忽略搜索時的大小寫
-m 顯示類似more命令的百分比
-N 顯示每行的行號
-o <文件名> 將less 輸出的內容在指定文件中保存起來
-Q 不使用警告音
-s 顯示連續空行爲一行
-S 行過長時間將超出部分捨棄
-x <數字> 將“tab”鍵顯示爲規定的數字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重複前一個搜索(與 / 或 ? 有關,如果是?,按n往上查詢,按N往下查詢,如果是/按N往上查詢,按n往下查詢)
N:反向重複前一個搜索(與 / 或 ? 有關,與n相反)
b 向後翻一頁
d 向後翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動半頁
y 向前滾動一行
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]: 向上翻動一頁
裏面比較重要的有:
-N 顯示每行的行號
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重複前一個搜索(與 / 或 ? 有關,如果是?,按n往上查詢,按N往下查詢,如果是/按N往上查詢,按n往下查詢)
N:反向重複前一個搜索(與 / 或 ? 有關,與n相反)
b 向後翻一頁
d 向後翻半頁
但是有一個問題,就是less直接打開默認是日誌的首頁,咱們有時候需要打開以後進入到日誌的底部,然後往上找,怎麼辦?
辦法是:
剛進入less命令後,直接按shift+g移動到最後一行。
然後按?輸入要查詢的關鍵字,按回車鍵,然後按n往上查詢即可。
還有就是建議以後查看日誌帶上行號,看起來也方便。
2 tail
tail 命令從指定點開始將文件寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日誌文件,tail -f filename會把filename裏最尾部的內容顯示在屏幕上,並且不斷刷新,使你看到最新的文件內容。
tail[必要參數][選擇參數][文件]
參數說明
-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在進程ID,PID死掉之後結束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒
常用的命令
tail -f nohup.out 看實時日誌
tail -f -n 100 nohup.out 查看末尾指定行數
3 cat
cat命令的用途是連接文件或標準輸入並打印。這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。
cat主要有三大功能:
1.一次顯示整個文件:cat filename
2.從鍵盤創建一個文件:cat > filename 只能創建新文件,不能編輯已有文件.
3.將幾個文件合併爲一個文件:cat file1 file2 > file
cat [選項] [文件]...
命令參數:
-A, --show-all 等價於 -vET
-b, --number-nonblank 對非空輸出行編號
-e 等價於 -vE
-E, --show-ends 在每行結束處顯示 $
-n, --number 對輸出的所有行編號,由1開始對所有輸出的行數編號
-s, --squeeze-blank 有連續兩行以上的空白行,就代換爲一行的空白行
-t 與 -vT 等價
-T, --show-tabs 將跳格字符顯示爲 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
常用的:
cat -n test.log |grep "debug"
grep
grep -n t[ea]st info.log 查詢test或者tast ([]一個字符)
grep -n [^g]oo 查詢oo但不包含goo的行 (^在[]內表示反向選擇)
grep -n [^a-z]oo 查詢oo但不包含小寫字母+oo的行 ([a-z] 一個小寫字母)
grep -n [0-9] 查詢包含數字的行 ([0-9] 一個數字)
grep -n ^the 查詢the開頭的行 (^不在[]內表示定位到行首)
grep -n ^[^a-zA-Z] 查詢不是以字母開頭的行 (^反向和定位)
grep -n \.$ 查詢以.結尾的行 (\轉義 $結尾)
grep -n ^$ 找出空白行 (^$ 空白行)
grep -n g..d 查詢g??d的字符串的行(.表示一個)
grep -n ooo* 查詢至少包含兩個oo的行(* 表示重複前邊一個字符0-n次)
grep -n goo*g 查詢g開頭g結尾且中間至少包含一個o的行
grep -n g.*g 查詢g開頭g結尾且中間字符可有可無的行 (.*表示沒有或有任意個字符)
grep -n o\{2\} 查詢oo的行({2} 前邊字符重複2次,{}轉義)