iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

短時間學習Linux 基本應用系列 第 7

【Day7】Linux I/O輸入輸出導向

  • 分享至 

  • xImage
  •  

前言

接下來的幾天,我將學習一些中階的指令,主要圍繞在能夠有效處理輸出及輸入數據的指令,相信這對之後對操作和管理數據流應該還蠻有幫助的。

stdout-標準輸出

指將程序的輸出傳送到終端或者是文件,可以透過一些導向來操縱輸出的目的地,如:

echo Hello world > text.txt

這指令會在該目錄中的text.txt檔中 echo 出 Hello world 的字串,而其中 > 是輸出導向的字元

stdin- 標準輸入

現在我們知道我們可以透過鍵盤當作輸入,而使用 < 標準輸入字元我們也可以透過文件的內容作輸出。以剛剛的text.txt為例:

cat < text.txt > text2.txt

此時,text2.txt 中將會有從text.txt 檔中的 Hello world 字串

stderr-標準錯誤

當我們輸入以下指令:

ls /fake/directory > test

我們會得到:

ls: cannot access /fake/directory: No such file or directory

並且在 test 中會顯示空白,這是因為在linux中有還有另一個 I/O 流叫做 stderr。在linux中,stdin、stdout、stderr 的文件描述符分別為 0、1、2,而透過他們可以更精確的操縱數據流的流向。因此解決上面的問題必須用以下指令:

ls /fake/directory 2> test

test檔中才會出現以上的error,而想要使標準輸出及標準錯誤一起定向,可以在2>後面加上&1

ls /fake/directory 2>&1 test

上一篇
【Day6】Command Line 學習3
下一篇
【Day8】文件處理指令1
系列文
短時間學習Linux 基本應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言