问题描述
当我使用我的帐户(具有sudo权限)ssh到另一台Ubuntu计算机时,我的退格键在按下时会生成一些尴尬的符号。 Tab键,Del键和箭头键也不起作用。
另一方面,我在同一台机器上也有另一个帐户。当我通过这个帐户,它的终端工作得非常好。我无法弄清楚为什么会这样。
最佳解决办法
编辑:参考:Mateng的answer
Mateng很接近,我认为你可能正在运行Bourne Shell。但是您不应该直接编辑/etc/passwd
文件。请尝试使用chsh
命令:
chsh -s /bin/bash
-s标志将使新的shell(在本例中为Bash)成为您的登录shell,继续前进。
次佳解决办法
以下更改为我解决了问题。首先,我检查了哪个shell正在运行:
$ echo $0
返回:
/bin/sh
正如我在此post in Ubuntuforums中读到的那样,将shell更改为/bin/bash
会带来解决方案。所以我在/etc/passwd
中将我的用户设置编辑为:
johndoe:x:1001:104:John Doe:/home/johndoe:/bin/bash
我退出了,然后再次登录。奇怪的是,我必须通过输入以下命令手动切换shell(可能有些缓存处于活动状态):
/bin/bash
瞧! [问题是由于分发更新引起的。]
第三种解决办法
当你第一次进入ssh时,尝试这两个命令
stty sane
export TERM=linux
我必须在一些机器上执行此操作,以便解决此问题
第四种办法
解决此问题的最简单方法之一是在命令行界面提示符下键入/bin /bash:
$ /bin /bash
上述命令将在现有shell的顶部执行Bourne Again Shell作为子进程。这带来了利用更多资源的缺点,但不需要编辑任何内容,也不需要特殊权限。例如,在最近的Kubuntu版本中,它将在默认的/bin /dash命令行shell接口上启动/bin /bash会话。
但是,要保留更改,一种可能性是编辑/etc /passwd文件,并在与用户对应的行中的最后一个’:’字符之后添加/编辑/替换默认shell到/bin /bash。但是,为了编辑此文件,需要管理员权限。