Linux head/tail 檢視檔案開頭與結尾

有時候我們只需要看檔案的「開頭」幾行(確認標題或欄位),或是「結尾」幾行(查看最新的 Log 訊息)。這時候不需要讀取整個檔案,可以用 headtail

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 行,該怎麼辦? 我們可以結合 headtail 搭配 Pipe (|) 來達成。

邏輯:

  1. 先取出前 110 行 (head -n 110)
  2. 再從這 110 行裡面,取出最後 11 行 (tail -n 11)
head -n 110 data.csv | tail -n 11