linux管道


管道(pipe)

回到顶部
管道(pipe)命令是使用管道线符号|分割的命令。一条命令的输入可能来自标准输入或者文件,也可以来自另一条命令的输入。 同理,一条命令的输出可以输出到标准(错误)输出或者文件,也可以输出到另一条命令。管道就是将命令的标准输入重定向到另一条命令的标准输出, 命令的标准输出重定向到另一条命令的标准输入。这里要注意管道并不处理标准错误输出。管道线符号和重定向符号都属于数据重定向符号。
到目前为止,可以连接两条命令的符号有:
1.管道线;
2.重定向;
3.连续执行命令分号;
4.&&和||;
注意管掉线|和其他几个符号的区别。
我们先举一个简单的管道线命令,在用ls命令查看/etc目录下的文件的时候,由于/etc目录下的文件过多,超过了一屏, 导致前面的内容来不及看到。这时我们就可以将ls的输出通过管道线重定向到less命令,再由less命令输出到屏幕:
[peter@study ~]$ ls -al /etc | less
这样ls命令的输出就被less命令读取,利用less的功能,就可以前后翻页查看相关的信息了! 管道命令|仅能处理命令的标准输入standard input和标准输出standard output, 对于standard error并没有直接处理的能力。管道命令示意如下图所示:
linux管道命令示意图 图 管道命令的处理示意图
通常重定向符号后面接的是文件,而管道后面接的必须是命令,而且这个命令必须能够接受standard input, 这样的命令才可以称为管道命令,例如less, more, head, tail等都是可以接受standard input的管道命令。 至于ls, cp, mv等就不是管道命令了!因为ls, cp, mv并不会接受来自stdin的数据。 综上所述,管道命令主要有两个需要注意的地方:
管道命令仅处理standard output,对于standard error output会予以忽略;
管道命令必须要能够接受来自前一个命令的数据成为standard input继续处理才行。
其实我们也可以将标准错误输出通过管道命令输入给管道命令, 只不过需要先将标准错误输出用重定向符号重定向到标准输出,即在管道线之前加入2>&1
下面介绍一些常用的管道命令。

常见的管道命令

回到顶部
常用管道命令
1.linux cut命令
2.linux grep命令
3.linux tee命令
4.linux wc命令
5.linux join命令
6.linux col命令
7.linux expand命令
8.linux paste命令
9.linux sort命令
10.linux split命令
11.linux tr命令
12.linux uniq命令
13.linux xargs命令

本文由initroot编辑整理,转载请注明www.initroot.com

100次点赞 100次阅读