当前位置: 首页>>技术教程>>正文


退格键,制表符,删除键和箭头键在终端中不起作用(使用ssh)

, , ,

问题描述

当我使用我的帐户(具有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。但是,为了编辑此文件,需要管理员权限。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2114.html,未经允许,请勿转载。