在 linux 中,jobs、bg 和 fg 命令可協助管理后臺任務。1. jobs 用于查看當前終端中暫停或后臺運行的任務;2. bg %任務號 可將指定任務放至后臺運行,默認操作最近任務;3. fg %任務號 將后臺任務帶回前臺,默認亦操作最近任務。注意:僅限當前 shell 有效,交互式程序可能無法正常后臺運行,關閉終端將終止任務。
在 linux 中,如果你經常需要同時運行多個任務,比如下載文件、編譯代碼或者運行腳本,你可能會希望某些任務在后臺運行,騰出終端繼續做其他事情。這時候,jobs、bg 和 fg 這幾個命令就能派上用場了。
查看當前后臺任務:jobs 命令
當你在終端執行一個任務時,按下 Ctrl+Z 可以暫停它。此時你可以選擇讓它繼續在前臺運行,或者放到后臺去。但在這之前,你想知道有哪些任務已經停下了,這時候就用得上 jobs 命令。
輸入:
jobs
系統會列出當前 shell 會話中所有已停止或正在后臺運行的任務。輸出大概是這樣的:
[1] Stopped sleep 300 [2]- Stopped vi notes.txt
- [1] 是任務編號。
- Stopped 表示這個任務目前是暫停狀態。
- 后面是任務的具體命令。
小提示:只有在當前終端窗口啟動的任務才會被 jobs 顯示出來,不是全局的進程管理工具。
把任務放到后臺運行:bg 命令
當你暫停了一個任務(比如按了 Ctrl+Z),你可以用 bg 命令把它丟到后臺繼續運行。使用方法如下:
bg %任務號
例如:
bg %1
這表示讓任務 1 在后臺恢復運行。如果沒有指定任務號,默認操作最近的一個任務。
常見操作步驟:
- 按下 Ctrl+Z 暫停當前任務
- 輸入 bg 讓它繼續在后臺跑
- 然后你就可以繼續在終端干別的事了
需要注意的是,有些交互式任務(比如 vi)放到后臺可能無法正常運行,因為它們依賴標準輸入輸出。
把后臺任務帶回前臺:fg 命令
如果你有一個任務已經在后臺跑了,突然想看看它進展如何,可以用 fg 命令把它“拉回”前臺。
語法類似 bg:
fg %任務號
例如:
fg %2
這樣任務 2 就會重新占據你的終端窗口。和 bg 一樣,如果不加參數,默認處理最近的那個任務。
一些實用技巧:
- 如果你不確定哪個任務在做什么,先用 jobs 看一眼
- 想切換任務?暫停當前任務,用 bg 放后臺,再用 fg 切回來
- 不小心把某個任務關掉了?試試 history 回找之前的命令重跑一遍
注意事項與小細節
這幾個命令雖然簡單,但也有一些容易忽略的地方:
- 它們只對當前 shell 會話有效。一旦關閉終端,這些任務也會被終止。
- 如果你想讓任務在終端關閉后依然運行,可以考慮搭配 nohup 或者 disown 使用。
- 多個任務在后臺運行時,記得留意資源占用,避免系統卡頓。