標(biāo)準(zhǔn)輸入脊串,輸出研铆,和錯(cuò)誤
cat命令:讀取一個(gè)或多個(gè)文件比勉,然后復(fù)制到標(biāo)準(zhǔn)輸出劳较。
“cat test.txt”讀取文本文件中的內(nèi)容并輸出到屏幕驹止。
以下命令也是從文件中輸入,到屏幕中輸出观蜗。
sort命令:排序文本行臊恋。
uniq命令:報(bào)道或省略重復(fù)行。
grep命令:打印匹配行墓捻。
wc命令:打印文件中換行符抖仅、字。和字節(jié)數(shù)砖第。
head命令:輸出文件第一部分撤卢。
-n參數(shù)可調(diào)整打印對(duì)的行數(shù),默認(rèn)十行
tail命令:輸出文件最后一部分梧兼。
也有-n參數(shù)
默認(rèn)情況放吩,程序或者命令如ls、cat的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都連接到屏幕羽杰,標(biāo)準(zhǔn)輸入連接到鍵盤或文件渡紫。而I/O重定向允許我們改變輸出的走向和輸入的來(lái)向。
重定向
使用“>”重定向輸出考赛。
重定向標(biāo)準(zhǔn)輸出惕澎。例如 “ls -l /usr/bin”輸入結(jié)果到屏幕,“ls -l /usr/bin > output.txt”則輸出結(jié)果到 output.txt文本文件颜骤。如果文件不存在集灌,則創(chuàng)建該文件,如果文件已經(jīng)存在复哆,則先刪除已存在文件的內(nèi)容欣喧,再寫入。注意梯找,若該命令出錯(cuò)唆阿,則沒有標(biāo)準(zhǔn)輸出,但文件的內(nèi)容已被刪除锈锤。
技巧“> output.txt”驯鳖,即可刪除一個(gè)文件的內(nèi)容。
使用“>>”重定向輸出并不刪除文件內(nèi)容久免,在文件尾部追加內(nèi)容浅辙。
使用“2>”重定向錯(cuò)誤。shell將標(biāo)準(zhǔn)輸入阎姥,輸出和錯(cuò)誤內(nèi)部參考為文件描述符0,1和2记舆。
讓重定向輸出和重定向錯(cuò)誤到同一個(gè)文件。舊版在重定向標(biāo)準(zhǔn)輸出之后添加“2>&1”呼巴,使得重定向文件描述符2到文件描述符1泽腮,注意標(biāo)準(zhǔn)錯(cuò)誤的重定向必須出現(xiàn)在標(biāo)準(zhǔn)輸出重定向之后御蒲;新版則使用“&>”聯(lián)合重定向。
“/dev/null”文件叫做位存儲(chǔ)桶诊赊,它接受收入厚满,并且不對(duì)輸入做任何處理”贪酰可以可以將不需要的輸出和錯(cuò)誤重定向到“/dev/null”碘箍。
管道線
管道線操作符“|”,可將前一個(gè)管道命令的標(biāo)準(zhǔn)輸出管道到另一個(gè)命令的標(biāo)準(zhǔn)輸入鲸郊。
例如“cat output.txt | less”丰榴,“cat output.txt”不將輸出結(jié)果輸出到屏幕,而是通過(guò)管道線傳遞給“less”严望,less接收了之后在進(jìn)行輸出。
tee命令:從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)逻恐,并同時(shí)輸出到標(biāo)準(zhǔn)輸出和文件
即“ls /usr/bin | tee ls.txt | grep zip”中l(wèi)s的結(jié)果管道給了tee像吻,tee將結(jié)果輸出文件并管道給了grep