分享
 
 
 

Linux终端机下的彩色显示

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

作者:

Thorbjørn

Ravn

Andersen,

ravn@dit.ou.dk

译者:

Chou-Kai

Wang,

stylon@ms2.hinet.net

v1.4,

7

August

1997

虽然大部份的

Linux

发行版本都附有一个用来把目录的内容列出来,而且可以利用彩色来增强输出在视觉上的效果的'ls'指令,不过要把他设定的合你意却不是件容易的事。这份文件说明了设定一些已经内附在你的

Linux

发行版本的软体,来达到这个目地的好几种不同的方法,还有在那□可以找到一些在大部份版本的

Unix

□都会用到,但是却常常不被附在

Slackware

RedHat

Linux

□的软体。这份文件的

HTML

版本也可以在我的原始档案这□

http://www.mip.ou.dk/~ravn/colour-ls

找的到。

1.

简介

这些年来彩色的显示器已经相当普遍,使用者也开始使用一些以彩色来表示例如:程式语言□的保留字,或是拼错的字,来给使用者一些视觉上的回馈。

自从

Linux

的文字模式控制台支援彩色後,原来的

GNU

ls

也很快的被修改成支援输出彩色的讯息而且被附在

Slackware

2.0

版□。这些改良原来版本的缀补档案已经被整合到标准版的

GNU

ls

里,现在也应该是所有新的

Linux

发行版本的一部份了。

现在这版本的文件是把最初的版本改写了许多部份後更新而来的,包括了一些关於

xterm

如何利用缀补档来更新核心的资讯。

这份文件里的资讯都在

Redhat

4.1

□验证过,而且主要是在Slackware

2.0.2

版及核心版本

1.1.54

的环境□搜集而来的。核心的缀补档的资讯是在

slackware

2.2.0,1.2.13

版的核心,并且以

tcsh

为预设的

shell的环境□取得的,而後来也在

2.0.27

的核心□验证过。如果你使用其它的设定或是

unix

版本,我会很感激你告诉我你的作业系统及版本,还有它是否支援彩色的显示。

2.

快速入门:给没有那麽多耐心的读者

如果你有个

新版的

Linux,对你使用者目录下的这些档案作这些修改,下次你登入的时候就会生效了。

~/.bashrc:

alias

ls="ls

‐‐color"

~/.cshrc:

alias

ls

'ls

‐‐color'

这样就好啦!

你也许还会想要作:``eval

`dircolors

$HOME/.colourrc`'',来设定你自己想要的颜色。这个档案可以用

``dircolors

-p

$HOME/.colourrc''

来制造出来,而且□面有许多的注解方便你更改设定。

3.

这样就好了吗?

首先你需要知道你使用的

ls

是不是可以适当的处理彩色输出。在

Linux

的文字模式控制台试试看这个指令(在

xterm

□也可以):

%

ls

‐‐color

(这□的

%

shell

的提示符号):

如果你看到了表示你的

ls

不能接受这个选项的错误讯息,那你应该安装新版本的

GNU

fileutils

软体。如果你使用的发行版本没有提供新的升级软体,那麽就从

GNU

的映射站台取得这个软体并且直接从原始码安装。

如果你并没有看到错误讯息,那麽你使用的

ls

便可以接受这个选项。但很不幸的,有一些在

Slackware

(其它的发行版本也有可能)

□附的早期版本是有臭□的。在

Redhat

4.1

□面附的

3.13

版的

ls

就没有问题。

%

ls

‐‐version

ls

-

GNU

fileutils-3.13

如果你在

Linux

的文字模式终端机□执行

``ls

‐‐

color'',那麽它的输出应该依照系统的预设值而有适当的彩色,而且你现在可以开始决定是不是需要改变任何的设定。

如果你在

xterm

□执行上面的过程,也许你还是没办法看到输出变成彩色。就跟

ls

一样,原来的

xterm

并不支援应用程式的彩色输出,而较新的版本有支援。如果你的

xterm

不支援彩色,那麽请参考这个文件的结尾拿到较新版本的

xterm,同时你也只好切换到文字模式并且继续下面的步骤。

4.

有那些颜色可以选择呢?

下面的

shell

命令稿(感谢许多把

bash

的版本寄给我的人)显示出现在使用的主控台能够支援的各种颜色组合。如果没有颜色出现,那麽你的主控台就不支援

ANSI

的颜色选择。

#!/bin/bash

#

显示

ANSI

的彩色

#

esc="\033["

echo

-n

"

_

_

_

