一、重定向
標準輸入,鍵盤
標準輸出,監視器
錯誤輸出,監視器
file disciptor, FD
標準輸入fd: 0
標準輸出fd: 1
錯誤輸出fd: 2
將默認數據流改爲其它設備,就稱作IO重定向;
輸出重定向:
>:覆蓋重定向;
set -C: 避免覆蓋已經存在的文件中的內容;
強制覆蓋:>|
set +C: 關閉上述功能;
>>:追加重定向;
/dev/null: 數據黑洞,bit bucket
錯誤輸出重定向:
2>: 覆蓋重定向;
2>>: 追加重定向;
同時重定標準輸出和錯誤輸出:
COMMAND > /path/to/stdout 2> /path/to/error
標準輸出和錯誤輸出定向至一個文件:
&>
&>> 追加
COMMAND &> /path/to/somewhere 拆開來寫如下
COMMAND > /path/to/somewhere 2>&1 (1標準輸出)
輸入重定向:
<:
COMMAND < /from/somewhere
<<:Here Document,此處創建文檔
cat > /path/to/somefile << EOF
abc
hello
EOF
通常用於腳本中生成文檔
cat << EOF
abc
hello
EOF
通常用於腳本中向用戶輸出大段信息如 生成選擇菜單;
Linux哲學思想:組合小程序,完成複雜功能;
管道:|
COMMAND1 | COMMAND2 | COMMAND3 | ...
管道的最後個命令是在當前shell的子shell中執行;
多道輸出:
tee
COMMAND1 | tee /path/to/somefile
# ifconfig | grep "inet addr:" | grep -v '127.0.0.1' | cut -d: -
f2 | cut -d' ' –f1
取出/etc/inittab文件的第5行;
# head -5 /etc/inittab | tail –1