
新Linux入門|jobs・fg・bgコマンドで学ぶジョブ制御の仕組みと実践
💼 jobs・fg・bgコマンドで学ぶジョブ制御の仕組みと実践
ターミナルで作業していて、「コマンドを実行したら画面が使えなくなった😅」とか、「長い処理を裏で動かしたい💡」と思ったこと、ありませんか?
そんなときに役立つのが、ジョブ制御(Job Control) の考え方です✨
Linuxでは、コマンドの実行(=プロセス)をフォアグラウンド(表) と バックグラウンド(裏) に分けて動かすことができます。
そして、これを自由に切り替えたり、確認したりするための便利なコマンドが 、
👉 jobs, fg, bg です!
ここでは 、ジョブの開始から停止、再開までの一連の流れをやさしく解説します🌸

🧠 そもそもジョブとは?
「ジョブ(job)」とは、ユーザーが起動した処理のひとまとまりを指します。
例えば、sleep 100 のような単一コマンドも1つのジョブですが、
ls | grep txt のようにパイプでつながった複数のコマンドも、1つのジョブとして扱われます。
| 用語 | 説明 | 例 |
|---|---|---|
| ジョブ(job) | ユーザー視点で見た「実行中の処理」 | sleep 100 & |
| プロセス(process) | OSが管理する実行単位 | 各ジョブに含まれる1つ1つの動作 |
| ジョブID(%1など) | シェル内での識別番号 | %1, %2 など |
| プロセスID(PID) | OS全体での識別番号 | 例: 3312 |
🏃♀️バックグラウンドでジョブを開始する
ジョブを裏で動かすには、コマンドの末尾に & をつけます。
この「&」が、“バックグラウンドで実行する” の合図です。
実行例
[suzuki@AlmaLinux ~]$ sleep 1000 &
[1] 3331💬ポイント
ここで表示される「[1]」はジョブ番号(%1)、「3331」はプロセスIDです。
この状態で他のコマンドを入力しても、問題なく実行できます✨
⏸️フォアグラウンドで実行中のジョブを一時停止する
実行中のコマンドを一時停止したいときは、Ctrl + Z を押します。
実行例
[suzuki@AlmaLinux ~]$ sleep 1000
^Z
[1]+ 停止 sleep 1000
[suzuki@AlmaLinux ~]$💡ポイント
「^Z」は Ctrl + Z を押したことを示しています。
この操作でジョブが「停止(Stopped)」状態になります。
🔁一時停止したジョブをバックグラウンドに再開する
停止したジョブを再開し、裏で進めたいときは bg コマンドを使います。
コマンド書式
bg [%ジョブ番号]使用例
[suzuki@AlmaLinux ~]$ bg %1
[1]+ sleep 1000 &💬ポイント
これで sleep コマンドはバックグラウンドに戻り、実行が再開されます🌙
💡バックグラウンドのジョブをフォアグラウンドに戻す
今度は逆に、バックグラウンドで実行中のジョブを前面に出したい場合です。
fg コマンドを使えば、ジョブを再び操作できる状態に戻せます。
コマンド書式
fg [%ジョブ番号]使用例
[suzuki@AlmaLinux ~]$ fg %1
sleep 1000💬ポイント
fg を実行すると、ジョブ1がフォアグラウンドに移動し、完了まで端末が専有されます。
🧾実行中のジョブの状態を確認する
今どんなジョブが動いているのか確認したいときは、jobs コマンドを使います。
コマンド書式
jobs [オプション]主なオプション
| オプション | 説明 |
|---|---|
| -l | プロセスIDも表示 |
| -r | 実行中のジョブのみ表示 |
| -s | 停止中のジョブのみ表示 |
使用例
[suzuki@AlmaLinux ~]$ jobs
[1]+ 実行中 sleep 1000 &💬ポイント
ジョブの状態が「実行中(Running)」または「停止中(Stopped)」として表示されます。
「+」は直前に動かしたジョブ、「-」はそのひとつ前のジョブを表しています。
⚙️複数のジョブを同時に管理する
ジョブ制御の強みは、複数のタスクを並行して処理できる ことです。
使用例
[suzuki@AlmaLinux ~]$ sleep 1000 &
[1] 3331
[suzuki@AlmaLinux ~]$ sleep 2000 &
[2] 4034
[suzuki@AlmaLinux ~]$ jobs
[1]- 実行中 sleep 1000 &
[2]+ 実行中 sleep 2000 &💡ポイント
「+」は現在のアクティブジョブ、「-」は直前のジョブを表します。
このように複数のジョブを並行して管理できるのが、Linuxの強みです✨
🧭 jobs・fg・bgコマンドのまとめ表
| コマンド | 意味 | 主な用途 | 使用例 |
|---|---|---|---|
| jobs | 実行中・停止中のジョブ一覧を表示 | 状態確認 | jobs -l |
| fg | バックグラウンドジョブを前面で再開 | フォアグラウンドに移動 | fg %1 |
| bg | 停止中ジョブを裏で再開 | バックグラウンドに移行 | bg %1 |
💬ポイント
この3つをセットで覚えることで、ターミナル操作が一気にスマートになります✨

🌈 まとめ
- jobs:ジョブの状態を確認する
- fg:バックグラウンドジョブをフォアグラウンドに戻す
- bg:停止中のジョブをバックグラウンドで再開する
これらを組み合わせることで、Linuxでの作業効率がぐんとアップします💪
一見地味な機能ですが、実はサーバー管理や開発現場で超重要なテクニックなんです!
