在终端执行一个命令后,我有时无法执行另一个

jre*_*121 8 command-line

首先抱歉这个菜鸟问题,我确定之前有人问过这个问题,但我不知道如何雄辩地表达它......

有时当我从终端打开/运行/执行(不确定合适的术语)一个应用程序(?lol)时,比如 geany,即:

geany filename.php
Run Code Online (Sandbox Code Playgroud)

或者运行一个 node.js 脚本:

node server.js
Run Code Online (Sandbox Code Playgroud)

该命令可以正常执行,但是除非我打开另一个终端,否则我将无法执行任何其他命令。myroot@pcname:~$不见了,当我尝试输入其他内容并按 Enter 键时,它会中断到下一行。

我注意到有时我可以按 CTRL+D 并且它会给我我的提示(对不起,即使是正确的名字也是提示?)

那么有人可以解释为什么会发生这种情况以及我如何在不打开另一个终端的情况下返回提示。

谢谢,再次为我的笨蛋感到抱歉。

gee*_*aur 10

如果您真正想做的是从终端启动 GUI 程序,您可能更喜欢类似

geany filename.php &
Run Code Online (Sandbox Code Playgroud)

这将在后台启动它,因为它不需要终端做任何事情。node.js如果应用程序不需要任何终端,这也可能适用于应用程序。

如果在您关闭终端时它们仍在运行,它会抱怨。如果您真的希望它们在终端退出后继续存在,请使用disown.


Sep*_*ero 5

启动流程(作业)后,您仍然可以做其他事情。您可能想将这些写下来作为备忘单。

  1. Ctrl+c杀死正在运行的进程(前台工作)
  2. Ctrl+z暂停正在运行的进程(前台作业)并返回到提示
  3. 类型jobs显示终端上的所有后台作业
  4. Typebg使上次暂停的作业在后台继续
  5. 类型fg将最后一个暂停作业返回到前台

您还可以键入 bg 或 fg 并在后面输入数字,例如fg 3. 这将把工作 #3 带到前台。

如果您要后台处理一个进程,并且您不希望它输出一堆文本,只需将> filename.txt其放在后面,就像这样process > out.txt。这将使其将所有标准输出发送到文件out.txt(而不是使您的终端混乱)。

如果您经常使用终端(比如我:),那么您肯定想安装并熟悉名为screen. 它允许您在 1 个窗口中拥有多个虚拟终端,如果您关闭终端窗口(意外?),您可以从之前停止的地方重新打开它。


Wil*_*iam 3

啊,你按错键了。它是 Control + C。这是强制结束终端中当前正在运行的应用程序的命令。如果结束该命令,它也会结束相应的打开的应用程序。所以如果你想在同一个终端中执行更多命令,你必须按Control + C退出程序,这也会退出geany。因此,最好只通过 GUI 运行程序,这样可以节省大量终端窗口。或者,您也可以使用 Ubuntu 的运行命令功能,只需按 Alt + F2 并键入要运行的命令,无需终端。