linux用户登录后显示 “-bash-4.2#” 解决方法

2021-09-19   


linux用户登录后显示 “-bash-4.2#” 解决方法

有时候我们登录linux系统或者远程系统后,发现我们熟悉的[root@localhost ~]#变成了-bash-4.2#情况如下:

这种情况一般都是环境变量的文件丢失或者内容有误导致的。在这里我们分两种情况:

当前用户家目录下环境变量文件丢失解决办法

如果只是当前登录用户显示**-bash-4.2#**,但su到别的用户上却是正常的,这种情况就只是当前登录用户的家目录下环境变量文件丢失了

这里我们只需要将/root文件夹下的.bash_profile与 .bashrc两个文件从/etc/skel(这个目录是用来存放新用户配置文件的目录,目录下的文件全都是隐藏文件)目录下恢复即可,具体操作步骤如下:

#查看当前家目录下的所有文件,有无缺失.bash_profile和.bashrc
-bash-4.2# ls -a
.               .config        .mozilla          study.tar.gz    wangzhan.sh   图片
..              .cshrc         .mysql_history    .sunlogin       .xauth5SuAAT  文档
auto_ssh.sh     .dbus          mysql_install.sh  Sunlogin Files  .Xauthority   下载
.bash_history   .esd_auth      ntpserver.bak     .tcshrc         xunjian.sh    音乐
.bash_logout    game.tar.gz    .pki              .viminfo        公共          桌面
.cache          .ICEauthority  sensors           .viminfo.tmp    模板
.common.sh.swp  .local         .ssh              .viminfz.tmp    视频

#查看/etc/skel目录下的所有文件
-bash-4.2# ls -a /etc/skel
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla

#恢复/root目录下的.bash_profile和.bashrc两个文件
-bash-4.2# cp /etc/skel/{.bash_profile,.bashrc} .
-bash-4.2# source .bash_profile
[root@localhost ~]# 

全局环境变量文件丢失解决办法

如果当前用户登录后,用ls -a查看发现是有.bash_profile与 .bashrc两个文件的,那就很有可能是全局环境变量的文件丢失或者内容有误导致的。这个就稍微麻烦些,需要从其他同版本的系统中拷贝/etc/profile/etc/bashrc

具体步骤如下,下面的ip要换成你同网段正常服务器的ip即可:

#查看/etc目录下是否有profile和bashrc两个文件
-bash-4.2# ls /etc | egrep "bashrc|profile"
profile.d

#同步其他同版本服务器上的文件到本地/etc目录下
-bash-4.2# rsync -az root@192.168.137.4:/etc/{profile,bashrc} /etc/

#再次查看/etc目录下是否有profile和bashrc两个文件
-bash-4.2# ls /etc | egrep "bashrc|profile"
bashrc
profile
profile.d

#载入环境变量文件
-bash-4.2# source /etc/profile
-bash-4.2# source /etc/bashrc
[root@localhost ~]#

**附加:有时候开发编译了一个软件后导致使用系统命令报错,这也可能和环境变量有关哦!**如下:

Q.E.D.