shell设置颜色


   使用Shell颜色 bash


   首先使用一个例子来讲明如何实现Shell彩色:ide

   PS1="\[ \033[0;32;40m\u@\h:\w\$ \033[0m \]" 字体


   这时候就会显示以下的提示符: 编码


   在上面命令中,“\033[0;32;40m”表示定义后面文本的颜色,“\033”表示启动一个转义序列,“[”定义开始颜色定义,“0”定义默认的字体颜色,其它部分稍后定义。“32”定义文本的前景色,这里32表示绿色;“40”定义文本的背景色,40表示黑色。在字符串的最后定义了“ \033[0m”,它是用来恢复了默认的文本颜色设置,这样就只会获得一个彩色提示符,而不会影响命令和其输出的颜色显示(即黑底白字)。 字符串


   咱们一共有8种字体颜色可供选择,它们分别是30 (黑色)、31 (红色)、32 (绿色)、33 (×××)、34 (蓝色)、35 ( 紫红色)、36 (青色)和37 (白色)。对于底色也有8种颜色可供选择,只须要将字体颜色的3修改成4便可,例如40、4一、4二、4三、4四、4五、4六、47。 it


   例如,运行下面命令:console

   ~/.bashrc: PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]" class


   将显示以下彩色提示符: 程序


   或者脚本

   PS1="\[\033[1;34;40m[\033[1;31;40m\u@\h:\w\033[1;34;40m]\033[1;37;40m $\033[0;37;0m\] "


   将显示以下彩色提示符:


   文本属性


   咱们前面提到,转义序列符后面的“0”表示定义文本的颜色设置。除了颜色设置之外,还能够设置文本的其它属性。转义序列符后能够跟如下数值:0、一、2二、四、2四、2五、七、27,分别定义颜色、黑体、非黑体、下画线、非下画线、闪烁、非闪烁、翻转、非翻转。经过下面的脚本咱们能够看到全部的效果:


#!/bin/sh



for attr in 0 1 4 5 7 ; do

   echo "----------------------------------------------------------------"

   printf "ESC[%s;Foreground;Background - \n" $attr

   for fore in 30 31 32 33 34 35 36 37; do

       for back in 40 41 42 43 44 45 46 47; do

           printf '\033[%s;%s;%sm %02s;%02s  ' $attr $fore $back $fore $back

       done

   printf '\n'

   done

   printf '\033[0m'

done




   在Shell环境下设置颜色的能力,不单单可以使得Shell提示符看上去更丰富多彩和吸引人,并且能有助于帮助基于console的Linux程序的互动性和趣味性。(T111)



编码 颜色/动做


  0   从新设置属性到缺省设置

  1   设置粗体

  2   设置一半亮度(模拟彩色显示器的颜色)

  4   设置下划线(模拟彩色显示器的颜色)

  5   设置闪烁

  7   设置反向图象

  22  设置通常密度

  24  关闭下划线

  25  关闭闪烁

  27  关闭反向图象

  30  设置黑色前景

  31  设置红色前景

  32  设置绿色前景

  33  设置棕色前景

  34  设置蓝色前景

  35  设置紫色前景

  36  设置青色前景

  37  设置白色前景

  38  在缺省的前景颜色上设置下划线

  39  在缺省的前景颜色上关闭下划线

  40  设置黑色背景

  41  设置红色背景

  42  设置绿色背景

  43  设置棕色背景

  44  设置蓝色背景

  45  设置紫色背景

  46  设置青色背景

  47  设置白色背景

  49  设置缺省黑色背景