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手冊形式維護的. 如果info和tail程式在你那兒都已經安裝好了,那麼命令: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 ...