管道符
把一个命令生成数据直接传给后边的命令。
经常把一个命令无法处理完的命令使用管道符进行多次处理。
有些命令有标准输出,有些没有
- 管道符前面必须有标准输出
- 管道符后面必须有标准输入
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 ' ' '
'
FBI
Warning
将系统环境变量目录显示在单独一行
[root@C8-1 ~]# echo $PATH | tr ':' '
'
/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.