【Linux】Debian 8 设置命令行界面的文本颜色
平时我们操作的系统命令行界面文本默认黑底白字,有时候会看不惯这种全篇都是白色字符,这个时候可以通过改变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则被省略
- \t :显示时间为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 不可见