选项卡完成无法通过 SSH 完成

mar*_*tin 12 ssh command-line keyboard

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

从SSH服务器退出后,tab密钥正常工作。

编辑:

此外,键不起作用。当我按下其中任何一个时,我会在终端上得到这些:

$ ^[[A^[[D^[[C^[[A
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

添加:

$环境

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
Run Code Online (Sandbox Code Playgroud)

小智 12

您当前的外壳是问题所在。您当前使用的sh是默认 shell,如您的env命令输出所示:

SHELL=/bin/sh

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

例子:

$ which bash
  /bin/bash
$ chsh -c /bin/bash 
Run Code Online (Sandbox Code Playgroud)

这将为您的用户更新默认的 shell 环境(有关完整使用的更多信息,请参阅此处)。您需要注销/登录或启动新会话以加载到新 shell。

或者,您可以通过定位其路径并从当前 shell 运行来使用另一个 shell。例如,这里是我从 更改shbash

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

chris@loki:~$ 
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 我不认为“-c”是“chsh”的有效标志。您的意思是“chsh -s /bin/bash”吗? (2认同)

小智 7

你可能必须像这样运行 chshsudo chsh username -s /bin/bash