head 與 tail 就像它的名字同樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想固然爾就是看檔案的結尾,看看下面的範例:
## (1)apache
displays the first 6 lines of a file
head -6 readme.txt
## (2)app
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)curl
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)url
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/kshserver
head與tail一套組合拳:io
head -n 10030 application.log | tail -n +10000ast
輸出application.log的10000行至10030行內容。date