在使用sudo su之后,我如何更改Ubuntu终端提示符的颜色?

我想在使用sudo su后更改根提示符的颜色。目前它是白色的。我正在VirtualBox虚拟机中使用Ubuntu。
这是我的终端的图片:

screenshot of Ubuntu terminal in VirtualBox


1这个回答解决了你的问题吗?在Bash中是否可以给提示符上色? - Artur Meinild
@ArturMeinild,你标记为重复的那个非常古老的问题中没有关于改变终端颜色的相关内容。 - vanadium
你不认为对于root用户来说,force_color_prompt=yes是对问题的回答吗?如果不是的话,那么就无法理解OP实际上在问什么。 - Artur Meinild
1这个回答解决了您的问题吗?更改作为root时bash提示符的行为 - muru
@ArturMeinild 对我来说很明显:把它换成不同的颜色。甚至还有一张图片。 - vanadium
这个回答解决了你的问题吗?在终端命令提示符中更改用户、主机、目录信息的颜色 - vanadium
2个回答

提示符由PS1变量定义。您可以使用以下命令查看其定义:
~$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

在标准的Ubuntu中,它实际上是通过以下命令定义的:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
  • 在部分\[\033[01;32m\]中将01;32更改为其他数字,以更改username@hostname部分的颜色。
  • 在部分\[\033[01;34m\]中将01;34更改为其他数字,以更改文件夹名称的颜色。

颜色代码列表(来源:source):

Color       Code
Black       0;30
Red         0;31
Green       0;32
Brown       0;33
Blue        0;34
Magenta     0;35
Cyan        0;36
White       0;37

Replace 0 with 1 to get a light colored version.

这个变量是在你的.bashrc配置文件中设置的,每次打开一个交互式shell时都会执行。因此,相应地修改现有的命令。
同样地,你可以通过编辑root用户的.bashrc文件(/root/.bashrc)来改变root用户提示符的颜色。然而,为了启用该帐户的彩色提示符,你还应该取消注释force_color_prompt=yes这一行。

这个解决方案相对简单,输入
nano ~/.bashrc

在终端中以root身份运行。我喜欢使用nano,你可以使用任何你喜欢的文本编辑器。找到并取消注释:
#force_color_prompt=yes

在文件中,保存/写出文件,然后打开一个新的终端并输入root。现在你应该有带颜色的root终端文本了。

很有可能,楼主会想要与普通用户不同的颜色。 - vanadium