如何从Linux终端运行程序而不阻塞终端?


34

当我从终端启动程序时,除非关闭程序,否则无法再次使用该终端实例。

有没有一种方法可以从终端执行程序/应用程序而不会阻塞终端,直到程序结束?

Answers:


62

您正在寻找大多数Shell支持的作业控制。有关介绍,请参见本文。在某些时候,您可能还需要阅读bash 的官方文档,这是Ubuntu中的默认shell。

简而言之:要在后台自动启动作业&,请在程序调用后放一个

$ program &

您也可以使用停止程序,CTRLz然后使用bg

$ program
^Z
$ bg

要使它们再次在前台运行,请使用fg


我从这个答案中得到了bash的正式文档,这对我来说是一个很大的辅助帮助,谢谢!
Addem

1

如果作业控制不是您想要的,请查看screen

屏幕控制着多个虚拟终端,因此您可以运行多个程序而无需它们彼此交互。例如,您可以同时运行mocp(音乐播放器),aptitude(程序包管理器)和vim(文本编辑器),即使它们都是交互式程序,也将终端视为唯一访问权限。

这样就可以轻松地从一项任务切换到另一项任务,例如在屏幕上创建一个新的终端来阅读联机帮助页-而不会在其他地方失去位置-来回翻转等。


1

在Ubuntu 16.10中,我无法获得其他答案中提到的ctrl + Z东西,但是

program &
^C

换句话说,ctrl + c在您使用后跟符号启动程序后,它对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.