1. 程式人生 > >檔案輸入輸出的管理以及管道的使用

檔案輸入輸出的管理以及管道的使用

在linux作業系統中,一個程式被載入到記憶體並開始執行後是以程序的形式的形態表現出來的,而系統宗的每一個程序在預設的情況下都有三個標準的通道,分別為標準輸入、標準輸出和標準錯誤輸出。標準輸入的操作程式碼為0,標準輸出的操作程式碼為1,標準錯誤輸出的操作程式碼為2。

在linux系統中用普通使用者執行命令 find /etc/? -name passwd 有兩種輸出

正確的為1? 錯誤的為2

> ? ?#重定向正確輸出
2> ? ?#重定向錯誤輸出
&> ? ?#重定向所有輸出
2>&1 ? ?#把錯誤輸出的編號由2轉換為1

(1) find /etc/ -name passwd? > file.out? ##定向正確輸出

(2) find /etc/ -name passwd 2> file.err? ##定向錯誤輸出

(3) find /etc/ -name passwd &> file.all ##定向全部輸出


注意:重定向會覆蓋原檔案內容!

追加則不會覆蓋原始檔內容

保持原檔案內容不變的情況下把輸出追加到檔案之後

>> ? ?##追加正確輸出
2>> ? ?##追加錯誤輸出
&>> ? ?##追加所有輸出
(4)find /etc/ -name passwd >> file ##追加正確輸出

(5)find /etc -name passwd 2>> file ##追加錯誤輸出

(6)find /etc -name passwd &>> file ##追加所有輸出

相關截圖不再贅述<< 的應用

當出現EOF時錄入結束

使用該命令非互動式修改密碼

管道命令" | "把輸出變成下一個程式的輸入,只能處理經由前面的一個命令傳來的正確訊息,對於錯誤的訊息並沒有直接處理的能力。

例如:


管道只將正確的輸出變為輸入再進行下一個命令

 

應用:使用tee命令複製date命令的輸出到file中,並統計輸出行數