Linux 管道命令系列 一 熟悉PIPE

什么是管道命令,但就名称来看应该分为 管道命令

管道
先来看管道,我是这样理解管道的。管道就是在两个命令之间建立连接,也就是前一个的命令的标准输出结果是后一个命令的标准输入。这个过程就是通过管道来实现的。
管道命令流程示意图
管道命令执行流程
管道使用的是‘|’这个符号。这里需要注意的是,管道处理的是前一个命令的标准输出(standard output)。对于前一个命令的标准错误输出(standard error output)会忽略。也就是说对于前一个命令执行正确的输出信息会作为后一个命令的输入,如果前一个命令执行错误,其打印的错误信息并不会作为后一个命令的输入。这就是管道的作用,看下面的例子:

$ ls –a /etc | grep ^s

这个例子的作用就是查看/etc下面的文件名以s开头的文件。前面查找/etc下的文件的结果通过管道作为grep 命令的标准输入。

命令
说完管道,下面我们来看命令。这里说的命令主要是针对管道(|)后面接的命令。在上面我们说过管道的作用是将前一个命令的标准输出作为后一个命令的标准输入(stdin),因此要求后一个命令是要能从标准输入设备读取数据的。所以说并不是linux系统支持的所有的命令都可以作为管道命令来使用。

像linux应用——查找文件进行拷贝【案例】这篇文章中介绍的案例我们就不能在管道后面直接使用cp命令。如下的命令是错误的:

$ find /a –name login* | cp –t /b  //错误

因为cp不是管道命令,它不能接受来自标准输入(stdin)的数据。

能接受来自标准输入的数据的命令有下面这些:

首先我们先总体看一下linux下都有哪些管道命令

Linux下所有的管道命令

Linux 下管道命令
选取命令: cutgrep
排序统计命令: sortuniqwc
双向重导向:tee
字符转换命令: tr、col、join、paste、expand
分割命令: split
参数代换: xargs
上面这些命令是管道命令,可以接受来自标准输入的数据。对于这些命令在本篇不展开介绍。我会在后续的文章中分别介绍这些命令的用法。

总结
下面对管道命令进行一下总结:

1、管道命令仅会处理 standard output,对于 standard error output 会予以忽略

2、管道命令必须要能够接受来自前一个命令的数据成为 standard input 继续处理才行。

更多关于管道命令,查看 《Linux 管道命令系列》

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迹忆客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值