Backspace、Tab、Del 和箭头键在终端中不起作用(使用 ssh)

gop*_*410 55 command-line gnome-terminal xterm

当我使用我的帐户(具有 sudo 权限)通过 ssh 进入另一台 Ubuntu 机器时,我的退格键在按下时会生成一些尴尬的符号。Tab、Del 和箭头键也不起作用。

另一方面,我在同一台机器上还有另一个帐户,当我通过这个帐户 ssh 时,它的终端工作得很好。我无法弄清楚为什么会发生这种情况。

Aar*_*ron 39

编辑:参考:马腾的回答

Mateng 很接近,我认为您可能正在运行 Bourne Shell。但是您不应该/etc/passwd直接编辑您的文件。尝试使用以下chsh命令:

chsh -s /bin/bash
Run Code Online (Sandbox Code Playgroud)

-s 标志将使新的 shell(在本例中为 Bash)成为您的登录 shell,继续前进。


Dra*_*ris 21

当你第一次 ssh 进入时,试试这两个命令

stty sane
export TERM=linux
Run Code Online (Sandbox Code Playgroud)

我必须在某些机器上执行此操作才能准确解决此问题

  • 我试过了,但问题仍然存在 (2认同)

Mat*_*eng 21

以下更改为我解决了问题。首先,我检查了哪个 shell 正在运行:

$ echo $0
Run Code Online (Sandbox Code Playgroud)

返回:

/bin/sh
Run Code Online (Sandbox Code Playgroud)

正如我在 Ubuntuforums 的这篇文章中所读到的,更改 shell 以/bin/bash提供解决方案。所以我将我的用户设置编辑/etc/passwd为:

johndoe:x:1001:104:John Doe:/home/johndoe:/bin/bash
Run Code Online (Sandbox Code Playgroud)

我退出,然后重新登录。奇怪的是,我不得不通过输入以下内容手动切换外壳(也许某些缓存处于活动状态):

/bin/bash
Run Code Online (Sandbox Code Playgroud)

瞧!
[问题是由于发行版更新引起的。]


小智 7

解决此问题的最简单方法之一是在命令行界面提示符下键入 /bin/bash:

$ /bin/bash

上述命令将作为子进程在现有 shell 之上执行 Bourne Again Shell。这带来了利用更多资源的缺点,但无需编辑任何内容,也不需要特殊权限。例如,在最近的 Kubuntu 版本中,它将在默认的 /bin/dash 命令行 shell 界面上启动一个 /bin/bash 会话。

但是,要保持更改,一种可能性是编辑 /etc/passwd 文件并将默认 shell 添加/编辑/替换到 /bin/bash 对应于用户的行中最后一个 ':' 字符之后。但是,为了编辑此文件,需要管理员权限。