概要
Linuxでは、一つのターミナルで複数のジョブを同時に実行できます。`jobs`コマンドは、現在のシェルセッションで実行中のジョブを一覧表示し、どのジョブがバックグラウンドで実行中か、または停止状態であるかを示します。これにより、ユーザーは`fg`(フォアグラウンドに持ってくる)や`bg`(バックグラウンドで実行する)などのコマンドを使用してジョブの状態を制御できます。`jobs`は、特に長時間かかる作業をターミナルを占有せずに実行する場合に便利です。もし`jobs`を入力しても何も出力されない場合、それは現在バックグラウンドで実行中または一時停止中のジョブがないことを意味します。
主な特徴
jobsコマンドの主な特徴は以下の通りです。
- 現在のシェルで実行中のバックグラウンドジョブを表示します。
- ジョブ番号で個々のジョブを識別できます。
- ジョブの状態(実行中、停止中、完了など)を確認できます。
- `fg`や`bg`などのコマンドでジョブを制御するために使用されます。
ジョブの状態
jobsコマンドは以下のジョブ状態を出力できます。
- Running: ジョブがバックグラウンドで現在実行中の状態です。
- Stopped: ジョブが一時停止された状態です。`Ctrl+Z`を押して停止できます。
- Done: ジョブが正常に完了した状態です。
- Terminated: ジョブが異常終了した状態です。
主要オプション
よく使用されるjobsコマンドのオプションを目的別にグループ化しました。
1) 出力オプション
2) ヘルプ
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`jobs` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
jobsコマンドの様々な使用例を通して機能を習得しましょう。
バックグラウンドジョブの開始と確認
sleep 60 &
jobs
`sleep 60`コマンドをバックグラウンド(`&`)で実行した後、`jobs`で状態を確認します。
ジョブを停止させて確認
ping google.com
(Ctrl+Z 入力)
jobs
`ping`コマンドを実行中に`Ctrl+Z`を押して停止させた後、`jobs`で状態を確認します。
停止したジョブをバックグラウンドで実行
bg %1
`jobs`で確認した停止中のジョブ(`Stopped`)を`bg`コマンドでバックグラウンドで再実行します。
バックグラウンドジョブをフォアグラウンドに持ってくる
fg %2
`jobs`で確認したジョブ(`Running`)を`fg`コマンドでフォアグラウンドに持ってきます。
PIDと共にジョブリストを出力
jobs -l
`-l`オプションを使用して、ジョブ番号、状態、PIDを共に確認します。
インストール
jobsはシェル(bash、zshなど)の組み込みコマンドであり、別途インストールは不要です。
ヒントと注意事項
jobsコマンド使用時の注意点をまとめました。
ヒント
- `&`記号を使用すると、コマンドをバックグラウンドで実行できます。(例: `long_running_script.sh &`)
- `Ctrl+Z`は現在実行中のフォアグラウンドジョブを一時停止(suspend)させるショートカットキーです。停止したジョブは`bg`で再実行するか、`fg`でフォアグラウンドに持ってくることができます。
- `jobs`は現在のシェルで実行されたジョブのみを表示します。他のターミナルで実行されたジョブは`ps`コマンドで確認する必要があります。