概要
Linuxでは、`&`記号を使用してジョブをバックグラウンドで実行したり、`Ctrl+Z`を押してフォアグラウンドジョブを一時停止させることができます。このようにバックグラウンドに切り替わったジョブは、ターミナルの制御を失い、ユーザー入力や画面出力が中断されます。`fg`コマンドは、これらのジョブを再びフォアグラウンドに移動させ、ターミナルの制御を取り戻す役割を果たします。主に`jobs`コマンドで確認したジョブ番号と組み合わせて使用されます。
主な特徴
fgコマンドの主な特徴は以下の通りです。
- バックグラウンドジョブをフォアグラウンドに切り替えます。
- ジョブ番号(job number)を通じて特定のジョブを指定できます。
- ジョブの出力結果をリアルタイムで再度確認できます。
- ユーザー入力を再度受け付ける状態にします。
fgとbgの違い
fgとbgはどちらもバックグラウンドジョブを制御しますが、役割が異なります。
- fg: バックグラウンドで実行中のジョブをフォアグラウンドに切り替え、ターミナル制御権を取得します。
- bg: 一時停止されたジョブをバックグラウンドで継続実行するように切り替えます。
主要オプション
fgコマンドは主に引数(ジョブ番号)と共に使用されます。特別な複雑なオプションはありません。
1) 実行オプション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`fg` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
fgコマンドの様々な使用例を通じて機能を習得してください。
ジョブをバックグラウンドに送った後、フォアグラウンドに切り替える
sleep 100 &
jobs
fg %1
`sleep 100`コマンドをバックグラウンド(`&`)で実行した後、`jobs`で確認し、`fg`で再びフォアグラウンドに戻します。
ジョブを一時停止した後、フォアグラウンドに切り替える
ping google.com
(Ctrl+Z 入力)
jobs
fg
`ping`コマンドを実行中に`Ctrl+Z`で停止させた後、`jobs`で確認し、`fg`で再び実行します。
2番目のジョブをフォアグラウンドに切り替える
jobs
fg %2
`jobs`で確認したリストから2番目のジョブ(`%2`)をフォアグラウンドに移動させます。
インストール
fgはシェル(bash, zshなど)の組み込みコマンドであり、別途インストールする必要はありません。
ヒントと注意事項
fgコマンド使用時の注意点をまとめました。
ヒント
- `jobs`コマンドを使用すると、現在のシェルにどのようなジョブがあるかを確認でき、`[1]`のような角括弧内の数字がジョブ番号です。
- `fg`コマンドに引数を指定しない場合、最も最近バックグラウンドに送ったか、停止させたジョブをフォアグラウンドに移動させます。
- バックグラウンドで実行中のジョブをフォアグラウンドに移動させた後、再度バックグラウンドに戻すには、`Ctrl+Z`で一時停止させ、`bg`を使用します。