重定向詳解

I/O 重定向允許我們可以更改輸出走向和輸入來向。一般地,輸出送到屏幕,輸入來自鍵盤, 但是通過 I/O 重定向,我們可以改變輸入輸出方向。
輸入重定向符<,輸出重定向符號>

重定向標準輸出

ls -l /usr/bin > ls-output.txt (把 ls 命令的運行結果輸送到文件 ls-output.txt 中去,會刪除ls-output.txt中原來的內容。)
ls -l /usr/bin >> ls-output.txt (與上面唯一不同之處在於該指令是在ls-output.txt內容後追加,不會刪除原來內容。)

重定向標準錯誤

ls -l /bin/usr 2> ls-error.txt (0,1,2分別表示標準輸入,輸出和錯誤)
ls -l /bin/usr > ls-output.txt 2>&1 (首先重定向標準輸出到文件 ls-output.txt,然後 重定向文件描述符2(標準錯誤)到文件描述符1(標準輸出))
ls -l /bin/usr &> ls-output.txt (作用和上面指令完全相同)

重定向標準輸入

單獨輸入指令cat,會提示用戶輸入,輸入完成後按ctrl-d。然後cat會將用戶的輸入送到標準輸出,也就是屏幕。
cat < lazy_dog.txt

管道

管道操作符”|”(豎槓)
在管道線中,每個命令運行時都有一個獨立的進程。前一個命令的輸出正是下一個命令的輸入。
ls -l /usr/bin | less

管道線中有一類命令也稱作“過濾器”,過濾器首先讀取輸入,然後將輸入以某種簡單方式進行變換(相當於過濾),再將處理結果輸出。

  • sort - 排序文本行

    ls /bin /usr/bin | sort | less (把目錄/bin 和/usr/bin 中 的可執行程序都聯合在一起,再把它們排序,然後瀏覽執行結果)

  • uniq - 報道或忽略重複行

    ls /bin /usr/bin | sort | uniq | less (刪除重複行)

  • grep - 打印匹配行

    grep pattern [file…]
    ls /bin /usr/bin | sort | uniq | grep zip (打印包含zip的行)
    -i 忽略大小寫當
    -v 只打印不匹配的行

  • wc - 打印文件中換行符,字,和字節個數

    wc(字計數)命令是用來顯示文件所包含的行數,單詞數和字節數

  • head - 輸出文件開頭部分

    -n 數字 數字表示行數

  • tail - 輸出文件結尾部分

    -n 數字 數字表示行數

  • tee - 從 Stdin 讀取數據,並同時輸出到 Stdout 或文件

    ls /usr/bin | tee ls.txt | grep zip (在 grep 過濾管道線的內容之前,來捕捉整個目錄列表到文件 ls.txt)

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