0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux中的管道和命名管道介紹

Linux愛好者 ? 來源:未知 ? 作者:工程師曾玲 ? 2018-09-23 10:33 ? 次閱讀

Linux 中,pipe能讓你將一個命令的輸出發(fā)送給另一個命令。管道,如它的名稱那樣,能重定向一個進程的標準輸出、輸入和錯誤到另一個進程,以便于進一步處理。

“管道”(或稱“未命名管道”)命令的語法是在兩個命令之間加上|字符:

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

這里,該管道不能通過另一個會話訪問;它被臨時創(chuàng)建用于接收Command-1的執(zhí)行并重定向標準輸出。它在成功執(zhí)行之后刪除。

Linux中的管道和命名管道介紹

在上面的示例中,contents.txt包含特定目錄中所有文件的列表 —— 具體來說,就是ls -al命令的輸出。我們首先通過管道(如圖所示)使用 “file” 關(guān)鍵字從contents.txt中g(shù)rep文件名,因此cat命令的輸出作為grep命令的輸入提供。接下來,我們添加管道來執(zhí)行awk命令,該命令顯示grep命令的過濾輸出中的第 9 列。我們還可以使用wc -l命令計算contents.txt中的行數(shù)。

只要系統(tǒng)啟動并運行或直到它被刪除,命名管道就可以持續(xù)使用。它是一個遵循FIFO(先進先出)機制的特殊文件。它可以像普通文件一樣使用。也就是,你可以寫入,從中讀取,然后打開或關(guān)閉它。要創(chuàng)建命名管道,命令為:

mkfifo

這將創(chuàng)建一個命名管道文件,它甚至可以在多個 shell 會話中使用。

創(chuàng)建 FIFO 命名管道的另一種方法是使用此命令:

mknod p

要重定向任何命令的標準輸出到其它命令,請使用>符號。要重定向任何命令的標準輸入,請使用

Linux中的管道和命名管道介紹

如上所示,ls -al命令的輸出被重定向到contents.txt并插入到文件中。類似地,tail命令的輸入通過

Linux中的管道和命名管道介紹

Linux中的管道和命名管道介紹

這里,我們創(chuàng)建了一個命名管道m(xù)y-named-pipe,并將ls -al命令的輸出重定向到命名管道。我們可以打開一個新的 shell 會話并cat命名管道的內(nèi)容,如前所述,它顯示了ls -al命令的輸出。請注意,命名管道的大小為零,并有一個標志 “p”。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208460
  • 管道
    +關(guān)注

    關(guān)注

    3

    文章

    145

    瀏覽量

    17906

原文標題:介紹 Linux 中的管道和命名管道

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux匿名管道命名管道的區(qū)別

    管道是 UNIX系統(tǒng) IPC的最古老的形式,所有的UNIX系統(tǒng)都提供此種通信。所謂的管道,也就是內(nèi)核里面的一串緩存,從管道的一段寫入的數(shù)據(jù),實際上是緩存在內(nèi)核的,令一端讀取,也就是從
    發(fā)表于 10-12 12:50 ?956次閱讀

    Linux下進程間通信方式-管道

    連接到另一個程序的輸入。Linux管道主要包括兩種:無名管道和有名管道。 1.無名管道 無名管道
    發(fā)表于 08-29 15:29

    標準流管道

    華清遠見嵌入式linux學(xué)習(xí)資料《標準流管道》,1.標準流管道函數(shù)說明 。與Linux的文件操作中有基于文件流的標準I/O操作一樣,管道的操
    發(fā)表于 09-09 14:13

    無名管道系統(tǒng)調(diào)用

    `華清遠見嵌入式linux學(xué)習(xí)資料《無名管道系統(tǒng)調(diào)用》, 1.管道創(chuàng)建與關(guān)閉說明。管道是基于文件描述符的通信方式,當一個管道建立時它會創(chuàng)建兩
    發(fā)表于 09-09 14:17

    命名管道FIFO讀寫規(guī)則

    Linux命名管道FIFO的讀寫規(guī)則《Linux程序設(shè)計(第3版)》對于Linux命名
    發(fā)表于 09-24 10:49

    linux系統(tǒng)管道介紹和線程同步代碼示例

    傳統(tǒng)的進程間通信其中有無名管道(PIPE)、有名管道(FIFO)和信號(Signal)。咱們今天就說說linux基于POSIX的有名管道(
    發(fā)表于 10-06 09:55

    CAD軟件怎么識別出戶管道

    在繪制給排水CAD圖紙的過程中經(jīng)常要設(shè)置出戶管道,那么浩辰CAD給排水軟件如何識別出戶管道呢?接下來的CAD制圖教程就讓小編來給大家介紹一下國產(chǎn)CAD軟件——浩辰CAD給排水軟件
    發(fā)表于 05-18 10:15

    管道元件介紹

    各種管道元件介紹 圖文解說
    發(fā)表于 08-16 17:09 ?0次下載

    進程間通信之:管道

    8.2.1 管道概述 本書在第2章中介紹ps的命令時提到過管道,當時指出了管道Linux中一種很重要的通信方式,它是把一個程序的輸出直接連
    發(fā)表于 10-18 16:06 ?0次下載
    進程間通信之:<b class='flag-5'>管道</b>

    Linux系統(tǒng)管道和有名管道的通信機制解析

    Linux 進程間通信的幾種主要手段。其中管道和有名管道是最早的進程間通信機制之一,管道可用于具有親緣關(guān)系進程間的通信,有名管道克服了
    發(fā)表于 11-07 10:51 ?0次下載

    Linux 多線程同步-命名管道

    命名管道(FIFO)既可用于進程間通信,也可用于線程間通信;  FIFO是一種文件類型,一般文件I/O函數(shù)(close,read,write,unlink等)都適用于FIFO  一
    發(fā)表于 04-02 14:49 ?362次閱讀

    Linux進程間通信方式——管道

    管道Linux中進程間通信的一種方式,它把一個程序的輸出直接連接到另一個程序的輸入。Linux管道主要包括兩種:無名管道和有名
    發(fā)表于 06-01 09:13 ?1352次閱讀
    <b class='flag-5'>Linux</b>進程間通信方式——<b class='flag-5'>管道</b>

    Linux進程間通信方法之管道

    上文中我們介紹了進程間通信的方法之一:信號,本文將繼續(xù)介紹另一種進程間通信的方法,即管道。管道Linux中使用shell經(jīng)常用到的一個技術(shù)
    的頭像 發(fā)表于 05-14 15:47 ?1884次閱讀
    <b class='flag-5'>Linux</b>進程間通信方法之<b class='flag-5'>管道</b>

    闡述匿名管道命名管道

    內(nèi)核讀取這段數(shù)據(jù)。對于管道傳輸?shù)臄?shù)據(jù)是無格式的流且大小受限。對于管道來說,也分為匿名管道命名管道
    的頭像 發(fā)表于 01-20 17:17 ?1125次閱讀
    闡述匿名<b class='flag-5'>管道</b>和<b class='flag-5'>命名</b><b class='flag-5'>管道</b>

    linux管道概述

    一、進程間通信(IPC)介紹 進程間通信(IPC,InterProcess Communication)是指在不同進程之間傳播或交換信息。 IPC的方式通常有管道(包括無名管道命名
    的頭像 發(fā)表于 02-18 14:51 ?441次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>管道</b>概述