/dev/null 表示空設備文件session
0 表示stdin標準輸入 測試
1 表示stdout標準輸出 io
2 表示stderr標準錯誤後臺
2>&1 這裏有兩種解釋:將標準錯誤重定向到標準輸出。這裏標準輸出已經重定向到了 /dev/null。那麼標準錯誤也會輸出到/dev/null能夠把/dev/null 能夠看做"黑洞". 終端
它等價於一個只寫文件. 全部寫入它的內容都會永遠丟失. 而嘗試從它那兒讀取內容則什麼也讀不到.偶爾也能夠把 & 在命令的最後加上,表示讓程序後臺執行。程序
ls 2>1測試一下,不會報沒有2文件的錯誤,但會輸出一個空的文件1;
ls xxx 2>1測試,沒有xxx這個文件的錯誤輸出到了1中;
ls xxx 2>&1測試,不會生成1這個文件了,不過錯誤跑到標準輸出了;
ls xxx >out.txt 2>&1, 實際上可換成 ls xxx 1>out.txt 2>&1;重定向符號>默認是1,錯誤和輸出都傳到out.txt了。重定向
使用&後臺運行程序:
結果會輸出到終端
使用Ctrl + C發送SIGINT信號,程序免疫
關閉session發送SIGHUP信號,程序關閉
例如:./XXX &
使用nohup運行程序:
結果默認會輸出到nohup.out
使用Ctrl + C發送SIGINT信號,程序關閉
關閉session發送SIGHUP信號,程序免疫
例如:nohup ./XXX
平日線上常用nohup和&配合來啓動程序:
同時免疫SIGINT和SIGHUP信號
例如:nohup ./XXX &di