## 一、過濾器
Linux中的應用工具分為三種:
交互工具
過濾器
編輯器
能夠接受數據,過濾再輸出的工具,稱之為過濾器
對過濾器和進程,存在著輸入源與輸出對象
## 二、輸入、輸出、重定向
輸入:過濾器的數據來源
——標準輸入stdin(0):默認是鍵盤
輸出:過濾器的數據去向
——標準輸出stdout(1):默認是終端屏幕
錯誤輸出:報錯訊息與標準輸出走不同的I/O通道
——標準錯誤輸出stderr(2):默認是終端屏幕
重定向:標準輸入、輸出與錯誤輸出,都可以用特定符號改變數據來源或去向
## 三、輸入重定向
使用" < "來重定向輸入源
大多數工具都會以其后的文件名為輸入源
有一些過濾器一定需要添加 < 以明確輸入源
cmmond ?< ?file (將原本需要鍵盤輸入的通過文件讀取)

如上面,將.pash_profile中的所有大寫字符改成小寫字符
## 四、從當前文檔輸入
使用 ?<< ?讓系統將一次鍵盤的全部輸入,先送入虛擬的”當前文檔“,然后一次性輸入
需要一對字母、符號或字符串作為起始終結標識符
可以選擇任意符號作為起始終結標識符

## 五、輸出重定向
使用 > 改變數據輸出目標
例如:ls -l ?> listfile
將當前目錄下的文件以長模式顯示,然后寫入listfile文件
文件已有內容會被全部消除

## 六、覆蓋與追加
使用 >進行輸出重定向,文件的原內容會被覆蓋
ls -l > listfile
使用 >>可以將輸出追加入文件
ls -l >> listfile
## 七、錯誤輸出重定向
系統錯誤與標準輸出使用的I/O管道不同
默認情況下,系統報錯會顯示到終端屏幕上
使用 2 >將錯誤訊息重定向到一個文件
find / -type s 2 > /dev/null
使用 2 >> 將錯誤訊息追加入一個文件
find / -name passwd 2>> results
## 八、雙重輸出重定向
使用 >和 2>可以將一次操作的正確、錯誤輸入,被單獨地送到不同的地方:
find / -perm -2 2> error > results

使用&>將所有輸入都送向同一個地方:
find / -perm +6000 > file

另一種方式

## 九、管道
使用 |將前一個過濾器的輸出直接送入后一個過濾器的輸入
ls -l | grep pass
允許多重管道
注意管道前過濾器的輸出與管道后過濾器的輸入數據類型匹配

## 十、重定向、管道的常用范例
ls -l | more
分屏顯示當前目錄下的文件
cat < filea > fileb
拷貝filea到fileb
cat file.* > file
將數個小文件合并成一個文件