Linux學習記錄--數據流重定向

數據流重定向


數據流可以分爲2種:

輸入數據流:以寫文件爲例,從鍵盤輸入的字符就輸入數據流

輸出數據流:以讀文件爲例,將文件內容顯示到屏幕上,顯示的內容就是輸出字符流

 

數量流重定向就是指改變數據流輸入的方式或輸出的介質。比如,輸入數據流可以是一個文件的內容,輸出數據流介質可以是文件而不單單的屏幕

 

對於命令行來說輸入數據流主要來自鍵盤,輸出數據流只要介質是屏幕。

同時輸出數據流又可分爲:

  正確輸出

  錯誤輸出

 

語法:

輸入數據流:使用<(覆蓋)或<<(累加)

正確輸出數據流:使用>(覆蓋)或>>(累加)

錯誤輸出數據流:使用2>(覆蓋)或2>>(累加)

 

說明:如果某些信息不想顯示到屏幕上也不保存到文件或設備上,可以講輸出數據流指向/dev/null

 

舉例1:正確輸出數據流(覆蓋)


[root@localhost ~]# ll > ll.file
[root@localhost ~]# vim ll.file
總計 225968
-rw------- 1 root root      1377 02-14 10:29 anaconda-ks.cfg
-rw-r--r-- 1 root root       207 03-05 11:00 bashrc-back
……..

 

舉例2:正確輸出數據流(累加)

[root@localhost ~]# ll /root >> ll.file
總計 225968
-rw------- 1 root root      1377 02-14 10:29 anaconda-ks.cfg
-rw-r--r-- 1 root root       207 03-05 11:00 bashrc-back
……..
總計 225972
-rw------- 1 root root      1377 02-14 10:29 anaconda-ks.cfg
-rw-r--r-- 1 root root       207 03-05 11:00 bashrc-back
……..

舉例3:正確輸出與錯誤輸出數據流

[root@localhost ~]# ll /root /root/error 
ls: /root/error: 沒有那個文件或目錄 =>錯誤信息
/root:           =>正確信息
總計 225972
-rw------- 1 root root      1377 02-14 10:29 anaconda-ks.cfg
-rw-r--r-- 1 root root       207 03-05 11:00 bashrc-back
………………..
[root@localhost ~]# ll /root /root/error >right.list 2>error.list 
[root@localhost ~]# cat right.list
/root:
總計 225984
-rw------- 1 root root      1377 02-14 10:29 anaconda-ks.cfg
-rw-r--r-- 1 root root       207 03-05 11:00 bashrc-back
……………..
[root@localhost ~]# cat error.list
ls: /root/error: 沒有那個文件或目錄

舉例4:正確與錯誤輸出數據流寫在一個文件中 

[root@localhost ~]# ll /root /root/error >all.list 2>&1 
[root@localhost ~]# cat all.list
ls: /root/error: 沒有那個文件或目錄
/root:
總計 225996
-rw-r--r-- 1 root root        45 03-05 13:02 all.list
-rw------- 1 root root      1377 02-14 10:29 anaconda-ks.cfg
………………..

 

 

命令執行的判斷依據(; && ||)

 

語法:

cmd;cmd:不考慮命令相關性連續額的命令執行

cmd1&& cmd2:若cmd1執行完畢且正確,則執行cmd2

            若cmd1執行錯誤則不執行cmd2

cmd1|| cmd2:若cmd1執行完畢且正確,則不執行cmd2

            若cmd1執行完畢且爲錯誤,則執行cmd2


 

 

 

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