標準輸入輸出重定向
因爲第二週學習進程控制,涉及到shell的實現,而shell的功能中則涉及到“支持輸入輸出重定向”,因此自己必須先對這個概念有清晰的認識。
重定向:
這裏要談及的是IO重定向,IO重定向通常與fd有關,shell 的 fd 通常有10個,即0~9。
a. 在Linux 中,每一個進程都有三個特殊的文件描述指針:即常用的 fd 有三個,爲0(stdin ,標準輸入)/1(stdout ,標準輸出)/2(stderr ,標準錯誤輸出),默認與 keyboard / monitor 有關。
b. 用 < 來改變讀進的數據信道(stdin),使之從指定的文件讀進。
c. 用 > 來改變送出的數據信道(stdout , stderr ),使之輸出到指定的文件。
d. 0是 < 的默認值,因此 < 與 0< 是一樣的;同理,> 與 1> 是一樣的。
下面分別來簡單地談談標準輸入重定向和標準輸出重定向:
A. 標準輸入重定向:
語法:命令 < 文件
含義:將文件作爲命令的標準輸入
B. 標準輸出重定向:
語法:命令 > 文件
含義:將命令的執行結果送到指定文件中,若該文件存在則清除原有內容寫入,若不存在則新建一個該文件並寫入。
語法:命令 >> 文件
含義:將命令的執行結果附加到指定文件中,若該文件存在則以追加的方式寫入,若不存在則新建一個該文件並寫入。
上圖是在上一步操作的基礎上進行的。
語法:命令 >& 文件
含義:將命令在執行時屏幕上產生的任何信息寫入指定文件中。
從圖片內容可以瞭解都,>& 符號會將屏幕上產生的信息以清除寫入的方式寫入,經驗證,在文件不存在時,可以通過新建文件再寫入。
注:雖然只是一點簡單的東西,但是積少成多,所以就將這點知識以這樣的方式存儲下來。希望方便記憶,複習,添加。