管道命令符的作用也可以用一句话来概括:把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入
。
使用grep文本
搜索命令时,我们通过匹配关键词/sbin/nologin
在/etc/passwd
中 找出了所有被限制登录系统的用户。完全可以把下面这两条命令合并为一条:
1.找出被限制登录用户的命令是grep "/sbin/nologin" /etc/passwd
;
2.统计文本行数的命令则是wc -l
。
现在要做的就是把搜索命令的输出值传递给统计命令,即把原本要输出到屏幕的用户信息列表再交给wc 命令
作进一步的加工,因此只需要把管道符放到两条命令之间即可,具体如下。这简直是太方便了!
[root@lynchj tmp]# grep "/sbin/nologin" /etc/passwd | wc -l
33
这个管道符就像一个法宝,我们可以将它套用到其他不同的命令上,比如用翻页的形式查看/etc 目录
中的文件列表及属性信息(这些内容默认会一股脑儿地显示到屏幕上,根本看不清楚):
[root@lynchj tmp]# ll /etc/ | more
total 1396
drwxr-xr-x. 3 root root 97 May 12 23:40 abrt
-rw-r--r--. 1 root root 16 May 12 23:45 adjtime
-rw-r--r--. 1 root root 1518 Jun 7 2013 aliases
-rw-r--r--. 1 root root 12288 May 12 15:48 aliases.db
drwxr-xr-x. 2 root root 49 May 12 23:39 alsa
drwxr-xr-x. 2 root root 4096 May 12 23:42 alternatives
-rw-------. 1 root root 541 Jan 28 2014 anacrontab
-rw-r--r--. 1 root root 55 Jan 29 2014 asound.conf
-rw-r--r--. 1 root root 1 Jan 29 2014 at.deny
drwxr-xr-x. 2 root root 31 May 12 23:40 at-spi2
drwxr-x---. 3 root root 41 May 12 23:39 audisp
drwxr-x---. 3 root root 79 May 12 23:47 audit
drwxr-xr-x. 4 root root 94 May 12 23:39 avahi
--More--
在修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将成为一个非常致命的缺陷。通过把管道符和passwd 命令
的--stdin 参数
相结合,我们可以用一条命令来完成密码重置操作:
[root@lynchj tmp]# echo "wode password" | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.
当然,大家千万不要误以为管道命令符只能在一个命令组合中使用一次,我们完全可以这样使用:
命令A | 命令B | 命令C
。
文章评论