访问阿里云或者腾讯云等远程云服务器时,需要基于SSH协议的简易工具putty,但偶尔有用户会遇到在putty终端不能使用上下方向键的问题(是的,你没猜错,我就遇到了),具体症状是点击上下方向键会出现”^[[A^[[A^[[A^[[B^[[“这样的乱码。linux用户不能在终端,通过上下方向键翻出历史命令,想想就知道这有多悲催。于是,着手解决问题。

首先,猜测是putty的问题,于是尝试采用其他的SSH登陆工具Xshell,结果问题依旧,询问其他使用Xshell的童鞋,回答没有遇到类似问题,于是判断不是putty或者Xshell的问题,可能是远程虚拟机的设置问题。

网上搜索后,可能是新用户的shell配置的问题。当新用户和root用户使用的shell类型不一致时,putty容易发生该问题。于是查阅Ubuntu系统下的/etc/passwd文档,发现root用户的shell配置如下:

图1 root用户的shell配置为/bin/bash

而我登陆的用户icanfly的shell配置为空,系统默认使用/bin/sh,导致与root用户不一致:

图2 我的用户名icanfly的shell配置

知道问题的原因,解决方案也就很直接了:修改/etc/passwd文件,在用户icanfly那一行末增加”:/bin/bash”内容即可。

putty的官网:

https://www.chiark.greenend.org.uk/~sgtatham/putty/