標準輸入,輸出,和錯誤
cat命令:讀取一個或多個文件,然后復制到標準輸出。
“cat test.txt”讀取文本文件中的內容并輸出到屏幕。
以下命令也是從文件中輸入,到屏幕中輸出。
sort命令:排序文本行。
uniq命令:報道或省略重復行。
grep命令:打印匹配行。
wc命令:打印文件中換行符、字。和字節數。
head命令:輸出文件第一部分。
-n參數可調整打印對的行數,默認十行
tail命令:輸出文件最后一部分。
也有-n參數
默認情況,程序或者命令如ls、cat的標準輸出和標準錯誤都連接到屏幕,標準輸入連接到鍵盤或文件。而I/O重定向允許我們改變輸出的走向和輸入的來向。
重定向
使用“>”重定向輸出。
重定向標準輸出。例如 “ls -l /usr/bin”輸入結果到屏幕,“ls -l /usr/bin > output.txt”則輸出結果到 output.txt文本文件。如果文件不存在,則創建該文件,如果文件已經存在,則先刪除已存在文件的內容,再寫入。注意,若該命令出錯,則沒有標準輸出,但文件的內容已被刪除。
技巧“> output.txt”,即可刪除一個文件的內容。
使用“>>”重定向輸出并不刪除文件內容,在文件尾部追加內容。
使用“2>”重定向錯誤。shell將標準輸入,輸出和錯誤內部參考為文件描述符0,1和2。
讓重定向輸出和重定向錯誤到同一個文件。舊版在重定向標準輸出之后添加“2>&1”,使得重定向文件描述符2到文件描述符1,注意標準錯誤的重定向必須出現在標準輸出重定向之后;新版則使用“&>”聯合重定向。
“/dev/null”文件叫做位存儲桶,它接受收入,并且不對輸入做任何處理。可以可以將不需要的輸出和錯誤重定向到“/dev/null”。
管道線
管道線操作符“|”,可將前一個管道命令的標準輸出管道到另一個命令的標準輸入。
例如“cat output.txt | less”,“cat output.txt”不將輸出結果輸出到屏幕,而是通過管道線傳遞給“less”,less接收了之后在進行輸出。
tee命令:從標準輸入讀取數據,并同時輸出到標準輸出和文件
即“ls /usr/bin | tee ls.txt | grep zip”中ls的結果管道給了tee,tee將結果輸出文件并管道給了grep