自定义命令提示符颜色

PS1介绍

PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数

linux默认的命令行提示信息的格式

PS1='[\u@\h \W]\$ '

获取当前PS1定义的值

[root@clone1 ~]# echo $PS1
[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[33;40m\]\h \[\e[34;40m\]\W\[\e[0m\]]\$

PS1的常用参数以及含义:

  \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
  \H :完整的主机名称
  \h :仅取主机名中的第一个名字
  \t :显示时间为24小时格式,如:HH:MM:SS
  \T :显示时间为12小时格式
  \A :显示时间为24小时格式:HH:MM
  \u :当前用户的账号名称
  \v :BASH的版本信息
  \w :完整的工作目录名称
  \W :利用basename取得工作目录名称,只显示最后一个目录名
  # :下达的第几个命令
  $ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $

颜色设置参数
颜色设置格式为:

\[\e[F;Bm\]...\[\e[0m\]]

其中F为字体颜色,编号30-37;
B为背景颜色,编号为40-47
[\e[0m]为设定颜色的结束符号

其中的\e[F;Bm和\e[0m就是改变终端字体颜色的部分,前者是修改颜色,后者是恢复到正常显示。但是这时还会有问题,在提示符中回车换行不正常,导致显示混乱,因此,除了这个修改之外,还需要将全部非打印字符用专用的 bash 转义序列 "[" 和 "]" 括起来。这两个序列通知 bash,被括起来的字符不占用行上空间 ,这样就使自动换行正常。

颜色对照表
F       B
30      40      黑色
31      41      红色
32      42      绿色
33      43      黄色
34      44      蓝色
35      45      紫红色
36      46      青蓝色
37      47      白色

如果需要设置特殊显示,如高亮显示显示,可以将字符序列颜色的格式中\e[F;Bm中的F;B设置为1,即\e[1m,然后和颜色信息加配置在一起,如\e[31;40m\e[1m。

设置特殊显示表如下: 

0 OFF,关闭颜色
1 高亮显示
4 显示下划线
5 闪烁显示
7 反白显示
8 颜色不可见

写入配置文件

Linux登录过程中加载配置文件顺序:

/etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc]

通过在终端中执行export命令设置的变更只对当前终端有效,重新登陆终端就会失效。如果需要永久,就需要写到配置文件中。

将export语句写入/etc/profile或/etc/bashrc对全部用户生效,写入~/.bash_profile或~/.bashrc 只对当前用户生效。

临时生效:

[root@clone1 ~]# export PS1='[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[33;40m\]\h \[\e[34;40m\]\W\[\e[0m\]]\$ '

永久生效:

[root@clone1 ~]# echo "export PS1='[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[33;40m\]\h \[\e[34;40m\]\W\[\e[0m\]]\$ '" >> /etc/bashrc
[root@clone1 ~]# tail -1 /etc/bashrc
export PS1='[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[33;40m\]\h \[\e[34;40m\]\W\[\e[0m\]]\$ '
[root@clone1 ~]# . /etc/bashrc

猜你喜欢

转载自www.cnblogs.com/dnote/p/9356537.html