在咱們的實際開發中,通常應用都部署在Linux上,爲了後期方便排查bug或者記錄代碼執行的流程。對於開發者而言,遇到問題常常須要去看log文件(或者使用Kibana這樣的工具),這裏介紹幾個開發經常使用而又重要的日誌查找技巧。正則表達式
grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。express
這行命令在info.log中搜索含有"2017010500345878"關鍵詞的段落而且使用其餘顏色標記關鍵詞。
複製代碼
優勢:根據關鍵詞快速方便定位而且打印出來段落的上下文。bash
head命令是用來查看具體文件的前面幾行的內容,該命令默認是前10行內容;less
查看info.log文件的前50行。
複製代碼
優勢:快速定位到文件的前多少行。編輯器
tail命令是用來查看具體文件後面幾行的內容,默認狀況下,是查看該文件尾10行的內容;還可使用 tail 來觀察日誌文件被更新的過程。使用 -f 選項,tail 會自動實時更新文件內容。工具
cat命令是Linux下的一個文本輸出命令,一般是用於觀看某個文件的內容的.經常使用有三大功能:1.一次顯示整個文件;2.從鍵盤建立一個文件。3.將幾個文件合併爲一個文件。這裏咱們只舉例顯示一個文件.spa
less(less) 命令能夠對文件或其它輸出進行分頁顯示命令行
ack是一個基於Perl的相似於grep的命令行工具,可是搜索速度更快,能力比grep更強。日誌
在當前目錄遞歸搜索單詞」eat」,不匹配相似於」orderService」或」paymentOrder」的字符串.
複製代碼
sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲「模式空間」(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操做;編寫轉換程序等。code
查看info.log文件800到900行之間的內容
複製代碼
使用找一個字符串,在vi命令模式下鍵入「/」,後面跟要查找的字符串,再按回車。vi將光標定位在該串下一次出現的地方上。鍵入n跳到該串的下一個出現處,鍵入N跳到該串的上一個出現處。
使用[grep -n 異常 --color info.log ]查詢到異常在文件中發生的行數,而後再看先後幾十行日誌的內容[sed -n '800,900' info.log].
這些命令的功能都比較豐富,這裏只是列出很是簡單的一些用法,在通常的開發中都是頻繁使用獲得.具體的用法須要開本身總結使用本身喜歡使用的命令.(我這裏的總結也會持續更新)