程序:指令+數據
數據輸入:交互式、文件、進程
數據輸出:監視器、文件、進程
標準輸入(stdin):0,鍵盤
標準輸出(stdout):1,監視器
錯誤輸出(stderr):2,監視器
正常輸出和錯誤輸出是兩個不同的數據流;
重定向:
輸出重定向:>, >>
COMMAND> NEW_POSITION:覆蓋重定向,會清空文件中原有的數據;
注意:危險操作;關閉此功能,可使用“set -C”,相反操作爲“set +C”
COMMAND>> NEW_POSITION:追加重定向,新數據會被附加在原有文件數據的後面;
錯誤輸出重定向:2>, 2>>
COMMAND 2> ERR_OUTPUT覆蓋文件中的內容
COMMAND 2>> ERR_OUTPUT追加在文件數據後
同時定向兩種輸出數據流:
方法一:
COMMAND> OUT_FILE 2>&1
COMMAND>> OUT_FILE 2>&1
方法二:
COMMAND&> OUT_FILE
COMMAND&>> OUT_FILE
輸入重定向:
COMMAND < NEW_IN
tr命令:
tr [OPTION]... SET1 [SET2]
把輸出數據中的,在SET1中的每個字符對應地替換爲SET2的每個字符;
-d: 刪除在輸入的數據流中出現的屬於SET1的每個對應的字符;
COMMAND << EOF[EOF表示End Of File]
[root@localhost tmp]# cat << EOF >abc.txt > i am lx > hello world > eof > EOF [root@localhost tmp]# cat abc.txt i am lx hello world eof
把從輸入重定向的內容輸出重定向到abc.txt文件中,EOF可以用任意STRING代替,區分大小寫
管道:|
把COMMAND1的輸出當做COMMAND2的輸入,再把COMMAND2的輸出當做COMMAND3的輸入,以此類推。
COMMAND1 | COMMAND2 | COMMAND3 | …
多道輸出:
COMMAND | tee /PATH/TO/SOMEFILE
tee命令:把標準輸入顯示到標準輸出中,並保存到文件xx中,如果xx文件不存在則創建之,存在則會覆蓋之;
[-a] :追加到文件的後面,而不是覆蓋