切换至root用户时,命令提示符颜色为白色,如何修改?

当我切换至root用户时,发现命令提示符里的内容全部为白色,如图所示:
切换至root用户时,命令提示符颜色为白色,如何修改?_第1张图片
这让人看着不愉快,上网先搜索下解决方案:【切换到 root 账户字体全是白的,怎么改颜色啊】- 百度贴吧,但是这个解决方案只是部分起效,并且也不够优雅,关闭终端效果又打回原形,甚至有些解决方案直接将普通用户的.bashrc文件覆盖掉root用户的.bashrc:【Linux切换到root用户后终端字符没有颜色】,这不是一个好的做法,虽然我没有验证过,但一个系统的文件之所以那样写肯定是有其原因的,为了解决一个终端命令提示符颜色问题而做如此不谨慎的改动,可能是捡了芝麻丢了西瓜。

我参考了这篇文章:【How do I change the color of the prompt in Ubuntu terminal after using sudo su?】,配置方法如下:
(1)sudo su root切换至root用户。
(2)vim ~/.bashrc编辑root家目录下的.bashrc文件。
(3)找到#force_color_prompt=yes的被注释项,去掉此注释,强制要求颜色提示,这个变量上面有Ubuntu开发者的注释说明,开发者认为关闭颜色提示是为了不分散用户的注意力,Terminal窗口的重点应该是命令的输出,而不是提示符本身,恕我难以苟同,追求一点艺术美感会更好的让用户集中注意力,好的设计本身就要能引导用户,对我而言,关闭颜色提示会显得这条命令与整体的Terminal终端环境格格不入,有一种出戏感。

uncomment for a colored prompt, if the terminal has the capability; turned off by default to not distract the user: the focus in a terminal window should be on the output of commands, not on the prompt —— force_color_prompt变量的注释说明

(4)找到以下代码片段

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

并将用户的颜色从绿色01;31m修改为红色01;32m

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

这些参数具体所代表的含义如下:

参数值 含义
${debian_chroot:+($debian_chroot)} 【chroot - Debian Wiki】
【What is $debian_chroot in .bashrc?】
【What does “${debian_chroot:+($debian_chroot)}” do in my terminal prompt?】
\[\033[01;31m\] \[代表[本身,使用了转义符
\033[是转义序列的开始
01;31m分别代表亮度级别;颜色
\]代表]本身

保存退出,并执行source ~/.bashrc使命令生效,最终,达到的是这种效果,左边是普通用户,右边是root用户,在root权限下不仅警示性强,还兼具美感:

颜色对比图

你可能感兴趣的:(linux,ubuntu)