Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 4275f27a03145c1dd735c321a30f393b > files > 75

howto-text-nl-9.0-1mdk.noarch.rpm

  Kleuren met Linux terminals
  Thorbjørn Ravn Andersen, ravn@dit.ou.dk
  Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org
  v1.4, 7 augustus 1997

  De meeste Linux distributies hebben een 'ls' commando voor het
  weergeven van de inhoud van een directory. Hiermee kan de uitvoer
  visueel worden versterkt door van verschillende kleuren gebruik te
  maken, maar het configureren om 't uit te proberen zou weleens niet
  zo'n alledaagse taak kunnen zijn. Dit document legt de diverse
  aspecten uit en de eerste stappen in het wijzigen van de setup door
  het configureren van bestaande software. Het geeft de lokaties van
  alternatieve software, die in het algemeen niet mee worden geleverd
  met Slackware of RedHat en die met de meeste versies van Unix kunnen
  worden gebruikt.  De HTML versie is ook beschikbaar vanaf mijn eigen
  bron op <http://www.mip.ou.dk/~ravn/colour-ls>.
  ______________________________________________________________________

  Inhoudsopgave


  1. Introductie

  2. Snelle start voor de ongeduldigen

  3. Heb ik het allemaal?

  4. Uit welke kleuren kun je kiezen?

  5. Hoe kleuren te configureren met ls

  6. Hoe de standaard wit-op-zwart tekstmode te wijzigen

     6.1 Xterm
     6.2 Virtuele console
        6.2.1 /etc/issue
        6.2.2 /etc/profile of .profile
        6.2.3 /etc/login of .login
     6.3 Remote login

  7. Software



  ______________________________________________________________________

  1.  Introductie

  In de afgelopen jaren zijn kleurenschermen zeer gewoon geworden, en
  gebruikers beginnen dit uit te buiten door programma's te gebruiken
  die kleuren aanwenden om een snelle visuele terugkoppeling te geven op
  b.v. gereserveerde sleutelwoorden in programmeertalen, of directe
  kennisgeving van onjuist gespelde woorden.

  Aangezien de Linux tekstconsole kleur ondersteunt, werd de GNU ls snel
  gewijzigd om kleurenuitvoer te ondersteunen en werd dit aan Slackware
  rond versie 2.0 toegevoegd. Verbeterde versies van deze patches zijn
  nu verhuisd naar de standaard GNU-distributie van ls, en zouden daarom
  nu onderhand onderdeel van alle nieuwe Linux-distributies moeten zijn.

  Deze revisie is een update van een belangrijk herschrijven van de
  initiële release, inclusief informatie over xterms en het patchen van
  de kernel.

  De informatie in dit document is bevestigd voor Redhat 4.1, en is van
  origine gecompileerd met de 2.0.2 release van Slackware, en de 1.1.54
  kernel. De informatie over de kernel-patch werd verkregen met
  slackware 2.2.0 met de 1.2.13 kernel, met tcsh als de standaard-shell,
  en later bevestigd met een 2.0.27 kernel. Als je een andere
  configuratie of unix versie gebruikt, zou ik een notitie met
  vermelding van je besturingssysteem en versie, en of
  kleurenondersteuning standaard wordt ondersteund, waarderen.

  2.  Snelle start voor de ongeduldigen

  Wijzig de volgende bestanden in je home-directory, als je een nieuwe
  Linux-distributie hebt.  Ze hebben na de volgende login effect.



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

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





  Dat is het!

  Het kan zijn dat je ook een ``eval `dircolors $HOME/.colourrc`'' wilt
  doen, om je eigen kleuren te krijgen.  Dit bestand is aangemaakt met
  ``dircolors -p >$HOME/.colourrc'' en is rijk van commentaar voorzien
  voor verdere wijziging.

  3.  Heb ik het allemaal?

  Als eerste moet je weten of je een ls versie hebt die weet hoe het op
  de juiste wijze kleuren toe moet kennen.  Probeer het volgende
  commando in een Linux tekstconsole (alhoewel ook een xterm voldoet):



       % ls --color




  (de % is een shell-prompt):

  Als je een foutmelding krijgt die aangeeft dat ls de optie niet
  begrijpt, zul je een nieuwe versie van het GNU fileutils package
  moeten installeren.  Als je geen geschikt upgrade package voor je
  distributie hebt, dan kun je de laatste versie gewoon bij je GNU
  mirror ophalen en deze direct van de bron installeren.

  Als je geen foutmelding krijgt, heb je een ls die het commando
  begrijpt. Helaas bevatten een aantal van de eerdere versies, waaronder
  de bij Slackware (en mogelijk anderen) geleverde versies, fouten. De
  ls geleverd bij Redhat 4.1 is versie 3.13 en deze is okay.



       % ls --version
       ls - GNU fileutils-3.13





  Als je het ``ls -- color'' commando onder Linux op een op tekst
  gebaseerde console uitvoerde, zou de uitvoer van kleuren moeten zijn
  voorzien, overeenkomstig de standaardwaarden op het systeem, en kun je
  nu beslissen of er iets is dat je wilt veranderen.

  Als je het in een xterm uitvoerde, kan het zijn dat je wel of geen
  kleurwijzigingen zag. Net als met ls zelf, gaf het originele xterm-
  programma geen enkele ondersteuning voor kleur voor de programma's die
  daaronder draaide, maar recente versies doen dit wel.  Als je xterm
  geen kleuren ondersteunt, zou je een nieuwe versie zoals beschreven
  aan het einde van dit document, op moeten halen.  Schakel in de
  tussentijd gewoon naar tekstmode en ga van daaruit verder.

  4.  Uit welke kleuren kun je kiezen?

  Dit shell-script (met dank aan de velen die me bash versies
  opstuurden) toont alle standaard kleurencombinaties op de huidige
  console. Als er geen kleuren tevoorschijn komen, ondersteunt je
  console geen ANSI kleuren selecties.



       #!/bin/bash
       # Toon ANSI kleuren.
       #
       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




  Het nummer van de voorgrondkleur wordt links getoond, en het nummer
  van de achtergrond in de omlijning.  Als je benadrukte tekens wilt,
  voeg je een "1" toe aan de parameters, dus helder blauw op wit is dan
  "37;44;1". De hele ANSI selectie reeks is dan

  ESC [ 3 7 ; 4 4 ; 1 m



  Opmerking: De achtergrond kan thans niet benadrukt zijn, dus je kunt
  geel alleen als voorgrondkleur hebben.  (benadrukt bruin). Dit is een
  beperking van de hardware.


  De kleuren zijn:
          0 - zwart    4 - blauw         3# is voorgrond
          1 - rood     5 - magenta       4# is achtergrond
          2 - groen    6 - cyan
          3 - geel     7 - wit           ;1 is benadrukt






  5.  Hoe kleuren te configureren met ls


  Als je de in ls ingebouwde standaardkleurenset wilt wijzigen, heb je
  een persoonlijke kopie ervan in je home-directory nodig, die je kunt
  krijgen met


       cd ; dircolors -p > .coloursrc




  Na het wijzigen van dit goed-becommentarieerde bestand zul je het in
  de omgevingsstring LS_COLORS moeten laten lezen, wat gewoonlijk wordt
  bewerkstelligd met


       eval `dircolors .colourrc`




  Je moet deze regel in je .bashrc/.cshrc/.tcshrc (afhankelijk van je
  shell) plaatsen, om dit bij iedere login te laten doen.  Zie de
  dircolors(1) manual page voor details.

  6.  Hoe de standaard wit-op-zwart tekstmode te wijzigen

  Je zult de terminal driver code moeten laten weten dat je een andere
  standaard wilt. Er bestaat geen standaard manier waarop je dit kunt
  doen, maar onder Linux heb je het setterm programma.

  "setterm" gebruikt de informatie in de terminal database om de
  kenmerken in te stellen.  Selecties maak je bijvoorbeeld als volgt


       setterm -foreground black -background white -store




  waar "-store" naast de feitelijke wijzigingen ervoor zorgt dat het ook
  de standaard wordt voor de huidige console.  Dit vereist dat de
  huidige terminal (TERM omgevingsvariabele) "goed genoeg" is beschreven
  in de termcap database. Als setterm om wat voor reden dan ook niet
  werkt, zijn hier een aantal alternatieven:

  6.1.  Xterm

  Eén van deze xterms zou beschikbaar moeten zijn en tenminste één
  daarvan ondersteunt kleur.



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




  waar 'color_xterm' de kleurenversie van 'ls' ondersteund. Deze
  bepaalde keuze lijkt op de kleuren die op een SGI worden gebruikt.

  6.2.  Virtuele console

  Je kunt de kernel voor eens en voor altijd wijzigen, als ook in een
  runtime standaard voorzien voor de virtuele consoles met een escape
  sequence. Ik raad je de kernelpatch aan als je je eigen kernel hebt
  gecompileerd.

  Het kernel bronbestand is /usr/src/linux/drivers/char/console.c zo
  ongeveer bij regel 1940 zou je het volgende moeten wijzigen



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




  Ik gebruik wit op blauw met


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




  De nummers zijn de attribuutcodes die door de videokaart in
  hexadecimaal worden gebruikt: het meest significante cijfer (de "1" in
  de voorbeeldkleuren hierboven) is de achtergrond; het minst
  significant de voorgrond. 0 = black, 1 = blue, 2 = green, 3 = cyan, 4
  = red, 5 = purple, 6 = bruin/geel, 7 = wit. Voeg 8 toe om "heldere"
  kleuren te krijgen. Merk op dat in de meeste gevallen een heldere
  achtergrond == knipperende tekens, matte achtergrond. (Van
  sjlam1@mda023.cc.monash.edu.au
  <mailto:sjlam1@mda023.cc.monash.edu.au>).

  Je kunt ook een nieuwe run-time standaard voor een virtueel console
  aanvullen, op een per-display basis met de niet-standaard ANSI
  sequence (gevonden door het bladeren door de kernelbronnen)


               ESC [ 8 ]




  waarmee de standaardwaarden op de huidige voor- en achtergrondkleuren
  wordt ingesteld. Vervolgens selecteert de Reset Attribuut string (ESC
  [ m) deze kleuren in plaats van wit op zwart.

  Je zult in feite, iedere keer dat je reboot, deze string naar de
  console moeten echoën. Afhankelijk van waar je je Linux box voor
  gebruikt, kunnen verscheidene plaatsen hier geschikt voor zijn:

  6.2.1.  /etc/issue

  Dit is waar "Welcome to Linux xx.yy" onder Slackware wordt getoond, en
  het is een goede keuze voor een stand-alone uitrusting.  (en
  waarschijnlijk verderfelijk voor gebruikers die met telnet inloggen)
  Dit bestand wordt tijdens het booten aangemaakt (Slackware in
  /etc/rc.d/rc.S; Redhat in /etc/rc.d/rc.local), en je zou de regels
  moeten wijzigen waarin zoiets staat als

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




  in


         ESCAPE="<vervang dit door een enkel escape-teken>"
         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




  Deze code zal de cursor linksboven op het scherm plaatsen, de kleur
  instellen (hier wit op blauw), deze selectie opslaan en de rest van
  het scherm wissen. De wijziging heeft na de volgende opstart effect.
  Denk eraan de _literal_ escape-teken in het bestand in te voegen met
  C-q in emacs of control-v in vi, aangezien sh, die voor het uitvoeren
  van het script wordt gebruikt, de /033 syntax blijkbaar niet begrijpt.

  6.2.2.  /etc/profile of .profile



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




  6.2.3.  /etc/login of .login



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




  6.3.  Remote login

  Je zou het programma setterm zoals hierboven moeten kunnen gebruiken.
  Nogmaals, dit vereist dat de remote machine genoeg bekend is met je
  terminal, en dat de terminal-emulator die in de login voorziet kleuren
  ondersteunt.

  In mijn ervaring zijn de beste vt100 emulaties die op dit moment voor
  andere platformen beschikbaar zijn:

  ·  MS-DOS:         MS-Kermit (vrij, geen Microsoft product)

  ·  Windows 95/NT:  Kermit/95 (shareware)

  ·  OS/2:           Kermit/95 (shareware).  Merk op dat de standaard
     telnet kleuren begrijpt en lokaal kan worden aangepast.

  Zie  <http://www.columbia.edu/kermit/> voor details over Kermit.

  7.  Software

  Bij alle informatie die hier is beschreven werd uitgegaan van een
  GNU/Linux installatie. Als je iets anders hebt (zoals b.v. een Sun
  draaiende onder X of zo) kun je de feitelijke software zelf verkrijgen
  en compileren.

  De kleurenversie van 'xterm' is gebaseerd op de standaard xterm source
  met een patch die vanaf elke X11R6 site beschikbaar is.  Het gerucht
  gaat dat de xterm gedistribueerd met R6.3 intern kleurenondersteuning
  biedt, maar dat is niet door mij getest.



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




  Zie de documentatie als je een oudere versie van X gebruikt.
  Opmerking: Ik heb dit zelf niet uitgeprobeerd!

  één van de verscheidene mirrors. Haal tenminste versie 3.13 op.


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




  Ik heb zelf color-ls succesvol gecompileerd op Solaris, SunOS en Irix.

  Ik zou feedback over deze tekst waarderen.  Mijn e-mailadres is
  ravn@dit.ou.dk <mailto:ravn@dit.ou.dk>.

  --

  Thorbjørn Ravn Andersen