问题现象:
登陆linux服务器发现终端提示符变成了 -bash-4.2# ,通常应该是root@主机名 + 路径的格式才对
-bash-4.2#
问题分析:
对比正常和异常的shell发现原来登录用户的家目录下少了这么多默认文件,其中比较重要的是 .bash_profile和.bashrc 文件
- 异常情况:
-bash-4.2# pwd
/root
-bash-4.2# ls -a
. .. .bash_history .viminfo
-bash-4.2#
- 正常情况:
root@centos7 ~ # pwd
/root
root@centos7 ~ # ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .cshrc .mysql_history .pki ..pwd .ssh .tcshrc .viminfo
我们再看看 .bash_profile和.bashrc 文件的作用:
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,设置一些环境变量,执行用户的.bashrc文件
~/.bashrc: 该文件用户配置函数或别名,专用于当前登录用户,当登录shell时以及每次打开新的shell时,该该文件被读取
解决方案:
拷贝 /etc/skel 目录下的文件至shell异常的用户家目录下,重新打开终端,终端提示符已经恢复为正常格式
-bash-4.2# cp /etc/skel/.bash* ~/
-bash-4.2# bash
root@centos7 ~ #
注意:应使用对应shell异常的用户进行复制操作