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