在Linux服務器管理中,日誌文件就像“監控攝像頭”,記錄着系統和應用的運行狀態。當服務器出現問題時,我們常常需要查看日誌來定位原因。今天就來聊聊幾個新手必須掌握的日誌文件查看命令,簡單易學,快速上手!

1. tail:快速看文件末尾(最常用!)

用途:查看文件的最後幾行內容,適合看最新的日誌(比如系統報錯、應用訪問記錄)。
基本語法tail [選項] 文件名

常用參數:

  • -n 數字:指定顯示最後數字行(默認10行),比如tail -n 20顯示20行。
  • -f即時監控文件變化!比如網站突然訪問變慢,用tail -f /var/log/nginx/access.log可以即時看到最新訪問記錄,像“直播”一樣更新。
  • -q:不顯示文件名(多文件同時查看時用)。

示例:

# 1. 顯示/etc/passwd文件最後5行(默認10行,這裏指定5行)
tail -n 5 /etc/passwd  

# 2. 即時監控日誌文件(比如服務器啓動日誌)
tail -f /var/log/syslog  

# 3. 顯示最後100行(默認就是10行,這裏明確寫出來更清晰)
tail -n 100 /var/log/error.log  

2. head:快速看文件開頭

用途:查看文件的前幾行內容,適合看日誌的“初始部分”(比如系統剛啓動時的日誌)。
基本語法head [選項] 文件名

常用參數:

  • -n 數字:指定顯示前數字行(默認10行)。

示例:

# 顯示系統啓動日誌(dmesg)的前3行
head -n 3 /var/log/dmesg  

# 顯示應用啓動日誌的前5行
head -n 5 /var/log/myapp.log  

3. cat:快速查看小文件全部內容

用途:直接輸出文件的全部內容,適合小文件(比如配置文件、簡短日誌)。大文件不推薦用cat,會直接刷屏。
基本語法cat 文件名

常用參數:

  • -n:顯示行號(方便定位具體內容)。
  • -b:顯示非空行的行號(忽略空行)。

示例:

# 直接顯示認證日誌全部內容
cat /var/log/auth.log  

# 顯示行號的配置文件(比如/etc/fstab)
cat -n /etc/fstab  

4. less:大文件“慢慢看”(比more更靈活)

用途:分頁顯示文件內容,支持上下翻頁、搜索,適合大日誌文件(比如幾個G的系統日誌)。
基本語法less 文件名

常用操作:

  • /:下一行/上一行。
  • 空格:下一頁;按b:上一頁。
  • /關鍵詞:搜索關鍵詞(比如/error找“error”),按n跳到下一個匹配,N回到上一個。
  • q:退出。

示例:

# 查看大日誌文件(比如系統服務日誌)
less /var/log/messages  

# 打開文件後直接搜索“warning”(不區分大小寫:less +/warning 文件名)
less +/warning /var/log/syslog  

5. grep:按關鍵詞“過濾”日誌(必學!)

用途:搜索文件中包含指定關鍵詞的行,常和tail/cat組合使用(比如先tail取最後100行,再grep過濾錯誤)。
基本語法grep [選項] 關鍵詞 文件名

常用參數:

  • -n:顯示匹配行的行號。
  • -i:忽略大小寫(比如找“error”也能匹配“Error”)。
  • -v反向過濾(排除關鍵詞的行,比如排除正常日誌,只看錯誤)。
  • -f:從文件中讀取關鍵詞列表。

示例:

# 找日誌中所有“error”關鍵詞(顯示行號)
grep -n "error" /var/log/nginx/error.log  

# 忽略大小寫找“warning”(比如系統警告)
grep -i "warning" /var/log/syslog  

# 即時過濾404錯誤(先tail -f即時看日誌,再過濾404)
tail -f /var/log/nginx/access.log | grep "404"  

# 排除“INFO”關鍵詞的行(只看非INFO的日誌)
grep -v "INFO" /var/log/myapp.log  

新手小技巧:組合命令“效率翻倍”

  • 即時查看最新錯誤tail -n 100 /var/log/syslog | grep -i "error"(先取最後100行,再過濾錯誤)。
  • 大文件快速定位末尾less +G 日誌文件+G直接跳到文件最後一行,不用翻半天)。
  • 搜索最近24小時的問題grep "error" /var/log/syslog | grep $(date -d '1 day ago' +%Y-%m-%d)(結合日期過濾,定位時間範圍)。

總結

以上命令基本覆蓋了新手日常查看日誌的90%場景:
- 即時監控:tail -f
- 快速定位末尾:tail -n
- 過濾關鍵詞:grep
- 大文件分頁:less

多練幾次,比如拿自己的服務器日誌(或本地測試文件)試試看,很快就能上手!如果遇到權限問題,記得用sudo提權哦~

小夜