1:標準輸出和標準錯誤重定向spa
2:利用<操做符將文件讀入stdin3d
3:自定義文件描述符blog
4:tee命令字符串
1:例如echo命令就是將指定的字符串送到標準輸出,那麼咱們就能夠結合echo命令將指定字符串發送到指定的文件:cmd
在這裏就是將文件描述符stdout(1)的內容經過重定向操做符重定向到了test.txt文件裏。it
在處理錯誤時,來自stderr的輸出被傾倒入了文件/dev/null中,/dev/null是一個特殊的設備文件,他會丟棄接收到的任何數據。也常被稱爲黑洞,由於可是進入其中的數據都將一去不復返。一樣的咱們能夠將標準錯誤輸出也重定向到文件中,以供保存。io
接下來這個命令會將stderr文本打印到屏幕上,而不是重定向到文本中,由於默認狀況下重定向操做符針對的是標準輸出,而這裏stdout並無輸出,而是stderr輸出class
在重定向操做符前指定stderr文件描述符,就能夠重定向stderr了test
2: 從stdin讀取輸入的命令能以多種方式接收數據:file
藉助小於符號,咱們能夠像使用stdin那樣讀取文件中數據: cmd<file; (cmd命令須要文件數據)
還有使用管道時,常常將前一個命令的標準輸出重定向成下一個命令的標準輸入,cmd1 | cmd2。
3:使用exec命令建立一個用於讀取的文件描述符(符號&代表後邊的數字是一個文件描述符):
建立一個用於寫入的文件描述符:
4:標準輸出既能夠被重定向到文件,也能夠經過管道傳入其餘程序,但不能同時進行,命令tee能夠實現這個操做,tee命令從stdin讀取,將數據重定向到文件中,而後還將數據重定向到標準輸出(stdout)中:cmd | tee file1 file2 | othercmd
例如ls命令列出和cat命令查看文件內容的結果均爲標準輸出:
-a 指定以追加的方式保存到文件
本知識點需瞭解exec命令,以及對文件的打開模式,標準輸入輸出的初步瞭解。