標準I O和管道

2021-08-19 20:09:41 字數 2434 閱讀 4484

標準輸入:0

標準輸出:1

錯誤輸出:2

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

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

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

改變檔案儲存的預設位置

格式:命令 操作符號 檔名

支援的操作符號包括:

> 把標準輸出重定向到檔案

>> 把輸出內容重定向追加到檔案末尾

2> 把錯誤輸出重定向到檔案

2>> 把錯誤輸出資料流追加到文字末尾

&> 把所有輸出重定向到檔案

&>> 把所有的輸出追加重定向到檔案末尾

如何關閉重定向覆蓋文字內容功能:

set –c 禁止將內容覆蓋 已有檔案, 但可追加

>| file 強制覆蓋

set +c 允許覆蓋

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

commamd > /path/to/file.out

2> /path/to/error.out

合併標準輸出和錯誤輸出為同乙個資料流進行重定向

command > /path/to/file.out

2>&1 (順序很重要)

command >> /path/to/file.out

2>&1

合併多個程式的標準輸出:

( cal 2007 ; cal 2008 ) > all.txt

快速清除file檔案內容:

# > file

使用 < 來重定向標準輸入

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

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

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

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

語法: tr 選項 引數

選項:

-c 或 ——complerment:取代所有不屬於第一字符集的字元;

-d 或 ——delete:刪除所有屬於第一字符集的字元;

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

-t 或 --truncate-set1:先刪除第一字符集較第二字符集多出的字元。

引數: 字符集1:指定要轉換或刪除的原字符集。當執行轉換操作時,必須使用引數「字符集2」指定轉換的目標字符集。

但執行刪除操作時,不需要引數「字符集2」;可以使用檔名萬用字元

字符集2:指定要轉換成的目標字符集。

例項: # echo

"tank" |tr a-z a-z #大寫字母轉小寫

# echo

"hello 123 world 456" | tr -d '0-9' #刪除字串中的數字

# cat text | tr '\t'

' ' #將製表符轉換成空格

# echo

"aa.,a 1 b#$bb 2 c*/cc 3 ddd 4" | tr -dc '0-9 \n'

# 刪除除數字外的字元

# tr

'[:lower:]'

'[:upper:]' #將小寫字元轉換成大寫字元

連線程式,實現將前乙個命令的輸出直接定向後乙個程式當作輸入資料流

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

命令1| 命令2 | 命令3 |

將命令1的 標準輸出 傳送給命令2 的 標準輸入 ,

命令2的 標準輸出 傳送到命令3 的 標準輸入

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

最後乙個命令會在當前shell 程序的子shell 程序中執行用來

例如: 把/etc/passwd檔案的前6行的資訊轉換為大寫字元後輸出;

head -n 6 /etc/passwd | tr 'a-z' 'a-z'

一頁一頁地檢視輸入

ls -l /etc | less

語法: tee 選項  引數

選項:

-a:向檔案中重定向時使用追加模式;

-i:忽略中斷(interrupt)訊號。

引數:檔案:指定輸出重定向的檔案。

例項: ls | tee out

.txt

#將當期目錄的詳細內容儲存在out.txt檔案內

ls | tee out

.txt | cat -n #將當期目錄的詳細內容儲存在out.txt檔案內,並且列印出帶有行號內容

標準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...

Linux標準I O和管道

程式 指令 資料 linux給程式提供三種 i o 裝置 標準輸入 stdin 0 預設接受來自鍵盤的輸入 標準輸出 stdout 1 預設輸出到終端視窗 標準錯誤 stderr 2 預設輸出到終端視窗 i o重定向 改變預設位置 重定向操作符 把標準輸出重定向到檔案 ls lh data ls.l...