Linux命令终端自定义修改PS1

1.了解PS1
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
在终端输入命令:
$ set | grep PS1
可得到当前PS1的定义值:
PS1='[\u@\h \W]\$ '
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用户,提示符为 # ,普通用户则为 $
所以linux默认的命令行提示信息的格式
PS1='[\u@\h \W]$ ' 的意思就是:[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]#

  1. 颜色设置参数
    在PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。

颜色对照表:

FB
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

只需将对应数字套入设置格式中即可。
例如:

要设置命令行的格式为绿字黑底([\e[32;40m]),显示当前用户的账号名称(\u)、主机的第一个名字(\h)、完整的当前工作目录名称(\w)、24小时格式时间(\t),可以直接在命令行键入如下命令:
$ PS1='[\[\e[32;40m\]\u@\h \w \t]$ '
经过多次测试后,最终确定了一个适合我自己的格式:
$ PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
但注意这样的设置只是临时性的.

  1. 修改.bashrc文件,永久保存命令行样式.

上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。
$ vim .bashrc
加入这一行:
PS1="[\e[37;40m][[\e[32;40m]\u[\e[37;40m]@\h [\e[36;40m]\w[\e[0m]]\$ "
保存退出。
重新加载bash配置文件:
$ source .bashrc

关于命令行输入闪烁的问题

参数说明备注
0m 无特殊效果 以示例PS1中的\w\[\e[0m\]]\\\$ 为说明
1m 字体变粗  
2m 颜色变化,部分字体变细  
3m 颜色变化,部分字体倾斜  
4m 颜色变化,加下滑线  
5m 颜色变化,文字闪动  
6m  
9m 颜色变化,加删除线  
8m 黑色文字,  

示例:

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\\$ "