next up previous contents
Next: tee 雙向重導向 Up: 資料導向與管線處理 Previous: 連續命令   Contents

管線命令 pipe

  1. 命令 grep 可以分析一行訊息,若當中有需要的資訊,就將該行取出。ifconfig 列出網卡訊息,經由管線命令送到指令 grep 過濾出 192 字串的行。
    [dywang@dywmac ~]$ ifconfig | grep 192
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              inet addr:192.168.1.104  Bcast:192.168.1.255  Mask:255.255.255.0
    
  2. 命令 ps aux 列出執行的程序,經由管線命令送到指令 grep 過濾出 ssh 字串的行。
    [dywang@dywmac ~]$ ps aux | grep ssh
    root      2526  0.0  0.0  66488  2684 ?        Ss   06:42   0:00 /usr/sbin/sshd
    dywang    4358  0.0  0.0  60088  5764 pts/5    S+   06:50   0:00 ssh dyw219
    dywang    4469  0.0  0.0 110308  2280 pts/6    S+   06:57   0:00 grep --color ssh
    
  3. 命令 wc 可以計算行數、字數、字元數,cat 列出 /etc/man.config 內容,經由管線命令送到命令 wc 計算。
    [dywang@dywmac ~]$ cat /etc/man.config | wc
        152     765    4940
    
  4. cat 列出 /etc/passwd 帳號表,經由管線命令送到命令 grep 找到 bash,也就是登入使用 bash 的用戶。
    [dywang@dywmac ~]$ cat /etc/passwd | grep bash
    root:x:0:0:root:/root:/bin/bash
    dywang:x:500:500:De-Yu Wang:/home/dywang:/bin/bash
    linda:x:503:503::/home/linda:/bin/bash
    
  5. grep 找到登入使用 bash 的用戶,再一次管線命令用 sort 以冒號 ":" 分隔欄位,以第三個欄位排序。
    [dywang@dywmac ~]$ cat /etc/passwd | grep bash | sort -t: -k3
    root:x:0:0:root:/root:/bin/bash
    dywang:x:500:500:De-Yu Wang:/home/dywang:/bin/bash
    linda:x:503:503::/home/linda:/bin/bash
    
  6. sort 排序後再一次管線命令,使用 cut 命令以冒號 ":" 分隔欄位,取出第 1 及 3 兩個欄位。
    [dywang@dywmac ~]$ cat /etc/passwd | grep bash | sort -t: -k3 | cut -d: -f 1,3
    root:0
    dywang:500
    linda:503
    



De-Yu Wang 2019-08-12