このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】ジョブの遷移:bgコマンドとfgコマンド

ジョブの遷移に関する解説
Linuxシステムにおいて、ジョブの管理は重要なスキルの一つです。特に、シェル上で複数のタスクを効率的に実行・管理するためには、ジョブの遷移に関する理解が不可欠です。ジョブはフォアグラウンド(前面)とバックグラウンド(背景)の2つのモードで実行されることがあり、状況に応じてこれらのモード間でジョブを遷移させることができます。

jobs
コマンド
jobs
コマンドは現在シェルで管理されているジョブのリストを表示します。表示される情報には、ジョブの状態(実行中、停止中、終了)とジョブ番号が含まれます。
状態 | 説明 |
---|---|
Running(実行中) | ジョブが実行中です。 |
Stopped(停止中) | ジョブが一時停止されています。 |
Terminated(終了) | ジョブが終了しました(一度だけ表示されます)。 |
ジョブの遷移
ジョブはフォアグラウンド(前面)またはバックグラウンド(背景)で実行させることができます。以下にその遷移方法をまとめます。

操作 | 説明 |
---|---|
フォアグラウンド実行 | コマンドをそのまま実行すると、ジョブはフォアグラウンドで実行されます。 |
バックグラウンド実行 | コマンドの末尾に「&」を付けると、ジョブはバックグラウンドで実行されます。 |
フォアグラウンド → 停止 | 「Ctrl」+「Z」 キーを押すと、フォアグラウンドジョブが停止します。 |
停止 → バックグラウンド | bg コマンドを実行すると、停止中のジョブがバックグラウンドで再開されます。 |
バックグラウンド → フォアグラウンド | fg コマンドを実行すると、バックグラウンドジョブがフォアグラウンドで再開されます。 |
ジョブの終了 | フォアグラウンドジョブは「Ctrl」+「C」 キー、バックグラウンドジョブや停止中のジョブはkill コマンドで終了します。 |
bg
コマンド
bg
コマンドは停止中のジョブをバックグラウンドで実行するためのコマンドです。
【構文】bg ジョブ番号
bg ジョブ番号
fg
コマンド
fg
コマンドはバックグラウンドジョブをフォアグラウンドに戻すためのコマンドです。
【構文】fg ジョブ番号
fg ジョブ番号
ジョブの状態遷移の例
1.フォアグラウンド実行
・「sleep 1000
」コマンドを実行します。
フォアグラウンドでsleep
コマンドを実行します。
user01@ubuntu-vm:~$ sleep 1000
2.フォアグラウンドジョブを停止
「Ctrl」+「Z」
キーを押します。
フォアグラウンドで実行されているsleep
ジョブを停止します。
^Z # Ctrl」+「Z」キーを押す
[1]+ 停止 sleep 1000
3.停止中のジョブをバックグラウンドで再開
・「bg 1
」コマンドを実行します。
停止中のsleep
ジョブをバックグラウンドで再開します。bg
コマンドにジョブ番号を指定します。
user01@ubuntu-vm:~$ bg 1
[1]+ sleep 1000 &
4.バックグラウンドジョブをフォアグラウンドに戻す。
・「fg 1
」コマンドを実行します。
fg
コマンドにジョブ番号を指定して、バックグラウンドで実行されているsleep
ジョブをフォアグラウンドに戻します。
user01@ubuntu-vm:~$ fg 1
sleep 1000
5.フォアグラウンドジョブを停止
「Ctrl」+「Z」
キーを押します。
フォアグラウンドで実行されているsleep
ジョブを停止します。
^Z # Ctrl」+「Z」キーを押す
[1]+ 停止 sleep 1000
6.停止中のジョブを終了
・「kill %1
」コマンドを実行します。
kill
コマンドにジョブ番号を指定して、バックグラウンドで実行されているsleep
ジョブを終了させます。
user01@ubuntu-vm:~$ kill %1
[1]+ 停止 sleep 1000
まとめ
jobs
コマンドはジョブの状態を確認するために使用します。bg
コマンドとfg
コマンドを使用して、ジョブをバックグラウンドやフォアグラウンドに切り替えることができます。- フォアグラウンドジョブを終了するには
「Ctrl」+「C」
キー、バックグラウンドジョブや停止中のジョブを終了するにはkill
コマンドを使用します。
このように、シェルでジョブを管理することで、効率的に複数のタスクを処理することができます。