Linux每天學習一個命令之管道命令(pipe)
阿新 • • 發佈:2019-02-19
之前學習命令的時候使用了管道命令,只知道如何使用,不是十分清楚其使用規則,決定學習總結一下管道的使用
什麼是管道:管道就是用 | 連線兩個命令,以前面一個命令的標準輸出作為後面命令的標準輸入,與連續執行命令是有區別的,值得注意的管道對於前一條命令的標準錯誤輸出沒事有處理能力的
下面來看些例子:
下面來看些例子:
[root@localhost ~]# find -name anaconda-ks.cfg | ls -al
總用量44
dr-xr-x---.7 root root 40964月2808:07.
dr-xr-xr-x.17 root root 40964月322:45..
-rw-------.1 root root 16564月322:45 anaconda-ks.cfg
-rw-------.1 root root 3484月2808:31.bash_history
-rw-r--r--.1 root root 1812月292013.bash_logout
-rw-r--r--.1 root root 17612月292013.bash_profile
-rw-r--r--.1 root root 17612月292013.bashrc
drwx------.4 root root 294月2619:09.cache
drwxr-xr-x.3 root root 174月2619:09.config
-rw-r--r--.1 root root 10012月292013.cshrc
drwx------.3 root root 244月322:48.dbus
-rw-r--r--.1 root root 17044月322:49 initial-setup-ks.cfg
drwxr-xr-x.2 root root 64月2619:09 perl5
drwxr-xr-x.3 root root 614月322:52.subversion
-rw-r--r--.1 root root 12912月292013.tcshrc
-rw-------.1 root root 664月2619: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命令不能接收標準輸入的資料。把管道的用法總結兩條規則如下:
管道命令僅會處理標準輸出的資料,而對於標準錯誤輸出則會忽略
管道後名所接的命令必須能夠接受標準輸入的資料才行