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)