我想在 RHEL/CentOS 7.6 中实现
每当您这样做su
并成为根用户时,我希望该终端中的终端提示颜色在该su
会话期间变为红色。键入exit
以恢复原来的身份,我希望提示颜色恢复为以前的颜色(黑色)。
对于使用 putty 通过网络登录的 SSH 窗口也是如此:最初以用户身份 ssh并具有默认的白色 shell 提示符;对su
root 进行操作,我希望提示变为红色;键入 exit 我希望提示返回白色。
到目前为止,我这样做了,但它没有 100% 工作,在您键入exit
并离开 su 会话并返回为user后颜色保持红色。
/etc/profile.d/red_root_prompt.sh
if [ $UID -eq 0 ]; then
PS1="\e[31m[\u@\h \W]# "
else
PS1="[\u@\h \W]# "
有没有办法让事情按照我想要的方式发生?我只希望它用于 bash shell。
您可以将其添加到
/etc/bash.bashrc
或编辑/etc/profile/
你会得到一个看起来像这样的提示。如果您使用白色背景,请将后面的最后一部分更改为
#
,\033[01;30m\]
以便您可以看到命令文本。我将其作为第二个示例供参考。另外,如果您将以下内容添加到
\etc\bash.bashrc
或 ~/.bashrc:你将能够做到:
输出如下所示:
编辑:由于某种原因,使用变量扩展作为提示符会破坏回车(它将它锁定到变量的长度,即将它向前推 n 个对应于
echo $col_blue
,的空格echo $col_white
,我还没有找到一个好的解决方案,因为此刻,但使用正确的括号而不像上面的变量替换可以解决这个问题。对于 RHEL/CentOS 7.x,我认为像这样的自定义内容应该
/etc/profile.d
在/etc/bashrc.local
. 这样,当/etc/bashrc
可能更改或替换类似的东西时,任何自定义都会在更新后保留。对于 RHEL/Centos 7,我认为应该只需要将一个文件放在
/etc/profile.d/
具有相应 shell 的相应后缀的文件下,所以我
/etc/profile.d/redrootprompt.sh
只有这很好用,给出了我想要的外观
它也适用于具有黑色背景和白色文本的腻子窗口,但在 su 到 root 后变为红色并在退出时返回白色。