カテゴリ: Linux基礎 更新日: 2026/05/04

bgコマンドとfgコマンドの違いを初心者向けに解説!Linuxのプロセス管理入門

bgコマンドとfgコマンドの違いを理解する
bgコマンドとfgコマンドの違いを理解する

先生と生徒の会話形式で理解しよう

生徒

「先生、Linuxでプログラムを実行するとき、途中で止めたりバックグラウンドで動かしたりできるって聞いたんですが、どういうことですか?」

先生

「それはプロセス管理の話です。Linuxでは、実行中のプログラムを前面(フォアグラウンド)で動かすか、裏側(バックグラウンド)で動かすかを切り替えることができます。ここで使うのがbgfgコマンドです。」

生徒

「えっと、バックグラウンドって具体的にはどういうイメージですか?」

先生

「たとえば、料理をしながら音楽を聴くイメージです。料理がメインで、音楽は裏で流れている。Linuxのバックグラウンドジョブも同じで、他の作業をしながらプログラムを動かせます。」

1. フォアグラウンドとバックグラウンドの違い

1. フォアグラウンドとバックグラウンドの違い
1. フォアグラウンドとバックグラウンドの違い

Linuxでプログラムを実行すると、通常はターミナル上で操作できるフォアグラウンドで動きます。この状態では、プログラムが終わるまで次のコマンドは入力できません。逆に、バックグラウンドで動かすと、プログラムが動いている間もターミナルで別の作業ができます。

コマンド例として、長時間動くプログラムをバックグラウンドで実行するには、実行時に&を使います。


sleep 30 &
[1] 12345

上記の例では、sleepコマンドが30秒間バックグラウンドで実行され、プロセス番号12345が割り当てられました。

2. bgコマンドとは?

2. bgコマンドとは?
2. bgコマンドとは?

bgコマンドは、一時停止(中断)されているジョブをバックグラウンドで再開するためのコマンドです。プログラムを一時停止するにはCtrl+Zを使います。


sleep 60
^Z
[1]+  Stopped  sleep 60

この状態でbgを実行すると、ジョブはバックグラウンドで動き始めます。


bg %1
[1]+ sleep 60 &

これで、ターミナルを使いながらsleep 60が裏で実行され続けます。

3. fgコマンドとは?

3. fgコマンドとは?
3. fgコマンドとは?

fgコマンドは、バックグラウンドで動いているジョブをフォアグラウンドに戻して操作するためのコマンドです。たとえば、先ほどのsleep 60をフォアグラウンドで再度操作したいときに使います。


fg %1
sleep 60

フォアグラウンドに戻ると、ジョブはターミナルの制御下で動作するため、必要に応じてCtrl+Cで中断できます。

4. jobsコマンドでジョブを確認する

4. jobsコマンドでジョブを確認する
4. jobsコマンドでジョブを確認する

どのジョブがバックグラウンドで動いているかを確認するにはjobsコマンドを使います。


jobs
[1]+  Running                 sleep 60 &

ここで表示された番号(例: %1)を使ってfgbgを操作できます。

5. bgとfgの使い分けのイメージ

5. bgとfgの使い分けのイメージ
5. bgとfgの使い分けのイメージ

簡単に言うと、

  • bg: 一時停止したジョブをバックグラウンドで再開する。ターミナルを使える状態でプログラムを裏で動かす。
  • fg: バックグラウンドジョブをフォアグラウンドに戻す。ターミナルでジョブを直接操作したいときに使う。

つまり、bgは「裏で走らせる」、fgは「前に出す」というイメージです。

6. 実践例:バックグラウンドでダウンロードをしながら作業する

6. 実践例:バックグラウンドでダウンロードをしながら作業する
6. 実践例:バックグラウンドでダウンロードをしながら作業する

たとえば、大きなファイルをダウンロードしながら別の作業をしたい場合があります。このときwgetコマンドとbgを組み合わせます。


wget http://example.com/largefile.zip
^Z
bg %1
[1]+ wget http://example.com/largefile.zip &

これでダウンロードをバックグラウンドで進めながら、ターミナルで別のコマンドを実行できます。

7. 複数ジョブの管理

7. 複数ジョブの管理
7. 複数ジョブの管理

複数のジョブがある場合、番号を指定して操作します。


jobs
[1]-  Running                 sleep 60 &
[2]+  Stopped                 sleep 120

