一、過濾器
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
將數個小文件合並成一個文件