平常開發中,咱們常常須要在服務器上進行各類文本,日誌的查看操做,本文主要對經常使用的文本,日誌查看技巧進行了一番總結和概括,方便你們收藏起來後續查看使用:html
tail命令查看日誌信息
實時監控日誌:java
tail -f filename
實時監控10行日誌信息:linux
tail -10f filename
查看日誌尾部的最後100行日誌信息:git
tail -n 100 filename
查看日誌100行以後的日誌信息:面試
tail -n +100 filename
head命令查看文本信息正則表達式
查看文本開始的頭100行信息:服務器
head -n 100 filename
查看文本最後100行信息以上的內容微信
head -n -100 filename
cat命令查看文本信息
查看所有文本內容架構
cat filename
查看文本的中間某些行範圍之間的內容,例如說查看文本文件100-120行之間的內容:編輯器
cat -n filename |tail -n +100|head -n 20
不過使用我的不是太喜歡使用這種命令來進行文本的定位查看,由於查看起來過於麻煩,文章下邊會有更加簡便的命令操做。
tac查看文本信息
和cat命令有點相反,cat命令更多的是從頭部往尾部的順序展示文本內容,而tac命令正好是從文本的尾部往頭部展示日誌內容
tac filename
例如說,咱們經過cat命令和tac命令同時來查看一段相同的內容:
經過不一樣命令來展現文本,會發現文本的內容順序有所相反。
搜索文本內容
grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
grep命令的經常使用方式:
在多個文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
標記匹配顏色 --color=auto 選項:
grep "match_pattern" file_name --color=auto //【這裏的color項能夠根據文檔說明進行選擇always,never,auto三種】
輸出除以外的全部行 -v 選項:
grep -v "match_pattern" file_name
使用正則表達式 -E 選項:
grep -E "[1-9]+"
只輸出匹配到的內容選項:
grep -o -E "[a-z]+." line
統計文件或者文本中包含匹配字符串的行數 -c 選項:
grep -c "text" file_name
輸出包含匹配字符串的行數 -n 選項:
grep "text" -n file_name
在瞭解了grep命令能完成的功能點以後,咱們能夠在實際工做中靈活運用。
有些時候咱們也會遇到一些但願查看某個時間段日誌信息的須要,這個時候能夠利用grep這條命令來實現這個功能,例如說但願查看2019-08-06 22點這一個小時之內的日誌信息,那麼能夠輸入如下命令:
grep '2019-08-06 22' filename
這樣能夠快速定位到你所但願查看的信息範圍。
因爲grep命令是能夠接收standard input的數據,所以咱們一般能夠藉助管道命令符「 | 」的幫助,在一些標準輸出進行中進行查找操做。
例如說,先將文件的內容讀取出來,而後藉助管道的幫助將內容轉發給grep來進行內容過濾,以下邊的這段命令:
cat log.file |grep -n '2019-08-06 22:43'
除了使用grep命令以外,也可使用sed命令來實現相應的效果。
sed是一種非交互式的編輯器,sed會逐行處理文件(或輸入),並將結果發送到屏幕。
可能對於新手來講,講概念還不如直接來幾個實操案例更爲直接。
sed命令的經常使用方式:
只打印文件的第一行內容
sed -n '1p' filename
查看文件的第一行到第十行之間的內容
sed -n '1,10p' filename
刪除第一行文本信息
sed '1d' filename
將文本里面的某些字符串進行替換
sed 's/但願替換的內容/被替換的內容/g' 例如:sed 's/1/one /g' filename 將1替換爲one
在瞭解了sed命令的一些基礎用法以後,咱們能夠在實際的工做場景中屢次運用,從而強化本身對於sed命令的理解。
例如說,經過sed命令來進行日期範圍的指定,例如說查看2019-08-06 22:43-22:44之間的日誌記錄:
sed -n '/2019-08-06 22:43/,/2019-08-06 22:44/p' filename
上邊有說到使用head和tail命令一塊兒來實現對於日誌文件的某段內容查看,可是這樣的操做實在是有點麻煩,不妨能夠嘗試使用sed命令來進行操做。
例如說,查看日誌的第1-20行內容:
nl log.file | sed -n '1,10p'
利用more命令進行翻頁查看
若是說但願查看的日誌文件過大,那麼能夠經過使用more命令來進行分頁查找,例如說設定每一頁展現10條數據信息:
more -10 filename
經過使用more命令能夠查看到每一頁展現的數據,同時經過敲空格鍵會進行下一頁的跳轉。同時在窗口中也會顯示當前所閱讀的文本內容的基礎進度。
說了那麼多,咱們不妨進行一些模擬的操做場景吧:
查看日誌最後一次出現關鍵字'test'的日誌記錄
grep 'test' -A 10 log.file | tail -n 11
這裏須要瞭解到grep命令的幾個參數含義:
- grep ‘name’ -A 10 顯示匹配內容和後面的10行
- grep ‘name’ -B 10 顯示匹配內容和前面的10行
- grep ‘name’ -C 10 顯示匹配內容和先後面的10行
tail -n 11命令則是將當前顯示的10行內容以及匹配的那一行內容展現出現
簡單統計一份日誌裏面出現‘test’關鍵字的行數
相應命令:
grep 'test' ./log.file |wc -l
這裏咱們能夠先將文本的內容進行輸出到標準輸出中,而後藉助管道將數據信息傳給wc命令進行統計。
wc命令經常使用的幾個參數
-l 匹配的行數
-w 匹配的字數
-m 匹配的字符數目
linux裏面對於文本信息的查看技巧實在是有太多了,遠遠不侷限於我在文中所說起的這些,所以在實際的工做中咱們還能夠多多將有助於本身提高工做效率的技巧進行概括和總結。
♥ 做者:Java知音,歡迎掃碼右側二維碼關注公衆號!
♠ 出處:https://www.cnblogs.com/javazhiyin/
♦本文首發於公衆號:【Java知音】和博客園,歡迎轉載,請保留原文出處!
♣ 本文如對您有幫助,還請多推薦下此文,若有錯誤歡迎指正,相互學習,共同進步。
評論
#1樓 回覆引用