vi
, less
,之类的程序screen
在执行时会用它们的数据填充终端,然后,如果您按下c - Z
(或终止程序)终端将返回到执行这些程序之前的状态。
程序通常如何做到这一点?这种事情的正确术语是什么?
PS:标题中使用的词语可能不正确,因为我什至不知道这类事物的术语。
编辑:感谢@Atropo,我现在知道这些的正确名称是foreground process
,但是,程序如何做到这一点?程序如何清除屏幕,进行写入,并在执行结束时让 shell 重新出现所有旧文字?
vi
, less
,之类的程序screen
在执行时会用它们的数据填充终端,然后,如果您按下c - Z
(或终止程序)终端将返回到执行这些程序之前的状态。
程序通常如何做到这一点?这种事情的正确术语是什么?
PS:标题中使用的词语可能不正确,因为我什至不知道这类事物的术语。
编辑:感谢@Atropo,我现在知道这些的正确名称是foreground process
,但是,程序如何做到这一点?程序如何清除屏幕,进行写入,并在执行结束时让 shell 重新出现所有旧文字?
他们被称为foreground processes
。
通常,前台进程向用户显示一个界面,用户可以通过该界面与程序进行交互。所以用户必须等待一个前台进程完成,然后再运行另一个。当您使用 aforeground process
时,它会shell prompt
消失,直到您关闭进程或将其置于后台。
默认情况下 CTRL-C 生成 SIGINT 信号和CTRL-Z SIGTSTP: https://en.wikipedia.org/wiki/Unix_signal
要更改行为,您可以: