PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数,可修改linux终端命令行各字体颜色。
使用
在终端输入命令:
1echo $PS1
可得到当前PS1的定义值:
1PS1='[\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默认的命令行提示信息的格式
1PS1='[\u@\h \W]\$ '
显示出来是: \[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名\]#
说明
在PS1中设置字符颜色的格式为:\[\e[F;Bm\]........\[\e[0m\]
,其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,\[\e[0m\]
作为颜色设定的结束。
颜色对照表:
F | B | color | 备注 |
---|---|---|---|
30 | 40 | 黑色 | |
31 | 41 | 红色 | |
32 | 42 | 绿色 | |
33 | 43 | 黄色 | |
34 | 44 | 蓝色 | 在cmd里显示效果很差 |
35 | 45 | 紫红色 | 和powershell的紫色背景完全融为一体 |
36 | 46 | 青蓝色 | |
37 | 47 | 白色 |
要使用颜色只需将对应数字套入设置格式中即可。 比如要设置命令行的格式为绿字黑底(\[\e[32;40m\]
),显示当前用户的账号名称(\u)、主机的第一个名字(\h)、完整的当前工作目录名称(\w)、24小时格式时间(\t),可以直接在命令行键入如下命令:
1PS1='[\[\e[32;40m\]\u@\h \w \t]$ \[\e[0m\]'
经过多次测试后,最终确定了一个适合我自己的格式:
1PS1="\[\e[37;48m\][\[\e[32;48m\]\h \[\e[35;48m\]\t \[\e[36;48m\]\w\[\e[0m\]]\\$ "
但注意这样的设置只是临时性的.
永久生效
上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。
1# 编辑.bashrc
2vim ~/.bashrc
3
4# 加入这一行
5PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\[\e[33;40m\]\h \[\e[35;40m\]\d \[\e[37;40m\]\t \[\e[36;40m\]\w]\[\e[0m\]\\$ "
6
7# 重新加载bash配置文件
8source .bashrc
- 注意:部分发行版,如Debian 9的.bashrc文件中已经定义了PS1,所以在自定义的时候需要删除相关行。
语法说明:
1"
2\[\e[37;40m\]
3 [
4\[\e[32;40m\]
5 \u
6\[\e[37;40m\]
7 @
8 \h
9\[\e[36;40m\]
10 \w
11 ]
12\[\e[0m\]
13 \\$
14"
- 第 1 行:前后必须添加双引号
- 第 2、4、6、9、12 行:颜色设置,因为 “\u” 之前有另外的颜色设置覆盖,所以此行只作用于 [
- 第 13 行:必须两个"\"