当我从终端打开 gedit 时,在关闭 gedit 之前,我无法将终端用于其他任何事情。为什么?

the*_*e_b 7 gedit command-line process 15.04

我对 Linux 世界很陌生。我在联想笔记本电脑上运行 Ubuntu 15.04。我的终端模拟器是 Gnome 终端。

我知道一些事情。假设我输入cd Documents/terminalpractice/python_folder. 然后我输入,例如,touch askubuntu.py。然后我使用命令,gedit askubuntu.py.

此时文本编辑器 gedit 将在我的屏幕上打开,我可以随意尝试编码。但是,在终端窗口中,我猜 gedit “进程”正在运行?所以在我关闭 gedit 之前我不能使用终端(我保存然后单击顶角的“X”)。

为什么会发生这种情况?我可以使用图形界面打开文件夹,双击我的 askubuntu.py,它将在 gedit 中打开,而不会影响终端中正在发生的事情。我想知道为什么会发生这种情况。

Ron*_*Ron 18

为什么会发生这种情况?

当你刚刚运行时:

 gedit filename
Run Code Online (Sandbox Code Playgroud)

它在前台运行进程。要将其发送到后台并继续使用终端,请使用:

gedit filename &
Run Code Online (Sandbox Code Playgroud)

请注意,这(当然还有上面的)将gedit作为终端的子进程运行,因此当您退出终端时,它也会 exit gedit

因此,要“优雅地”运行它,请使用:

nohup gedit >/dev/null &
Run Code Online (Sandbox Code Playgroud)

nohup将运行与终端分离的 gedit,因此它不受挂断的影响。>/dev/null将标准输出重定向到特殊位置dev/null,从而阻止创建nohup.out文件。

有关更多信息,请参阅man nohup问题。