管道符
把一個命令生成數據直接傳給后邊的命令。
經常把一個命令無法處理完的命令使用管道符進行多次處理。
有些命令有標准輸出,有些沒有
- 管道符前面必須有標准輸出
- 管道符后面必須有標准輸入
CMD1 | CMD2 | ... 將CMD1的標准輸出作為CMD2的標准輸入
管道符只能傳遞標准輸出,錯誤、提示是不能傳遞的。
利用管道命令發郵件
[root@C8-1 ~]# echo "FBI Warning" | mail -s hellow 410109170@qq.com
利用管道把字反過來寫
[root@C8-1 ~]# echo "FBI Warning" | rev
gninraW IBF
利用管道把空格換行寫
[root@C8-1 ~]# echo "FBI Warning" | tr ' ' '\n'
FBI
Warning
將系統環境變量目錄顯示在單獨一行
[root@C8-1 ~]# echo $PATH | tr ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin
把對的變成錯的,將標准輸出變成標准錯誤 |&
CentOS6以后才支持 |&的寫法,等同於2>1&
[16:32:36 root@C8[ ~]#ls /data /err
ls: cannot access '/err': No such file or directory
/data:
log1..5.text
[16:33:35 root@C8[ ~]#ls /data /err |& tr 'a-z'
tr: missing operand after ‘a-z’
Two strings must be given when translating.
Try 'tr --help' for more information.