Categories: linux

停止中のジョブを簡単に再開する「fg」コマンドの使い方を徹底解説!

Linuxを使っていて、作業中のプロセスを一時停止させたけれど、どうやって再開すればいいのかわからない…という経験はありませんか?
そんな時に便利なのが「fg」コマンドです。
このコマンドを使えば、バックグラウンドで停止していたジョブを簡単にフォアグラウンドに戻して再開することができます。

本記事では、fgコマンドの基本的な使い方から、ジョブ管理に役立つ関連コマンドとの組み合わせまで、初心者にもわかりやすく解説します。
ターミナル作業をより効率的に行うためにも、ぜひ覚えておきたいテクニックのひとつです。


fgコマンドとは?その役割と基本動作

fgとは、「foreground(フォアグラウンド)」の略で、現在停止中もしくはバックグラウンドで動作しているジョブを、フォアグラウンドに戻して再開するためのコマンドです。

フォアグラウンドとは、現在ユーザーが操作しているターミナル上で直接入力・出力が行われている状態を指します。
一方で、バックグラウンドで実行されているプロセスは、ターミナルを占有せずに裏で動作します。

たとえば、エディタやスクリプトをCtrl+Zで一時停止した後、fgを使えばその作業を再開できるのです。


実際の例:fgの使い方を見てみよう

以下に、fgの基本的な使い方を実際の操作例で見てみましょう。

1. ジョブの一時停止

$ vi test.txt

このように、viコマンドでファイルを開いている状態で、以下のようにCtrl + Zを押すと、ジョブが一時停止します。

[1]+  停止中               vi test.txt

2. fgコマンドで再開

$ fg

このコマンドを入力することで、停止中だったviがフォアグラウンドで再開されます。


複数ジョブがある場合のfgの使い方

複数のジョブを同時に停止・バックグラウンドにしている場合、fgコマンドに引数を指定することで特定のジョブを再開できます。

ジョブ一覧を確認する

まず、jobsコマンドで現在のジョブの状態を確認します。

$ jobs
[1]- 停止中 vi test.txt
[2]+ 停止中 nano memo.txt

特定のジョブを再開

たとえば、ジョブ番号2を再開したい場合は、以下のように指定します。

$ fg %2

「%」はジョブ番号を指定するための記号です。
この場合、nanoエディタがフォアグラウンドに戻って再開されます。


fgと組み合わせて使いたい便利なコマンド

fgは単独でも便利ですが、以下のようなコマンドと一緒に使うと、さらに活用の幅が広がります。

jobs

現在のジョブの状態(実行中・停止中など)を一覧で確認できます。

$ jobs

bg

停止中のジョブをバックグラウンドで実行再開します。ターミナルを占有せずにプロセスを進めたい場合に便利です。

$ bg %1

kill

不要になったジョブを終了するためのコマンドです。

$ kill %1

fgと合わせて覚えておくことで、ジョブ管理の自由度が格段にアップします。


fgを使うときの注意点

フォアグラウンドに戻すと操作は一時ターミナルに限定される

fgで再開したジョブは、他のコマンドを同じターミナルから実行できない状態になります。作業が終わるまで他の作業ができないため、用途に応じてバックグラウンド(bg)との使い分けが必要です。

fgはシェルの組み込みコマンド

fgは外部コマンドではなく、bashなどのシェルに組み込まれている内部コマンドです。そのため、manコマンドでは情報が出ず、代わりにhelp fgman bashで調べる必要があります。

$ help fg

fgコマンドが効かないときの対処法

fgコマンドが期待通りに動作しない場合、以下のような原因が考えられます。

  • 停止中のジョブが存在しない
  • fgを実行したシェルと、ジョブを実行したシェルが異なる
  • 既にジョブが終了している

そのため、まずはjobsコマンドでジョブの状態を確認することが重要です。


応用例:バックグラウンド処理との使い分け

たとえば、長時間かかるスクリプトやプログラムを途中で一時停止し、後からフォアグラウンドに戻して進行状況を確認したいといったケースがあります。

$ ./long_script.sh
[Ctrl + Z]
$ jobs
[1]+ 停止中 ./long_script.sh
$ fg %1

また、すぐに他の作業に移りたい場合は、以下のようにbgでバックグラウンドに回しておき、必要に応じてfgで再度制御を戻すのも一つの手です。

$ bg %1
$ fg %1

まとめ:fgコマンドを使いこなしてターミナル操作を自在に

fgコマンドは、一時停止したジョブを簡単にフォアグラウンドで再開できる、非常にシンプルで便利なツールです。
特に、複数のジョブを同時に扱う場面では、jobsコマンドやbgコマンドと組み合わせることで、ターミナル作業をスムーズに進められるようになります。

今回紹介した基本操作に加え、複数ジョブの管理や注意点なども理解しておけば、より自在にLinuxシェルを使いこなせるようになります。

ぜひ、自分の環境で実際に試して、fgコマンドの便利さを体感してみてください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。