Answers:
CtrlC告诉终端将a发送SIGINT
到当前的前台进程,默认情况下转换为终止应用程序。CtrlD告诉终端它应该在标准输入上注册一个EOF,bash将此解释为希望退出。
Ctrl+ D(^D
)表示文件结尾。它仅在一行的开头起作用(我简化了一点),并且如果程序没有从终端读取输入,则它无效。在实验中,^D
告诉外壳程序您将不再键入任何命令,因此退出了该命令。然后终端退出,因为其子程序已终止。
Ctrl+ C(^C
)表示“中断”,即停止正在执行的操作。从技术上讲,按下会^C
发送INT信号,默认情况下会终止应用程序,但是在许多程序中,这意味着返回顶层(例如,在shell中,停止键入命令行并返回原始提示)。
如果程序没有响应^C
,则可以尝试Ctrl+ \(^\
)。这会发送QUIT信号,默认情况下会终止应用程序,并且不会有太多程序拦截。
发送信号的另一个键是Ctrl+ Z(^Z
)。它发送TSTP信号,从而暂停在前台运行的程序。(TSTP是“终端停止”的缩写;它与STOP类似,但可以忽略TSTP,而STOP则不能忽略。)在Shell中,您可以使用fg
命令(在前台恢复)或bg
命令(在后台恢复)来恢复程序的执行。背景)。
所有这些键都可以使用stty
命令进行更改。某些程序,尤其是具有按键绑定的全屏程序会禁用它们。
KeyboardInterrupt
?它的确以ctrl + d(如果在行的开头)和ctrl + \退出。
加上上面的2个非常好的答案,这是一个示例:
如果输入python
外壳程序,它将带您进入python >>>提示符。
现在,如果您点击Ctrl+C
,它会说KeyboardInterrupt
并留在>>>中。
如果你进入一个for循环,例如,通过键入for x in (text):
它等待你通过显示...提示类型进一步,如果你打到Ctrl+C
现在,它会从退出的声明,并返回>>>提示
如果你打Ctrl+D
在任何时候,无论是>>>还是...,它都将退出python提示符并返回原始shell。
同样,如果将ssh放入另一台计算机,则a Ctrl+C
将终止所有现有命令,Ctrl+D
并将其退出该计算机。(此外,Delete
键与执行操作相同Ctrl+D
)