歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 學習鳥哥的Linux私房菜筆記(6)——過濾器、輸入輸出及管道

學習鳥哥的Linux私房菜筆記(6)——過濾器、輸入輸出及管道

日期:2017/3/1 13:38:21   编辑:關於Linux

一、過濾器

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

將數個小文件合並成一個文件

Copyright © Linux教程網 All Rights Reserved