Linux標准輸入、標准輸出、錯誤輸出


Linux中的輸入文件、輸出文件、錯誤輸出

文件名稱 文件描述符
標准輸入 0 (默認是鍵盤)
標准輸出 1 (默認是屏幕)
標准錯誤 2 (默認是屏幕)

輸出重定向

Linux中&表示后台運行,>表示輸出重定向

命令 描述
command > file 標准輸出重定向到文件中,文件不存在時會自動創建再寫入,文件存在時會先刪除文件中的內容再寫入
command >> file 標准輸出重定向到文件中,文件不存在時會自動創建再寫入命令產生的標准輸出,文件存在時不改變原文件內容寫入再寫入命令產生的標准輸出
command > file 2>&1 標准輸出和錯誤輸出重定向到文件中,若文件不存在則會新建文件再寫入,若文件存在會先刪除文件中的原本內容再寫入(2>&1表示標准錯誤以后台模式重新向到標准輸出中)
command >> file 2>&1 標准輸出和錯誤輸出重定向到文件中,若文件不存在,則會新建文件再寫入;若文件存在,則會在不改變文件原本內容的情況下再寫入文件
command 2 > file 標准錯誤重定向到文件中,若文件不存在則會新建文件再寫入,若文件存在會先刪除文件中的原本內容再寫入
command 2 >> file 標准錯誤重定向到文件中,若文件不存在,則會新建文件再寫入;若文件存在,則會在不改變文件原本內容的情況下再寫入文件

輸入重定向

<表示輸入重定向

命令 描述
command < file1 > file2 command命令以file1為標准輸入,以file2為標准輸出
command < file command命令以file為標准輸入
command << del command以鍵盤為標准輸入,直到遇到del結束

/dev/null

/dev/null在Linux中充當黑洞的作用,任何寫入到/dev/null中的內容都會被自動刪除

# 將命令產生的錯誤重定向到/dev/null,即命令執行不會在屏幕上顯示任何錯誤信息
command 2 > /dev/null
# 將命產生的日志重定向到文件中,將命令產生的錯誤信息寫入到/dev/null,以此達到日志寫入文件,錯誤直接忽略,屏幕不會顯示任何信息
command > file 2>&1
nohup command > file 2>&1 &

nohup

nohup表示不掛斷地執行命令

通常我們在執行Linux命令時會使用&使命令在后台運行而不影響terminal的正常使用,而&存在一個問題:關閉terminal會導致使用&的命令中斷,這時就需要nohup command &,最直接簡單的命令就是:

nohup command > file &

命令執行,正常日志會自定寫入到file中,但如果有錯誤信息,則錯誤信息會直接打印到屏幕上

nohup command > file 2>&1 &

命令執行,生成的正常日志和錯誤信息會記錄在file中

jobs

查看使用nohup命令提交的job

fg %n

關閉某個job


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM