我经常这样做:
$ gitk &
启动一个程序(就像gitk
在这种情况下,但它并不重要)并返回到 shell 提示符以继续在同一个 shell 中工作。在你已经写完之后你会怎么做
$ gitk
没有&
?是否有一个组合键,例如^z
,将进程置于后台但不会中断它?
我经常这样做:
$ gitk &
启动一个程序(就像gitk
在这种情况下,但它并不重要)并返回到 shell 提示符以继续在同一个 shell 中工作。在你已经写完之后你会怎么做
$ gitk
没有&
?是否有一个组合键,例如^z
,将进程置于后台但不会中断它?
如果您在没有 的情况下启动了该进程&
,它将在前台运行。按Ctrl+Z
哪个将停止进程,然后输入命令bg
以在后台恢复进程执行。
每次调用外部程序时,例如ls
、 或gitk
或其他什么,您都会执行一个fork
. 在 Bash 中运行一个程序&
不仅仅是一个 fork。它创建了一个在后台运行的新进程组。
Ctrl+z 通常具有将作业置于后台停止状态的效果(使用信号),使用 重新启动bg
。我说“通常”是因为它可以更改,使用stty
. 要列出您的终端设置(并查看其他神奇的 Ctrl 键),请尝试stty -a
.
后台作业的一个特点是它们通常无法访问键盘,但可以访问屏幕。这可能与其他输出混合,因此您可以使用stty tostop
它来防止它。必须将作业置于前台才能使用屏幕,或使用stty -tostop
. 使用fg
.
请注意,您可以有许多后台作业,通过键入来查看它们jobs
。一些命令,包括fg
、bg
和kill
,采用可选的作业编号(前缀%
)。