題主你好,
創(chuàng)新互聯(lián)建站主要從事做網(wǎng)站、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)榮縣,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
首先,?linux下的管道符使用"豎杠"表示:
|
它的作用是:
連接兩個(gè)命令,將第一個(gè)命令的輸出作為第二個(gè)命令的輸入.
形象一點(diǎn)的比喻:
管道符好比流水線上的傳送帶,比如,一個(gè)流水線是由兩步組成的,先由第一道工序?qū)ⅫS桃洗凈,然后通過(guò)傳送帶將洗凈的黃桃送到第二道工序裝罐,用管道的思維去處理這個(gè)過(guò)程就是:
清洗?黃桃?|?裝罐
需要注意的是,其實(shí)每個(gè)過(guò)程都是由?"動(dòng)作+被作用對(duì)象"組成,也就是說(shuō),上面的例子其實(shí)是:
清洗?黃桃
裝罐?洗凈的黃桃
這兩步組成的,但由于管道符的使用,除了第一道工序需要"被作用對(duì)象"外,后面的工序使用的是管道符傳過(guò)來(lái)的"前一道工序處理過(guò)的對(duì)象".
舉例來(lái)說(shuō),使用ls和grep這兩個(gè)命令實(shí)現(xiàn)只輸出文件的詳細(xì)信息,不輸出目錄的詳細(xì)信息.正常情況下這倆半個(gè)命令的用法是:
ls?選項(xiàng)?路徑
grep?模式?文件流
而使用管道連在一起的寫法:
ls?-l?/root/ok/tmp?|?grep '^-'
*.在使用管道符的組合命令中,?只有第一個(gè)命令需要?"被作用對(duì)象"
希望對(duì)題主有幫助,歡迎追問(wèn)
linux中管道符的使用非常普遍
管道符的用法是將第一個(gè)命令的結(jié)果傳遞給第二個(gè)命令作為輸入
管道符的使用有兩個(gè)條件:
格式: 命令1 | 命令2
常見(jiàn)應(yīng)用舉例:netstat -an | grep ESTABLISHED | wc -l #查看服務(wù)器上連接了多少客戶端
wc -l 是查看輸入了多少行
利用Linux所提供的管道符“|”將兩個(gè)命令隔開(kāi),管道符左邊命令的輸出就會(huì)作為管道符右邊命令的輸入。 連續(xù)使用管道意味著第一個(gè)命令的輸出會(huì)作為 第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,依此類推。下面來(lái)看看管道是如何在構(gòu)造一條Linux命令中得到應(yīng)用的。
注意:
1、管道命令只處理前一個(gè)命令正確輸出,不處理錯(cuò)誤輸出。
2、管道命令右邊命令,必須能夠接收標(biāo)準(zhǔn)輸入流命令才行。
這條命令使用一個(gè)管道符“|”建立了一個(gè)管道。管道將rpm -qa命令的輸出(包括系統(tǒng)中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有l(wèi)icq字符的RPM包來(lái)。
這條命令使用了兩個(gè)管道,利用第一個(gè)管道將cat命令(顯示passwd文件的內(nèi)容)的輸出送給grep命令,grep命令找出含有“/bin /bash”的所有行;第二個(gè)管道將grep的輸出送給wc命令,wc命令統(tǒng)計(jì)出輸入中的行數(shù)。這個(gè)命令的功能在于找出系統(tǒng)中有多少個(gè)用戶使用bash。
區(qū)別是:
1、左邊的命令應(yīng)該有標(biāo)準(zhǔn)輸出 | 右邊的命令應(yīng)該接受標(biāo)準(zhǔn)輸入
左邊的命令應(yīng)該有標(biāo)準(zhǔn)輸出 右邊只能是文件
左邊的命令應(yīng)該需要標(biāo)準(zhǔn)輸入 右邊只能是文件
2、管道觸發(fā)兩個(gè)子進(jìn)程執(zhí)行"|"兩邊的程序;而重定向是在一個(gè)進(jìn)程內(nèi)執(zhí)行
這些都是網(wǎng)上總結(jié)很多的,其實(shí)只要多加清楚用法,也一定有自己的一份不同描述。