本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名原文链接~~~

Linux基础(9)之管道

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:


管道的使用

先看管道的使用格式:

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)
# Linux 基础  

如果这篇文章对您有帮助,可点击下方链接分享给你的朋友们😋,如果遇到问题欢迎评论、留言~~~😇

评论

公众号:zze_coding

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×