引子
想给自己的命令行添加颜色,像 iTerm2 一样有漂亮的颜色,但是发现网上都是错的,自己不了解就瞎解释,抄袭,同质化的东西太多了。 所以研究了一下午,大概是研究明白了,分享出来,也算是给自己做个笔记。
直接上代码:
// 第一步:进入 bashrc
vim ~/.bashrc
// 第二步:把它添加到最后一行
export PS1='[\[\033[33;33m\]\u@\h\[\033[0m\] \[\033[34;34m\]\w\[\033[0m\]]\[\033[35;35m\] 胧月女皇 # \[\033[0m\]'
// 第三步:退出 vim 后,执行
source ~/.bashrc
接下来你就神奇的看到命令行变色了
或者
export PS1=$'[\\[\E[1m\E[32m\\]\\u@\h \\[\E[1m\E[33m\\]\\w\\[\E[1m\E[34m\\]]\n Huawei Cloud EulerOS \\[\E[1m\E[33m\\]#\[\E[0;10m\\] '
效果
怎么实现的?
如果你对此感兴趣,或者想配置自己喜欢的颜色或者样式,请继续往下看
首先是 Linux 系统的SP变量
这没啥好解释的,套用就行了
\d :代表日期,格式为weekday month date,例如:"Mon Aug1"
\H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
这只是一部分,了解更多,自行学习
~/.bashrc 中加入 exoprt
# 进入 vim
vim ~/.bashrc
export PS1 = '[\u@\h \w]'
# 退出 vim 执行
source ~/.bashrc
会看到一下效果:
其次是颜色
添加颜色公式:
[\e[F;Bm] 需要改变颜色的部分 [\e[0m]
# 或者
[\033[F;Bm] 需要改变颜色的部分 [\033[0m]
# 在 .bashrc 字符串中需要用 “\” 对 “[” 和 “]” 做转义,如下
\[\033[F;Bm\] 需要改变的颜色部分 \[\033[0m\]
解释:
F(字体颜色) B(背景颜色) 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫色
36 46 青色
37 47 白色
90 100 深灰色
91 101 淡红色
92 102 亮绿色
93 103 黄色
94 104 淡蓝色
95 105 浅紫色
96 106 蓝绿色
97 107 白色
其他属性:
0 关
1 高亮
4 下划线
5 闪烁
7 反白显示
8 不可见
重要!!!!!!
一、 \033 和 \e 可以替换。
二、 F 和 B 分别代表着 字体(font) 和 背景(background), 并不分先后顺序。
三、 并不是想其他人分享的那样 Bm 或者 Fm 这种解释, m 只是表示结束的字符。 所以可以写成
\[\033[F;Bm\] 需要改变的颜色部分 \[\033[0m\]
或者
\[\033[B;Fm\] 需要改变的颜色部分 \[\033[0m\]