如果你甚至是乙個溫和的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
什麼是命名管道
命名管道可以像檔案一樣正常訪問。 這意味著你可以使用ls命令來訪問它們。 如果您看到命名管道的訪問許可權,您會在開始時看到「p」。 這表示相關檔案是命名管道。 這是乙個例子:
正如您在前面的問答中所看到的那樣,命名管道的預設訪問許可權分別為』rw』,『rw』和』r』(分別針對使用者,組和其他人)。 但是,如果您願意,也可以設定自定義許可權,您可以使用-m選項執行某些操作。
例如:mkfifo pipe3 -m700
以下螢幕截圖確認設定了自定義許可權:
因此,根據您在linux命令列上做什麼樣的工作,mkfifo命令可以證明對您非常有用。 一旦您完成了我們在此討論的基本用法,您可以通過前往其手冊頁來了解有關該工具的更多資訊。
初學者談初學者學html
這是乙個段落。解釋一下就是 html 與 html 之間的文字是描述網頁。head 與 head 之間的文字是文件的元資料。title 與 之間的文字是文件的標題。body 與 body 之間的文字是可見的頁面內容,是文章的主體部分。h1 與 h1 之間的文字被顯示為乙個大標題。p 與 p 之間的文...
初學者mysql MySQL初學者使用指南
有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連線mysql 修改密碼 增加使用者等方面來學習一些mysql的常用命令。一 連線mysql。1 例1 連線到本機上的mysql。首先在開啟dos視窗,然後進入目錄 mysqlbin,再鍵入命令mysql uroot p,回車後...
初學者 遞迴
program xuexi3 implicit none integer,external fact 呼叫函式需要寫external 待定 integer n write n read n write fact n stop endrecursive integer function fact n ...