ジョブコントロールとは、コマンドの実行を一時的に休止させたり、
バックグラウンド・フォアグラウンド間で切り替えて実行する機能である。
ここで、
「フォアグランドでコマンドを実行する」とは、
実行が終了するまでプロンプトが帰ってこない状態でコマンドを実行することである。
(普通にコマンドを実行する時と同じ)
「バックグラウンドでコマンドを実行する」とは、
他のコマンドを実行できる(プロンプトが出ている)状態で
そのコマンドを(バックグラウンで)実行することである。
この機能は実行時間が長いコマンドを実行している時に、同じウインドウの中で
別のコマンドを実行したくなった時などに便利である。
%の後の数字でジョブの番号を指定できる。
バックグラウンドでコマンドを実行させると、
そのコマンドから出力されるデータはそのまま現在のターミナルに出力されてしまう。
だからフォアグラウンドで vi などを使用していると画面が乱れてしまう。
このような時には、実行する時に出力をリダイレクションなどでファイルに
書きこむ様にしておくとよい。
# a.out ctrl+z <- コマンドを一時休止 Stopped # vi tmp.c # fg <- フォアグラウンドにもどす a.out ctrl+z # a.out <- 2番目のa.out ctrl+z # jobs [1] - Stopped a.out <- 1番目のa.out休止中 [2] - Stopped a.out <- 2番目のa.out休止中 # bg %1 [1] a.out & # jobs [1] - Running a.out <- バックグラウンドで実行中 [2] - Stopped a.out <- 2番目のa.out休止中 # kill %1 Killed a.out <- 1番目のa.out を強制終了 # jobs [2] - Stopped a.out <- 2番目のa.out休止中 #