最近,xiaoz在同一个SSH客户端下使用一个VPS终端时,当我按向上箭头↑和向下箭头↓时,出现乱码符号^[[A^[[D。我通过ChatGPT和互联网搜索也未能解决,最终还是凭借经验解决了这个问题。

临时解决

xiaoz使用的操作系统为Debian 11,非root用户(其它Linux发行版应该也是一样的)。细心的朋友会发现终端最前面是一个$符号,这种好像默认是使用的shell为sh,为了验证shell类型,输入echo $SHELL进行查看:

$ echo $SHELL
/bin/sh

果不其然,shell使用的sh,然后我输入bash命令后将shell切换为了bash模式,前面的符号变成了user@GreenCloud:/data$

当我再次输入向上箭头↑和向下箭头↓查看历史命令的时候不再出现乱码符号,问题得以解决。

永久解决

上面那个方法只能治标无法治本,下次登录时问题依然存在,我们可以使用chsh命令来改变指定用户的默认shell类型,命令如下:

# /bin/bash为shell类型,user改成你自己的用户名
chsh -s /bin/bash user

当用户下次登录时,他们将使用bash作为其默认shell终端类型。这样问题就永久解决了。

结语

Linux下,如果用户使用的shell类型为sh可能导致箭头↑↓出现乱码符号:^[[A^[[D^,可以通过bash命令来临时解决,或使用chsh命令来更改用户的shell类型,从而永久解决,有类似情况的不妨参考。

此文章首发于我的独立博客:https://blog.xiaoz.org/archives/18644

xiaoz
60 声望1 粉丝

自由职业者,热爱开源,擅长PHP、Golang、Linux运维、Docker等技术,喜欢折腾各种软件和电子数码产品。