Linux Pipe 管線 (|)
Pipe 符號 | (管線) 是 Linux 命令列最強大的功能之一。
它可以把「上一個指令的輸出 (stdout)」直接接管過來,當作「下一個指令的輸入 (stdin)」。
就像水管一樣,把資料從這邊接到那邊,經過一層一層的處理。
基本語法
指令A | 指令B | 指令C
經典組合技
1. 搭配 grep 過濾搜尋
這是最常見的用法。
# 1. 列出所有程序 (ps aux)
# 2. 搜尋包含 nginx 的行
ps aux | grep nginx
2. 搭配 less 分頁檢視
當輸出太長時,用管線接到 less 慢慢看。
cat huge_file.txt | less
3. 搭配 wc 計算數量
wc -l 可以計算行數。
# 計算目前目錄下有多少個檔案 (包含子目錄)
find . -type f | wc -l
4. 搭配 sort 與 uniq 統計排行
這是資料分析常用的技巧。例如分析網頁 Log,看出哪個 IP 訪問次數最多。
# 1. 取出 access.log 的第一欄 (IP) (假設是用 awk)
# 2. 排序 (sort)
# 3. 去除重複並計算次數 (uniq -c)
# 4. 依照次數排序 (sort -nr)
# 5. 取前 5 名 (head -n 5)
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 5
看到 Pipe 的威力了嗎?透過組合簡單的指令,能完成非常複雜的任務!