1.輸出兩種類型
- 程序運行結果 – 輸送到一個叫做標準輸出的特殊文件(stdout)
- 得到的狀態和錯誤信息 – 標準錯誤的文件(stderr)
注:標準輸出和標準錯誤都連接到屏幕,而不是保存到磁盤
2.標準輸入
許多程序從標準輸入的設備得到輸入,默認標準輸入連接到鍵盤
一般地,輸出送到屏幕,輸入來自鍵盤,但是通過 I/O 重定向,我們可以改變輸入輸出方向。
3.重定向標準輸出
使用 ” > ” 符號
將ls命令運行結果輸送到文件 ls-output.txt
$ ls -l /usr/bin > ls-output.txt
刪除文件內容或創建新的空文件
$ > ls-output.txt
將重定向結果追加到文件內容後面,文件不存在會新建
$ ls -l /usr/bin >> ls-output.txt
4.重定向標準錯誤
重定向標準錯誤缺乏專用的重定向操作符,必須 參考它的文件描述符。一個程序可以在幾個編號的文件流中任何一個上產生輸出。把這些文件流的前三個看作標準輸入、輸出、錯誤,shell內部參考它們爲文件描述符0、1、2。
$ ls -l /bin/usr 2> ls-error.txt
5.重定向標準輸出和錯誤到同一文件
$ ls -l /bin/usr > ls-output.txt 2>&1
注:標準錯誤的重定向必須總是出現在標準輸出重定向之後,要不然它不起作用
單單一個表示法 &> 來重定向標準輸出和錯誤到文件 lsoutput.txt
//方法2
$ ls -l /bin/usr &> ls-output.txt
6.處理不需要的輸出
隱瞞錯誤信息
$ ls -l /bin/usr 2> /dev/null
注:“/dev/null”這個文件是系統設備,叫做位存儲桶,它可以接受輸入,並且對輸入不做任何處理。
7.cat – 連接文件
讀取一個或多個文件,然後複製它們到標準輸出
cat [file]
如果 cat 沒有給出任何參數,它會從標準輸入讀入數據
$ cat > lazy_dog.txt
The quick brown fox jumped over the lazy dog.
下一步,輸入 Ctrl-d(按住 Ctrl 鍵同時按下 “d”),來告訴 cat,在標準輸入中,它已經到達文件末尾(EOF)
使用“<”重定向操作符,我們把標準輸入源從鍵盤改到文件 lazy dog.tx
$ cat < lazy_dog.txt
The quick brown fox jumped over the lazy dog.
8.wc -打印行,字和字節數
$ wc ls-output.txt
7902 64566 503634 ls-output.txt