Linux服务器下,退格键方向键产生乱码、命令提示符无用户信息

本文描述了在使用SSH工具连接Linux服务器时遇到的问题,如无用户信息显示和方向键乱码。原因在于Shell设置错误。文章提供了两种查看Shell的方法,并指导如何在无sudo权限情况下,通过运行bash和chsh命令修改个人Shell,从而解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.问题说明

使用SSH工具如Xshell,SecureCRT等,连接到服务器后,产生以下问题:

    1. 命令提示符前无用户信息,即$符前空白无物
    1. 按下退格键(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命令找不到、命令提示符没有用户名问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值