您的位置:首页 > 运维架构 > Linux

Linux每天学习一个命令之管道命令(pipe)

2016-04-28 08:59 501 查看
之前学习命令的时候使用了管道命令,只知道如何使用,不是十分清楚其使用规则,决定学习总结一下管道的使用

什么是管道:管道就是用 | 连接两个命令,以前面一个命令的标准输出作为后面命令的标准输入,与连续执行命令是有区别的,值得注意的管道对于前一条命令的标准错误输出没事有处理能力的



下面来看些例子:

[root@localhost ~]# find -name anaconda-ks.cfg | ls -al
总用量 44
dr-xr-x---.  7 root root 4096 4月  28 08:07 .
dr-xr-xr-x. 17 root root 4096 4月   3 22:45 ..
-rw-------.  1 root root 1656 4月   3 22:45 anaconda-ks.cfg
-rw-------.  1 root root  348 4月  28 08:31 .bash_history
-rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout
-rw-r--r--.  1 root root  176 12月 29 2013 .bash_profile
-rw-r--r--.  1 root root  176 12月 29 2013 .bashrc
drwx------.  4 root root   29 4月  26 19:09 .cache
drwxr-xr-x.  3 root root   17 4月  26 19:09 .config
-rw-r--r--.  1 root root  100 12月 29 2013 .cshrc
drwx------.  3 root root   24 4月   3 22:48 .dbus
-rw-r--r--.  1 root root 1704 4月   3 22:49 initial-setup-ks.cfg
drwxr-xr-x.  2 root root    6 4月  26 19:09 perl5
drwxr-xr-x.  3 root root   61 4月   3 22:52 .subversion
-rw-r--r--.  1 root root  129 12月 29 2013 .tcshrc
-rw-------.  1 root root   66 4月  26 19:09 .xauthLT2NdF


[root@localhost ~]# cat anaconda-ks.cfg  | less
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
 
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
 
# Network information
network  --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto
network  --hostname=localhost.localdomain
# Root password
rootpw --iscrypted $6$IuiLG5eDPq.dOrjL$mzQSQVgGMuN8xXQFlp4dhgGdRca767dDviMhNkY6TGYkza.O7LPE1I0D5XrjzcGp3trNfruSih3jvmQ/qQTfA0
# System timezone


从上面的两个命令结果可以看出,ls命令没有把前面命令的标准输出作为自己的标准输入,而是直接执行ls命令;而less命令把前面命令的标准输出作为自己的标准输入。这是因为每个管道后面接的命令

必须能够接收标准输入的数据,而ls,cp,mv命令不能接收标准输入的数据。把管道的用法总结两条规则如下:

管道命令仅会处理标准输出的数据,而对于标准错误输出则会忽略

管道后名所接的命令必须能够接受标准输入的数据才行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux