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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的區別devNull
- ">/dev/null 2>&1 "是什麼意思devNull
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- 【linux】Linux程式相關知識學習整理Linux
- keycloak~token配置相關說明
- .net相關知識
- Shell相關知識
- RPM相關知識
- Linux 相關2Linux
- SSL相關知識科普
- 音訊相關知識音訊
- Redis的相關知識Redis
- Elasticsearch——search相關知識Elasticsearch
- /proc的相關知識
- redis相關知識點Redis
- Git相關知識點Git
- mysql relay log相關引數說明MySql
- DBA_HIST相關檢視說明
- JS object.innerHTML的相關說明JSObjectHTML
- 相機成像相關知識總結
- 【Linux基礎知識】Linux目錄管理相關命令有什麼Linux
- 【Java】容器相關知識點Java
- ivar layout 相關知識點
- WEB相關背景知識(新手)Web
- RTMP協議相關知識協議
- Vlan相關知識雜記
- CT校正相關知識整理
- CAP 與 Raft 相關知識Raft
- LR模型相關知識點模型
- Linux各個版本相關說明Linux
- 信管知識梳理(三)軟體工程相關知識軟體工程
- React相關知識點:關於ReduxReactRedux
- 關於Python Number 相關的知識!Python
- Dubbo23_Dubbo相關配置說明6
- DEV cxgrid 自繪相關dev
- Linux 檔案系統與日誌分析的相關知識Linux
- Android進階知識:Handler相關Android
- 資料結構相關知識資料結構