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,如果不存在則先建立一個