重定向能夠實現linux命令的輸入輸出與檔案之間重定向,以及實現將多個命令組合起來實現更加強大的命令。這部分涉及到的比較多的命令主要有:
涉及到的比較多的命令主要有:
使用shell中預設使用檔案描述符0,1,2分別代表標準輸入、標準輸出、標準錯誤。
1. >與》的含義
使用》可以將本來出現在螢幕的標準輸出資訊重定向到乙個檔案中。
用》可以在實現重定向時不覆蓋原有內容,而是在檔案末尾追加內容。
兩個命令都是如果檔案不存在則建立檔案
2.遮蔽不想看到的資訊
linux中有乙個特殊的檔案/dev/null,這個檔案叫做位元桶(bit bucket),可以接受輸入資訊但是什麼都不做。因此要抑制命令的輸出資訊,只需要如下操作:
ls /usr/ > /dev/null 將ls /usr/的標準輸出重定向到位元桶
3.舉栗
輸出重定向
型別符號
功能舉栗
標準輸出重定向
命令》檔案或
命令》檔案
以覆蓋或追加的方式,把命令的正確輸出內容輸出到指定的檔案中,
命令的錯誤輸出列印到終端中
ls -l /usr/tmp >dir 重定向覆蓋
ls -l /usr/tmp >>dir 重定向追加
標準錯誤輸出重定向
錯誤命令 2>檔案或
錯誤命令 2>>檔案
以覆蓋或追加的方式,把命令的錯誤輸出內容輸出到指定的檔案中,
命令的正確輸出列印到終端中
ls /usr/tmp 2>err.file 錯誤輸出到err.file
標準輸出與標準錯誤輸出重定向
命令 >檔案 2>&1或
命令 >>檔案 2>&1
以覆蓋或追加的方式,把命令的正確輸出或錯誤輸出內容輸出到指定的檔案中。
ls /usr/tmp >output.file 2>&1 錯誤和輸出重定向到output
命令 &>檔案 或
命令 &>>檔案
以覆蓋或追加的方式,把命令的正確輸出或錯誤輸出內容輸出到指定的檔案中。
ls /usr/tmp &>output.file 錯誤和輸出重定向到output
命令 >>檔案1 2>檔案2
以追加的方式,把命令的正確輸出內容輸出到檔案1中,以覆蓋的方式,把命令的錯誤輸出內容輸出到檔案2。
其他例子:
ls /usr/tmp 2>&1 >output.file 輸出重定向到output,錯誤輸出到螢幕
wc 輸入重定向,《其實是0《的簡寫
echo "" > test.log 或》test.log,快速清空檔案
管道是一種兩個程序間進行單向通訊的機制,它表現出來的形式將前面每乙個程序的輸出(stdout)直接作為下乙個程序的輸入(stdin),如果要進行雙工通訊,需要建立兩個管道。
因為管道傳遞資料的單向性,管道又稱為半雙工管道。
管道命令的特性:
1、管道命令使用|
作為界定符號
2、管道命令只能處理前乙個命令的standard output,對於standard error output會予以忽略。
3、管道命令必須要能夠接受來自前乙個命令的資料成為standard input繼續處理才行,比如less,more,head,tail...,而ls,cp,mv不會接受standard input的命令,所以他們就不是管道命令了。
舉栗:1.uniq與sort命令:uniq命令排除重複的行,sort命令將文字行排序。
[root@test]#cat ls.txt
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaa
[root@test]#cat ls.txt |sort|uniq
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
我們還可以對uniq命令加上-d選項來檢視重複的行,如下:
[root@test]#cat ls |sort|uniq -d
aaaaaaaaaaaaaaaaaaaaaaaa
2. wc命令:統計文字的行數、單詞書和位元組數
[root@test]#ls /bin /usr/bin/ | sort | uniq | wc
使用wc -l引數統計**的行數:
[root@test]#find cn/ -name "*.php" |xargs cat|wc -l
上面這個例子統計了cn目錄下所有php檔案的行數之和。
3.grep命令:用來查詢匹配的模式,並且列印包含該模式的行:
[root@test]#ls /bin /usr/bin/ | sort | uniq | grep zip
在/bin和/usr/bin目錄下找出名字帶有zip的程式,並且列印這些程式的名字。
4.head和tail命令:
head檢視檔案或者文字的前面部分,tail檢視檔案或者文字的末尾部分。二者都可以接收-n選項,表示顯示的行數。
[root@test]#ls /bin/ | head -n 5
linux之管道與重定向
在linux作業系統中,輸入和輸出是兩個相對的操作,使用者將資料輸入到系統的暫存器中,cpu呼叫處理,處理後的資料同樣放入暫存器中,當然系統有很多的暫存器,輸入輸出的內容在不同的暫存器中,而後在螢幕上顯示出來。輸入重定向 cat file 檔名 正確的輸出重定向 2 檔名 錯誤的輸出重定向 檔名 全...
linux 重定向與管道
linux中重定向表示符號有 linux中管道表示符號 先說重定向,重定向符號的指向的方向代表了資料的流向,這句話很重要!先說 與 可以看出資料流向為從左到右,命令在左邊,所以又叫重定向輸出。通常用於輸出到檔案。如cat test1.txt test2.txt,會發現,檔案test2.txt中的原有...
Linux重定向與管道
對於任何一條 linux 命令執行,它會是這樣乙個過程 乙個命令執行了 先有乙個輸入 輸入可以從鍵盤,也可以從檔案得到。命令執行完成 成功了,會把成功結果輸出到螢幕 standard output預設是螢幕 命令執行有錯誤 會把錯誤也輸出到螢幕上面 standard error預設也是指的螢幕 三種...