このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習53

新Linuxコマンド演習53 概要
「新Linuxコマンド演習53」では、Linuxにおけるフォアグラウンドジョブとバックグラウンドジョブの違いを実際のコマンド操作で学びます。
ジョブとは、シェルから実行される一連のプロセスのことです。
通常、ターミナル上で実行するコマンドは「フォアグラウンドジョブ」として動作しますが、
コマンドの末尾に「&」をつけることで、ユーザーの操作を妨げずに「バックグラウンドジョブ」として実行することができます。
この演習では、sleepコマンドやfirefoxコマンドを使ってジョブの挙動を確認しながら、
ターミナルでの実行制御を体験します。

フォアグラウンドとバックグラウンドの違い
| 種類 | 説明 | 特徴 |
|---|---|---|
| フォアグラウンドジョブ | ユーザーが実行したコマンドが完了するまで、ターミナル操作がブロックされる。 | コマンド終了を待つ必要がある。 |
| バックグラウンドジョブ | コマンドの実行をターミナルに戻さず、裏で処理を継続する。 | 複数のジョブを同時に実行可能、末尾に「&」を付ける。 |
表の説明
Linuxでは、1つのシェルで複数のジョブを並行して扱うことができます。
フォアグラウンド実行ではターミナルがブロックされますが、
バックグラウンド実行を使うとターミナルを使い続けることが可能になります。
sleep コマンドの概要
| コマンド | 主な目的 | 主なオプション | 説明 |
|---|---|---|---|
| sleep | 指定した時間だけ処理を停止する。 | 例:sleep 10 | 指定秒数だけ待機するコマンド。ジョブ制御の例としてよく使用される。 |
表の説明
sleep コマンドは引数に与えた秒数だけ何もせずに待機します。
たとえば sleep 10 は10秒間の待機を意味します。
このような「時間のかかる処理」を題材にして、バックグラウンドジョブの動作確認を行うのが効果的です。
演習問題+模範解答例
演習01:フォアグラウンドでsleepコマンドを実行する
問題
フォアグラウンドで sleep コマンドを実行して、10秒間の待機中はターミナルが操作できないことを確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ sleep 10解説
フォアグラウンドで実行されるジョブは、終了するまでターミナルを占有します。
このため、sleep 10 実行中は他のコマンドを入力できません。
10秒経過後にプロンプトが戻り、次の操作が可能になります。
演習02:バックグラウンドでsleepコマンドを実行する
問題
バックグラウンドで sleep コマンドを実行して、プロンプトがすぐに返ることを確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ sleep 10 &
[1] 3905解説
コマンド末尾の「&」を付けると、ジョブがバックグラウンドで実行されます。
このとき [1] はジョブ番号、3905 はプロセスIDを示します。
ジョブ番号はシェル単位で管理され、jobs コマンドで確認可能です。
バックグラウンドジョブは、実行中でもターミナルを使って他のコマンドを実行できます。
演習03:フォアグラウンドでfirefoxを実行する
問題
firefox をフォアグラウンドで起動し、ターミナルの操作がブロックされることを確認してください。
その後、firefoxを閉じて、プロンプトが戻ることを確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ firefoxfirefoxのウィンドウが起動し、ターミナルではプロンプトが表示されなくなります。

firefoxを手動で閉じると、以下のように再びプロンプトが表示されます。
[suzuki@AlmaLinux ~]$解説
GUIアプリケーション(例:firefox)をフォアグラウンドで実行すると、
そのプロセスが終了するまでシェルが待機状態になります。
長時間実行するプログラムを起動する際は、バックグラウンド実行(firefox &)を使うと便利です。
まとめ
「新Linuxコマンド演習53」では、フォアグラウンドジョブとバックグラウンドジョブの違いを体験しました。
学習ポイント
- sleep 10 → フォアグラウンドで実行(操作待ち)
- sleep 10 & → バックグラウンドで実行(同時作業可能)
- GUIアプリ(例:firefox)はフォアグラウンド実行でターミナルが使用できなくなる。
- ジョブ番号 [1] はシェルごとに、プロセスID(PID)はシステム全体で一意
💡 補足
ジョブ管理の次のステップとして、jobs、fg、bg コマンドを使うと、
バックグラウンドジョブの一覧表示・再開・フォアグラウンド復帰が行えます。
