fg
とbg
は、UnixやLinuxのシェルでジョブ制御に関連するコマンドです。これらのコマンドを理解するためには、まずジョブとは何か、そしてフォアグラウンドとバックグラウンドのプロセスとは何かを理解する必要があります。
ジョブ制御:
シェルでは、ユーザーが実行するコマンドやプロセスを「ジョブ」として扱います。ジョブ制御を使用すると、ユーザーは複数のジョブを同時に実行したり、ジョブの実行を一時停止したり、再開したりすることができます。
フォアグラウンドとバックグラウンド:
- フォアグラウンド: ジョブがフォアグラウンドで実行されているとき、それはシェルのアクティブな制御を持っています。つまり、ユーザーの入力を受け付けることができます。
- バックグラウンド: ジョブがバックグラウンドで実行されているとき、それはシェルのアクティブな制御を持っていません。これにより、ユーザーは他のタスクを実行するためにシェルを使用することができます。
コマンド:
- fg: バックグラウンドで実行されているジョブをフォアグラウンドに移動します。
- 使用例:
fg %1
これはジョブ番号1をフォアグラウンドに移動します。 - bg: 一時停止されているジョブをバックグラウンドで再開します。
- 使用例:
bg %1
これはジョブ番号1をバックグラウンドで再開します。
その他の関連コマンド:
- jobs: 現在のシェルセッションで実行されているジョブのリストを表示します。
- Ctrl+Z: 現在フォアグラウンドで実行されているジョブを一時停止します。
- &: コマンドの末尾にこの記号を追加すると、コマンドをバックグラウンドで実行します。
- 使用例:
command &
これらのコマンドを使用することで、ユーザーは複数のジョブを効率的に管理し、必要に応じてジョブの実行を制御することができます。