Linux shell編程---- 管道+I/O重新導向 1 管道簡介 1 管道技術是Linux的一種基本的處理序間通訊技術,它利用先進先出排隊模型來指揮進程間的通訊。對於管道,我們可以形象的理解為串連兩個實體的一個單向連接器 2 Shell編程中管道符號是"|",命令直接利用管道進行通訊的一般格式 command1 | command2 | command3 | ... | commandn command1~commandn是n個命令,如果沒有管道那麼結果將會直接顯示在Shell中,當Shell遇到管道的時候,就將輸出發送下一個命令 2 cat和more命令 1 cat和more命令都是用來顯示檔案的內容,它們的基本格式特比較類似 cat 選項 檔案 more 選項 檔案 2 cat命令的選項名稱及其意義 選項 意義 -a 顯示檔案的所有內容 -b 由1開始對所有輸出的行數編號,但對空行不編號 -E 每一行末尾顯示"$" -n 由1開始對所有的輸出行進行編號 -s 當遇到連續的兩行以上的空行時就替換為一行空白行 -v 不可顯示的字元以可見的形式顯示 3 more命令的選項名稱及其意義 選項 意義 -num 一次顯示的行數 -f 計算行數時,以實際的行數,而非自動換行過後的行數 -s 當遇到連續的兩行以上的空行時就替換為一行空白行 +num 從第num行開始顯示 4 cat和more命令的最大區別在於,cat命令是不提供分頁功能的,但是more命令是顯示超過一頁的檔案時提供了分頁功能 3 I/O重新導向 1 I/O重新導向是一個過程,這個過程捕捉一個檔案,命令,程式或指令碼,甚至代碼塊的輸出,然後把捕捉到的輸出作為輸入發送給另外一個檔案,命令,程式 2 檔案標識符是從0開始到9結束的整數,指明了與進程相關的特定資料流的源。當Linux系統啟動一個進程時,將自動為該進程開啟三個檔案,標準輸入,標準輸出,標準錯誤輸出,分別由檔案標識符0,1,2標識,該進程如果要開啟其它的檔案,則從整數3開始表識 3 基本I/O重新導向符號及其意義 符號 意義 cmd1 | cmd2 管道符,將cmd的標準輸出作為cmd2的標準輸入 > filename 將標準輸出寫道檔案filename之中 < filename 將檔案filename的內容作為標準輸入 >> filename 將標準輸出追加到filename,如果不存在則先建立一個