書式
jobs [OPTIONS] [PID]

概要

jobs コマンドは現在動作中の
ジョブとその状態を表示します。

以下のオプションを取ります

訳注:bashやzshとは意味が
全く異なるので注意してください。

-c / --command
ジョブの各プロセスにおけるコマンド名を表示する。
-g / --group
各ジョブのグループIDのみを表示する。
-l / --last
最後に起動させたジョブのみを表示する。
-p / --pid
全ジョブの各プロセスのプロセスIDを表示する。

システムによっては、
最後のコマンドを実行してからの
各ジョブのCPU使用率を表示します。

CPU使用率はCPUの全力に対する
パーセンテージ表現しています。

マルチプロセッサのシステムにおいては
100%を超えることもあります。

実行例(超強化)

複数のジョブを立ち上げ、
各オプションの実行を示します。

プロセス展開 も参照してください。

# ジョブを3つ立ち上げる
$ sleep 9999 | wc -l &
$ ruby -e 'loop{}' &
$ sleep 8888 &

# ジョブ一覧
$ jobs
Job     Group   CPU     State   Command
3       31489   0%      running sleep 8888 &
2       31459   99%     running ruby -e 'loop{}' &
1       31416   0%      running sleep 9999 | wc -l &

# ジョブで使っているコマンドを表示
$ jobs -c
Command
sleep
ruby
sleep
wc
$ jobs -c %1
sleep
wc

# グループIDのみを表示
$ jobs -g
Group
31489
31459
31416

# 最後のジョブのみを表示
$ jobs -l
Job     Group   CPU     State   Command
3       31489   0%      running sleep 8888 &

# PIDを表示
$ jobs -p
Process
31489
31459
31416
31417

# ジョブID 1のみを表示
$ jobs %1
1       31416   0%      running sleep 9999 | wc -l &

# ジョブID 1〜3を破壊!
$ kill %1 %2 %3
0
fish: Job 3, 'sleep 8888 &' terminated by signal SIGTERM (Polite quit request)
fish: Process 31416, 'sleep' from job 1, 'sleep 9999 | wc -l &' terminated by signal SIGTERM (Polite quit request)
fish: Job 2, 'ruby -e 'loop{}' &' terminated by signal SIGTERM (Polite quit request)
Job 1, 'sleep 9999 | wc -l &' has ended

# そして、誰もいなくなった…
$ jobs
jobs: There are no jobs

停止中のジョブの例。

$ sleep 7777&
$ kill -STOP %1
'sleep 7777&' has stopped
$ jobs
Job     Group   CPU     State   Command
1       32680   0%      stopped sleep 7777&
$ fg
Send job 1, 'sleep 7777&' to foreground
# ここでCtrl+Z
Job 1, 'sleep 7777&' has stopped
$ bg
Send job 1 'sleep 7777&' to background
$ jobs
Job     Group   CPU     State   Command
1       32680   0%      running sleep 7777&

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。