_

_40

_

_

_

41_

_

_

_42

_

_

_

43"

echo

"_

_

_

44_

_

_

_45

_

_

_

46_

_

_

_47

_"

for

fore

in

30

31

32

33

34

35

36

37;

do

line1="$fore

"

line2="

"

for

back

in

40

41

42

43

44

45

46

47;

do

line1="${line1}${esc}${back};${fore}m

Normal

${esc}0m"

line2="${line2}${esc}${back};${fore};1m

Bold

${esc}0m"

done

echo

-e

"$line1\n$line2"

done

前景的颜色号码是在左边那一排,背景的则是在上方。如果你要粗体的字元和高亮度就在参数□加一个

"1",所以前景是白色而背景是蓝色就成了

"37;44;1"。整个的

ANSI

颜色选择序列就是

ESC

[

3

7

;

4

4

;

1

m

注:

背景不可以是高亮度,所以黄色(高亮度的棕色)只能用来作前景。这是硬体上的限制。

颜色代码:

0

-

黑色

4

-

蓝色

3#

是背景颜色

1

-

红色

5

-

粉红色

4#

是前景颜色

2

-

绿色

6

-

青色

3

-

黄色

7

-

白色

;1

是粗体和高亮度

5.

如何设定

ls

的彩色输出

如果你想要修改

ls

内定的标准颜色,你需要用下面的指令在你的

HOME

目录下制造这一个档案

cd

;

dircolors

-p

.coloursrc

在你编辑完这个注解的很详细的档案以後,你必需要把它读进你的环境变数

LS_COLORS

□,通常都是这样作的

eval

`dircolors

.colourrc`

然後你要把前面这一行放进你的

.bashrc

.cshrc

.tcshrc

(依照你使用的

shell

而定)□。更详细的用法请看

dircolors(1)

的使用说明。

6.

如何改变系统的预设值:

前景白色而背景是黑色

你需要告诉你的终端机驱动程式你想要的另一个预设值。要如何作并没有一个标准的方法,不过如果你是用

Linux

的话,你有

setterm

这个程式可以用。

"setterm"

使用终端机资料库□的资料来设定属性。要选择属性的话要这样作

setterm

-foreground

black

-background

white

-store

"-store"

参数把现在所作的改变设定成预设值。这需要你现在使用的的终端机种类(在

TERM

环境变数□)在

termcap

资料库□有足够详细的纪录。如果

setterm

因为某种因素不能正常的工作,你还有其它的选择。

6.1

Xterm

你要有至少一种下列的

xterm,而且要支援彩色。

xterm

-fg

white

-bg

blue4

color_xterm

-fg

white

-bg

blue4

color-xterm

-fg

white

-bg

blue4

nxterm

-fg

white

-bg

blue4

这□的

'color_xterm'

支援彩色版的

'ls'。这□的颜色选择是模彷

SGI

上面使用的颜色。

6.2

虚拟主控台

你也可以修改核心,这样就可以一劳永逸的用控制码来改变虚拟主控台的预设值。如果你自己编译核心的话,我建议利用

kernel

的缀补档。

核心的原始码是在

/usr/src/linux/drivers/char/console.c

,大概在

1940

行,这是你应该修改的地方

def_color

=

0x07;

/*

white

*/

ulcolor

=

0x0f;

/*

bold

white

*/

halfcolor

=

0x08;

/*

grey

*/

def_color

=

0x17;

/*

white

*/

ulcolor

=

0x1f;

/*

bold

white

*/

halfcolor

=

0x18;

/*

grey

*/

这边的十六进位数字是给显示卡用的:

最左边的位元(上面□例的

"1")是背景

;

最右边的位元是前景。0

=

黑色,1

=

蓝色,2

=

绿色,3

=

青色,

4

=

红色,

5

=

紫色,6

=

棕色/黄色,7

=

白色。把数字加

8

可以得到高亮度的颜色。在大部份的情况下,高亮度的背景色

==

闪烁的字加上普通的背景。由

sjlam1@mda023.cc.monash.edu.au

所提供

你也可以使用下面的

ANSI

控制码提供一个执行时期的主控台预设值。(在核心原始码□找到的)

ESC

[

8

]

这个控制码把预设值设成目前的前景及背景颜色。然後重设属性的控制码(ESC

[

m)让这预设值马上就取代黑白色成为使用中的颜色。

每次你重开机的时侯你都需要再把这些字串送给主控台。依照你的

Linux

主机用途不同,有好几个档案可以达成这个目的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有