Linux tail 命令詳解


-f ==>follow 顯示后續的數據

具體:

Linux命令:顯示文件結尾

  Head/Tail

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

(1)

  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 行:

(3)

  head -20 file | tail -10

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

(4)

  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 的功能啰 ~ 它是把檔案的順序內容反過來串連用的,那么 ~ 它都用在什么狀況下呢 ? 任何須要以后進先出的順序重新排列組件的工作都用得上它 ! 以下面的指令來說,便是以自最后建立的到最先建立的順序,列出三個最新建的使用者帳號:

(5)

  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不停地去讀最新的內容,這樣有實時監視的效果

一、UNIX下的TAIL命令

說明:部分內容摘錄自"永遠的UNIX",http://fanqiang.chinaunix.net/

NAME(名稱)

tail - 輸出文件的末尾部分

SYNOPSIS(總覽)

../src/tail [OPTION]... [FILE]...

DESCRIPTION(描述)

在標准輸出上顯示每個FILE的最后10行. 如果多於一個FILE,會一個接一個地顯示, 並在每個文件顯示的首部給出文件名. 如果沒有FILE,或者FILE是-,那么就從標准輸入上讀取.

--retry
即使tail開始時就不能訪問或者在tail運行后不能訪問,也仍然不停地嘗試打開文件.  -- 只與 -f合用時有用.
-c--bytes= N
輸出最后N個字節
-f--follow[={name|descriptor}]
當文件增長時,輸出后續添加的數據;  -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 以-n VALUE或-n +VALUE 方式看待,除非VALUE含有[bkm]后綴倍數中的一個,在這種情況下,它被看作 -c VALUE 或者-c +VALUE

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM