Answers:
Ctrl- D在许多情况下会退出外壳。它比键入要快exit
Enter。终止所有命令仍然不是一个命令,但是按住几次Ctrl并击中D更容易,更快。不确定这对您的用例有多重要。
这里详细讨论。
rm
如果您不想执行命令,请不要键入命令,然后按CTRL + D。我在ksh中看不到这种行为。
vi
终端输入绑定。
打字~.
实际上确实通过关闭最深所有的“嵌套”连接的伎俩。
只要您将所有外壳程序都配置为将SIGHUP处理为正常死亡,它就可以使用您希望的友好出口来实现。Bash默认情况下这样做。您可以轻松地检查设置的友好出口,例如,查看.bash_history
以后的深层会话文件是否得到正确更新~.
,或者如果将bash-es设置为在退出时不更新.bash_history,则可以trap
在EXIT事件(或在您的~/.bash_logout
)中,该命令使用在某处写入内容的命令,然后查看它是否已执行。
此外,我不确定“退出当前shell中的所有会话”是什么意思。每个交互式bash只是一个会话,您键入的命令始终仅进入ProxyJump链的最深层外壳。如果您的意思是“当前shell中的后台作业”,则bash会在ssh守护进程接收SIGHUP时,将SIGHUP发送至其所有作业~.
,因此,如果那些正在运行的作业对SIGHUP做出了适当的反应,则此退出应该是完全友好的。
~.
只需断开SSH客户端的连接即可(例如,当网络消失时,这很有用)。正常情况下,SSH守护进程会识别出该事件并通过发出信号SIGHUP
,因此它与正常退出Shell并不完全相同(但是,如果您无法从Shell获得任何响应,它很有用)。