侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

Linux基础(9)之管道

zze
zze
2019-09-27 / 0 评论 / 0 点赞 / 533 阅读 / 1779 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

管道的使用

先看管道的使用格式:

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)
0

评论区