  Colours with Linux terminals {
  Thorbjoern Ravn Andersen, ravn@dit.ou.dk
  v1.4, 7 August 1997
  , GFG02131@niftyserve.or.jp,   V v,
  JCD00743@niftyserve.or.jp 
  13 March 1999

  Linux fBXgr[V̂قƂǂɂ́AfBNg̓e\
   'ls' R}hĂ܂BlXȐFgƂ ls R}h
  o͂₷邱Ƃł̂łAD݂̐ݒɂ̂͊ȒPł͂
  ܂B̕ł́Als ̃J[ݒ̕ύXɂėlXȊp
  xĂApbP[WɊ܂܂ ls ̐ݒύX̑A Slackware
   RedHat ɂ͊܂܂ĂȂ ls \tgEFA(͑̃o[W
  Unix łg܂)̂肩L܂B{ HTML ł͕M҂
  WWW y[W <http://www.mip.ou.dk/~ravn/colour-ls> ł܂B
  ______________________________________________________________________

  ڎ

  1. ͂߂
  2. Ȑl̂߂́AɎg@
  3. KvȂ͎̂Ă?
  4. ǂȐFg邩?
  5. ls ̃J[ݒ@
  6. eLXg[h̃ftHg\𔒍ȊOɐݒ肷ɂ
     6.1 xterm
     6.2 zR\[
        6.2.1 /etc/issue
        6.2.2 /etc/profile ܂ .profile
        6.2.3 /etc/login ܂ .login
     6.3 [gOC

  7. \tgEFA

  ______________________________________________________________________

  1.  ͂߂

  ߔN̓J[fBXvCɕyA[U𐶂ĐF𗘗p
  vOg悤ɂȂn߂܂B̂悤ȃvOg
  ΁AႦ΃vO~O̗\Ă悤ɂAԂ
  ԈႢ̂Pɒm邱Ƃł܂B

  Linux ̃eLXgR\[J[\T|[gĂ̂ŁA
  GNU ls J[o͂悤ɕύXAo[W 2.0 
  Slackware Ɋ܂܂悤ɂȂ܂B̃pb`̉ǔł ls 
  GNU Wzzɑgݍ܂ꂽ̂ŁA݂ł͐V Linux fBXgr[
  VSĂɃJ[Ή ls Ă͂łB

  ̉ł́AłSʓIɉêŁAxterm ̏AJ[l
  ̃pb`̏Ă܂B

  ̕ɏĂ RedHat 4.1 œmF܂B܂A
  ͌XASlackware ̃[X 2.0.2 ƃJ[l 1.1.54 ŃRpC
  ܂BJ[lpb`̏ Slackware 2.2.0  ƃJ[l 1.2.13A
  ftHg̃VF tcsh ƂgɂĒׂłAŃJ
  [l 2.0.27 łmF܂Bǎ҂̊F񂪑̐ݒ⑼̃o[W
   UNIX gĂꍇɂ́Ag̃Iy[eBOVXeƂ
  ̃o[WAWŃJ[\T|[gĂ邩ǂm点Ă
  ƍKłB

  2.  Ȑl̂߂́AɎg@

  ǎ҂̊F񂪍ŋ߂ Linux fBXgr[VgĂ
  Az[fBNgɂȉ̃t@Cɑ΂ĈȉɎύX
  ܂傤B̕ύX͎̃OCLɂȂ܂B

       ~/.bashrc:
           alias ls="ls --color"

       ~/.cshrc:
           alias ls 'ls --color'

  ꂾł!

  p̐F̐ݒs߂ɁA``eval `dircolors $HOME/.colourrc`''
  sƎv邩܂B̃t@C ``dircolors -p
  >$HOME/.colourrc'' ŐAŕҏWł悤ɏ\ȃRgt
  Ă܂B

  3.  KvȂ͎̂Ă?

  ܂ŏɁAFt邱Ƃł ls Ă邩ׂKv
  ܂BLinux ̃eLXgR\[ł̃R}hĂ
  (xterm łvł):

       % ls --color

  (% ̓VF̃vvgł):

  ls ̃IvVFłȂƂG[bZ[WoȂ΁A
  Vo[W GNU fileutils pbP[WCXg[Kv
  ܂Bg̃fBXgr[Vp̓KȃAbvO[hppbP
  [Wꍇɂ́AGNU ̃~[TCgŐVo[W肵A\[
  X璼ڃCXg[܂傤B

  G[bZ[WoȂ΁ÃR}hF ls Ă
  ƂłBcOȂƂɁAȑO Slackware(̃fBXgr[
  Vł\܂)ɓĂÂo[Wɂ́A삪
  ̂܂BRedHat 4.1 ɓĂ ls ͖̖o[W
  3.13 łB

       % ls --version
       ls - GNU fileutils-3.13

  Linux ̃eLXgR\[ ``ls -- color'' R}hsAV
  XẽftHglɂĐFt͂łBŕύX
  ̂邩ǂ߂邱Ƃł܂B

  ̃R}h xterm ŎsꍇAF͕ς܂񂵁A
  ĂȂ܂Bls ̏ꍇƓlɁAIWi xterm v
  O͓œ삷vOɑ΂J[\T|[gĂ
  ̂łAŋ߂̃o[W xterm ͂T|[gĂ܂B
  g xterm J[\T|[gĂȂ΁A̍̕Ō
  ɏ]ĐVo[W肵Ȃ΂Ȃ܂B̏ꍇ͂Ƃ
  eLXg[hɐ؂ւāAɐiłB

  4.  ǂȐFg邩?

  ȉ̃XNvg(bash p̃XNvg𑗕tĂ̕X
  ӂ܂)Agp̃R\[\łFSĕ\邽߂̂
  łBFoȂꍇAg̃R\[ ANSI ̃J[I@\T|
  [gĂ܂B

       #!/bin/bash
       # Display ANSI colours.
       #
       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

  ʂ̍ɑOiF(̐F)ԍAgOɔwiFԍ\܂B
  {[h(Px)ŕ\ꍇAp[^ "1" t
  B܂Awiɖ邢̕\ꍇAp[^
  "33;47;1m" ƂȂ܂BANSI IŜƂĂ

  ESC [ 3 7 ; 4 4 ; 1 m

  ƂȂ܂B

  : ̂ƂAwiPxɂ邱Ƃ͂ł܂BɂA (
  Px̒Fł)F́AOiFȊOł͎g܂B̓n[hEFA
  ̐łB

  FȉɎ܂:
          0 -        4 -              3# ͑OiF
          1 -        5 - }[^       4# ͔wiF
          2 -        6 - VA
          3 -        7 -              ;1 ̓{[h

  5.  ls ̃J[ݒ@

  ls ɕWőgݍ܂ĂF̐ݒC΁Az[fBNg
  Ɍlp̐ݒRs[Kv܂B

        cd ; dircolors -p > .coloursrc

  ōsƂł܂BRgڂtĂ邱̃t@CύX
  ́Aϐ LS_COLORS ɂ̓eǂݍޕKv܂B͎
  ̃R}hōs܂:

       eval `dircolors .colourrc`

  OCxɂ̃R}hs邽߂ɂ́A̍s
  .bashrc/.cshrc/.tcshrc (g̃VFɂĕς܂)ɒǉK
  v܂Bڂ̓IC}jA dircolors(1) 
  B

  6.  eLXg[h̃ftHg\𔒍ȊOɐݒ肷ɂ

  gVȃftHgl[hCoɋĂKv܂B
  s߂̕W̕@݂͑Ȃ̂łALinux Ȃ΃vO
  setterm ܂B

  "setterm" ́A[f[^x[XɂgA[̑ݒ肵
  BI͈ȉ̂悤ɍs܂:

       setterm -foreground black -background white -store

  ł́Aۂ̕ύXɉ "-store" w肷邱ƂɂA
  ̃R\[̃ftHglƂĂݒ肵Ă܂B̋@\𗘗p邽
  ߂ɂ́A݂̒[(ϐ TERM) termcap f[^x[XɂƋLq
  ĂKv܂Bsetterm 炩̗Rœ삵Ȃꍇɂ́A
  ʂ̕@܂:

  6.1.  xterm

  ȉ xterm ̂ꂩpł͂ŁAȂƂ̂ꂩ
  ̓J[\T|[gĂ܂B

       xterm -fg white -bg blue4
       color_xterm -fg white -bg blue4
       color-xterm -fg white -bg blue4
       nxterm -fg white -bg blue4

  ̂A'color_xterm' ̓J[Ή 'ls' T|[gĂ܂B
  Ŏł́ASGI ݂ȃJ[ݒɂĂ܂B

  6.2.  zR\[

  J[lLbp邱Ƃł܂AɃGXP[vV[P
  XgĉzR\[̎sftHgl^邱Ƃł܂BJ
  [lRpCƂɂ́AJ[lpb`߂܂B

  J[l\[X̃t@C /usr/src/linux/drivers/char/console.c 
  B̃t@C 1940 sڂɁA

               def_color       = 0x07;   /* white */
               ulcolor         = 0x0f;   /* bold white */
               halfcolor       = 0x08;   /* grey */

  Ƃ̂ŁAKɕύX킯łB́A

               def_color       = 0x17;   /* white */
               ulcolor         = 0x1f;   /* bold white */
               halfcolor       = 0x18;   /* grey */

  ƂāAnɔ̐ݒɂĂ܂B

  L̐(16i)̓rfIJ[hgR[hłB̃P^̐
  (̐ݒł 1)͔wiFÃP^̐͑OiF(F)łB0=, 1=
  , 2=, 3=VA, 4=, 5=, 6=F/F, 7=ƂȂĂ܂Bu
  邢vFgꍇ͐ 8 ĂBĂ̏ꍇ Px
  ̔wi == ɂ Ȃ̂ŁAǂȂwiƂƂł
  (sjlam1@mda023.cc.monash.edu.au
  <mailto:sjlam1@mda023.cc.monash.edu.au> )BӂB

  WłȂGXP[vV[PX(J[l\[X𒭂߂ĂĔ܂)
  gāAfBXvCƂɉzR\[ɑ΂s̃ftHgl
  ݒ肷邱Ƃł܂B̃V[PX

               ESC [ 8 ]

  łȂ݂OiFƔwiF̃ftHglݒ肵܂Bꂩ瑮
  ݒ蕶(ESC [ m)gĔEȊO̐FI܂B

  ۂɂ̓}VċNxɁÃV[PXR\[ echo 
  Kv܂BLinux }Vǂ̂悤ɎgĂ邩ɂA낢
  ܂:

  6.2.1.  /etc/issue

  Slackware  "Welcome to Linux xx.yy" ̕\słBX^hA
  [̃}VȂA echo ̂ǂł傤(telnet  login
  郆[U[ɂ͗LQ܂)B̃t@C̓u[gɎI
  ɐ(Slackware Ȃ /etc/rc.d/rc.S ŁARedHat Ȃ
  /etc/rc.d/rc.local)t@CŁAȉ̂悤ȕ

         echo ""> /etc/issue
         echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue

  

         ESCAPE="<replace with a single escape character here>"
         echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue
         echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue

  ɕύX܂傤B

  ̖߂́AJ[\z[|WVɒuAJ[(nɔ)
  肵ăZ[uAXN[̎c̕NA܂B̕ύX́AċN
  ɗLɂȂ܂B̃XNvgs sh ́A\033 Ƃ
  łȂ悤Ȃ̂ŁAۂ̃GXP[vLN^[}̂
  YȂ悤ɂĂBemacs Ȃ C-qAvi Ȃ C-v œ͂ł
  B

  6.2.2.  /etc/profile ܂ .profile

         if [ "$TERM" = "console" ]; then
             echo "\033[37;44m\033[8]" #
       # or use setterm.
             setterm -foreground white -background blue -store
         fi

  6.2.3.  /etc/login ܂ .login

         if ( "$TERM" == "console" ) then
           echo "\033[37;44m\033[8]"
       # or use setterm.
             setterm -foreground white -background blue -store
         endif

  6.3.  [gOC

  Ɏ悤 setterm g͂łBJԂ܂AȂ
  gĂ[̂ƂAOC̃}V\ɒmĂKv
  ܂B܂AOCɎg[G~[^AJ[@\T|[g
  邱ƂKvłBM҂̌oɁALinux ȊÕvbgtH[Ō
  ݂̂ƂƂ܂ VT100 G~[VłĂ̂
  ܂:

  o  MS-DOS:         MS-Kermit (t[AMicrosoft ił͂܂)

  o  Windows 95/NT:  Kermit/95 (VFAEFA)

  o  OS/2:           Kermit/95 (VFAEFA)BAW telnet 
     FgƂłA[JŃJX^}CYł邱ƂɒӂĂ
     B

  Kermit ̏ڂɂẮA <http://www.columbia.edu/kermit/> 
  B

  7.  \tgEFA

  ɋĹAׂ GNU/Linux CXg[}Vz肵
  Ă܂Bʂ̂(ł˂AႦ X Ă Sun Ƃ)g
  ꍇłAłȂ̃\tgEFA肵ARpC΂
  ł傤B

  J[ł 'xterm' ͕WI xterm ̃\[XɃpb`𓖂Ă̂łB
  pb`͂ X11R6 TCg܂BR6.3 ɓĂ xterm 
  lCeBuŃJ[\T|[gĂƌĂ܂AM҂̓eX
  gĂ܂B

       ftp://ftp.denet.dk/pub/X11/contrib/utilities/color-xterm-R6pl5-patch.gz

  Âo[W X gẮAt̕QƂĂB
  :̓eXgĂȂB

  `ls' ́AGNU  fileutils pbP[WɓĂ܂B̃pbP[ẂA
  prep.mit.edu Ã~[TCg܂BȂƂ 3.13 
  ĂB

       ftp://ftp.denet.dk/pub/gnu/fileutils-3.XX.tar.gz

  M҂ Solaris, SunOS, Irix ŃJ[ ls ̃RpCɐĂ
  B

  ̕ɑ΂邲wEAzȂ劽}܂Bǂ񂾕͂Ђ
  [BVvA JCD00743@niftyserve.or.jp
  <mailto:JCD00743@niftyserve.or.jp> ƁAA
  GFG02131@niftyserve.or.jp <mailto:GFG02131@niftyserve.or.jp> [
  AhXłB

  pŕւ̃tB[hobN}܂Be-mailAhX
  ravn@dit.ou.dk <mailto:ravn@dit.ou.dk>łB

  --

  Thorbjoern Ravn Andersen, AVv

  (̍XVɍ킹AP fujiwara@linux.or.jp
  <mailto:fujiwara@linux.or.jp> {XV܂B)

