初学者 Linux mkfifo 命令教程(附示例)初学者 Linux mkfifo 命令教程(附示例)初学者 Linux mkfifo 命令教程(附示例)初学者 Linux mkfifo 命令教程(附示例)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

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

在此页

  1. Linux mkfifo 命令
  2. Q1。什么是命名管道?
  3. Q2。如何识别命名管道?
  4. Q3。如何设置自定义访问权限?
  5. 结论

即使你是一个普通的 Linux 命令行用户,你也必须了解管道,这是一个允许进程进行通信的基本命令行功能。然后是命名管道的概念(是的,有名字的管道,这样你就可以用管道做更多的事情)。 mkfifo 命令允许您创建这样的命名管道。

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

Linux mkfifo 命令

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

mkfifo [OPTION]... NAME...

以下是工具手册页对其的解释:

Create named pipes (FIFOs) with the given NAMEs.

以下是一些 Q&A 风格的示例,应该可以让您对 mkfifo 的工作原理有一个很好的了解。

Q1。什么是命名管道?

要理解这一点,您应该首先了解基本管道的概念。您可能见过其中包含竖线 (|) 的命令。这个酒吧被称为管道。它所做的是,它在两个进程之间创建了一个通信通道(当执行完整的命令时)。

例如:

ls | grep .txt

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

所以这是对普通管道的快速复习。现在出现了命名管道的概念。顾名思义,这些是带有名称的管道。您可以使用 mkfifo 命令创建命名管道。例如:

mkfifo pipe2

所以 pipe2 现在是一个命名管道。现在问题来了,命名管道如何更有用?好吧,考虑一下您有一个进程在终端中运行并产生输出的情况,而您想要的是将该输出通道化到另一个终端。所以在这里,命名管道可以提供很大的帮助。

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

ls > pipe2

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

cat < pipe2

Q2。如何识别命名管道?

命名管道可以像文件一样被正常访问。所以这意味着您可以使用 ls 命令来访问它们。如果您看到命名管道的访问权限,您会在开头看到一个 p。这表示相关文件是命名管道。这是一个例子:

Q3.如何设置自定义访问权限?

正如您在之前的问答中看到的,命名管道的默认访问权限是 rw、rw 和 r(分别针对用户、组和其他人)。但是,如果需要,您也可以设置自定义权限,您可以使用 -m 选项来实现。

例如:

mkfifo pipe3 -m700

以下屏幕截图确认已设置自定义权限:

要了解有关 mkfifo 的更多信息,您可以使用 --help 和 --version 选项。

结论

因此,根据您在 Linux 命令行上执行的工作类型,mkfifo 命令可能对您非常有用。完成我们在这里讨论的基本用法后,您可以通过前往其手册页了解有关该工具的更多信息。

©2015-2025 艾丽卡 support@alaica.com