0

我经常这样做:

$ gitk &

启动一个程序(就像gitk在这种情况下,但它并不重要)并返回到 shell 提示符以继续在同一个 shell 中工作。在你已经写完之后你会怎么做

$ gitk

没有&?是否有一个组合键,例如^z,将进程置于后台但不会中断它?

4

2 回答 2

5

如果您在没有 的情况下启动了该进程&,它将在前台运行。按Ctrl+Z哪个将停止进程,然后输入命令bg以在后台恢复进程执行。

于 2013-02-11T09:07:30.380 回答
1

每次调用外部程序时,例如ls、 或gitk或其他什么,您都会执行一个fork. 在 Bash 中运行一个程序&不仅仅是一个 fork。它创建了一个在后台运行的新进程组。

Ctrl+z 通常具有将作业置于后台停止状态的效果(使用信号),使用 重新启动bg。我说“通常”是因为它可以更改,使用stty. 要列出您的终端设置(并查看其他神奇的 Ctrl 键),请尝试stty -a.

后台作业的一个特点是它们通常无法访问键盘,但可以访问屏幕。这可能与其他输出混合,因此您可以使用stty tostop它来防止它。必须将作业置于前台才能使用屏幕,或使用stty -tostop. 使用fg.

请注意,您可以有许多后台作业,通过键入来查看它们jobs。一些命令,包括fgbgkill,采用可选的作业编号(前缀%)。

于 2013-02-11T10:48:14.740 回答