Linux下" >/dev/null 2>&1 "相關知識說明
一些終端命令或者程式中有">/dev/null 2>&1 "出現
0:表示鍵盤輸入(stdin)
1:表示標準輸出(stdout),系統預設是1
2:表示錯誤輸出(stderr)
command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 &
1)command:表示shell命令或者為一個可執行程式
2)>:表示重定向到哪裡
3)/dev/null:表示Linux的空裝置檔案
4)2:表示標準錯誤輸出
5)&1:&表示等同於的意思,2>&1,表示2的輸出重定向等於於1
6)&:表示後臺執行,即這條指令執行在後臺執行
1>/dev/null:表示標準輸出重定向到空裝置檔案,也就是不輸出任何資訊到終端,不顯示任何資訊。
2>&1:表示標準錯誤輸出重定向等同於標準輸出,因為之前標準輸出已經重定向到了空裝置檔案,所以標準錯誤輸出也重定向到空裝置檔案。
這條命令的意思就是在後臺執行這個程式,並將錯誤輸出2重定向到標準輸出1,然後將標準輸出1全部放到/dev/null檔案,也就是清空.
所以可以看出" >/dev/null 2>&1 "常用來避免shell命令或者程式等執行中有內容輸出。
I/O重定向
重定向 的作用是把一個命令的輸出結果傳送到另一個地方。
例如,使用
cat
命令檢視一個檔案,檔案內容會被列印到螢幕 :
$ cat foo.txtfoo bar baz
此時,螢幕就是命令的標準輸出( standard output 【stdout】)位置。
我們可以把檔案內容傳送到別的地方,例如,重定向到
output.txt
檔案中 :
$ cat foo.txt > output.txt$ cat output.txtfoo bar baz
其中第一個
cat
使用
>
把
stdout
的位置改為了另一個檔案。
再看一個例子,檢視一個不存在的檔案:
$ cat nop.txt > output.txtcat: nop.txt: No such file or directory
這裡的錯誤提示資訊為什麼顯示到了螢幕,而不是傳送到
output.txt
呢?
這就涉及到了另一個位置:標準錯誤輸出
standard error 【stderr】
。
$ cat nop.txt > output.txt
這個命令是把
stdout
定位到了檔案,而沒有定義
stderr
的位置,所以錯誤資訊顯示到了預設的位置:螢幕。
檔案描述符
Linux 中一切皆檔案,每個檔案都有一個檔案描述符,值是個正整數。
所以,標準輸出
stdout
與 標準錯誤輸出
stderr
也有自己的檔案描述符:
-
stdout 為 1
-
stderr 為 2
綜合
$ cat foo.txt > output.txt
實際上就是這樣的:
$ cat foo.txt 1> output.txt
就是把
stdout
指向了
output.txt
,
>
是
1>
的簡寫。
所以重定向錯誤資訊的輸出就應該是這樣的:
$ cat nop.txt 2> error.txt$ cat error.txtcat: nop.txt: No such file or directory
連個命令連起來就是:
$ cat foo.txt > output.txt 2> error.txt
同時重定向了標準輸出
stdout
與標準錯誤輸出
stderr
。
回顧開頭的那個命令:
ls foo > /dev/null 2>&1
現在基本上已經可以理解了:
-
stdout 重定向到
/dev/null
-
stderr 重定向到
&1
/dev/null
是空裝置的意思,重定向到空裝置,也就是輸出資訊不要了。
&1
表示:檔案描述符1 的值,也就是標準輸出的值,那麼
2>&1
就是 標準錯誤輸出 與 標準輸出 一樣,也是重定向到空裝置。
所以這個命令的意思是:正確資訊和錯誤資訊都不顯示了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2655080/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Difference between 2>&-, 2>/dev/null, |&, &>/dev/null, >/dev/null, 2>&1devNull
- 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的區別devNull
- >/dev/null 2>&1devNull
- Linux Shell 1>/dev/null 2>&1 含義LinuxdevNull
- linux下分割槽相關知識Linux
- [shell]>/dev/null 2>&1 的作用devNull
- > /dev/null 2>&1 什麼意思?devNull
- Linux口令相關知識Linux
- [轉] linux下 /dev/null與/dev/zero的區別LinuxdevNull
- react: 元件初識 && 生命週期 && 相關說明React元件
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- exp,imp相關工具說明
- shell 中的>/dev/null 2>&1 是什麼鬼?devNull
- Shell相關知識
- .net相關知識
- mobile相關知識
- rollback相關知識
- Linux 動態庫相關知識整理Linux
- 關於null值的小知識Null
- 【linux】Linux程式相關知識學習整理Linux
- Linux核心模組相關命令彙總及使用說明Linux
- Linux 檢視核心版本命令的相關說明Linux
- linux /etc/security/limits.conf的相關說明LinuxMIT
- mysql innodb相關引數說明MySql
- keycloak~token配置相關說明
- Fedora&Redhat下載資源及相關說明(轉)Redhat
- alter system set events相關知識(轉帖1)
- 任務2-web 相關知識瞭解Web
- alter system set events相關知識(轉帖2)
- Linux 動態庫相關知識總結Linux
- 音訊相關知識音訊
- Elasticsearch——search相關知識Elasticsearch
- Git相關知識點Git
- SSL相關知識科普
- Redis的相關知識Redis
- redis相關知識點Redis
- RPM相關知識
- 直播相關知識收集