中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中stream的含義是什么

發布時間:2023-03-17 10:15:53 來源:億速云 閱讀:72 作者:iii 欄目:建站服務器

這篇文章主要介紹“linux中stream的含義是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“linux中stream的含義是什么”文章能幫助大家解決問題。

在linux中,stream是數據流的意思,就是按一定順序讀取的一串數據,所以數據流的方向就是數據流的讀取順序。Linux系統把數據讀取后輸出的結果導入到其他文件中的過程稱為重定向數據流。Linux下輸入一段命令并運行以后,屏幕里會顯示兩種結果:運行成功結果即標準輸出、運行失敗結果即標準錯誤輸出;如果不做處理,它們都會顯示在屏幕上,而通過數據流重定向就可將其儲存到其他的文件中。

在linux中,stream是數據流的意思。

stream(數據流)是什么意思

stream(數據流)就是按一定順序讀取的一串數據,所以數據流的方向就是數據流的讀取順序。

數據流最初是通信領域使用的概念,代表傳輸中所使用的信息的數字編碼信號序列。這個概念最初在1998年由Henzinger在文獻87中提出,他將數據流定義為“只能以事先規定好的順序被讀取一次的數據的一個序列”。

Linux系統重定向數據流就是把數據讀取后輸出的結果導入到其他文件中。

Linux數據流重定向

數據流重定向簡單來說就是將某條命令的輸入數據來源或輸出數據定位到其他的文件。Linux下一切皆文件。這里的文件可以是設備文件、普通文件等。

1、stdin stdout stderr

stdin:標準輸入。指的是為命令運行所提供的一些信息。
stdout:標準輸出。指的是命令執行所返回的正確信息。
stderr:標準錯誤輸出。指的是命令執行失敗后所返回的錯誤信息。

這三者與命令的關系通常如下:

stdin

stderr

stdout

File

Command

Screen/File

Screen/File

在Linux環境下,我們輸入一段命令并運行以后,屏幕里會顯示兩種結果:運行成功結果即標準輸出、運行失敗結果即標準錯誤輸出。

  • 標準輸出(STDOUT): Standard output,指的是命令執行所返回的正確信息。

  • 標準錯誤輸出(STDERR): Standard error output,指的是命令執行所返回的錯誤信息。

如果不對STDOUT和STDERR做處理,他們都會顯示在屏幕上,通過數據流重定向就可以將其儲存到其他的文件中,而將其儲存在文件中的特殊字符有:

  • 標準輸入stin:代碼為0,使用<<<

  • 標準輸出stout:代碼為1,使用>>>

  • 標準錯誤輸出stderr:代碼為2,使用2>2>>

2、數據流重定向的使用

  • stdout:標準輸出重定向。這里重定向的是正確輸出。

find / -name '.bashrc' > ~/out_right

該命令將正確輸出定向輸入到文件~/out_right。如果~/out_right不存在,則自動創建。因為沒對錯誤信息處理,錯誤輸出默認輸出到屏幕終端上,此時終端只會顯示錯誤輸出。

  • stderr:標準錯誤輸出重定向。這里重定向的是錯誤輸出。

find / -name '.bashrc' 2> ~/out_error

該命令將錯誤輸出定向輸入到文件~/out_error。如果~/out_error不存在,則自動創建。因為沒對正確信息處理,正確輸出默認輸出到屏幕終端上,此時終端只會顯示正確輸出(如果沒找到指定文件,屏幕沒有輸出)。

  • stdin:一般使用標準輸入來替換鍵盤輸入。

cat > catfile < ~/.bashrc

cat命令后不接任何參數,cat會從鍵盤讀取數據。使用標準輸入,將輸入來源定向到文件~/.bashrc。然后通過>將標準輸出定位到catfile文件。cat是查看文件的命令,這里直接讀取文件~/.bashrc然后將其輸出到catfile

3、>>,2>>,<<

  • >>(累加):附加標準輸出。cmd > file1,命令cmdstdout輸出到file1中,如果fiel1此前存在,且有數據,那么file1會事先被清空,然后寫入stdout。而使用命令cmd >> file1,不會預先清空file1文件,而是直接在文件末尾加上輸入的數據。

  • 2>>累加):附加標準錯誤輸出。與>>相似。

  • <<指定結束關鍵字):后接結束的輸入字符。關鍵字必須獨占一行,否則無效。

cat > catfile << "eof"  #這里關鍵字為eof
> This is a test.
> Ok now stop
> eof  #輸入eof(并回車)結束本次輸入

4、 stdoutstderr統一處理

有時,我們需要將stdoutstderr都保存在同一個文件中一遍以后查看。

基本思路:

stderr重定向為stdout,然后通過stdout一起重定向。

如下案例:

find / -name .bashrc > list 2> list #該語句錯誤,查看生成的list,發現不是預期結果
find / -name .bashrc > list 2>&1 #正確
find / -name .bashrc &> list #正確

實現方法不止一種,我們取較好理解的寫法find / -name .bashrc > list 2>&1。這段代碼中的2>&1可以理解為,將標準錯誤輸出(代碼為2)重定向為標準輸出(代碼為1)。然后> list將標準輸出重定向到文件list。因為標準錯誤輸出被定向為標準輸出,所以最后所有輸出都被定向到文件list中。

關于“linux中stream的含義是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莆田市| 汾西县| 永吉县| 内乡县| 修文县| 连平县| 临邑县| 新昌县| 呈贡县| 禹州市| 乐亭县| 惠州市| 怀来县| 亚东县| 沁水县| 上林县| 郎溪县| 洪江市| 同德县| 游戏| 响水县| 北碚区| 墨玉县| 大城县| 杭锦旗| 卢湾区| 耿马| 张北县| 西和县| 扎囊县| 田林县| 张家界市| 罗源县| 威宁| 桂平市| 黑山县| 西盟| 项城市| 疏勒县| 新丰县| 和政县|