RM新时代网站-首页

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

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

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

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

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

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

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

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

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

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

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

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

mkfifo

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

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

mknod p

要重定向任何命令的標(biāo)準(zhǔn)輸出到其它命令,請(qǐng)使用>符號(hào)。要重定向任何命令的標(biāo)準(zhǔn)輸入,請(qǐng)使用

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

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

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

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

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

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

    關(guān)注

    87

    文章

    11292

    瀏覽量

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

    關(guān)注

    3

    文章

    145

    瀏覽量

    17961

原文標(biāo)題:介紹 Linux 中的管道和命名管道

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    Linux下進(jìn)程間通信方式-管道

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

    標(biāo)準(zhǔn)流管道

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

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

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

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

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

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

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

    CAD軟件怎么識(shí)別出戶管道

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

    管道元件介紹

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

    進(jìn)程間通信之:管道

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

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

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

    Linux 多線程同步-命名管道

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

    Linux進(jìn)程間通信方式——管道

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

    Linux進(jìn)程間通信方法之管道

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

    闡述匿名管道命名管道

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

    linux管道概述

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