重定向,管道符,黑洞文件

輸出重定向:

將命令的正常輸出結果保存到指定的文件,而不是直接顯示到屏幕上

語法:

  • 如果文件不存在,則會創建
 > 文件名
表示將標準輸出的內容,覆蓋寫到後面的文件中
 >> 文件名
表示將標準輸出的內容,追加寫到後面的文件中

 

 

將內核的版本信息追加到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
  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章