[LinuxFocus-icon]
<--  | ��ҳ  | վ���ͼ  | ����  | ����

���� | �����ڿ� | ���� | ����LF
This document is available in: English  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

[Photo of the Author]
by Nico Golde
<nico/at/ngolde.de>

��������:

���� Nico ����һ��ѧ��������ǰ����ʼ���� Linux�� ���μ��˺ü�����Դ��Ŀ��


Ŀ¼:

 

��ɫ�������� ���� ʹ�� ANSI ɫ�ʴ���

ansi colors

ժҪ:

�� ANSI �����նˣ����� xterm��rxvt��konsole �ȣ�� �����ò�ɫ��ʾ�ı����������Ǻڰס� ����ʾ�������ʹ�ô���Ͳ�ɫ�����֡�

_________________ _________________ _________________

 

����

����ʵ�����У�ÿһλ Linux ʹ���߶�Ҫ��� Bash�� ��Ȼ��һ�ۿ���ȥ�dz���������ֺܶ෽���ܹ������ shell �㹻�ĸ��Ի��� shell ��ʾ���IJ�ɫ��ǿ���ܹ������ shell ��һ�޶��� ���һ��dz������׶���

�ڱ��������� Bash shell Ϊ������Ϊ�ڲ�ͬ���ն����ת�����в���ȫ��ͬ�� �����ڱ�������ʹ�õ��� ANSI �նˡ�  

Shell ������

shell ��ɫ���ó����� bash �ĸ��������ļ� ~/.bashrc ������ȫ�������ļ� /etc/bashrc ���档 ����ͨ�� bashrc ����� PS1 ������������ʾ������ۡ�

ͨ������£������Ŀ������Ӧ����������ӣ�
~/.bashrc: PS1="\s-\v\$ "
\s ��ʾ shell �����ƣ�-\v ��ʾ���İ汾�š� ����ʾ������������Ƿ�����һ�� $������������Ҳ���е㷦ζ�� ���Բ���������������ģʽ��������ģʽ�ڴ���� Linux �ķ��а汾����Ĭ�ϵ����ã�
~/.bashrc: PS1="\u@\h \w \$ "
���ʾ �û�@ ��ǰĿ¼ $������Ǵ󲿷� Linux �û�����Ϥ�� shell ��ʾ����  

ת������

