在維運伺服器時,經常需要查看系統設定檔(如 /etc/nginx/nginx.conf)或是幾百 MB 的系統日誌(Log)。如果直接用 Vim 或文字編輯器打開大檔案,不僅容易誤觸修改,還可能因為檔案太巨大而卡死系統。
因此,掌握 Linux 內建的「唯讀」檔案檢視工具與管道搜尋指令是必備的基本功。
檔案閱讀五大工具
針對不同大小與查看需求的檔案,Linux 提供了一系列各有特色(且英文縮寫非常好記)的檢視工具:
| 指令 | 英文全稱 / 概念 | 適用情境與特點 | 實務維運情境範例 |
|---|---|---|---|
| cat | Catenate | 適合看短檔案。一次性把檔案所有內容印在畫面上。 | cat /etc/issue(查看 Linux 發行版版本) |
| less | Less is More | 適合看長檔案。支援上下翻頁與關鍵字搜尋(按 q 離開)。 | less /var/log/syslog(翻閱系統日誌) |
| head | Head | 只看檔案開頭前 N 行(預設 10 行)。 | head -n 5 /etc/passwd(看帳號檔前 5 行) |
| tail | Tail | 只看檔案結尾後 N 行。搭配 -f 可即時追蹤最新 Log。 | tail -f /var/log/nginx/access.log |
| wc | Word Count | 計算檔案的行數(Line)、字數(Word)與位元組(Byte)。 | wc -l /etc/passwd(快速計算系統有多少帳號) |
關鍵字過濾神器:grep 與管道符號 |
光是可以閱讀檔案還不夠,維運時我們往往要在數千行資料中找到特定的訊息。這時候就要靠 grep :
| grep 常用參數 | 功能說明 | 實務應用範例 |
|---|---|---|
| -i | Ignore Case(忽略大小寫) | grep -i "error" app.log |
| -v | Vertical / Invert(反向搜尋,印出不匹配的行) | grep -v "^#" config.conf(過濾掉註解列) |
| -n | Number(顯示匹配行數的行號) | grep -n "root" /etc/passwd |
例如,我們想在廣大的系統設定檔中尋找特定設定,結合 cat 或 ls 與 grep 就能辦到:
-語法:cat /etc/passwd | grep ubuntu
-解讀:先印出 /etc/passwd 全部內容,但不要直接丟到螢幕,而是透過管道 | 傳給 grep 只抓出包含 ubuntu 的那一列。
下圖為在 Multipass 虛擬機(ubuntu@my-linux)中,實際驗證檔案檢視與管道搜尋指令的過程: