Linux標準I O和管道

2021-09-25 15:35:56 字數 1569 閱讀 3606

程式=指令+資料

linux給程式提供三種 i/o 裝置

標準輸入(stdin)-0 預設接受來自鍵盤的輸入

標準輸出(stdout)-1 預設輸出到終端視窗

標準錯誤(stderr)-2 預設輸出到終端視窗

i/o重定向:改變預設位置

重定向操作符:

> 把標準輸出重定向到檔案 ls -lh > /data/ls.log ,重定向到已存在檔案,原檔案內容會被覆蓋

2> 把標準錯誤重定向到檔案 ls *** 2> /data/err.log 把錯誤輸出儲存到data下的err.log檔案中,檔案已存在則會覆蓋原有檔案內容

2>>追加重定向錯誤輸出資料流

&> 把所有輸出重定向到檔案 (cat /etc/issue;ls ***) &> /data/sum.log

>> 原有內容基礎上,追加檔案內容 ls -li >> /data/ls.log 追加ls.log的內容

< 標準輸入 cat < /etc/shadow 將shadow檔案輸出

《終止符 多行輸入重定向,以終止符結束 cat

標準輸出和錯誤輸出各自定向至不同位置 :

ls -li /etc/issue /data/*** >/data/f1.log 2>/data/f2.logh 或

ls -li /etc/issue /data/*** >/data/f3.log 2>&1

-d --delete:刪除所有屬於第一字符集的字元 tr -d abc //刪除字元**現的a、b、c字元

-s --squeeze-repeats:把連續重複的字元以單獨乙個字元表示

-t --truncate-set1:將第乙個字符集對應字元轉化為第二字符集對應的字元

使用 < 來重定向標準輸入

某些命令能夠接受從檔案中匯入的標準輸出

tr 『a-z』 『a-z』< /etc/issue

該命令會把/etc/issue中的小寫字元都轉換成大寫字元

tr -d abc < /etc/fstab 刪除fstab檔案中的所有abc中任意字元

tr 』 』 『+』 num.bak #把num.txt檔案裡的空格替換成+,重新生成num.bak

管道(使用符號「|」表示)用來連線命令

命令1 | 命令2 | 命令3 | …將命令1的輸出傳送給命令2的輸入,命令2的輸出傳送到命令3的輸入

stderr預設不能通過管道**,可利用2>&1 或 |& 實現

who | tr 『a-z』 『a-z』 > /who.log 把who輸出命令中所有小寫字母替換成大寫字母並儲存在新生成的who.log 檔案中

echo | tr 』 』 + | bc 計算1到100之和

命令1 | tee [-a ] 檔名 | 命令2 把命令1的輸出儲存在檔案中,做為命令2的輸入

ls | tee -a ls.log ls命令輸出的同時,輸出結果儲存到ls.log 檔案中

功能:

儲存不同階段的輸出

複雜管道的故障排除

同時檢視和記錄輸出

標準I O和管道

標準輸入 0 標準輸出 1 錯誤輸出 2標準輸入 stdin 0 預設接受來自鍵盤的輸入 標準輸出 stdout 1 預設輸出到終端視窗 標準錯誤 stderr 2 預設輸出到終端視窗改變檔案儲存的預設位置 格式 命令 操作符號 檔名 支援的操作符號包括 把標準輸出重定向到檔案 把輸出內容重定向追加...

標準I O和管道

重定向 redirect 標準輸入和輸出程式 指令 資料 讀入資料 input 輸出資料 output 開啟的檔案都有乙個fd file descriptor 檔案描述符 dev std proc self fd 終端linux給程式提供三種i o管道標準輸入 stdin 0 預設接受來自鍵盤的輸入...

標準IO和管道

1 將 etc issue檔案中的內容轉換為大寫後儲存至 tmp issue.out檔案中 1.cat etc issue tr a z a z tmp issue.out 2.tr a z a z tmp issue.out 2 將當前系統登入使用者的資訊轉換為大寫後儲存至 tmp who.out...