Linux head/tail 檢視檔案開頭與結尾
有時候我們只需要看檔案的「開頭」幾行(確認標題或欄位),或是「結尾」幾行(查看最新的 Log 訊息)。這時候不需要讀取整個檔案,可以用 head 和 tail。
head:顯示檔案開頭
預設情況下,head 會顯示檔案的前 10 行。
head file.txt
指定顯示行數 (-n)
如果你想看前 20 行:
head -n 20 file.txt
# 或者直接簡寫為 -20
head -20 file.txt
tail:顯示檔案結尾
預設情況下,tail 會顯示檔案的最後 10 行。這對於查看 Log 非常有用,因為最新的訊息通常都在最後面。
tail /var/log/syslog
指定顯示行數 (-n)
查看最後 50 行:
tail -n 50 /var/log/syslog
tail -f:即時監控檔案 (Follow)
這是系統管理員最重要的指令之一!
加上 -f (follow) 參數後,tail 不會結束程式,而是會持續「監控」該檔案。只要有新的內容被寫入該檔案,螢幕上就會即時顯示出來。
这在 Debug 或監控 Web Server Log 時非常實用。
# 即時監看 Apache 的 Access Log
tail -f /var/log/apache2/access.log
要離開監控模式,請按 Ctrl + C。
組合技:取中間幾行
如果我想看第 100 行到第 110 行,該怎麼辦?
我們可以結合 head 和 tail 搭配 Pipe (|) 來達成。
邏輯:
- 先取出前 110 行 (
head -n 110) - 再從這 110 行裡面,取出最後 11 行 (
tail -n 11)
head -n 110 data.csv | tail -n 11