如何中断卡住的 bash tab 补全?

如何中断卡住的 bash tab 补全?

案件:

  • 通过不稳定的 VPN 连接使用 Samba 挂载 Windows 共享(有时非常慢,有时会掉线)
  • 当对文件名进行制表符补全时,如果在尝试制表符补全时 VPN 很慢或者断开,我的 bash shell 就会冻结。

例子:

$ cp myfile.zip /mnt/winbox-c/Progr<tab> key pressed here

当这种情况发生时,我可以按什么键让 bash 脱离挂起状态?

答案1

试用CTRL+C

这在 tcsh 中对我有效,我相信它在 bash 中也应该有效。

答案2

在 bash 中,我还发现CTRL+ \(control + 反斜杠,我认为它会发送 SIGQUIT)也可以工作,但是会将光标留在原处,而不是完全取消命令。

我自己也在寻找这个答案,因为如果 bash 无法查找远程主机的 IP 地址,它的 ssh tab 补全会挂起 5 到 10 秒。这种情况发生在我没有本地 DNS 的家庭网络上。在 /etc/hosts 中设置正确的 IP 地址可以加快速度。

答案3

Ctrl+C仅当网络速度慢或无法访问时才有帮助。

但有时问题是,如果它冻结的时间比您预期的要长,或者永远不会恢复,即使在Ctrl+CCtrl+Z或任何组合之后,您最终也只能关闭终端。

然后请检查您的 PATH 变量,如果没有为网络上安装的任何路径设置该变量,则您将无法到达。

这至少是我的问题。

相关内容