Ҫ��ͨ����ɫ����ʾ�������Ӹ��Ի�����Ҫ�õ�ת�����С� ת�����о���һ���� shell ִ��һ�����ⲽ��Ŀ���ָ� ת������ͨ�������� ESC ��ͷ����Ҳ����������ԭ�򣩡� �� shell ���ʾΪ ^[�����ֱ�ʾ����Ҫһ��ʱ��ȥ��Ӧ�� Ҳ������ \033 �����ͬ�Ĺ�����ESC �� ASCII ����ʮ���Ʊ�ʾ���� 27�� = �ð˽��Ʊ�ʾ�� 33����

Ҫֱ���� shell ��������ת������������Ҫ�Ȱ� ctrl-v��CTRL-v ESC��  

ʹ�� shell ����ɫ

��������һ����ʾ�������������� shell ����ɫ��
~/.bashrc: PS1="\[\033[0;32;40m\u@\h:\w\$ \]"
������ʾ����ȫ����ʾ����ɫ�ˡ�����������
nico@ebrain:~$

\033 ������ת�����еĿ�ʼ��Ȼ���� [ ��ʼ������ɫ�� ����� 0 ������Ĭ�ϵ�������ȡ��Ժ��һ���������Ŀ����ַ��� ת�������ַ���Ҫ�� \[ �� \] �������� ��ֹת�����е��ı���ʾ�� shell ��ռ��̫��Ŀռ䡣

��������Ҫѡ��ǰ��ɫ�������� 32��������ɫ��������ɫ�� 40 ��ʾ��ɫ�� Ҫ�Dz�������ʾ�����������Ҳ�����ɫ�������� \033[0m �ر�ת�����У� \033[0m �� shell ��Ĭ����ɫ��ǰ��ɫ�ͱ���ɫ���� 8 �ֿ��õ�ѡ��

��ѡ��ɫ����ɫ����ɫ����ɫ����ɫ����졢��ɫ�Ͱ�ɫ�� ���Ƕ�Ӧ����ɫ�����ǣ�30����ɫ����31����ɫ����32����ɫ���� 33����ɫ����34����ɫ����35����죩��36����ɫ����37����ɫ����

��ͬ��ɫ�������ñ���ɫ������Ҫ�ѵ�һ�����֡�3���滻�ɡ�4���� ���� 40��41��42��43��44��45��46��47��

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

���������һ���dz���ʵ���ʾ����
nico@ ebrain: ~$

����ʹ�� export PS1="string" ��������Щ���ã� �Ժ�����Ҫ����Щ����ת�Ƶ� .bashrc ���档 �����ҵ���ʾ����������������ӣ�
PS1="\[\033[1;34;40m[\033[1;31;40m\u@\h:\w\033[1;34;40m]\033[1;37;40m $\033[0;37;0m\] "

[ nico@ebrain:~ ]
 

�ı�����

�ղ��ᵽ�ˣ��ڵ�һ��ת�����к���ġ�0������ʾ�����ı���Ĭ����ɫ���á� �����ı�������˵����Щֵ��������ģ�0��1��22��4��24��5��25��7��27�� �ֱ��ʾ��Ĭ��ֵ�����塢�Ǵ��塢�»��ߡ����»��ߡ���˸������˸�� ���ԡ��Ƿ��ԡ�

ͨ��������һ�ζ�С�Ľű������ǿ��Կ���ɫ����ϡ�
#!/bin/sh
############################################################
# Nico Golde <nico(at)ngolde.de> Homepage: http://www.ngolde.de
# Last change: Mon Feb 16 16:24:41 CET 2004
############################################################

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
��νű����Դ� showansicol.tar.gz ���أ���ʽ�� tar.gz��  

��һ������

�� shell ��������ɫ�������ܴ�������Ư������ʾ���� �ڱ�д����̨�����ʱ��Ҳ�dz����á�

����һ��Ҫʹ�ò�ɫ�ij���Ա���ͱ���Ҫʹ������ slang �� ncurses �����ĵĿ⣬��ͨ��������ִ���ļ��Ĵ�С�� Ncurses ���Ż����ٵĶ������ն˵����͵����ơ�  

C ����ʾ��

����ɫ��ӡ��Hello Word����
#include <stdio.h>
int main(void){
  const char *const green = "\033[0;40;32m";
  const char *const normal = "\033[0m";
  printf("%sHello World%s\n", green, normal);
  return 0;
}
����һ�����õ�ת�������� printf("\033[2J")������ system(clear) ��ɵĹ���һ�������ǿ��Բ���Ҫͷ�ļ� unistd.h��

ʹ��printf("\033[1K") ����ɾ��һ�С�  

��ʼ���ű�ʾ��

����������� /etc/init.d �� init �ű��ɹ���ִ�к� �õ�һ��Ư���ġ������׶�����ʾ��������һ���򵥵� '.'�� ���ǿ�����һ�ε�ʹ��ת�����С�

����һ�� cron init script ��ժ¼��
#!/bin/sh
# Start/stop the cron daemon.
test -f /usr/sbin/cron || exit 0

 case "$1" in
 start)  echo -n "Starting periodic command scheduler: cron"
     start-stop-daemon --start --quiet --exec /usr/sbin/cron

                 echo "."
;;

��� cron �ű�ִ�гɹ��ͻ���ʾһ����㡣 ������ [Ok] ����Щ��Ϣ�����ϲ�ɫ������ͨ���ı� echo �ַ��������磺
#!/bin/sh
# Start/stop the cron daemon.
test -f /usr/sbin/cron || exit 0
case "$1" in
start)  echo -n "Starting periodic command scheduler: cron"
        start-stop-daemon --start --quiet --exec /usr/sbin/cron
echo "\[ \033[1;34;40m[ \033[1;32;40mOk \033[1;34;40m]\033[0m\]"
    ;;
���������Ӧ�õ����е� init�ű��Ϸdz��ķ�ʱ�䣬 ����ʹ��ת������ \033 ���� ��Ϊ Ctrl-v ������Ϊһ���ַ��������ġ�  

����

������κη���������������ȣ��뷢�ŵ���nico at ngolde.de���� ��ÿ��ġ���  

����ƪ���·�������

ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
 ����ҳ�� 

<--, back to the index of this issue

��ҳ��LinuxFocus�༭��ά��
© Nico Golde, FDL
LinuxFocus.org
������Ϣ:
de --> -- : Nico Golde <nico/at/ngolde.de>
de --> en: Jürgen Pohl <sept.sapins(at)verizon.net>
en --> zh: �շ��� <shaofanyun(at)yahoo.com.cn>

2004-05-06, generated by lfparser version 2.46