Linux bg コマンド
bgLinux/Unix システムにおいてジョブ制御(Job Control)に使用される中核コマンドの一つで、正式名称は "background" です。主な機能は、現在一時停止中のジョブをバックグラウンドに移して実行を継続することです。
基本概念
- フォアグラウンドジョブ:ターミナル内で実行され、入出力を占有しているプロセス
- バックグラウンドジョブ:ターミナルのバックグラウンドで実行され、入出力を占有しないプロセス
- ジョブ制御:フォアグラウンドとバックグラウンドのプロセスを管理する機能
コマンド構文
bg [作业号]
パラメータ説明
| パラメータ | 説明 |
|---|---|
| パラメータなし | 現在のジョブ(直近で一時停止されたジョブ)に作用します |
| ジョブ番号 | 操作対象のジョブ番号を指定します(jobsコマンドで確認できます) |
使用シナリオ
1. 一時停止したジョブを再開する
を使用するときCtrl+Zフォアグラウンドジョブを一時停止した後、使用できるbgコマンドでバックグラウンドでの実行を継続できます:
例
$ sleep 100 # 長時間実行するコマンドを起動する
^Z # Ctrl+Z を押して一時停止する
[1]+ Stopped sleep 100
$ bg # バックグラウンドで実行を継続させる
[1]+ sleep 100 &
^Z # Ctrl+Z を押して一時停止する
[1]+ Stopped sleep 100
$ bg # バックグラウンドで実行を継続させる
[1]+ sleep 100 &
2. ジョブ番号を指定して再開する
複数の一時停止中のジョブがある場合、ジョブ番号を指定できます:
例
$ jobs
[1]- Stopped vim file1.txt
[2]+ Stopped python script.py
$ bg 2 # 2番目のジョブをバックグラウンドで実行し続ける
[1]- Stopped vim file1.txt
[2]+ Stopped python script.py
$ bg 2 # 2番目のジョブをバックグラウンドで実行し続ける
3. fg コマンドと組み合わせて使用する
bgとfg(foreground)は互いに補完し合うコマンドです:
bg:ジョブをバックグラウンドで実行しますfg:ジョブをフォアグラウンドに戻して実行します
実際の応用例
シナリオ:開発における典型的なワークフロー
例
# 1. エディタを起動する
$ vim app.py
# 2. 一時的にテストを実行する必要がある(Ctrl+Z を押して vim を一時停止)
^Z
[1]+ Stopped vim app.py
# 3. テストスクリプトを実行する
$ python test.py
# 4. テスト完了後、エディタをバックグラウンドに戻して作業を続行する
$ bg 1
[1]+ vim app.py &
# 5. バックグラウンドジョブを確認する
$ jobs
[1]+ Running vim app.py &
$ vim app.py
# 2. 一時的にテストを実行する必要がある(Ctrl+Z を押して vim を一時停止)
^Z
[1]+ Stopped vim app.py
# 3. テストスクリプトを実行する
$ python test.py
# 4. テスト完了後、エディタをバックグラウンドに戻して作業を続行する
$ bg 1
[1]+ vim app.py &
# 5. バックグラウンドジョブを確認する
$ jobs
[1]+ Running vim app.py &
よくある質問(FAQ)
Q1: 現在どのようなジョブがあるか確認するには?
次のjobsコマンドを使用します:
例
$ jobs
[1]- Running sleep 100 &
[2]+ Stopped vim notes.txt
[1]- Running sleep 100 &
[2]+ Stopped vim notes.txt
Q2: bg と & の違いは何ですか?
&:コマンド起動時に直接バックグラウンドに配置するbg:すでに一時停止したジョブをバックグラウンドに配置する
Q3: ターミナルを閉じた後、bg のジョブはどうなりますか?
デフォルトでは、バックグラウンドジョブはターミナルが閉じられると終了します。保持したい場合は、次を使用できます:
例
nohup command & # または tmux/screen を使用する
上級テクニック
1. disown と組み合わせて使用する
ジョブをターミナルから切り離し、ターミナルを閉じても終了しないようにします:
例
$ sleep 1000
^Z
$ bg
$ disown %1
^Z
$ bg
$ disown %1
2. ジョブ番号のショートカットを使用する
%n:ジョブ番号 n%str:str で始まるジョブ%?str:str を含むジョブ
例
$ bg %sleep # "sleep" を含むジョブを再開する
まとめフローチャート

マスターするbgコマンドをマスターすると、Linux での作業効率が大幅に向上します。特に、複数のタスクを同時に処理する必要がある場合に有効です。組み合わせてjobs、fgとkillなどのコマンドと組み合わせることで、強力なジョブ制御機能を実現できます。
Linux コマンド大全