fg %2
sleep 120

このように、ジョブ番号を使えば複数のプログラムを自由にフォアグラウンド・バックグラウンドで切り替えられます。

8. Ctrl+Z, Ctrl+Cとの組み合わせ

8. Ctrl+Z, Ctrl+Cとの組み合わせ
8. Ctrl+Z, Ctrl+Cとの組み合わせ

ここで覚えておくと便利な操作は

  • Ctrl+Z:ジョブを一時停止してバックグラウンド操作可能にする
  • Ctrl+C:ジョブを終了する

たとえば、フォアグラウンドで実行中のsleep 100を一時停止して裏で動かす場合、


sleep 100
^Z
bg %1
[1]+ sleep 100 &

ターミナルで他の作業を続けながら、ジョブは裏で動き続けます。

9. bgとfgを使いこなすコツ

9. bgとfgを使いこなすコツ
9. bgとfgを使いこなすコツ

バックグラウンドとフォアグラウンドを自在に切り替えると、Linuxでの作業効率が大幅に上がります。特に長時間処理や複数タスクを同時に実行するときに便利です。ポイントは、

  • ジョブ番号を確認する jobs
  • 必要に応じて fg で操作
  • 不要なジョブは kill で終了

初心者でも、これらの操作を順を追って覚えれば、Linuxで複数プロセスを管理できるようになります。

まとめ

まとめ
まとめ

本記事では、Linuxのプロセス管理におけるbgコマンドとfgコマンドの使い方を初心者向けに解説しました。まず、フォアグラウンドとバックグラウンドの違いを理解することが重要です。フォアグラウンドではプログラムがターミナルの制御下で動作し、他のコマンド入力はできません。一方でバックグラウンドでは、プログラムを裏で実行しながらターミナルで別の作業を進めることができます。&を使ったバックグラウンド実行やCtrl+Zでの一時停止、そしてbgコマンドでの再開方法を紹介しました。また、fgコマンドを使えばバックグラウンドで動いているジョブをフォアグラウンドに戻し、直接操作や中断が可能です。複数ジョブの管理やjobsコマンドでのジョブ確認も重要なポイントで、ジョブ番号を指定して柔軟に操作できることも解説しました。さらに、Ctrl+Cによるジョブの終了や、長時間の処理を並行して行う方法も理解しておくと、Linuxでの作業効率が大幅に向上します。初心者がLinuxを学ぶ際には、まずこの一連の流れを実際にターミナルで試してみることが最も効果的です。

サンプルコマンドまとめ


# 長時間ジョブをバックグラウンドで実行
sleep 120 & 
[1] 23456

# 一時停止したジョブをバックグラウンドで再開
sleep 300
^Z
bg %1
[1]+ sleep 300 &

# バックグラウンドジョブをフォアグラウンドで操作
fg %1
sleep 300

# 現在のジョブ確認
jobs
[1]+  Running                 sleep 300 &
[2]-  Stopped                 sleep 120

これらの操作を組み合わせることで、複数のジョブを効率的に管理できるようになります。

先生と生徒の振り返り会話

生徒

「先生、今日はbgfgの違いを学びましたけど、バックグラウンドとフォアグラウンドってすごく便利ですね。ターミナルで他の作業をしながらプログラムが実行できるのがいいです。」

先生

「その通りです。特に複数ジョブを同時に管理したり、長時間処理を並行して進める場合に役立ちます。ポイントはジョブ番号の管理とjobsコマンドでの確認です。」

生徒

「なるほど。ジョブ番号を確認してfgbgで操作すれば、途中で止めたジョブも再開できるんですね。」

先生

「そうです。さらにCtrl+Zで一時停止、Ctrl+Cで終了も覚えておくと、作業の自由度が広がります。Linux初心者でも、まずは短いジョブで練習して慣れていくことが大切です。」

生徒

「今日はバックグラウンドジョブの管理の流れがよくわかりました。これで長時間の処理を別作業と並行して実行できそうです。」

先生

「その感覚が身につけば、Linuxでの作業効率は格段に上がります。ぜひ色々なコマンドと組み合わせて試してみてください。」

カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
テキスト処理とフィルタ
tacコマンドの基本!ファイル内容を逆順に表示する方法
New4
テキスト・データ処理
awk -fオプションの使い方を完全ガイド!初心者でもわかるLinuxテキスト処理の基本
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門