1.同型別的還有比較老screen命令,tmux功能更多
2.解決的問題
比如 正在 終端ssh連線到伺服器執行一個安裝或打包任務,過程很長,期間不能中斷,情況1:你想執行其他命令需要再開一個終端
情況2:網路不穩定斷聯,任務會失敗,就需要重新執行;
情況3:你到點下班了,任務還在執行,晚上公司會斷電,所以你電腦也要關,關閉了終端,前臺執行的任務就沒法繼續
3.將任務置於後臺的一些命令和方法,只能在當前session,斷開或關閉session終端後臺任務也會關閉,比如:
執行命令時,在命令後加 &,命令就會後臺執行,例子: sleep 600 &
命令已經在執行中,則按ctrl + Z 鍵,則命令轉到後臺並暫停,用jobs -l可檢視任務和編號,用 bg %編號 將任務置於後臺,用 fg %任務編號將任務轉到前臺
4.真正可以實現需求的命令或工具
4.1 nohup xxxx &
nohup 含義即忽略終端推出時給本次session所有任務傳送的終止訊號,非常簡單直接,缺點就是關閉終端,下次再連線只能從 程序裡查詢和操作任務了
4.2 screen
一個工具,歷史久遠,是第一批GUN專案裡的,所以老的發行版基本都帶,新的有的不帶,只是上面需求已經夠用
4.3 tmux(推薦),與screen類似,但是功能更多,使用更友好,進入後在底部會有一個底欄提示當前所在的 session,window(視窗),pane(窗格)
常用命令:
新建會話: tmux new -s <session-name>
分離會話:tmux detach 或者快捷鍵:ctrl+b 鬆開 再按d
檢視當前所有會話: tmux ls
-------------------------------------------------------------------------------
接入會話: tmux attach(或者a) -t <session-name>(或者編號如0)
殺死會話:tmux kill-session -t <session-name>
-----------------------------------------------------
上面兩個我一般不用,而是直接 tmux a,連線上次最後關閉的會話,然後使用快捷鍵 ctrl+b 鬆開再按 w,即展示所有視窗,再使用方向鍵選擇需要進入的會話或視窗,如果需要關閉會話使用ctlr+d逐個關閉所有視窗
建立新視窗:ctrl +b 鬆開再按 c
視窗重新命名:ctrl+b 鬆開再按 ,(逗號)
重新命名會話:ctrl+b $
--------------------
窗格相關:
劃分左右窗格:ctrl+b %
劃分上下兩個窗格:CTRL+b "
參考文章:
Linux :忘記使用nohup該如何補救 - 羅西的思考 - 部落格園
Linux配置程式後臺執行(前後臺來回切換)_linux後臺執行程式-CSDN部落格
程序、前後臺、服務與例行性任務 - Linux 101
Tmux 使用教程 - 阮一峰的網路日誌
Tmux使用手冊 | louis blog