管道的使用
先看管道的使用格式:
COMMAND1 | COMMAND2
该示例的含义就是将 COMMAND1
命令的输出给 COMMAND2
命令当作输入,比如:
[root@localhost ~]# ls | tr a-z A-Z
ANACONDA-KS.CFG
即将 ls
命令的输出流信息当作 tr
命令的输入。
管道的作用就是让管道符前的命令的执行结果当作管道符后面命令的输入流,所以管道也支持 2 个以上的命令组合使用,格式如下:
COMMAND1 | COMMAND2 | COMMAND3 | ...
最后一个命令会在当前 shell 进程的子进程中执行。
命令补充
tee
tee
命令可以从标准输入读数据,同时输出到标准输出流和文件,例:
[root@localhost ~]# tee /tmp/hello.out
hello
hello
how are you?
how are you?
^C
[root@localhost ~]# cat /tmp/hello.out
hello
how are you?
练习
1、将 $PATH
环境变量的内容转大写并通过标准输出流输出到终端的同时保存到指定文件。
[root@localhost ~]# echo "$PATH" | tr a-z A-Z | tee /tmp/path.out
/USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
[root@localhost ~]# cat /tmp/path.out
/USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
2、将 /etc/passwd
文件中的前 5 行内容转换为大写后保存至 /tmp/passwd.out
文件。
[root@localhost ~]# head -n 5 /etc/passwd | tr a-z A-Z > /tmp/passwd.out
[root@localhost ~]# cat /tmp/passwd.out
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
3、将登录至当前系统上的用户信息中的后 2 位的信息转换为大写保存至 /tmp/who.out
文件。
[root@localhost ~]# who | tail -n 2 | tr a-z A-Z | tee /tmp/who.out
ROOT TTY1 2019-09-08 10:21
ROOT PTS/0 2019-09-09 12:16 (192.168.148.1)
评论区