给 Linux 命令行添加颜色(不敢说最全,但是绝对是最详细的介绍)

引子

想给自己的命令行添加颜色,像 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

会看到一下效果:


root身份@服务器主机的第一个名称 当前路径

其次是颜色

添加颜色公式:

[\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\]

下面一步一步来:

你可能感兴趣的:(给 Linux 命令行添加颜色(不敢说最全,但是绝对是最详细的介绍))