一、tail
大概是個什麼東西?
其實正如命令tail本身命名一樣,tail具有“尾巴”的意思,顧名思義,在linux中經常用來檢視某個文字檔案的末尾部分。說更具體一點,我們工作中常常用來檢視系統日誌,當系統上線之後,小編會使用該命令跟蹤業務日誌,然後定位生產問題。
二、tail
基本語法結構是怎樣的?
跟其他Linux命令一樣,tail命令語法格式如下:
tail [OPTION]... [FILE]...
- 1、
[OPTION]
是相關命令引數 - 2、
[FILE]
是需要檢視的相關檔名,可以寫1-n個檔名
[OPTION]
常用引數如下表:
引數名 | 引數詳解 | 舉例 | 例子解釋 | 執行結果 | 疑問 | 答疑 |
---|---|---|---|---|---|---|
-c[K] 或者 --bytes=[K] |
用於輸出檔案末尾倒數K個位元組的文字 | tail -c10 yum.conf 或 tail --bytes=10 yum.conf |
檢視倒數10個位元組的文字 | 1、不是要輸出10個字元嗎?為什麼只輸出m.repos.d 9個位元組呢? |
因為在linux中,檔案換行採用\n(0a) 回車換行,而在windows中,採用\r\n 結尾 |
|
-f 或 --follow |
動態輸出檔案結尾資料 | tail -f yum.conf |
如果yum.conf 檔案是動態增長的,那麼該命令將不斷輸出結尾資料塊 |
1、能否每次固定動態輸出末尾行數? | 可以的,只需要加一個數字即可,如tail -500f yum.conf ,表示每次固定動態輸出末尾500行文字 |
|
-n<N> 或--line=<N> |
指定輸出檔案末尾的行數 | tail -n5 yum.conf |
輸出檔案yum.conf 末尾5行 |
1、-n 可以動態輸出嗎? |
不可以,動態輸出使用-f |
|
-q 或--quiet 或--silent |
當檔案有多個時,不輸出分隔符 | tail -n2 -q yum.conf virc |
輸出檔案yum.conf 和virc 兩個檔案各2行 |
無 | 無 | |
-v 或--verbose |
當輸出多個檔名時,總是輸出各個檔名,即使使用-q 修飾 |
tail -n2 -q -v virc yum.conf |
總是輸出virc 和yum.conf 檔名 |
無 | 無 |
另外,在不加入任何[OPTION]
引數的情況下,tail命令預設會輸出一個檔案的最後10行內容。當然,我們也可以指定從檔案第幾行開始,輸出知道檔案末尾,可以採用+
命令,如:tail -n+2 sysctl.conf
,表示從第二行開始直到檔案末尾的部分都輸出,執行結果如下所示:
三、工作中經常用到的tail
用法有哪些?
- 1、同時輸出1個以上檔案內容,輸出格式將會使用
==> fileName <==
作為分隔符。
上圖輸出 yum.conf
和virc
兩個檔案的內容,從輸出可見使用了==> <==
進行分隔。
- 2、動態輸出跟蹤檔案結尾n行文字
tail -100f fileName
:動態輸出檔案末尾的100行資料。
- 3、預設檢視檔案末尾10行資料
tail fileName