Linux學習第五節課-標準I/O和管道
------------------------------------------------------------------------------------------------------------------------------------------------------------------
三十一、標準輸入和輸出
程序:指令+數據
讀入數據:Input
輸出數據:Output
打開的文件都有一個fd: file descriptor (文件描述符)
Linux給程序提供三種I/O設備
標準輸入(STDIN)-0 默認接受來自鍵盤的輸入
標準輸出(STDOUT)-1 默認輸出到終端窗口
標準錯誤(STDERR)-2 默認輸出到終端窗口
I/O重定向:改變默認位置
三十二、操作符號
> 把STDOUT重定向到文件,把正確的結果輸出到文件;
2> 把STDERR重定向到文件,把錯誤的提示輸出到文件;
&> 把所有輸出重定向到文件,把所有結果輸出到文件;
>>追加內容;
2> 覆蓋重定向錯誤輸出數據流;
2>> 追加重定向錯誤輸出數據流;
&> 覆蓋重定向;
&>> 追加重定向;
命令> 文件 2>&1 (順序很重要);
命令 >> /path/to/file.out 2>&1;
():合並多個程序的STDOUT,( 命令1 ; 命令2 ) > all.txt;
<重定向標準輸入,可以理解為影響,tr 'a-z' 'A-Z' < /etc/issue,tr命令結果產生的效果影響到/etc/issue,使該文件下所有小寫字母變成大寫字母;
cat > file 輸入後回車會出現光標閃爍,輸入回車file文件有內容;
cat > filea < fileb 輸入後fileb文件內容會出現在filea中;
<<終止詞,郵件或腳本開頭可用,輸入後文本內容中再次出現終止詞即為輸出終止,一般用EOF
三十三、管道
命令1|命令2|命令3|....將命令1的正確結果傳給命令2,處理後的正確結果再傳給命令3,以此類推,此命令只傳送正確結果,如果想錯誤結果也一起傳遞,可以用2>&1 或 |&
Linux學習第五節課-標準I/O和管道