![PS1 变量不再显示彩色 bash 提示符](https://linux22.com/image/52775/PS1%20%E5%8F%98%E9%87%8F%E4%B8%8D%E5%86%8D%E6%98%BE%E7%A4%BA%E5%BD%A9%E8%89%B2%20bash%20%E6%8F%90%E7%A4%BA%E7%AC%A6.png)
我正在使用 Centos 6.5 运行 VPS
我的设置~/.bash_profile
如下图所示:
它曾经给我这样的输出:
现在我已经安装了 WHM/Cpanel,我不再看到彩色提示。
echo $PATH
显示:
/usr/local/jdk/bin:/home/jay/perl5/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin:/home/jay/bin
我怎样才能解决这个问题?谁能帮我?
其他一切都根据配置进行。 Grep 和 ls 显示彩色输出。我需要它来工作,因为我发现它可以方便地快速发现以前的命令和输出。
答案1
Bash 对初始化文件的管理很奇怪。在登录 shell 中,bash/etc/profile
只读~/.bash_profile
。在交互式非登录 shell 中,bash/etc/bash.bashrc
仅读取~/.bashrc
。 (我稍微简化了一些,如果您确实想要完整的详细信息,请阅读手册。)
为了遏制这种疯狂,请使用以下内容~/.bash_profile
:
# Read the shell-agnostic login hook
if [ -e ~/.profile ]; then . ~/.profile; fi
if [[ $- = *i* ]]; then
# This is an interactive shell, so read bash's interactive login hooks
# (which bash omits in login shells)
if [[ -e /etc/bash.bashrc ]]; then . /etc/bash.bashrc; fi
if [[ -e /etc/bashrc ]]; then . /etc/bashrc; fi
if [[ -e ~/.bashrc ]]; then . ~/.bashrc; fi
fi
将登录时的内容(如环境变量定义(例如PATH
,EDITOR
))放入~/.profile
.将提示设置和别名等交互式内容放入~/.bashrc
.
有关更多信息,请参阅是否有一个无论登录还是非登录都始终以交互模式获取的 Bash 文件?,登录 Shell 和非登录 Shell 之间的区别?和.bashrc 和 .bash_profile 之间的区别
答案2
只是回答我自己的问题,以防其他人遇到同样的问题。
您可以为所有用户分配 PS1 变量/etc/bashrc
,也可以注释掉并用于/.bash_profile
单个帐户。就我而言,/.bash_profile
已经设置完毕,我所要做的就是在/etc/bashrc
.
请参阅以下屏幕截图。修改完成后,重新启动或者ssh。请注意 cPanel 开发人员留下的评论。
非常感谢 Slyx 和大家的宝贵回复。