Linux查看日志常用命令

使用linux查看日志排除bug是不少開發(fā)和測試人員的必備技能,為了更好的使用,所以百度結(jié)合自己經(jīng)驗總結(jié)一下常用的日志查看部分相關(guān)命令。大家可以隨時更新提出質(zhì)疑一同進步。

一、常用命令

tail head cat tac less more

  • tail:

      n  是顯示行號相當于nl命令
      tail -100f test.log      實時監(jiān)控100行日志
      tail  -n  10  test.log   查詢?nèi)罩疚膊孔詈?0行的日志;
      tail -n +10 test.log    查詢10行之后的所有日志;
    
  • head

      跟tail是相反的head是看前多少行日志
      head -n 10  test.log   查詢?nèi)罩疚募械念^10行日志;
      head -n -10  test.log   查詢?nèi)罩疚募俗詈?0行的其他所有日志;
    
  • cat

      tac是倒序查看是cat單詞反寫
      cat -n test.log |grep "debug"   查詢關(guān)鍵字的日志
    
  • more

    是將文件從第一行開始,根據(jù)輸出窗口的大小,適當?shù)妮敵鑫募?nèi)容。當一頁無法全部輸出時,可以用“回車鍵”向下翻行,用“空格鍵”向下翻頁。退出查看頁面,請按“q”鍵。另外,more還可以配合管道符“|”(pipe)使用,例如:ls -al | more
    
    more的語法:more 文件名
    Enter 向下n行,需要定義,默認為1行
    Ctrl f 向下滾動一屏
    空格鍵 向下滾動一屏
    Ctrl b 返回上一屏
    = 輸出當前行的行號
    :f 輸出文件名和當前行的行號
    v 調(diào)用vi編輯器
    ! 命令 調(diào)用Shell,并執(zhí)行命令
    q 退出more
    
  • less

    less與more類似,使用less可以隨意瀏覽文件,而more僅能向前移動,不能向后移動,而且 less 在查看之前不會加載整個文件。
    less log2013.log 查看文件
    ps -ef | less   ps查看進程信息并通過less分頁顯示
    history | less   查看命令歷史使用記錄并通過less分頁顯示
    less log2013.log log2014.log   瀏覽多個文件
    
     常用命令參數(shù):
    -b <緩沖區(qū)大小> 設(shè)置緩沖區(qū)的大小
    -g 只標志最后搜索的關(guān)鍵詞
    -i 忽略搜索時的大小寫
    -m 顯示類似more命令的百分比
    -N 顯示每行的行號
    -o <文件名> 將less 輸出的內(nèi)容在指定文件中保存起來
    -Q 不使用警告音
    -s 顯示連續(xù)空行為一行
    /字符串:向下搜索"字符串"的功能
    ?字符串:向上搜索"字符串"的功能
    n:重復前一個搜索(與 / 或 ? 有關(guān))
    N:反向重復前一個搜索(與 / 或 ? 有關(guān))
    b 向后翻一頁
    h 顯示幫助界面
    q 退出less 命令
    
      在 less 查看日志文件時:
      一般流程是:
      cd /opt/logs
      export LANG=zh_cn.utf-8     有時候使用less命令會發(fā)現(xiàn)亂碼時使用  locale可查看當前設(shè)置
      less -mns newecc-all.log-2018-05-28    顯示行號百分比和空行會比較直觀
      按g到 第一行
      shift + g 跳轉(zhuǎn)到最后一頁 
      ? 和  /  后面加檢索內(nèi)容都可以進行當前文本關(guān)鍵字的查找  shift+n/n 分別是向下/上查詢此關(guān) 
      鍵字內(nèi)容
      
    

二、常用場景

  • 按行號查看---過濾出關(guān)鍵字附近的日志
1. 得到關(guān)鍵日志的行號
  cat -n test.log |grep "debug" 
2. 選擇關(guān)鍵字所在的中間一行. 然后查看這個關(guān)鍵行數(shù)前后范圍日志:
  cat -n test.log |tail -n +92|head -n 20 

  ---tail -n +92表示查詢92行之后的日志
  ---head -n 20 則表示在前面的查詢結(jié)果里再查前20條記錄
  • 根據(jù)日期查詢?nèi)罩?/li>
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
---上面的兩個日期必須是日志中打印出來的日志,否則無效;
---先 grep '2014-12-17 16:17:20' test.log 來確定日志中是否有該 時間點                      
  • 日志內(nèi)容特別多,打印在屏幕上不方便查看
1. 使用more和less命令  
cat -n test.log |grep "debug" |more 
---這樣就分頁打印了,通過點擊空格鍵翻頁

2.使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析
cat -n test.log |grep "debug"  >debug.txt
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容