首頁 > 軟體

Linux環境下檢視紀錄檔檔案命令詳解

2021-12-08 13:01:53

前言

當紀錄檔儲存檔案很大時,我們就不能用 vi 直接去檢視紀錄檔了,就需要Linux的一些內建命令去檢視紀錄檔檔案.

系統Log紀錄檔位置:

/var/log/message 系統啟動後的資訊和錯誤紀錄檔,是Red Hat Linux中最常用的紀錄檔之一

/var/log/secure 與安全相關的紀錄檔資訊

/var/log/maillog 與郵件相關的紀錄檔資訊

/var/log/cron 與定時任務相關的紀錄檔資訊

/var/log/spooler 與UUCP和news裝置相關的紀錄檔資訊

/var/log/boot.log 守護行程啟動和停止相關的紀錄檔訊息

一、cat命令:

引數:
-n 或 --number 由 1 開始對所有輸出的行數編號
-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號
-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
-E --show-ends 在每行結束處顯示 $
-e --等價於-vE

cat主要有三大功能:
1. $ cat filename 一次顯示整個檔案。
2. $ cat > filename 從鍵盤建立一個檔案。(只能建立新檔案,不能編輯已有檔案)
3. $ cat filename1 filename2 > filename 將幾個檔案合併為一個檔案(如果原本file檔案中有內容,會被覆
   蓋掉) 蓋掉) 
 
例:
把 file1 的內容加上行號後輸入到 file2 這個檔案裡  
cat -n filename1 > filename2

把 file1 和 file2 的內容加上行號(空白行不加)之後將內容追加到 file3 裡
cat -b filename1 filename2 >> filename3  
 
把test.txt檔案扔進垃圾箱,賦空值test.txt
cat /dev/null > /etc/test.txt   

注意:>意思是建立,>>是追加。千萬不要弄混了。  

二、more命令:

more 命令是一個基於vi編輯器文字過濾器,它以全螢幕幕的方式按頁顯示文字檔案的內容,支援vi中的關鍵字定位元運算。
該命令一次顯示一屏文字資訊,滿屏後停下來,以百分比的形式,以上下翻頁,以上下行移動顯示檢視紀錄檔並且在螢幕
的底部給出一個提示資訊,從開始至當前己顯示的該檔案的百分比:–More–(XX%)

 **按鍵                                                    **說明**
 按Space鍵:                                       顯示文字的下一屏內容。
 按B鍵:                                             顯示上一屏內容。
 按Enter鍵:                                      只顯示文字的下一行內容。
 按斜線符:                            接著輸入一個模式,可以在文字中尋找下一個相匹配的模式。
 按H鍵:                                     顯示幫助屏,該屏上有相關的幫助資訊。
 按Q鍵:                                              退出more命令

三、less命令:

less 命令檢視紀錄檔,和more命令類似,只不過less支援上下鍵前後翻閱檔案。

四、head命令:

引數:
-q 隱藏檔名
-v 顯示檔名
-c 顯示位元組數
-n 顯示的行數

從文字檔案的頭部開始檢視,head 命令用於檢視一個文字檔案的開頭部分。

例:
head filename 或 head -n 10 顯示文字檔案 file 的前十行內容,然後退出命令
head -n 20 filename 顯示文字檔案 file 的前二十行內容
head -n -10 filename 顯示文字檔案除了最後10行的其他所有文字檔案資訊

五、tail命令:

tail 命令用於顯示文字檔案的末尾內容(預設10行,相當於增加引數 -n 10),並且實時不斷有內容被列印出來,
  若想中斷程序,使用命令 Ctrl-C

引數:
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/以下。

tail -f filename 監視filename檔案的尾部內容(預設10行,相當於增加引數 -n 10)
tail -100f filename 監視filename檔案的尾部內容(預設從底部往前100行,相當於增加引數 -n 100)
tail -n 20 filename 顯示filename最後20行
tail -r -n 10 filename 逆序顯示filename最後10行

六、tac命令:

tac (反向檢視紀錄檔,會開啟整個檔案,倒序顯示,不常用)

tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反。

cat 是由第一行到最後一行連續顯示在螢幕上,而 tac 則是由最後一行到第一行反向在螢幕上顯示出來

七、echo命令:

