在linux中,stream是資料流的意思,就是以一定順序讀取的一串數據,所以資料流的方向就是資料流的讀取順序。 Linux系統把資料讀取後輸出的結果導入到其他檔案的過程稱為重定向資料流。 Linux下輸入一段命令並運行以後,螢幕裡會顯示兩種結果:運行成功結果即標準輸出、運行失敗結果即標準錯誤輸出;如果不做處理,它們都會顯示在螢幕上,而透過資料流重定向就可將其儲存到其他的文件中。
本教學操作環境:linux7.3系統、Dell G3電腦。
在linux中,stream就是資料流的意思。
stream(資料流)就是一個以一定順序讀取的一串數據,所以資料流的方向就是資料流的讀取順序。
資料流最初是通訊領域使用的概念,代表傳輸中所使用的資訊的數位編碼訊號序列。這個概念最初在1998年由Henzinger在文獻87中提出,他將資料流定義為「只能以事先規定好的順序被讀取一次的資料的一個序列」。
Linux系統重定向資料流就是把資料讀取後輸出的結果匯入到其他檔案中。
資料流重定向簡單來說就是將某條指令的輸入資料來源或輸出資料定位到其他的檔案。 Linux下一切皆文件。這裡的文件可以是設備文件、普通文件等。
stdin
:標準輸入。指的是一些為命令運行所提供的資訊。stdout
:標準輸出。指的是命令執行所傳回的正確訊息。stderr
:標準錯誤輸出。指的是命令執行失敗後所傳回的錯誤訊息。
這三者與指令的關係通常如下:
在Linux環境下,我們輸入一段指令並且運行以後,螢幕裡會顯示兩個結果:運行成功結果即標準輸出、運行失敗結果即標準錯誤輸出。
標準輸出(STDOUT): Standard output,指的是指令執行所傳回的正確訊息。
標準錯誤輸出(STDERR): Standard error output,指的是指令執行所傳回的錯誤訊息。
如果不對STDOUT和STDERR做處理,他們都會顯示在螢幕上,透過資料流重定向就可以將其儲存到其他的檔案中,而將其儲存在檔案中的特殊字元有:
標準輸入stin:程式碼為0,使用dd2be22c085330ec4036b98ddc053abf<code>或
>>
2>或
2>>
stdout:標準輸出重定向。這裡重定向的是正確輸出。
<pre class="brush:php;toolbar:false">find / -name '.bashrc' > ~/out_right</pre>
此指令將正確輸出定向輸入到檔案~/out_right
。如果~/out_right
不存在,則自動建立。因為沒對錯誤訊息處理,錯誤輸出預設輸出到螢幕終端機上,此時終端機只會顯示錯誤輸出。 stderr
:標準錯誤輸出重定向。這裡重定向的是錯誤輸出。
find / -name '.bashrc' 2> ~/out_error
此指令將錯誤輸出定向輸入到檔案~/out_error。如果~/out_error不存在,則自動建立。因為沒有對正確資訊處理,正確輸出預設輸出到螢幕終端機上,此時終端機只會顯示正確輸出(如果沒找到指定文件,螢幕沒有輸出)。 <strong></strong>stdin
:一般使用標準輸入來取代鍵盤輸入。
cat > catfile f1cfc87127bc84025c93545cfc803599<code>將標準輸出定位到</code>catfile<code>檔案。 </code>cat<code>是檢視檔案的指令,這裡直接讀取檔案</code>~/.bashrc<code>然後將其輸出到</code>catfile<code>。 </code><code></code><code></code><code>3、</code><code></code>>>,2>>,a43724e5f53083733ca49053b131e0c4>(累加
cmd > file1
,命令cmd將stdout
輸出到fiel1先前存在,且有數據,那麼file1會事先被清空,然後寫入stdout。而使用指令cmd >> file1,不會預先清空
file1文件,而是直接在文件末端加上輸入的資料。
2>>
累加):附加標準錯誤輸出。與
>>相似。
82686a7920680c814a6db95249d6c15e list 2>&1### 。這段程式碼中的###2>&1###可以理解為,將標準錯誤輸出(代碼為2)重定向為標準輸出(代碼為1)。然後###> list###將標準輸出重定向到檔案###list###。因為標準錯誤輸出被定向為標準輸出,所以最後所有輸出都被導向到檔案###list###。 ######相關推薦:《###Linux影片教學###》###
以上是linux中stream什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!