新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での作業効率がぐんとアップします💪
一見地味な機能ですが、実はサーバー管理や開発現場で超重要なテクニックなんです!