jobs
命令是Unix/Linux shell中的一个内置命令,用于显示当前shell中正在运行的作业(job)的状态。作业是指在后台执行的命令或命令序列。
jobs
命令的基本用法
显示所有作业的状态
当你在终端中启动一个命令并在其后加上&
符号时,该命令就会在后台运行。你可以使用jobs
命令来查看所有后台作业的状态:
jobs
输出将显示当前shell中的所有作业及其状态。输出格式通常如下:
[1]+ Running ./example_script &
[2]- Stopped sleep 10 &
这里的输出解释如下:
[1]+
:第一个作业(编号为1),并且是当前活动的作业(用+
表示)。Running
:该作业当前处于运行状态。./example_script &
:这是启动该作业时的命令。[2]-
:第二个作业(编号为2),并且不是当前活动的作业(用-
表示)。Stopped
:该作业当前处于停止状态。sleep 10 &
:这是启动该作业时的命令。
jobs
命令的选项
jobs
命令支持一些选项来修改其行为:
-l
或--long
:以长格式显示作业信息,包括作业的PID。-s
或--state
:只显示作业的状态。-r
或--running
:只显示正在运行的作业。-s
或--stopped
:只显示已停止的作业。
示例
显示所有作业的详细信息:
jobs -l
只显示正在运行的作业:
jobs -r
只显示已停止的作业:
jobs -s
控制作业
一旦你知道了某个作业的编号,你可以使用fg
(将作业移到前台)或bg
(将作业移到后台继续运行)命令来控制它:
-
将作业移到前台:
fg %job_number
例如,将第一个作业移到前台:
fg %1
-
将作业移到后台:
bg %job_number
例如,将第一个作业移到后台:
bg %1
示例
假设你有两个命令在后台运行:
-
启动一个长时间运行的脚本:
./long_running_script &
-
启动一个休眠命令:
sleep 1000 &
你可以使用jobs
命令查看这两个作业的状态:
$ jobs
[1]+ Running ./long_running_script &
[2]- Running sleep 1000 &
如果需要将第一个作业移到前台继续执行:
$ fg %1
如果需要将第一个作业移到后台继续执行:
$ bg %1
总结
jobs
命令是一个非常有用的工具,可以帮助你管理和控制在Unix/Linux shell中运行的后台作业。通过使用jobs
命令及其选项,你可以轻松地查看当前shell中的作业状态,并使用其他命令(如fg
和bg
)来控制这些作业。如果你有任何其他问题或需要进一步的帮助,请随时提问!