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

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

首先,对于这个菜鸟问题,我感到很抱歉,我确信以前有人问过这个问题,但我不知道如何雄辩地表述它...

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

geany filename.php

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

node server.js

该命令将正常执行,但除非我打开另一个终端,否则我无法执行任何其他命令。我的命令root@pcname:~$消失了,当我尝试输入其他内容并按 Enter 键时,它只会跳到下一行。

我注意到有时我可以按 CTRL+D 它就会给我返回提示(抱歉,提示是它的正确名称吗?)

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

谢谢,并再次为我的幼稚行为道歉。

答案1

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

geany filename.php &

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

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

答案2

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

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

您也可以输入 bg 或 fg 并在后面加上数字,例如fg 3。这将使作业 #3 移到前台。

如果你要让某个进程在后台运行,并且你不希望它输出一堆文本,那么只需在> filename.txt它后面加上,就像这样process > out.txt。这将使它将所有标准输出发送到文件out.txt(而不会弄乱你的终端)。

如果你经常使用终端(就像我一样 :),那么你肯定想安装并熟悉名为 的终端程序screen。它允许你在 1 个窗口中拥有多个虚拟终端,如果你关闭了终端窗口(意外?),你可以从之前离开的位置重新打开它。

答案3

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

答案4

我使用 geany 来处理 tcl/tk。如果您打开 geany,请查找“build”图标。它将允许您创建通过鼠标单击启动的命令。单击图标,然后设置构建命令,然后将执行条目编辑为类似以下内容:sh %f && exit 您可能需要根据需要对其进行调整。将 sh 替换为运行代码的任何内容。您还必须使用 2 个 amperstands。它会打开一个终端并运行 gui 脚本。当我检查完我正在创建的 gui 后,我会关闭终端窗口,从而终止 gui 脚本。它还消除了内置终端的限制。但遗憾的是,您仍然必须关闭终端才能获得一个干净的记录。

相关内容