Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86267
  • 博文数量: 31
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-26 13:33
文章分类

全部博文(31)

文章存档

2009年(5)

2008年(26)

我的朋友

分类:

2008-08-30 21:26:18

以下文字节选自网络

 

对于兼容ANSI的终端,如xtermrxvtkonsole等,可以彩色显示终端文本中的底色或前景颜色,本文将详细讨论如何实现随意修改和定制这些终端的颜色。

转义序列符

为了添加个人风格的彩色提示符,我们需要使用转义序列符。一个转义序列符是一个控制命令,它控制Shell执行某个特定的动作。一个转义序列符通常以 ESC开始,在Shell中被记录为"^[",有时候也被常常记录为3(因为ESCASCII编码中是27,八进制就被记录为033)。为了直接在 Shell中输入一个转义序列符,一般会以“Ctrl+V”作为前导,也就是“Ctrl-v ESC”

使用Shell颜色

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

PS1="[ 3[0;32;40mu@h:w$ 3[0m ]"

这时候就会显示如下的提示符:

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

我们一共有8种字体颜色可供选择,它们分别是30 (黑色)31 (红色)32 (绿色)33 (黄色)34 (蓝色)35 ( 紫红色)36 (青色)37 (白色)。对于底色也有8种颜色可供选择,只需要将字体颜色的3修改为4即可,例如4041424344454647

前景      背景      颜色
---------------------------------------
30          40         
黑色
31           41         
红色

32          42          绿色
33          43         
黄色
34          44         
蓝色
35          45         
紫红色
36          46         
青蓝色
37          47         
白色

 


代码      意义
-------------------------
0            OFF
1           
高亮显示
4           
下划线
5           
闪烁
7           
反白显示
8           
不可见


【例子】

# echo -e '\033[34mYour input invaild !!\033[0m'

你将看到下面的输出

Your input invaild !!

 

 

echo -e '\033[4m\033[0m'

你将看到下面的输出

 

阅读(1083) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~