PS1 变量不再显示彩色 bash 提示符

PS1 变量不再显示彩色 bash 提示符

我正在使用 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

将登录时的内容(如环境变量定义(例如PATHEDITOR))放入~/.profile.将提示设置和别名等交互式内容放入~/.bashrc.

有关更多信息,请参阅是否有一个无论登录还是非登录都始终以交互模式获取的 Bash 文件?,登录 Shell 和非登录 Shell 之间的区别?.bashrc 和 .bash_profile 之间的区别

答案2

只是回答我自己的问题,以防其他人遇到同样的问题。

您可以为所有用户分配 PS1 变量/etc/bashrc,也可以注释掉并用于/.bash_profile单个帐户。就我而言,/.bash_profile已经设置完毕,我所要做的就是在/etc/bashrc.

请参阅以下屏幕截图。修改完成后,重新启动或者ssh。请注意 cPanel 开发人员留下的评论。

在此输入图像描述

非常感谢 Slyx 和大家的宝贵回复。

相关内容