Linuxでは、特別なキー操作やコマンドを覚えることによって、複数のコマンドを切り替えて実行することができます。
これらのキー操作では、複数のコマンドを切り替えて実行させたり停止・終了させたり、バックグラウンドで実行を続けさせることができます。
例えば、lessコマンドでテキストファイルを確認しているときにこれらのキー操作を使えば、シェルの入力に戻ってなんらかの操作をしたあと、またすぐに確認を継続することができます。
コマンドを普通に実行すると、コマンドが終了するまでシェルの入力には戻ってきません(次のコマンド入力ができません)。しかし、「Ctrl+Z」というキー操作を行うことで、実行中のコマンドをサスペンド(一時停止)させ、シェルの入力に戻ることができます。サスペンドさせたコマンドは、fgコマンドを使って実行を続けることができます。
サスペンドしているコマンドを見るには、jobsコマンドを使用します。
$ jobs
jobsコマンドが表示するように、シェルが実行を切り替えられるものには番号が付けられています。再開するには、この番号を引数にして、fgコマンドを実行します。
ジョブとは
シェルは単独のプロセスや協調している複数のプロセスをまとめて管理しており、管理しているプロセスのまとまりを「ジョブ」と呼んでいます。
ジョブには以下の3つの状態があります。
フォアグラウンド
キーボードからの入力や画面への出力ができるジョブをフォアグラウンドジョブと言います。
通常の方法でコマンドを実行すると、フォアグラウンドジョブとなります。
フォアグラウンドジョブがあると、シェルはフォアグラウンドジョブが終了するかサスペンドするまで待ち、その間シェルへの入力はできません。
バックグラウンド
キーボードからの入力や画面への出力ができないジョブのうち、動作しているジョブをバックグラウンドジョブと言います。
サスペンド
上述のとおり、「Ctrl+Z」によりサスペンドしているジョブです。
ジョブを操作するためのコマンドとして以下があります。
コマンド | 説明 |
---|---|
jobs | ジョブの情報を表示する。 |
fg %ジョブ番号 | 指定した番号のジョブをフォアグラウンドで実行する。 |
bg %ジョブ番号 | 指定した番号のジョブをバックグラウンドで実行する。 |