管道命令符(pipe,」 「) 引數代換xargs

2022-08-29 04:24:10 字數 1540 閱讀 2412

簡單一句話概括:"把前乙個命令原本要輸出到螢幕的資料當作是後乙個命令的標準輸入(standard output)"。執行格式為:命令a | 命令b

注意:

管道符"|"僅能處理經由前乙個命令傳來的正確資訊,即standard output的資訊,對於error output錯誤輸出沒有直接處理的能力

管道符"|"右邊的命令,必須能夠接受標準輸入流命令才行,如cut、grep、wct、tee、tr命令等

管道命令的處理示意圖

例項:

找出被系統限制登入的使用者

找出被系統限制登入的使用者數(wc -l命令統計文字行數)

通過管道符和passwd命令的--stdin引數相結合,完成密碼重置操作

(passwd命令:設定使用者的認證資訊,包括使用者密碼、密碼過期時間等; --stdin引數:passwd命令預設使用終端作為標準輸入,--stdin表示可以用任意檔案做標準輸入,包括通過管道)

若直接通過passwd命令重置密碼,需要與使用者進行互動式操作。不方便指令碼的編寫

ls命令輸出後的內容能夠被more獲取,並且利用more的功能,進行翻頁檢視/etc目錄中的檔案列表及屬性資訊(/etc目錄下的檔案太多,ls命令會一口氣將螢幕"塞滿")

管道命令與重定向的區別:

左邊的命令有標準輸出 | 右邊的命令接受標準輸入

左邊的命令有標準輸出 > 右邊只能是檔案

左邊的命令需要標準輸入 < 右邊只能是檔案

管道觸發2個子程序執行"|"兩邊的,而重定向是在乙個程序內執行的

重定向與管道符在使用時很多時候可以通用(條條大路通羅馬)

一般的,如果是命令間傳遞引數,優先選擇管道符"|";如果是處理輸出結果需要重定向到檔案,優先選擇重定向輸出

參考資料:

xargs(arguments引數):將標準輸入資料stdin轉換成特定命令的命令引數。xargs的預設命令是echo,空格是預設定界符(xargs會預設將資料中的換行與空白轉換為空格符)。格式:xargs [引數] [命令]。

(很多命令並不支援管道命令,可通過xargs來讓該命令引用stdin)

例項:

查詢~/desktop目錄下*.txt的檔案,並使用ls -l列出詳細資訊(ls -l不是管道命令,不能直接通過管道符接受stdout)

xargs與管道的區別:

xargs的原理剖析及用法詳解:

管道命令(pipe)

排序命令 root www sort fbmnrtuk file or stdin 選項與引數 f 忽略大小寫的差異,例如 a 與 a 視為編碼相同 b 忽略最前面的空格符部分 m 以月份的名字來排序,例如 jan,dec 等等的排序方法 n 使用 純數字 進行排序 預設是以文字型態來排序的 r 反...

管道命令pipe學習

管道命令使用的是 這個界定符號 其實這個管道命令 僅能處理經由前面乙個命令傳來的正確資訊,也就是standard output的資訊,對於standard error並沒有直接處理的能力。command1 command2 command3,前乙個命令的輸出作為後乙個命令的輸入 選取命令 cut,g...

pipe實現管道命令

ps aux grep bash intmain else return0 管道的讀寫行為 使用管道需要注意以下4種特殊情況 假設都是阻塞i o操作,沒有設定o nonblock標誌 1.如果所有指向管道寫端的檔案描述符都關閉了 管道寫端引用計數為0 而仍然有程序從管道的讀端讀資料,那麼管道中剩餘的...