echo 命令用來在標準輸出上顯示一段字元
echo [ -n ] 字串其中選項n表示輸出文字後不換行;字串能加引號,也能不加引號
echo "the echo command test!"
echo "the echo command test!">filename 輸出內容到檔案

用 echo 命令輸出加引號的字串時,將字串原樣輸出
用 echo 命令輸出不加引號的字串時,將字串中的各個單詞作為字串輸出,各字串之間用一個空格分割

八、grep命令:

grep 同時滿足多個關鍵字和滿足任意關鍵字,是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 
  配的行列印出來。grep全稱是Global Regular Expression Print,表示全域性正規表示式版本,顯示完自動退
  出命令

grep [options]  
引數:  
[options]引數:  
-c:只輸出匹配行的計數
-I:不區分大 小寫(只適用於單字元)
-h:查詢多檔案時不顯示檔名
-l:查詢多檔案時只輸出包含匹配字元的檔名
-n:顯示匹配行及 行號
-s:不顯示不存在或無匹配文字的錯誤資訊
-v:顯示不包含匹配文字的所有行
-A: 顯示匹配行及前面多少行, 如: -A3, 則表示顯示匹配行及前3行
-B: 顯示匹配行及後面多少行, 如: -B3, 則表示顯示匹配行及後3行
-C: 顯示匹配行前後多少行, 如: -C3, 則表示顯示批次行前後3行

pattern正規表示式主要引數:  
: 忽略正規表示式中特殊字元的原有含義
^:匹配正規表示式的開始行
$: 匹配正規表示式的結束行
<:從匹配正則表達 式的行開始
>:到匹配正規表示式的行結束
[ ]:單個字元,如[A]即A符合要求 
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 
。:所有的單個字元
- :有字元,長度可以為0

例
grep -n "word" filename 檢視檔案包含條件的紀錄檔,全部顯示出來(單引號或者雙引號都可以,不區分)
grep -E "word1|word2|word3" filename 滿足任意條件(word1、word2和word3之一)將匹配的內容全部打
  印出來
grep word1 filename | grep word2 |grep word3 必須同時滿足三個條件(word1、word2和word3)才匹配
  多管道,多次篩選

使用正規表示式 -E 選項
grep -E "[1-9]+" 或 egrep "[1-9]+"

grep -A100 'word' filename 顯示匹配行往後100行
grep -B100 'word' filename 顯示匹配行往前100行
grep -C100 'word' filename 顯示匹配行往前往後100行

九、sed命令:

sed 本身是一個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作

引數

-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加
  上 -n 引數後,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。 
-p ∶列印,亦即將某個選擇的資料印出。通常 p 會與引數 sed -n 一起運作~
-s ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g

例
sed -n '5,10p' filename 只檢視檔案的第5行到第10行
sed -n '/2019-01-04 21:30:00/,/2019-01-04 22:30:30/p' filename 只檢視檔案包含時間段的區間內容

混合命令:

tail -n +92表示查詢92行之後的紀錄檔
tail filename -n 300 -f 檢視底部即最新300條紀錄檔記錄,並實時重新整理
tail -f filename | grep -E 'word1|word2|word3' 實時列印出匹配規則的檔案內容(注意或符號前後最好
  不要有空格)

cat -n filename |grep 「地形」 | more 得到關鍵紀錄檔的行號
cat -n filename |tail -n +92|head -n 20

grep 'nick' | tail filename -C 10 檢視字元‘nick'前後10條紀錄檔記錄, 大寫C

head -n 20 則表示在前面的查詢結果裡再查前20條記錄

附加:

vi filename 檢視或編輯檔案
查詢檔案內容關鍵字方法:
先 執行命令>:  vi      filename
然後輸入>:   /查詢字串 
按n查詢下一個

例
如查詢nohup.out紀錄檔檔案的error關鍵字:
執行命令:         vi  nohup.out
輸入以下回車:      /error
按n查詢下一個
將實時紀錄檔列印到指定檔案:

例
將實時紀錄檔列印到檔案newlog.log內,方便查詢
執行命令:   tail  -f  nohup.out   >newlog.log
備註:newlog.log檔案可以不存在,命令執行時會自動新建

到此這篇關於Linux環境下檢視紀錄檔檔案命令詳解的文章就介紹到這了,更多相關Linux檢視紀錄檔檔案命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com