Linux mkfifo初学者命令教程(带示例)

如果你甚至是一个温和的Linux命令行用户,你必须知道管道,这是一个允许进程进行通信的基本命令行功能。 然后有一个命名管道的概念(是的,有名字的管道,所以你可以用管道做更多的事情)。 使用mkfifo命令可以创建这样的命名管道。

在本教程中,我们将使用一些易于理解的示例来讨论mkfifo的基础知识。 但在这之前,值得一提的是这里的所有例子都已经在Ubuntu 16.04 LTS上测试过了。
Linux mkfifo命令

mkfifo命令基本上可以让你创建FIFO(又名命名管道)。 以下是该命令的语法:

mkfifo [OPTION]… NAME…

下面是该工具的手册页如何解释它:

Create named pipes (FIFOs) with the given NAMEs.

以下是一些问答样式的例子,应该给你一个关于mkfifo如何工作的好主意。
Q1。 什么是命名管道?

要理解这一点,你应该首先意识到基本管道的概念。 你会看到包含竖线(|)的命令。 这个栏被称为管道。 它所做的是创建两个进程之间的通信通道(执行完整命令时)。

例如:

ls | grep .txt

上面提到的命令由两个程序组成: ls和grep 。 这两个程序都由管道(|)分开。 所以这里的管道是什么,它创建了这些程序之间的通信通道 - 当执行上述命令时,ls的输出将作为输入提供给grep。 最后,在终端上显示的输出只包含那些在其中包含’.txt’字符串的条目。

所以这是普通管道的快速复习。 现在有了命名管道的概念。 正如名字本身所暗示的那样,这些名字就是管道。 您可以使用mkfifo命令创建一个命名管道。 例如:

mkfifo pipe2

所以’pipe2’现在是一个命名管道。 现在问题是如何命名管道更有用? 那么,考虑一下在终端中运行进程并生成输出的情况,并且您想要的是将该输出信道化到不同的终端。 所以在这里,一个命名管道可以有很大的帮助。

例如,假设ls是在第一个终端中运行的进程,并且您希望在不同的终端中查看它的输出结果,那么您可以执行以下操作:

ls > pipe2

以下是您可以在第二个终端中执行的操作:

cat < pipe2

什么是命名管道
在这里插入图片描述 Q2。 如何识别命名管道?

命名管道可以像文件一样正常访问。 这意味着你可以使用ls命令来访问它们。 如果您看到命名管道的访问权限,您会在开始时看到“p”。 这表示相关文件是命名管道。 这是一个例子:
在这里插入图片描述 Q3。 如何设置自定义访问权限?

正如您在前面的问答中所看到的那样,命名管道的默认访问权限分别为’rw’,‘rw’和’r’(分别针对用户,组和其他人)。 但是,如果您愿意,也可以设置自定义权限,您可以使用-m选项执行某些操作。

例如:

mkfifo pipe3 -m700

以下屏幕截图确认设置了自定义权限:
在这里插入图片描述 结论

因此,根据您在Linux命令行上做什么样的工作,mkfifo命令可以证明对您非常有用。 一旦您完成了我们在此讨论的基本用法,您可以通过前往其手册页来了解有关该工具的更多信息。

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值