在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。 本文示范了如何使用粗体和彩色的文字。
相信每一位Linux使用者都要面对 Bash。 虽然第一眼看上去非常枯燥,但是又很多方法能够让你的 shell 足够的个性化。 shell 提示符的彩色增强让能够让你的 shell 独一无二, 而且还非常清晰易读。
在本文中我以 Bash shell 为例。因为在不同的终端里的转义序列不完全相同, 所以在本文中我使用的是 ANSI 终端。
shell 彩色配置出现在 bash 的个人配置文件 ~/.bashrc 或者是全局配置文件 /etc/bashrc 里面。 可以通过bashrc 里面的 PS1 变量来设置提示符的外观。
一般默认的情况下.bashrc里面应该是:
~/.bashrc
export PS1=' u@h:w$ '
上面的意思是:用户@主机:当前目录 $
-->这也是大家都非常熟悉的shell提示符 。
其中PS1的定义中个常用的参数的含义如下:
d :
H :
h :
:
T :
A :
u :
v :
w :
W :
$ :
转义序列
要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 33 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)。
要直接在 shell 里面输入转义序列我们需要先按 ctrl-v:CTRL-v ESC。
下面进入主题,说下该如何用shell的颜色。我用我自己的shell颜色设置详细说明.
代码:
PS1="[ 33[1;32;40m[ 33[0;32;40mu@h: 33[1;35;40mw 33[1;32;40m] 33[1;31;40m$ 33[1;32;40m ]"
最外边的"[ ]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。