Linux tail 命令詳解

2021-09-07 15:20:06 字數 3931 閱讀 2345

linux命令:顯示檔案結尾

head/tail

head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想當然就是看檔案的結尾,看看下面的範例:

displays the first 6 lines of a file

head -6 readme.txt

(2) displays the last 25 lines of a file

tail -25 mail.txt

範例一是顯示檔案的前 6 行,範例二則是顯示檔案最後的 25 行。

而下面的範別,結合了 head 與 tail 的指令,顯示檔案的第 11 行到第 20 行:

head -20 file | tail -10

在 tail 的使用手冊頁中顯示了比 head 還多的可用引數,其中有乙個很好用的引數 " -f ",使用此引數時,tail 不會回傳結束訊號,除非我們去自行去中斷它;相反的,它會一直等待一段時間,一直到他發現資料自它最後一次被讀取後,又被加入新的一行時:

display ongoing updates to the given

log file

tail -f /usr/tmp/logs/daemon_log.txt

上述範例可以動態顯示該 log 檔案的動態更新。

假設該服務程式是一直不斷的加入動態資料到/usr/adm/logs/daemon_log.txt的 log 檔案裡,在命令列控制視窗中使用 tail -f,它將會以一定的時間實時追蹤該檔的所有更新。 ( -f 的只有在其輸入為檔案時才能使用 )。

假如你在 tail 後下了多個檔案引數,你便能在同乙個視窗內一次追蹤數個 log 檔:

track the mail log and the server error log

at the same time.

tail -f /var/log/mail.log /var/log/apache/error_log

tac -- 反過來串連

cat 倒過來怎麼拼  對啦 !! 這就是 tac 的功能囉 ~ 它是把檔案的順序內容反過來串連用的,那麼 ~ 它都用在什麼狀況下呢 ? 任何須要以後進先出的順序重新排列元件的工作都用得上它 ! 以下面的指令來說,便是以自最後建立的到最先建立的順序,列出三個最新建的使用者帳號:

last 3 /etc/passwd records - in reverse

$ tail -3 /etc/passwd | tac

curly:x:1003:100:3rd stooge:/homes/curly:/bin/ksh

larry:x:1002:100:2nd stooge:/homes/larry:/bin/ksh

moe:x:1001:100:1st stooge:/homes/moe:/bin/ksh

檢視檔案內容的特殊方法

相信最基本的cat和less,more你已經很熟悉了,如果有特殊的要求呢:

1. 如果你只想看檔案的前5行,可以使用head命令,如:

head -5 /etc/passwd

2. 如果你想檢視檔案的後10行,可以使用tail命令,如:

tail -10 /etc/passwd

tail -f /var/log/messages

引數-f使tail不停地去讀最新的內容,這樣有實時監視的效果

tail - 輸出檔案的末尾部分

../src/tail[option]... [file]...

在標準輸出上顯示每個file的最後10行. 如果多於乙個file,會乙個接乙個地顯示, 並在每個檔案顯示的首部給出檔名. 如果沒有file,或者file是-,那麼就從標準輸入上讀取.

--retry即使tail開始時就不能訪問或者在tail執行後不能訪問,也仍然不停地嘗試開啟檔案.--只與-f合用時有用.

-c,--bytes=

n輸出最後n個位元組

-f,--follow[=]

當檔案增長時,輸出後續新增的資料;-f,--follow以及--follow=

descriptor 都是相同的意思

-n,--lines=

n輸出最後n行,而非預設的最後10行

--max-unchanged-stats=

n參看texinfo文件(預設為5)

--max-consecutive-size-changes=

n參看texinfo文件(預設為200)

--pid=

pid與-f合用,表示在程序id,pid死掉之後結束.

-q,--quiet,--silent從不輸出給出檔名的首部

-s,--sleep-interval=

s與-f合用,表示在每次反覆的間隔休眠s秒

-v,--verbose總是輸出給出檔名的首部

--help顯示幫助資訊後退出

--version輸出版本資訊後退出

如果n(位元組或者行數)的第乙個字元為`+', 那麼從每個檔案的開頭算起的第n項開始顯示, 否則, 顯示該檔案的最後n項. n可以有乙個倍數字首: b表示512,k表示1024,m表示1048576(1兆). 第乙個選項-value或+value 以-nvalue或-n+value 方式看待,除非value含有[bkm]字尾倍數中的乙個,在這種情況下,它被看作-cvalue 或者-c+value

使用--follow(-f)時,tail預設後接檔案描述符, 這意味著即使tail顯示的檔案改名了,tail仍然可以追蹤到其末尾部分. 如果你確實希望查詢檔案的實際名而非檔案描述符 (例如,日誌輪轉時), 這種預設的操作就不是你所期望的了. 在這種情況下應使用--follow=name. 這將導致tail通過周期性地重新開啟所指定的檔案來追蹤其是否被刪除了,或者被其他程式重新建立了.

tail的完整文件是以texinfo手冊形式維護的. 如果infotail程式在你那兒都已經安裝好了,那麼命令:info tail應該會讓你訪問到整篇手冊.

從上面的說明可以看到,最常用的形式是:tail   -f   sys.log

Linux tail 命令詳解

用途 從指定點開始將檔案寫到標準輸出。使用tail命令的 f選項可以方便的查閱正在改變的日誌檔案,tail f filename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容。語法標準語法 tail f c number n number m number ...

Linux tail 命令詳解

linux tail 命令詳解 用途從指定點開始將檔案寫到標準輸出。使用tail命令的 f選項可以方便的查閱正在改變的日誌 檔案,tail f filename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你 看到最新的檔案內容。標準語法 tail f c number n n...

Linux tail 命令詳解

用途 從指定點開始將檔案寫到標準輸出。使用tail命令的 f選項可以方便的查閱正在改變的日誌檔案,tail f filename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容。語法標準語法 tail f c number n number m number ...