当我们打开一个shell终端进行操作时,经常会遇到这种情况:
- 正在Vim编辑器中编辑脚本,但此时需要查询某个指令的参数用法。
这时该怎么操作?一般我们会想到再打开一个终端,或者先退出Vim编辑器,等查询完成后再重新编辑脚本。但是,能否在不退出编辑器的情况下,在这一个shell环境中完成?通过工作管理就可以达到。
在bash中,可以通过在前景中和背景中执行工作,而在背景中的工作状态有暂停和运行两种状态。前景指在bash中用户可以在提示符后边输入指令进行交互的环境; 背景即我们常说的在后台运作的工作。
工作控制指令:
-
【Ctrl+z】
此命令使当前工作处于背景中暂停状态,以使在bash环境中执行其它工作。此命令即可解决前面我们遇到的情况,即让Vim在背景中暂停,以在前景中执行查询命令。 -
指令结尾处+&
在指令结尾处加&,可以直接让当前工作处于背景中执行。例如:【vim script.sh &】,执行该命令后,会显示出此背景工作的工作号和PID。
在背景中的工作,无法用【Ctrl+c】终止。 -
fg
处于背景中的工作,如何让其在前景中运行?使用 fg 命令即可。 -
bg
前面的【Ctrl+z】指令让当前工作处于背景中和暂停状态,而利用 【bg %工作号】可以让工作状态从暂停改为运行。 -
jobs
使用 jobs 命令可查看在当前bash环境中有多少工作在背景中运行。 -
kill
如果想直接终止背景工作的执行,使用 kill 命令。可使用【kill -signal %工作号】,其中signal常见的数字及含义如下:
-1, 重新读取一次参数的配置文件;
-9, 立刻强制删除一项工作;
-15, 以正常方式终止一项工作。
网友评论