后台作业jobs命令输出中+、-符号及无符号的含义咨询
关于jobs命令输出中+、-符号的含义
嘿,这个细节确实容易被忽略,man pages有时候藏得比较深,我来给你讲明白:
- 带
+的作业:这是当前作业,也就是你输入fg(前台运行)或者bg(后台继续运行)不带任何参数时,默认会操作的那个作业。你也可以用%+或者%%来指代它,比如kill %+就等于终止那个带+的作业。 - 带
-的作业:这是前一个作业,当当前带+的作业结束(比如前台运行完毕、被终止),这个带-的作业会自动变成带+的当前作业。你可以用%-来直接指代它。 - 无符号的作业:这些是更早启动的后台作业,它们不会被
fg/bg的默认操作选中,只能通过%<作业ID>或者%<作业名>来指定操作。
举个实际例子帮你理解:
- 先启动三个后台作业:
sleep 100 &、sleep 200 &、sleep 300 & - 输入
jobs,会看到最新的第三个作业带+,第二个带-,第一个无符号 - 输入
fg,会把带+的sleep 300调到前台,按Ctrl+Z暂停它,再输入jobs,这个暂停的作业依然带+,原带-的sleep 200保持-标记 - 用
kill %%终止前台的sleep 300,再输入jobs,就会看到sleep 200变成带+的当前作业,原无符号的sleep 100变成带-的前一个作业
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

