1.什么是輸入和輸出
輸入和輸出是計算機系統中的主機與外部進行通信的系統。它由外圍設備和輸入輸出控制系統兩部分組成,我們在shell中鍵入指令,然后送入CPU中運算產生結果,再將結果送到字符設備中顯示。簡單點來說輸入輸出就是通過我們的鍵盤、鼠標和其他硬件在系統中錄入字符,在經過cpu處理后的反饋給我們的字符。
輸入和輸出有兩種結果:正確和錯誤 ,分別用1和2表示。
2 管理輸入輸出的符號
> | 重定向正確輸出 |
---|---|
2> | 重定向錯誤輸出 |
&> | 重定向所有輸出 |
注意:重定向會覆蓋原來的內容
示例:
注意: 以下實驗必須在student用戶下完成
find /etc/ -name passwd > file ##定向正確輸出到file
find /etc/ -name passwd 2> file.err ##定向錯誤輸出到file
find /etc/ -name passwd &> file.all ##定向所有輸出到file
> file ##清空file
##輸出追加
> > | 追加正確輸出到文件最后 |
---|---|
2>> | 追加錯誤輸出到文件最后 |
&>> | 追加所有輸出到文件最后 |
== 注意: 追加不會覆蓋源文件內容==
示例:find /etc/ -name passwd >> file ##追加正確輸出到file
find /etc/ -name passwd 2>> file.err ##追加錯誤輸出到file
find /etc/ -name passwd &>> file.all ##追加所有輸出到file1
示例:
3.管道的應用
1.管道的作用
“|” 管道的作用是把前一條命令的輸出變成后一條命令的輸入
注意:1 管道只允許正確輸出通過
2 通過管道的輸出將會變成第二條命令的輸入,如果需要保存輸出內容,那么需要用命令“tee”復制一份輸出
此實驗在普通用戶下操作:
find /etc/ -name passwd | wc -l ##會看到的結果為2,因為錯誤輸出不能通過管道
find /etc -name passwd 2>&1|wc -l ##會看到22,
find /etc -name passwd 2>&1|tee file |wc -l ##保存一份輸出到file再統計行數
示例: