Tab 补全在 SSH 上不起作用

Tab 补全在 SSH 上不起作用

我在我的 Ubuntu 机器上设置了一个 git 存储库作为服务器,该服务器位于家庭网络上。然后我通过 SSH 在同一台计算机或另一台家用计算机上访问此存储库。登录正常。但是,当我在终端上输入部分文件或目录名称,然后按 时tab,光标会在终端上向右移动,而不会像平常一样显示完整的文件或目录名称。

当我退出SSH服务器后,tab密钥就可以正常工作了。

编辑:

此外,不起作用。当我按下其中任何一个键时,我在终端上看到以下内容:

$ ^[[A^[[D^[[C^[[A

可能是什么原因?

添加:

$ 环境

MAIL=/var/mail/git
USER=git
SSH_CLIENT=10.0.0.250 42342 2222
J2SDKDIR=/usr/lib/jvm/java-8-oracle
J2REDIR=/usr/lib/jvm/java-8-oracle/jre
HOME=/home/git
SSH_TTY=/dev/pts/5
LOGNAME=git
TERM=xterm-256color
XDG_SESSION_ID=93
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
DERBY_HOME=/usr/lib/jvm/java-8-oracle/db
XDG_RUNTIME_DIR=/run/user/1001
LANG=en_US.UTF-8
SHELL=/bin/sh
PWD=/home/git
JAVA_HOME=/usr/lib/jvm/java-8-oracle
SSH_CONNECTION=10.0.0.250 42342 10.0.0.250 2222

答案1

您当前的 shell 有问题。您当前正在使用sh默认 shell,如命令输出所示env

SHELL=/bin/sh

要解决您的问题,您需要切换到支持这些键输入的另一个 shell(例如bash,我将以此为例)。为此,您需要使用chsh实用程序(更改 shell)。

例子:

$ which bash
  /bin/bash
$ chsh -c /bin/bash 

这将更新用户的默认 shell 环境(查看更多这里关于完整使用)。您需要注销/登录或启动新会话以加载到新 shell。

或者,您可以通过找到其路径并从当前 shell 运行来利用另一个 shell。例如,下面是我从 更改为sh的示例bash

$ which bash
  /bin/bash
$ /bin/bash

chris@loki:~$ 

希望这可以帮助!

答案2

您可能需要像这样运行 chshsudo chsh username -s /bin/bash

相关内容