天天看點

輸入輸出重定向與管道

輸入重定向

  • 當有些時候如果讓使用者手動輸入資料将會相當麻煩,此時可以使用輸入重定向操作符’<’ 來重定向輸入源
  • 輸入重定向是指把指令或者可執行程式的标準輸入 重定向到指定的檔案
  • 輸入可以不來自鍵盤,而是來自指定的檔案
  • 輸入重定向主要用于改變一個指令的輸入源

輸出重定向

  • 使用輸出重定向操作符’>’ 改變資料輸出的目标,一般是另存到一個檔案中供以後分析
  • 輸出重定向能把一個指令的輸出 重定向到檔案裡,而不是顯示在螢幕上
  • 注意:如果> 後面指定的檔案已存在,則該檔案的原内容會被覆寫

輸出重定向追加

  • 為避免輸出重定向中的指定檔案被重寫,shell提供了輸出重定向的追加手段
  • 如果要将一條指令的輸出結果追加到指定檔案的後面,可使用追加重定向操作符’>>’
  • 格式:指令 >> 檔案名

雙重輸出重定向

  • 将正确的輸出結果與錯誤的輸出結果一次性單獨輸送到不同的地方

    格式:指令 2> error.txt > results.txt

  • 不管是正确的輸出還是錯誤的輸出,都要輸送到指定的同一檔案,則可使用&>或者&>>

    格式:指令 &>> 檔案名稱

檔案描述符

名稱 代碼 操作符
标準輸入 <、<<
标準輸出 1 1>、1>>、>、>>
标準錯誤輸出 2 2>、2>>

管道

  • 将一個程式或指令的輸出作為另一個程式或指令的輸入 ,有兩種方式
  • 一種是通過一個暫存檔案将兩個指令或程式結合在一起
  • 另一種為管道操作(|)
  • 管道(|)可以把一系列指令連接配接起來

tee指令

  • tee指令會從标準輸入裝置讀取資料,将其内容輸出到标準輸出裝置,同時儲存成檔案
  • 文法格式:tee [-ai] [檔案]
  • -a 内容追加到給定的檔案而非覆寫
  • -i 忽略中斷信号
  • 例如:ifconfig | tee ipconf.txt

繼續閱讀