shell中輸入重定向,輸出重定向,管道

2021-07-31 14:11:22 字數 978 閱讀 5213

什麼是檔案描述符

1、程序中開啟乙個檔案就會有乙個檔案描述符

2、檔案描述符是乙個非負整數

3、系統為每乙個程序維護乙個檔案描述符表(程序級檔案描述符)

4、同乙個程序裡面不同檔案描述符可以對應同乙個檔案(乙個檔案被開啟多次)

5、不同程序的檔案描述符可以相同(不影響),可以指向同乙個檔案,也可以指向不同檔案

標準檔案描述符

程序啟動就開啟的檔案描述符

0:標準輸入檔案描述符

1:標準輸出檔案描述符

2:標準錯誤檔案描述符

重定向輸出(包括標準輸出,標準錯誤輸出)

ls -a >ls.txt

如果不存在ls.txt則建立,存在則覆蓋裡面內容

ls -a >>ls.txt

如果不存在ls.txt則建立,存在則追加

kill -l 1234 2>dev/null

kill -l 1234 2>>dev/null

在》或》前面加上檔案描述符,即可把輸出到該檔案描述符的內容,定向到指定的檔案中

kill -l 1234 >dev/null 2>&1

標準錯誤流的和標準輸入流重定向到同乙個檔案,用》&

重定向輸入

more < text.txt

more本來就可以接受檔案的引數,這樣的意義不大

管道

用於連線程序,可以避免寫中間檔案

ps | short | more

注意:在linux下通過管道連線的程序可以同時執行

cat mydata.txt | sort | uniq >mydata.txt這樣可能會得到乙個空檔案,因為cat執行前,uniq可能已經清空了mydata.txt的內容,所以不要在命令流中使用相同的檔案名字。

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...

Shell輸入輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...