linux 命名管道_Linux中管道和命名管道简介

linux 命名管道

在Linux中,使用pipe命令可以将一个命令的输出发送到另一个命令。 顾名思义,管道可以将一个过程的标准输出,输入或错误重定向到另一个过程,以进行进一步处理。

pipe或未unnamed pipe命令的语法是| 任何两个命令之间的字符:

Command-1 | Command-2 | …| Command-N

在这里,无法通过另一个会话访问管道; 它是临时创建的,以适应Command-1的执行并重定向标准输出。 成功执行后将其删除。

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

命名管道可以一直持续到系统启动并运行或被删除为止。 这是遵循FIFO先进先出 )机制的特殊文件。 可以像普通文件一样使用它。 即,您可以对其进行写入,读取并打开或关闭它。 要创建命名管道,命令为:

mkfifo <pipe-name>

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

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

mknod p <pipe-name>

要将任何命令的标准输出重定向到另一个进程,请使用>符号。 要重定向任何命令的标准输入,请使用<符号。

Pipes - redirecting output

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

creating my-named-pipe.png
verify output ls al command .png

在这里,我们创建了一个命名管道my-named-pipe ,并将ls -al命令的输出重定向到该命名管道中。 我们可以打开一个新的shell会话和cat的命名管道,这显示了输出的内容ls -al命令,如前面提供。 请注意,命名管道的大小为零,并且其名称为“ p”。

因此,下一次您在Linux终端上使用命令并发现自己在命令之间移动数据时,希望通过管道可以使该过程更加快捷和容易。

翻译自: https://opensource.com/article/18/8/introduction-pipes-linux

linux 命名管道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值