在linux系統中,標準輸入、標準輸出、標準錯誤三個裝置檔案是比較常用的標準裝置檔案,其中0(stdin)、1(stdout)、2(stderr)分別是指向標準輸入、標準輸出、標準錯誤的三個檔案快取的控制代碼。通常stdin即鍵盤輸入緩衝區,stdout和stderr的裝置則通常為顯示屏。由於特殊需要,可能有時候我們需要的輸入檔案或(和)輸出檔案並非是鍵盤或(和)螢幕,因此需要輸入輸出重定位,linux shell中提供的標準輸入輸出重定位算是乙個有著高效、方便、快捷等優點的令人著迷的操作。之前在初學linux時也總結過有關」>」和」>>」的使用,但是不夠全面,也不夠細緻,接下來再來總結一下常用的操作與應用:
1、命令符號說明:
&1:標準輸出
&2:標準錯誤
&-:關閉與其繫結的描述復
&>:標準錯誤和標準輸出
>與》:標準輸出重定位
<:標準輸入重定位
tee:用於標準輸入輸出重定位的命令
2、測試一:
四條命令:
①第一條將標準輸出重定位到result.txt中,將標準錯誤重定位到標準輸出中,因此標準錯誤也定位到result.txt;
②第二條命令同第一條命令相當,不過將重定位是以追加的方式重定位;
③第三條和第一條結果相同,只是表達方式不同,2>&1被簡寫成&>;
④第四條和第二條結果相同,2>>&1被簡寫成&>>。
3、測試二:
三條命令:
第一條標準輸入標準輸出均定位到result中去;
第二條將標準輸入定位到result.txt中去,而將標準錯誤關閉;
第三條採用tee命令的追加方式來進行重定位。
4、測試三:
這裡用tee和」>「測試的是將原本該輸出到/dev/pts/0中的內容,重定位到/dev/pts/1裡。即從乙個裝置檔案重定位到另乙個裝置檔案。
5、測試四:
結合其他命令來做一些常用的檔案建立操作,比如讀取sda1的第乙個扇區的內容到a.txt檔案中區,可用dd標準格式if=和of=來寫;也可以使用輸入輸出重定位的方式來寫。如果bs和count引數設定的大一點則可以構建大檔案用來為一些功能的測試提供條件。(cat /dev/sda1 > a.txt、cat /dev/random > a.txt等都有同樣的效果,不過dd更精確,cat得自己中斷,或等待裝置檔案cat到結束)。
Linux標準輸入 標準輸出和標準錯誤重定向
shell會自動為我們開啟和關閉0 1 2這三個檔案描述符,我們不需要顯式地開啟或關閉它們。標準輸入是命令的輸入,預設指向鍵盤 標準輸出是命令的輸出,預設指向螢幕 標準錯誤是命令錯誤資訊的輸出,預設指向螢幕。標準輸入是檔案描述符0。它是命令的輸入,預設是鍵盤,也可以是檔案或其他命令的輸出。標準輸出是...
linux的標準輸入輸出
0 代表標準的std in 1 代表標準的std out 2 代表標準的std err 重定向 2 file,將標準錯誤輸出重定向到檔案中。1 file,將標準輸出重定向到檔案中。2 1,將標準的錯誤輸出重定向到標準輸出,錯誤輸出將會顯示在終端上,效果和不加是一樣的,因為預設的錯誤輸出就是終端。那如...
linux標準輸入輸出2 1
linux中有三種標準輸入輸出,分別是stdin,stdout,stderr,對應的數字是0,1,2。stdin是標準輸入,預設從鍵盤讀取資訊 stdout是標準輸出,預設將輸出結果輸出至終端 stderr是標準錯誤,預設將輸出結果輸出至終端。由於stdout與stderr都會預設顯示在終端上,為了...