Linux中的輸入輸出管理
阿新 • • 發佈:2020-10-12
輸入輸出的定義
專案 | 功能 |
---|---|
字元裝置 | 字元裝置就是顯示字元到螢幕上的裝置檔案 |
stdin | 標準輸入編號為0 例如鍵盤 滑鼠 打字機 |
stdout | 標準正確輸出標號為1 |
stderr | 標準錯誤輸出標號為2 |
正確輸出存在於 /proc/程序ID/fd/1
錯誤輸出存在於 /proc/程序ID/fd/0
預設著兩種輸出都會被系統定向到字元裝置中。
查詢程序ID命令:ps
如何管理輸入
輸入: 外界傳遞到程式中的資訊
輸入重定向
命令: <
tr ‘a-z’ ‘A-Z’ < test | 把test檔案中的內容定向到tr程式中 |
---|
多行錄入
命令:<<
tr ‘a-z’ ‘A-Z’ <<EOF(字元任意)
test 此處的test不能表示為檔名稱只表示test字元
EOF (當首字母再次出現表示錄入結束)
注意:字元任意
如何管理系統輸出
輸出重定向
命令 | 功能 |
---|---|
find /etc -name passwd > westos.out | 重定向正確輸出 |
find /etc -name passwd 2> westos.out | 重定向錯誤輸出 |
find /etc -name passwd &> westos.out | 重定向所有輸出 |
注意:如上圖,重定向管理輸出後會覆蓋原檔案的內容
追加
命令 | 功能 |
---|---|
find /etc -name passwd >> westos.out | 追加正確輸出 |
find /etc -name passwd 2>> westos.out | 追加錯誤輸出 |
find /etc -name passwd &>> westos.out | 追加所有輸出 |
注意:追加和重定向功能類似,但是不會覆蓋原檔案內容
管道" | "
把前一條命令的輸出變成輸入傳遞到下一條命令進行操作
注意:
*管道只處理正確輸出:
*2>&1把編號為2的輸入轉換到編號為1的輸出中:
*tee 複製輸出到指定位置
管道在一條命令中可以使用多次
如上兩張圖,可以更好的理解管道"|"對輸出到輸入的轉換。