许多发行版的用户会经常羡慕 Gentoo Linux 的彩色 Bash 提示符,今天便来介绍一下如何在 Linux Deepin 中得到一个类 Gentoo 的彩色 Bash 提示符。
我们需要修改当前普通用户及 root 用户的 $HOME/.bashrc 文件,找到 force_color_prompt=yes 一行,将之反注释掉,然后向下找到 if 条件语句的 then 区块,修改 PS1 变量的值。
对于当前普通用户,需要将此行修改为:
Default
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
1
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
对于 root 用户,则需要将此行修改为:
Default
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
1
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
修改完毕后,需要重新执行一个新的 bash 实例:
Default
exec bash
1
execbash
此时即可看到漂亮的 Bash 提示符:
下面解释一下 PS1 变量的基本含义。对于系统默认情况下的 bash 提示符,PS1 变量可能定义如下:
Default
linuxdeepin:~$ echo $PS1
\u@\h:\w\$
1
2
linuxdeepin:~$echo$PS1
\u@\h:\w\$
上面的一串字符控制着 Bash 提示符的外观。大体来说,PS1 变量的每个字符除非由 \ 字符转义,都会显示在提示符里面。\ 字符会告诉 Bash 对其进行解释。\u 转义为当前用户的用户名;\h 为当前终端所属机器的主机名;\w 为当前工作目录;\$ 显示为 # 或 $ 符号,取决于当前用户是否为 root。
关于 Bash 提示符的更多信息,可查看 bash man page 的 PROMPTING 一节。