One Linux Command Per Day (9) &
当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。
可以使用&命令把作业放到后台执行。
该命令的一般形式为:
命令 &
为什么要在后台执行命令?因为当在后台执行命令时,可以继续使用你的终端做其他事
情。适合在后台运行的命令有 f i n d、费时的打印作业、费时的排序及一些 s h e l l脚本。在后台运
行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻
等。
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。
演示一下:
deyuy/bin/my_shell >> ls & [1] 17827 bldr:deyuy/bin/my_shell >> app1 cleanup fun1.sh quote.txt until.sh audit.check for1.sh hello.sh report.run var.sh audit.log for2.sh hh.sh run.log while1.sh awk.txt for3.sh if.sh select.sh back.log for4.sh if2.sh str.txt cache for5.sh nightly_build.sh test.sh case.sh for6.sh num.txt test2.sh 说明:ls命令将在后台执行,PID:17827 可以看到,进程等在这里了,并且ls的结果打印到标准输出。因此,这种交互式的命令并不适合在后台执行。
如果放在后台运行
的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command >out.file 2>&1 &
在上面的例子中,所有的标准输出和错误输出都将被重定向到一个叫做 out.file 的文件中。
当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。
deyuy/bin/my_shell >> ls >out.file 2>&1 & [1] 8100 deyuy/bin/my_shell >> kill -9 8100 [1] + Done ls >out.file 2>&1 &

浙公网安备 33010602011771号