平时我们操作的系统命令行界面文本默认黑底白字,有时候会看不惯这种全篇都是白色字符,这个时候可以通过改变PS1环境变量来改变文本颜色。我个人喜欢黑底绿字的搭配,以下是我个人的命令行界面样式:
注意:以下所有代码中的连续‘\’均表示一个‘’字符
一. 首先需要知道的是.bashrc文件,它是用户目录下的一个隐藏文件。这个文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。设置字体颜色的PS1环境变量也在这个文件中配置。
- <span style="font-size:14px;"># 到达用户目录
- cd
- # 编辑.bashrc文件
- vim .bashrc</span>
二. 寻找PS1变量。
如果是root用户,可以看到被注释的一句命令:
PS1='${debian_chroot:+($debian_chroot)}h:w$ '
这就是设置文本颜色的示例语句。将这一句改为以下语句就可以看到最开始的截图效果了。
PS1='${debian_chroot:+($debian_chroot)}[e[01;31m]u@[e[01;34m]h:[e[01;33m]w$ [e[01;32m] '
对于普通用户,同样在.bashrc文件中可以找到如下代码:
if [ "$color_prompt" = yes ]: then
PS1 = '' 此处省略
else
PS1 = '' 此处省略
这个依据个人的配置来选择一个修改,也可以将两处的PS1都修改。我需要修改的是else后的PS1。
三. 分析设计
设置颜色的片段是\[e[01;31m\],将这句运用在多个显示内容上,就可以看到不同的显示效果。将颜色片段除掉,就可以看到基本的组成格式:u@h:w$。其中u是当前用户名,h为主机名,w为完整的工作目录,$依据用户是否为root显示为#或者$。这个基本格式可以自己定制,比如在$或者#之前的内容用中括号括起来:[u@h:w]$。对于转义序列可以参考第四部分。
配置PS1变量就是在基本格式中添加相应的颜色片段\[e[F;Bm\]。其中F表示前景色,B表示背景色。当B为1的时候,会显示为加粗加亮的字符。需要说明的是,当B为1时,F和B交换位置得到的结果是一样的。当然,还是建议将语句书写为标准格式:
PS1='${debian_chroot:+($debian_chroot)}\[e[31;01m\]u[e[0m\]@\[e[34;01m\]h:\[e[33;01m\]w$ \[e[32;01m\] '
代码\[e[0m\]表示重置颜色样式,所以如果想再次使用原来的黑底白字样式,就修改为一下语句即可:
PS1='${debian_chroot:+($debian_chroot)}\[e[0m\]u@h:w$ '
前景色背景色对应代码参见第四部分。
四. 参考
引自http://blog.chinaunix.net/uid-108431-id-3252935.html
1. 转义序列:
- d :代表日期,格式为weekday month date,例如:"Mon Aug1"
- H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
- h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
- :显示时间为24小时格式,如:HH:MM:SS
- T :显示时间为12小时格式
- A :显示时间为24小时格式:HH:MM
- u :当前用户的账号名称
- v :BASH的版本信息
- w :完整的工作目录名称。家目录会以 ~代替
- W :利用basename取得工作目录名称,所以只会列出最后一个目录
- # :下达的第几个命令
- $ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
2. 前景色背景色:
- 前景 背景 颜色
- ------------------------
- 30 40 黑色
- 31 41 紅色
- 32 42 綠色
- 33 43 黃色
- 34 44 藍色
- 35 45 紫紅色
- 36 46 青藍色
- 37 47 白色
3. 代码及意义
- 代码 意义
- -------------------------
- 0 OFF
- 1 高亮显示
- 4 underline
- 5 闪烁
- 7 反白显示
- 8 不可见