我安装了 Ubuntu 10.04。当我打开终端时,tab 键可以正常工作,例如我输入“apt-get install mysql”,然后按 tab 键即可查看所有选项。但是当我通过 ssh 连接时 - tab 键仅在第一个空格之前起作用。因此在上面的例子中它什么也不做。我尝试使用不同的客户端(ssh、putty 等)连接,但总是出现相同的行为。
我的问题是:如何让 Tab 键正常工作?问题出在服务器还是客户端?
答案1
正确的问题不是“如何让 Tab 键正常工作?”。而应该是“如何让 Tab 键在远程会话中像在本地机器上一样工作?”
你在本地机器上看到的是 Ubuntu 在其 bash 安装中嵌入的内容,称为bash 补全。这使用可编程的 Tab 补全bash 的选项用于为其他命令添加制表符补全。就其本身而言,bash
(和大多数其他 shell)仅提供文件名和路径补全。
当您使用 ssh 连接到另一台机器时,导致问题的不是 ssh,而是您在远程机器上使用的 shell——也可能是 bash,但可能没有额外的制表符补全功能。
在远程计算机上,查找/etc/bash_completion
,如果存在,您可以通过键入(或放入启动文件中)将其加载到当前 shell 中:
. /etc/bash_completion
如果没有,请从以下位置下载其中一个文件官方网站并按照远程机器上的指示进行安装。
答案2
我只是bash
在 ssh 会话内运行,一切运行正常。
答案3
如果您使用另一个帐户进行 SSHing,则另一个检查是确保远程帐户中的帐户设置为 bash 而不是 sh。当然,这对于 shell 来说没有太大帮助。