环境变量 PS1

以 Bash shell 为例
一般默认的情况下.bashrc里面应该是:
    ~/.bashrc
     export    PS1=' \u@\h:\w\$ '
     上面的意思是:用户@主机:当前目录 $
转义序列
    要是通过彩色化提示符来增加个性化,就要用到转义序列。 转义序列就是一个让 shell 执行一个特殊步骤的控制指令。 转义序列通常都是以 ESC 开头(这也是它的命名原因)。 在 shell 里表示为 ^[ .这种表示法需要一点时间去适应, 也可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033)
代码:
        PS1="\[\033[1;32;40m[\033[0;32;40m\u@\h:\033[1;35;40m\w\033[1;32;40m]\033[1;31;40m\$\033[1;32;40m \]"
最外边的"\[    \]"是为了把转义序列的字符串括起来,防止转义序列的文本显示在 shell 里占用太多的空间。
\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度,接着的中间的数字定义字符颜色。最后面的数字定义了字符背景色。字母m是定义本身所必须的,字母m后面的字符就是你想改变的字符了。
 可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
比如上面我的定义中: 最后显示的结果是在$号之前的字符全部用一个浅绿色的中括弧扩起来。$字符 显示为红色。后面的输入显示为高亮浅绿色。在括弧里面,用户名@主机显示为深绿色,路径显示为洋红。
用代码解释:
Ps1 ="\[                                                  -------------> 最外面的括弧
                 \033[1;32;40m[
                                               ----> 定义最右边的" [ " ;1:字体宽度,好像有加亮功能。
                                                                                              32:字符颜色。32表示绿色。
                                                                                              40:背景色,40表示黑色。
                \033[0;32;40m\u@\h:
                                                --------->定义右边的 \u@\h:  这几个字符颜色。
                                                                                            0: 默认字体宽度。
                                                                                             32:字符颜色。绿色。
                                                                                             40:  背景颜色。黑色。
                   \033[1;35;40m\w
                                                  ---------> 定义右边的 \w  (路径颜色) 。
                                                                                             1:字符宽度。加亮。
                                                                                             35:字符颜色。洋红。
                                                                                             40:背景色。黑色。
                     \033[1;32;40m]
                                                  ---------> 定义右边的  ]  字符。跟前面的   [   字符使用同一效果。
                     \033[1;31;40m\$
                                                   ---------> 定义了  $  字符 为红色。转义字符,所以前面加了 \ .
                                                                       颜色都跟前面差不多。相信大家都发现规律了。
                      \033[1;32;40m
                                                  ----------> 这个定义了你在命令行要输入命令显示的颜色。
                       \]"
                                                  -----------> 字符串结束括弧。
这个就是上面例子的详细定义内容。
其 实我的是没有关闭颜色转义序列,让自己输入的字符也改变颜色,整天看这黑白屏幕不爽哇!!如果不想改变输入颜色的话,用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。按照上面的例子来说就是在 \]" 前面加上 \033[0m 即可。
够简单吧?
看看root下的shell:
rootshowG
这个也不错,是 Nico Golde的:
PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"

posted @ 2012-10-26 21:24  dzqabc  阅读(2666)  评论(1编辑  收藏  举报