bash PS1配色

心已入冬 提交于 2019-12-01 07:00:04

bash的命令提示符和终端外观由环境变量PS1定义

PS1 在每个命令之前显示的主提示符,因此它是每个人都不同的。 
PS2 当一个命令需要更多的输入(例如,一个多行命令)中显示的辅助提示。
PS3 不是很常用。
PS4 也是不常用。

PS1格式

\u 表示用户(username);
\h 表示主机(hostname);
\w 表示当前工作目录(directory);
\$ 如果您不是超级用户 (非root),则插入一个 "$";如果您是超级用户(root),则显示一个 "#"。
\[ 这个字符应该出现在不占位转义字符(如颜色转义字符)之前,它使bash能够正确计算自动换行;
\] 这个字符应该出现在不占位转义字符(如颜色转义字符)之后;
\e ASCII转义字符序列开始(也可以键入 \033);
\a ASCII响铃字符(也可以键入 \007);
\d "Wed Sep 06"格式的日期;
\H 主机的全称(如 "mybox.mydomain.com");
\j 在此shell中通过按 ^Z挂起的进程数;
\l 此shell的终端设备名 (如"ttyp4");
\n 换行符;
\r 回车符;
\s shell的名称(如 "bash");
\t 24小时制时间(如 "23:01:01");
\T 12小时制时间(如 "11:01:01");
\@ 带有 am/pm的 12小时制时间;
\v bash的版本(如 2.04);
\V Bash版本(包括补丁级别) ?/td>;
\W 当前工作目录的“基名 (basename)”(如 "drobbins");
\! 当前命令在历史缓冲区中的位置;
\# 命令编号(只要您键入内容,它就会在每次提示时累加);
\xxx 插 入一个用三位数 xxx(用零代替未使用的数字,如 "/007")表示的 ASCII 字符;
\\ 反斜 杠。 

PS1配色方案

配色格式
以"\e["开始,"m"结束 (\e表示escape,八进制\033,下同)
\e[ X m
X
X可以分别由A、B、F或它们的组合表示,组合时由分号“;”分割
X <=> A(或B或F)
X <=> A;B;F(或B;A或其它任意方式,甚至可以A;B;F;A)
总之,后面的配置会影响前面的配置。如,F会影响A和B的配置
B为背景颜色,编号40~47
A为文本属性
F为字体颜色,编号30~37
关闭颜色输出
\e[00m
颜色、属性

背景颜色(B) 文本属性(A) 文本颜色(F)
40:黑色 00:重置文本和背景 30:黑色
41:红色 01:设置高亮度 31:红色
42:绿色 04:下划线 32:绿色
43:黄色 05:闪烁 33:黄色
44:蓝色 07:反显 34:蓝色
45:紫色 08:消隐 35:紫色
46:青色 36:青色
47:白色 37:白色

说明
在一个X内,后面的A、B、F设置会影响前面的A、B、F设置,会直接影响此X的设置结果
在不同X之间,如先X1和后X2。X2只能影响到X1在X2之后的显示(即X2之后的内容由X1
和X2叠加共同作用),在X1到X2之间仍由X1显示,X2无法影响

我的

export CLICOLOR=1
# grep
alias grep='grep --color=always'
# '\u@\h:\w\$ '
export PS1='\[\e[0;31;07m\]\u\[\e[0;07m\]@\[\e[0;32;07m\]\h\[\e[0m\]:\[\e[0;36m\]\w\[\e[0m\]\$ '
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!