簡(jiǎn)單來說就是,一個(gè)命令的結(jié)果作為另外一個(gè)命令(結(jié)果)的輸入,管道是linux提供的一種常見的進(jìn)程通信工具,也是很多shell命令能夠靈活組合產(chǎn)生強(qiáng)大用途的一個(gè)重要工具。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蘭陵免費(fèi)建站歡迎大家使用!
管道是Linux由Unix那里繼承過來的進(jìn)程間的通信機(jī)制,它是Unix早期的一個(gè)重要通信機(jī)制。其思想是,在內(nèi)存中創(chuàng)建一個(gè)共享文件,從而使通信雙方利用這個(gè)共享文件來傳遞信息。由于這種方式具有單向傳遞數(shù)據(jù)的特點(diǎn),所以這個(gè)作為傳遞消息的共享文件就叫做“管道”。
在管道的具體實(shí)現(xiàn)中,根據(jù)通信所使用的的文件是否具有名稱,有“匿名管道”和“命名管道”。
linux中管道符的使用非常普遍
管道符的用法是將第一個(gè)命令的結(jié)果傳遞給第二個(gè)命令作為輸入
管道符的使用有兩個(gè)條件:
格式: 命令1 | 命令2
常見應(yīng)用舉例:netstat -an | grep ESTABLISHED | wc -l #查看服務(wù)器上連接了多少客戶端
wc -l 是查看輸入了多少行
這個(gè)符號(hào)叫做管道符號(hào)。
管道命令符的作用能用一句話來概括:“把前一個(gè)命令原本要輸出到屏幕的數(shù)據(jù)當(dāng)作是后一個(gè)命令的標(biāo)準(zhǔn)輸入”。
輸入方法是同時(shí)按下鍵盤的“Shift”與“\”鍵,執(zhí)行格式為“命令A(yù) | 命令B”。
如:history | grep date指從history這條命令運(yùn)行的結(jié)果中顯示包含有 “date” 的命令。
管道:一個(gè)命令的輸出可以通過管道做為另一個(gè)命令的輸入。
管道我們可以理解現(xiàn)實(shí)生活中的管子,管子的一頭塞東西進(jìn)去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
命令如下:ls -lah | more
如果接觸到C語(yǔ)言的話,可以用C語(yǔ)言制作一條管道,可以把一個(gè)程序和另外一個(gè)程序連接在一起。
tab:文本分隔符,相當(dāng)于四個(gè)空格,在命令行界面可以用來自動(dòng)補(bǔ)齊命令與目錄。
ESC:esc+. ,上一條命令的選項(xiàng)參數(shù),vim恢復(fù)到命令模式。
~:家目錄
`:反引號(hào),編程中調(diào)用shell命令
!:調(diào)用前面的命令,!!調(diào)用上一條,!23調(diào)用前面低23條。
@:at符,后面接IP地址。
#:Linux文件中注釋行,表示不起作用。
$:文件行結(jié)尾標(biāo)識(shí)符,變量標(biāo)識(shí)符。
%:格式化文本。
^:文件行首標(biāo)識(shí)符
:任務(wù)放到后臺(tái)
*:通配符,代表一個(gè)字符或者很多個(gè)字符。
\:用來轉(zhuǎn)義,\t表示制表符,\n表示換行符。
:數(shù)據(jù)流的流入方向,表示輸入,將數(shù)據(jù)傳入給左側(cè)軟件。
|:管道,改變數(shù)據(jù)流的方向,將數(shù)據(jù)傳入給另外的軟件。
:數(shù)據(jù)流的流出方向,表示輸出,將屏幕輸出的內(nèi)容寫入一個(gè)文件。
2:數(shù)據(jù)流的流出的第二個(gè)方向,表示錯(cuò)誤輸出,報(bào)錯(cuò)信息會(huì)寫入到這個(gè)文件中。
:表示追加寫入
/:根目錄,目錄分隔符
‘’:雙引號(hào),支持轉(zhuǎn)義
‘:?jiǎn)我?hào),不支持轉(zhuǎn)義
():shell編程中使用,命令行用的不多
[]:索引
{}:代碼塊
::vim或者less命令中,表示可以輸入命令
;:分割不同命令
-:短選項(xiàng)標(biāo)識(shí)符-h
--:長(zhǎng)選項(xiàng)標(biāo)識(shí)符--help