LinuxMastery
•
•
By asdlkfj
LinuxMastery 11: 搜尋神器 grep
在大海中撈針
grep (Global Regular Expression Print) 是 Linux 上最強大的文字搜尋工具。無論是從幾 GB 的 Log 檔中找錯誤,還是從原始碼中找變數定義,grep 都是你的好朋友。它支援 Regular Expression (正規表示式),能進行極其複雜的匹配。
核心指令詳解
基本用法:
grep "keyword" filename常用參數:
-i(ignore case):忽略大小寫。搜尋 "error" 會匹配 "Error", "ERROR"。-r(recursive):遞迴搜尋目錄下的所有檔案。-n(line number):顯示關鍵字在哪一行。-v(invert):反向搜尋。顯示不包含關鍵字的行。-A 5(After):除了顯示匹配行,還多顯示後面 5 行 (看 Log 上下文很有用)。-B 5(Before):多顯示前面 5 行。
實戰範例
搜尋專案中的程式碼:
# 在當前目錄及子目錄中,尋找所有包含 "db_connection" 的檔案,並顯示行號 grep -r -n "db_connection" .排除雜訊:
# 查看設定檔,但去除註解行 (# 開頭) 和空行 grep -v "^#" /etc/nginx/nginx.conf | grep -v "^$"這裡用了
^(行首) 和$(行尾) 的正規表示式概念。
實戰心法
當你使用 tail -f 監控即時 Log 時,配合 grep 可以過濾掉大量無關資訊。例如 tail -f access.log | grep "404",這樣你就只會看到發生 404 錯誤的請求,讓監控變得一目了然。