I/O重定向
ide
一般對於程序來說,輸入輸出可使鍵盤、鼠標、顯示器等;固然有時候輸入的數據是程序自身內部所具備的。一樣,輸出的數據也有顯示器或文件,所以咱們到底從哪裏輸入數據,產生的數據又存放在哪裏。
spa
程序:指令+數據3d
讀入數據:Inputblog
輸出數據:Outputip
標準輸入:鍵盤文檔
標準輸出:顯示器get
程序的數據流有三種:
it
輸入的數據流:<-- 標準輸入(stdin),鍵盤
io
輸出的數據流:--> 標準輸出(stdout),顯示器
class
錯誤輸出流:--> 標準輸出(stdout),顯示器
fd(File descriptor):即文件描述符,內核利用fd來訪問文件
標準輸入:鍵盤,0
標準輸出:顯示器,1
標準錯誤輸出:顯示器,2
輸出重定向:COMMAND > NEW_POS 或 COMMAND >> NWE_POS
>:覆蓋重定向,會將目標文件內容覆蓋
>>:追加劇定向,將輸出的內容追加至目標文件尾部
set -C:禁止輸出重定向覆蓋文件內容
強制覆蓋,可以使用>|
set +C:容許輸出重定向覆蓋文件內容
錯誤輸出重定向:COMMAND 2> NEW_POST 或 COMMAND 2>> NEW_POS
2>:覆蓋錯誤輸出重定向,覆蓋指定的文件內容
2>>:追加覆蓋,將錯誤輸出內容追加至文件尾部
合併標準輸出和錯誤輸出
(1)&>:覆蓋標準輸出和錯誤輸出,覆蓋指定文件內容
&>>:追加輸出
(2)2>&1:
輸入重定向:< COMMAND < INPUT_FILE
把另外一個文件的內容當作程序的輸入
兩個特殊文件:
/dev/null:數據黑洞,可將全部可有可無要的輸出信息輸出至此設備當中,通常在編寫腳本時用的比較多
/dev/zero:吐零機,可無限輸出000數據,通常用於生成文件 或覆蓋文件
tr命令:刪除或轉換字符
tr [OPTIONS...] SET1 [SET2]
-c:取字符集的補集
-d:刪除SET1定義的字符
-s:把連續的字符顯示一次
-t:第一個字符集對應字符轉化爲第二字符集對應的字符
Here Document:<<
cat << EOF
cat << EOF > aa.txt
管道:|
將一個命令的輸出當作下一條命令的輸入,實現命令連接
COMMAND1 | COMMAND2 | COMMAND3 |...
將/etc/passwd文件內容轉換爲大寫並輸出至aa.txt文件中
tee命令:將標準的輸入和標準輸出和文件
COMMAND | tee /PATH/TO/SOMEFILE