自然情况下,我们在Linux的terminal窗口里输入一个命令,回车执行,命令打印出结果,执行结束,命令提示符再次出现。这样的执行方式叫做前台执行。
Linux命令的前台执行很常用,但是有个问题,就是在命令执行过程中,我们不能输入其它的命令,如果想并行做一些其它的事情,只能再开一个新的terminal窗口。
另外一种执行Linux命令的方式叫做后台执行,方法很简单,就是在命令后面加上一个&:
命令格式:command &
我们可以通过输入Ctrl+z这个组合,来暂停前台正在执行的命令;
(Ctrl+c是终止任务)
然后通过jobs这个命令,可以查看所有暂停以及后台执行的命令;
jobs命令会显示所有命令的编号,
fg N #将第N个命令的执行放到前台;
bg N #将第N个命令的执行放到后台。
一个vim的应用场景:
当你用vim编写代码时,如果需要用shell执行别的操作,但是你又不打算关闭vim已经打开的文件,因为你得存盘退出。这时,你就可以简单的按下Ctrl+z,shell会将vim进程挂起,当你结束了那个shell操作之后,你可以用fg命令继续vim你的文件。
注意事项:
1, 打印特别多的命令,如果放到后台执行,该打印的依然会打印,因此,后台执行更适合那些打印很少的命令或任务;
2, 关闭当前的shell窗口(logout退出),不管进程在前台或后台,进程都会被关闭。(要想实现logout后,进程依然保持运行,需要使用nohup命令)