1.问题说明
使用SSH工具如Xshell,SecureCRT等,连接到服务器后,产生以下问题:
-
- 命令提示符前无用户信息,即$符前空白无物
-
- 按下退格键(backspace),方向键(上、下、左、右)产生^[H等等乱码
2.问题解决
2.1 问题原因
这是由于Linux在创建新用户时忘记指定Shell了,使得Shell设置为了默认的sh。但是,我们经常用的Shell应该时bash。如何看到我们当前使用的shell是什么呢?有两种方式:
2.1.1 方式一:使用以下命令打开所有用户的信息
vi /etc/passwd
然后,找到自己的用户所对应的一行,比如说:我的用户名是xyou,注意:此时我的Shell是bash,这是因为我这是修改后写下的博客,但从图片上可以看到用户yzwang此时的Shell为sh
,如下图:
2.1.2 方式二:使用以下命令直接查看用户当前所用shell
echo $SHELL
直接看最后是sh
还是bash
结尾就行
那既然问题找到了,就是用户的Shell的问题,我们如何修改本用户的shell呢?我查询了数篇博客,其中一篇的解决方式是直接修改/etc/passwd文件。但是懂Linux都知道,
一般的服务器是不会给我们sudo权限的,而且我们也往往不是root用户,这就导致了我们根本修改不了/etc/passwd文件
。不过,好在我们并不是修改所有人的shell,我们只需要修改我们自己的shell就行。具体解决措施如下:
2.2 解决措施
- step1:在终端中直接输入以下命令尝试直接运行bash并设置为默认的shell
bash
- setp2:然后将默认shell设置为bash,运行以下命令:
chsh -s /bin/bash
注意:如果在修改默认shell时未指定用户名,系统会自动将更改应用为当前登录用户的,这个不用担心。
至此,问题便解决了。
感谢以下作者给予的参考:
Linux服务器出现方向键乱码、source命令找不到、命令提示符没有用户名问题解决