1、輸入輸出重定向可分為:
标準輸入:由鍵盤輸入
标準輸出:由螢幕輸出
錯誤輸出:與标準輸出相同,但是他們是具有各自的資料流,各占一個資料流
通常用辨別符對位:标準輸入用0,标準輸出用1,錯誤輸出用2。
重定向:顧名思義就是将标準的輸入和輸出位置重新定向
覆寫重定向:> 每一次的輸出都要覆寫源檔案中的内容
追加重定向:>>
錯誤重定向:2>
錯誤追加重定向:2>>
整合錯誤和标準輸出:2>&1
輸入重定向:<
追加輸入重定向:<<
在/dev/null 這個檔案是一個虛拟的軟體裝置,用于存放指令執行的結果,而所有的結果進入後都将不在存在!
Linux中各個指令的執行結束後,無論成功與否都有一個退出碼:成功執行是:0;錯誤執行:1-255;不同的錯誤類型具有不同的退出碼;
擷取剛剛執行指令的退出碼用到指令:#echo $?
例子:
1、ll /ddev/null 2> /dev/null 這裡我将dev輸入錯誤為ddev是以這個指令會執行錯誤而這時我将這個錯誤資訊輸入到/dev/null中!
2、ls /home/ >> /tmp/a.txt 這裡我将/home下中的所有檔案名追加寫入到/tmp/a.txt檔案中!
3、cat > /tmp/b.txt << END 這裡我将cat的内容重定向寫入到/tmp/b.txt檔案中,并且/tmp/b.txt事先不存在哦,當輸入END時結束輸入!
2、管道:把前一個指令的輸出通過一個内部的用到送給後一個指令,并且後一個指令将其作為輸入。用"|"(豎線)來表示。
例如:
1、#ls /etc | more 将/etc下所有的檔案清單用more來打開
2、#ifconfig eth0 | grep "inet addr:" | cut -d: -f2 | cut -d' ' -f1 檢視eth0的網卡資訊,将其送個grep,搜尋出存在"inet addr:"的一行内容,在送個cut,以:為分隔符切開取第二段結果在送個cut,以空格為分隔符切開,取其第一段,最後輸出的就是網卡eth0的IP位址。
3、ls /var | tee /tmp/test/a.txt 将/var目錄下的所有檔案名寫入到/tmp/test/a.txt檔案中
* tee 把一個指令的執行結果顯示到标準輸出并且寫入到檔案中
本文轉自 向陽草米奇 51CTO部落格,原文連結:http://blog.51cto.com/grass51/774404,如需轉載請自行聯系原作者