重定向,管道符,黑洞文件
阿新 • • 發佈:2018-09-04
出現 參數錯誤 讀取輸入 9.png 系統 mage 什麽 標準 黑洞
輸出重定向:
將命令的正常輸出結果保存到指定的文件,而不是直接顯示到屏幕上
語法:
- 如果文件不存在,則會創建
> 文件名
表示將標準輸出的內容,覆蓋寫到後面的文件中
>> 文件名
表示將標準輸出的內容,追加寫到後面的文件中
將內核的版本信息追加到1.txt文件中
輸入重定向
將命令中接受輸入的路徑由默認的鍵盤改為其他文件
EOF
本意是End Of File, 表示到了文件末尾,通常與 << 結合使用, 可以理解為分界符
- 標記符可以使EOF,也可以是ccc,ddd
cat > 1.txt << ccc 之後可以輸入內容,直到輸入ccc,結束輸入
- 可以看到,文件名前面是 > 是覆蓋寫入, >> 是追加寫入
錯誤重定向
將命令執行過程中出現的錯誤信息(選項或參數錯誤)保存到指定的文件,而不是直接顯示到顯示器
- 錯誤信息保存到文件
操作符 錯誤重定向符號: 2> 標準輸入: 1< 或者簡寫 < 標準輸出: 0> 或者簡寫 >
- 2指的是標準錯誤輸出的文件描述符(標準的輸入和輸出省略了1和0)
在實際應用中,錯誤重定向可以用來收集執行的錯誤信息, 為排錯提供依據 對於shell腳本還可以將無關緊要的錯誤信息重定向到空文件/dev/null,保持腳本輸出的簡介
將錯誤顯示的內容和 正確顯示的內容分開
接下來查看兩個目錄
還可以進行簡寫,將正確的信息 和 錯誤的信息追加到兩個文件
null黑洞,
把/dev/null看做黑洞,所有寫入他的內容都會永遠丟失,而嘗試從它哪裏讀取內容則會什麽都不會讀到
然而/dev/null對命令行和腳本非常有用
zeor空文件
在類UNIX操作系統中,/dev/zero是一個特別的文件,當你讀他的時候,他會提供無限的空字符
典型的用法就是產生一個特定大小的空白文件
使用dd命令產生一個50M的文件 參數 if 代表輸入文件,如果不指定if,默認就會從stdin中讀取輸入 of 代表輸出文件,如果不指定of,默認就會將stdout作為默認輸出 bs 代表字節為單位的快大小 count 代表被復制的塊數
能查看到文件的大小
但是不能顯示文件的信息,因為沒有內容
&> 和 >&符號
- &表示等於的意思
1>&2 將標準輸出重定向到標準錯誤 2>&1 將標準錯誤重定向到標準輸出
上圖的no.txt文件中多了兩個錯誤文件,是因為追加到文件的
將正確結果和錯誤結果放到一個文件中(簡寫)
互動:工作中shell腳本中的 >/dev/null 2>&1 是什麽意思
將標準輸出和錯誤輸出全部重定向到/dev/null中,也就是將產生的所有信息丟棄
管道 | 的使用
- 管道命令只處理前一個命令正確輸出,不處理錯誤輸出
- 管道右面的命令,必須能夠接受標準輸入流才行
- 關道符可以吧兩條命令連起來,可以鏈接多個命令使用
ps -aux | grep sshd
tee
- 讀取標準輸入的數據,並將其內容輸出成文件
-a 內容追加到給定的文件 而非覆蓋
磁盤使用信息 df -h 將磁盤使用的信息寫入到文件 df -h | tee disk.log 將磁盤使用的信息追加寫入到文件 df -h | tee -a disk.log
重定向,管道符,黑洞文件