linux下I/O重定向及管道

一、重定向

標準輸入,鍵盤
標準輸出,監視器
錯誤輸出,監視器

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章