Linux 终端机下的彩色显示

2008-02-23 07:23:29来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

作者: 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 颜色选择序列就是 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何设定与维持准确的电脑时钟

下一篇:桥接器的运作 mini-Howto