天天看點

【精通Linux系列】Linux中的輸入輸出與錯誤重定向詳解

🚀 作者 :“大資料小禅”

🚀 專欄簡介 :本專欄主要分享Linux技術,會涉及到常用的Linux指令操作,常用的服務部應用署以及相關運維知識,還有一些Linux系統的深層解析,Linux系列專欄位址,歡迎小夥伴們訂閱!

🚀 個人首頁 :大資料小禅

🚀 粉絲福利 :加入小禅的大資料社群

🚀 歡迎小夥伴們 點贊👍、收藏⭐、留言💬

目錄

1:什麼是輸入重定向?

2:什麼是輸出重定向?

3:什麼是錯誤重定向?

在linux中一切皆檔案

1:輸入重定向: <

2:輸出重定向:> 代表覆寫寫入(之前123.txt裡面的内容會被覆寫掉) ; >> #代表追加寫入(在原有的基礎上繼續寫入)

3. 錯誤重定向:(錯誤重定向後要寫上2 ,标準輸出要加上的1可以省略)

幾個符号常用符号

通俗的講,輸入重定向就是把要輸入的資訊寫入到指定的檔案中去

通俗的講,輸出重定向就是把要輸出的資訊寫入到一個檔案中去,而不是将要輸出的檔案資訊輸出到控制台(顯示屏)

通俗的講,錯誤重定向就是把錯誤的資訊寫入到一個檔案中去

檔案描述符:

posix名稱   檔案描述符       用途

/dev/stdin    0           标準輸入

/dev/stdout   1           标準輸出

/dev/stderr   2           标準錯誤輸出

eg:wc -l < 123.txt  #将123.txt裡的輸入,會統計出行數
      
eg: cat >> 123.txt ;
 cat > 123.txt ; ls -lrt >123.txt(也可以将ls -lrt列出的内容輸出寫入到123.txt中) ; 
 echo '123455' > 123.txt(将12345輸入到123.txt)    
#ls -ltr(從底往高) ;
ls -lrt /home/ #列出home目錄下的所有東西
      

例如,你輸入llll,,因為這是個錯誤的指令,系統會輸出 -bash :llll :command not found 。這個時候輸入llll 2> 123.txt ,再檢視123.txt這個檔案的時候,裡面的内容就是-bash :llll :command not found 。

linux的錯誤輸出到無底洞:

eg:llll 2> 123.txt ;     llll 2> /dev/null                      
#/dev/null 無底洞#這樣輸入的話意思就是直接丢了這錯誤資訊顯示的東西,這個無底洞會直接把這個丢掉,不會占用磁盤。
      

&

#代表等同于的 意思 ls -lrt /boot /test 1>/root/123.txt 2>&1 #1是标準輸入

&>

#代表不分正确還是錯誤的意思 ls -lrt /boot /test &>123.txt #如果是沒有test這個目錄的話,ls-lrt這個指令就會錯誤列不出這個指令,那麼上面的指令就不管這個目錄在不在,這個符号都把他輸入到這個檔案夾。

|

#管道符 #cat /ect/passwd | grep root #這個管道符就是把passwd的内容列出來,之後grep出passwd裡面含有這列字元的清單。(grep回憶用法見最後一行)

;

#代表的是可以執行多條指令 cat /etc/passwd | grep root ; ls -lrt # 先執行cat /etc/passwd再執行 grep root

&&(與與符号)

llll && echo 123#前面的指令執行成功的話,後面的才能執行成功。前面的指令執行失敗的話後面的不可以執行。

||(兩個管道符 就是或) #符号前面的指令執行成功的話後面的指令不能執行

grep

grep ‘119.4.253.206’ 123.txt | wc -l #查找123.txt裡邊含有這串數字的清單,需要精準比對則需要加上 - 參數,後面加上 |wc -l就可以統計出這個數字行數。