管道命名符的作用:把前一个命令原来要输入到屏幕的标准正常数据当做后一个命令的标准输入。
1. grep 命令中的使用
找出被限制登录用户的命令是 grep "/sbin/nologin" /etc/passwd;
统计文本行数的命令是 wc -l;
现在要做的就是把搜索命令的输出值传递给统计命令,即把原来输出到屏幕的用户信息列表再交给 wc 命令作进一步的加工,因此只需要把管道符放到两条命令之间即可。
[root@localhost ~]# grep "/sbin/nologin" /etc/passwd | wc -l
16
2. 搭配 more 命令中的使用
某些命令的输出经常会出现好多行,然后一股脑地显示到屏幕上,根本看不清楚。我们可以使用 more 翻页形式查看内容。
[root@localhost ~]# ls -l /etc | more
total 1084
-rw-r--r--. 1 root root 44 Jun 7 14:18 adjtime
-rw-r--r--. 1 root root 1518 Jun 7 2013 aliases
-rw-r--r--. 1 root root 12288 Nov 14 2017 aliases.db
drwxr-xr-x. 2 root root 236 Nov 14 2017 alternatives
-rw-------. 1 root root 541 Mar 31 2016 anacrontab
-rw-r--r--. 1 root root 55 Nov 5 2016 asound.conf
drwxr-x---. 3 root root 43 Nov 14 2017 audisp
drwxr-x---. 3 root root 83 Nov 14 2017 audit
drwxr-xr-x. 2 root root 22 Nov 14 2017 bash_completion.d
-rw-r--r--. 1 root root 2853 Nov 6 2016 bashrc
drwxr-xr-x. 2 root root 6 Nov 7 2016 binfmt.d
-rw-r--r--. 1 root root 38 Nov 30 2016 centos-release
-rw-r--r--. 1 root root 51 Nov 30 2016 centos-release-upstream
--More--
3. 搭配 passwd 命令重置密码
使用 passwd 命令修改用户密码时,通常都需要输入两次密码以进行确认,这在编写自动化脚本时将称为一个非常致命的缺陷。通过把管道符和 passwd 命令的 --stdin 参数结合,可以用一条命令来完成密码重置操作。
//直接使用passwd命令需要输入两次密码
[root@localhost /]# passwd
Changing password for user root.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
//使用passwd --stdin 命令需要输入一次密码
[root@localhost /]# passwd --stdin root
Changing password for user root.
1
passwd: all authentication tokens updated successfully.
//使用管道符连接echo与passwd命令不需要输入密码
[root@localhost /]# echo "1" | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.