介绍 Linux 中的管道和命名管道 | Linux 中国

2018 年 9 月 9 日 Linux中国
要在命令间移动数据?使用管道可使此过程便捷。
-- Archit Modi

致谢
编译自 | 
https://opensource.com/article/18/8/introduction-pipes-linux
 
 作者 | Archit Modi
 译者 | geekpi 💎💎💎共计翻译:798 篇 贡献时间:1778 天

要在命令间移动数据?使用管道可使此过程便捷。

在 Linux 中,pipe 能让你将一个命令的输出发送给另一个命令。管道,如它的名称那样,能重定向一个进程的标准输出、输入和错误到另一个进程,以便于进一步处理。

“管道”(或称“未命名管道”)命令的语法是在两个命令之间加上 | 字符:

   
   
     
  1. Command-1 | Command-2 | ...| Command-N

这里,该管道不能通过另一个会话访问;它被临时创建用于接收 Command-1 的执行并重定向标准输出。它在成功执行之后删除。

在上面的示例中,contents.txt 包含特定目录中所有文件的列表 —— 具体来说,就是 ls -al 命令的输出。我们首先通过管道(如图所示)使用 “file” 关键字从 contents.txt 中 grep 文件名,因此 cat 命令的输出作为 grep 命令的输入提供。接下来,我们添加管道来执行 awk 命令,该命令显示 grep 命令的过滤输出中的第 9 列。我们还可以使用 wc -l 命令计算 contents.txt 中的行数。

只要系统启动并运行或直到它被删除,命名管道就可以持续使用。它是一个遵循 FIFO[1](先进先出)机制的特殊文件。它可以像普通文件一样使用。也就是,你可以写入,从中读取,然后打开或关闭它。要创建命名管道,命令为:

   
   
     
  1. mkfifo <pipe-name>

这将创建一个命名管道文件,它甚至可以在多个 shell 会话中使用。

创建 FIFO 命名管道的另一种方法是使用此命令:

   
   
     
  1. mknod p <pipe-name>

要重定向任何命令的标准输出到其它命令,请使用 > 符号。要重定向任何命令的标准输入,请使用 < 符号。

如上所示,ls -al 命令的输出被重定向到 contents.txt 并插入到文件中。类似地,tail 命令的输入通过 < 符号从 contents.txt 读取。

这里,我们创建了一个命名管道 my-named-pipe,并将 ls -al 命令的输出重定向到命名管道。我们可以打开一个新的 shell 会话并 cat 命名管道的内容,如前所述,它显示了 ls -al 命令的输出。请注意,命名管道的大小为零,并有一个标志 “p”。

因此,下次你在 Linux 终端上使用命令并在命令之间移动数据时,希望管道使这个过程快速简便。


via: https://opensource.com/article/18/8/introduction-pipes-linux

作者:Archit Modi[3] 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
85+阅读 · 2020年6月28日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
257+阅读 · 2020年6月10日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
Arxiv
34+阅读 · 2019年11月7日
Arxiv
53+阅读 · 2018年12月11日
Arxiv
3+阅读 · 2018年11月29日
Arxiv
135+阅读 · 2018年10月8日
Arxiv
12+阅读 · 2018年9月5日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
85+阅读 · 2020年6月28日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
257+阅读 · 2020年6月10日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
相关资讯
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
相关论文
Arxiv
34+阅读 · 2019年11月7日
Arxiv
53+阅读 · 2018年12月11日
Arxiv
3+阅读 · 2018年11月29日
Arxiv
135+阅读 · 2018年10月8日
Arxiv
12+阅读 · 2018年9月5日
Top
微信扫码咨询专知VIP会员