天天看點

第七章

7.1輸入輸出重定向

一、“>”輸出重定向指令

 cat /etc/passwd |head -3 >test1

把etc下的passwd頭三行輸出到指定的test檔案裡,并且覆寫原檔案裡的内容。

二、">>"輸出追加指令

cat /etc/passwd |tail -3 >>test2

cat test1 test2 >>test3

把test1,test2輸出到指定的test3檔案裡,但不覆寫原檔案裡的内容,在原檔案後面追加。

注意:輸出檔案不能作為輸入檔案

cat test1 test2>>test2

此指令錯誤!

問題:如果想在原檔案前面追加,怎麼辦?

tac test1 >>test3?(不行,這隻會把test1檔案倒着追加到test3後面)

我隻能想到最笨的一種方法:cat test1 test3 >test4 ,cat test4>test3 ;

三、

在linux中,常見的輸入輸出有如下幾種:

标準輸入: 輸入裝置為:鍵盤,檔案    并标記為 0

标準輸出: 輸出裝置為:螢幕,終端    并标記為 1

錯誤輸出: 輸出裝置為:螢幕,終端   并标記為  2

這樣我們就有機會把正确和錯誤的檔案分開顯示

比如 cat test1 test5 1>right.txt 2>error.txt

這樣由于test1存在 是以test1的内容會被輸入到right.txt中,而test5沒有建立,則執行cat test5指令時會報錯,則報錯的内容會被輸入到error.txt中。

cat error.txt

cat :test5:沒有那個檔案或目錄

當然也有通吃指令 &>

cat test1 test5 &>tongchi(這表示不管你是對是錯都輸入到此檔案中去)

追加">>"的使用,跟上述相同

五、“<”導入指令

gunzip <passwd.gz>passwd(将壓縮檔案 passwd.gz,傳遞給前面的解壓縮檔案去執行,然後重定向到指定檔案。)

這裡有個很出名的指令

dd if=/dev/zero of=linbs=1024 count=20000

這條指令是産生一個指定大小的檔案。/dev/zero是個僞檔案,是系統的零發生器。作用說白了就是往一個檔案裡不斷輸入零,讓檔案達到所規定的大小。有點注水豬肉的味道。

繼續閱讀