Linux修改bash配色方案
Linux修改bash配色方案
主要内容
本文主要介绍如何在Linux中编辑bash的配色方案,配置原则是简单、清晰,最终呈现效果为:
对应的配色方案为:
# 一般用户用户名为绿色:
PS1='\[\033[01;32m\]\u\[\033[01;37m\]:\[\033[01;36m\]\w\[\033[01;37m\]\$ \[\033[00m\]'
# root用户使用红色用户名作为警示:
PS1='\[\033[01;31m\]\u\[\033[01;37m\]:\[\033[01;36m\]\w\[\033[01;37m\]\$ \[\033[00m\]'
相关环境:AWS云服务器、Ubuntu20.04系统,本地使用FinalShell终端。
操作流程
初始状态
配色方案为:
ubuntu@ip-172-31-32-148:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
确定配色效果
考虑到系统稳定性,并对比不同配色方案,我们暂不修改配置文件,而通过export PS1的值调整配色。本节操作均为临时配置,如果终端发生异常、卡顿、死机,关闭终端重新链接即可恢复(如果无法恢复,建议重启服务器、重装系统、重买)。
通过export PS1 = XXX 可以临时修改配色方案,具体为:
export PS1='\[\033[01;32m\]\u\[\033[01;37m\]:\[\033[01;36m\]\w\[\033[01;37m\]\$ \[\033[00m\]'
解释为:
“[\033[01;32m]”设定颜色为加粗绿色,“\u”表示显示用户名,共同作用为“绿色加粗用户名”;
“[\033[01;37m]”设置接下来颜色为加粗白色,“ : ”表明插入一个“:”符号,共同作用为“加粗白色的冒号;
“[\033[01;36m]”表明加下来颜色为加粗蓝色,“\w”表示显示路径,共同作用为“加粗蓝色路径”;
“[\033[01;37m]”设置接下来颜色为加粗白色,“$”表示插入一个“$”符号;
“[\033[00m]”表示接下来的颜色为普通白色,即将要输入的命令的颜色。
我们可以多次修改,以确定我们所需的方案,配置相关参数见附录
修改配置文件
打开~/.bashrc
vim ~/.bashrc
定位PS1
在初始状态下,PS1相关定于如下:
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
原生状态下包含两个默认配色,根据”color_prompt”选择配色方案,默认状态下”color_prompt”为空,即使用 PS1=’${debian_chroot:+($debian_chroot)}\u@\h:\w$ ‘的配色方案。
为了方便,我们将直接修改这个配色方案,不再修改“color_prompt”;同时为防止出错,建议将PS1复制一行并注释作为恢复备份。
最终修改
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='\[\033[01;32m\]\u\[\033[01;37m\]:\[\033[01;36m\]\w\[\033[01;37m\]\$ \[\033[00m\]'
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
加载配置文件
修改~/.bashrc并保存退出后, 需要重新加载一些这个配置文件,使其生效
source ~/.bashrc
附录
参考:如何修改Bash Shell的提示符的格式和配色 - 知乎 (zhihu.com)
特殊字符
\u: 显示当前用户\w: 打印当前所在目录的绝对路径\W: 打印当前所在目录\h: 显示主机名\H: 显示完全合格域名\A: 显示当前时间24小时制\@: 显示当前时间12小时制\$: 如果有效UID为0,则显示#(指的是root用户),否则显示$(指的是普通用户)\j: 当前由shell管理的作业数量
常用配色
'\e[0;30m' # 黑色
'\e[0;31m' # 红色
'\e[0;32m' # 绿色
'\e[0;33m' # 黄色
'\e[0;34m' # 蓝色
'\e[0;35m' # 紫色
'\e[0;36m' # 青色
'\e[0;37m' # 白色
'\e[1;30m' # 黑色 粗体
'\e[1;31m' # 红色 粗体
'\e[1;32m' # 绿色 粗体
'\e[1;33m' # 黄色 粗体
'\e[1;34m' # 蓝色 粗体
'\e[1;35m' # 紫色 粗体
'\e[1;36m' # 青色 粗体
'\e[1;37m' # 白色 粗体
'\e[4;30m' # 黑色 下划线
'\e[4;31m' # 红色 下划线
'\e[4;32m' # 绿色 下划线
'\e[4;33m' # 黄色 下划线
'\e[4;34m' # 蓝色 下划线
'\e[4;35m' # 紫色 下划线
'\e[4;36m' # 青色 下划线
'\e[4;37m' # 白色 下划线
'\e[40m' # 黑色 背景
'\e[41m' # 红色 背景
'\e[42m' # 绿色 背景
'\e[43m' # 黄色 背景
'\e[44m' # 蓝色 背景
'\e[45m' # 紫色 背景
'\e[46m' # 青色 背景
'\e[47m' # 白色 背景
‘\e[0m' # 重置为默认值
配色方案
export PS1="\e[0;30m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;31m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;32m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;33m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;34m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;35m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;36m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0;37m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;30m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;31m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;32m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;33m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;34m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;35m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;36m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[1;37m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;30m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;31m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;32m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;33m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;34m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;35m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;36m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[4;37m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[40m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[41m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[42m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[43m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[44m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[45m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[46m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[47m[\\u@\\h \\W]\\$ \e[m "
export PS1="\e[0m[\\u@\\h \\W]\\$ \e[m "
对应效果为