Colour-ls.pl.txt

(14 KB) Pobierz
  Kolory na terminalach Linux-owych.
  Autor: Thorbjoern Ravn Andersen, ravn@dit.ou.dk v1.4, 7
  Sierpnia 1997 Wersja polska: Bartosz
  MaruszewskiB.Maruszewski@jtz.org.pl.  v1.3, 5 Listopada 1997


  Większość dystrybucji Linux-a ma polecenie 'ls' służące do wyświetla­
  nia zawartości katalogu, które można znacznie uatrakcyjnić używając
  różnych kolorów, ale skonfigurowanie tego zgodnie z własnymi upodoba­
  niami może nie być taką łatwą sprawą.  Dokument ten opisuje różne
  aspekty i podejścia ustawiania polecenia 'ls' przez konfigurowanie
  istniejącego oprogramowania plus lokalizacja alternatywnego opro­
  gramowania nie zawartego w dystrybucjach Slackware czy RedHat, którego
  można użyć na większości systemów unix-owych.  Wersja HTML (w orygi­
  nale) jest także dostępna na mojej stronie WWW
  <http://www.dit.ou.dk/~ravn/colour-ls>.  Dokument ten został napisany
  w standardzie ISO-8859-2.
  ______________________________________________________________________

  Spis&nbsp;treści


  1. Wprowadzenie.

  2. Szybki start dla niecierpliwych.

  3. Czy ja to w ogóle mam?

  4. Z jakich kolorów można wybierać ?

  5. Jak skonfigurować kolory dla ls?

  6. Jak skonfigurować inny standard tekstowy niż białe-na-czarnym ?

     6.1 Xterm.
     6.2 Konsole wirtualne.
        6.2.1 /etc/issue
        6.2.2 /etc/profile lub .profile.
        6.2.3 /etc/login lub .login
     6.3 Logowanie zdalne.

  7. Oprogramowanie.

  8. Od tłumacza.



  ______________________________________________________________________

  1.  Wprowadzenie.


  W ostatnich latach kolorowe monitory stały się bardzo popularne, i
  użytkownicy zaczynają to wykorzystywać przez używanie programów, które
  wykorzystują kolory do wizualizacji różnych szczegółów takich jak
  słowa kluczowe w językach programowania czy podkreślenie słów źle
  napisanych.

  Ponieważ konsola Linux-owa obsługuje kolory, oryginalna wersja GNU ls
  została szybko zmodyfikowana, aby wyświetlać kolorowe informacje i
  program ten został dołączony do dystrybucji Slackware ok. wersji 2.0.
  Ulepszone wersje tych łat weszły w skład standardowej dystrybucji GNU
  ls i dlatego powinny być częścią wszystkich nowych dystrybucji Linux-
  a.


  Wersja ta jest w głównej mierze przepisaną wersją pierwotną
  zawierającą informacje na temat xterminala i łatania jądra.

  Informacja zawarta w tym dokumencie została sprawdzona na dystrybucji
  RedHat 4.1 i została oryginalnie skompilowana na dystrybucji Slackware
  2.0.2 i jądrze w wersi 1.1.54. Informacje na temat łaty zostały
  uzyskane z Dystrybucji Slackware 2.2.0 z jądrem 1.2.13 i powłoką tcsh
  jako domyślną oraz później sprawdzona na jądrze 2.0.27. Jeśli używasz
  jakiejś innej konfiguracji czy wersji unix-a, to będę wdzięczny za
  info na temat systemu operacyjnego i wersji oraz czy kolory są
  dostępne jako standardowe.


  2.  Szybki start dla niecierpliwych.


  Jeśli masz nową dystrybucję Linux-a, to zmodyfikuj pliki w swoim
  katalogu domowym tak jak to pokazano. Efekt będzie widoczny po
  ponownym zalogowaniu się.



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

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





  I to wszystko!

  Możesz także zrobić swój plik .colourrc, żeby mieć swoje kolory
  (``dircolors -p >$HOME/.colourrc''). Jest tam dużo komentarzy, więc
  nie powinieneś mieć problemów z modyfikacjami. Po ustawieniu
  wszystkich kolorów piszesz ``eval `dircolors $HOME/.colourrc`'' żeby
  ustawienia zadziałały.


  3.  Czy ja to w ogóle mam?


  Przede wszystkim powinieneś wiedzieć czy masz wersję ls, która umie
  kolorować. Spróbuj wydać takie polecenie na konsoli Linux-owej
  (chociaż na xterm-ie też powinno się udać):



       % ls --color




  (% jest tu znakiem zachęty systemu).

  Jeśli dostaniesz komunikat o błędzie mówiący, że ls nie rozumie tej
  opcji, to musisz zainstalować nowszą wersję pakietu GNU fileutils.
  Jeśli nie masz odpowiedniego pakietu aktualizacyjnego dla swojej
  dystrybucji, to ściągnij ostatnią wersję z najbliższego ci lustra GNU
  i zainstaluj bezpośrednio ze źródła.

  Jeśli nie dostałeś komunikatu o błędzie, to masz ls, które rozumie to
  polecenie. Niestety niektóre wcześniejsze wersje zawarte w dystrybucji
  Slackware (i możliwe, że w innych) miały błędy. ls zawarte w
  dystrybucji RedHat 4.1 jest w wersji 3.13, która jest w porządku.



       % ls --version
       ls - GNU fileutils-3.13




  Jeśli uruchomiłeś polecenie ``ls -- color'' na konsoli tekstowej
  Linux-a, to rezultat powienien być pokolorowany zgodnie z domyślnymi
  ustawieniami i możesz teraz zdecydować czy jest coś co chcesz zmienić
  czy nie.

  Jeśli uruchomiłeś je w xterm-ie, to mogłeś lub nie - zauważyć zmianę w
  kolorach. W przeciwieństwie do ls, oryginalny program xterm nie
  obsługiwał kolorów dla programów uruchamianych w nim, ale ostatnie
  wersję to robią. Jeśli twój xterm nie obsługuje kolorów, to powinieneś
  zdobyć nowszą wersję tak jak to opisano na końcu tego dokumentu. W
  międzyczasie przełącz się na tryb tekstowy i pracuj tam.


  4.  Z jakich kolorów można wybierać ?


  Ten skrypt (dzięki dla wielu tych, którzy przysłali mi wersję bash)
  pokazuje wszystkie standardowe kombinacje kolorów na bieżącej konsoli.
  Jeśli żadne kolory sie nie pojawią, oznacza to, iż twoją konsola nie
  obsługuje ANSI.


     #!/bin/bash
     # Wyświetl kolory 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



  Numer koloru pierwszego planu jest pokazany po lewej stronie, a tła -
  w prostokącie. Jeśli chcesz znaki jaskrawe dodajesz "1" do parametrów,
  tak że jasny niebieski na białym to: "37;44;1". Cała sekwencja
  selekcji to: ESC [ 3 7 ; 4 4 ; 1 m.

  Uwaga: Tło w chwili obecnej nie może być jaskrawe, więc nie możesz
  mieć żółtego (jaskrawy brązowy) jako coś innego niż pierwszy plan.
  Limit ten wynika ze sprzętu.


  The colours are:
          0 - black    4 - blue           3# is foreground
          1 - red      5 - magenta        4# is background
          2 - green    6 - cyan
          3 - yellow   7 - white          ;1 is bold

  5.  Jak skonfigurować kolory dla ls?


  Jeśli chcesz zmodyfikować standardowe kolory, to potrzebujesz swojej
  osobistej kopii w swoim katalogu domowym, co uzyskasz przy pomocy
  polecenia:


  % cd ; dircolors -p > .coloursrc



  Po modyfikacji tego dobrze skomentowanego pliku musisz wczytać go do
  zmiennej środowiskowej LS_COLORS, co można zwykle zrobić poleceniem:


       eval `dircolors .colourrc`



  Musisz umieścić tę linię w swoim .bashrc (.cshrc, .tcshrc) (w
  zależności od twojej powłoki), aby robić to automatycznie przy każdym
  logowaniu się. Więcej szczegółów znajdziesz w stronie podręcznika man
  dircolors(1).


  6.  Jak skonfigurować inny standard tekstowy niż białe-na-czarnym ?


  Będziesz musiał przekazać sterownikowi twojego terminala kod, który
  chcesz mieć jako domyślny. Nie ma standardowego sposobu, aby to
  zrobić, ale w przypadku Linux-a masz program setterm.

  "setterm" używa informacji zawartych w bazie danych o terminalach, aby
  ustawić atrybuty. Tak się wybiera:


       setterm -foreground black -background white -store



  gdzie -store poza właściwą zmianą powoduje, że ustawienia stają się
  także domyślne dla bieżącej konsoli. Wymaga to, aby bieżący terminal
  (zmienna środowiskowa TERM) był opisany "wystarczająco dobrze" w bazie
  danych "termcap". Jeśli setterm z jakichś powodów nie działa, to tu
  jest kilka alternatyw:


  6.1.  Xterm.


  Jeden z tych Xterminali powinien być dostępny i przynajmniej jeden z
  nich obsługuje kolory.


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



  gdzie 'color_xterm' obsługuje kolorową wersję 'ls'. Ten konkretny
  wybór przypomina kolory używane na SGI.


  6.2.  Konsole wirtualne.


  Możesz zmodyfikować jądro raz na zawsze, tak samo jak udostępniając
  standard podczas działania dla konsol wirtualnych przez sekwencję ze
  znakiem ESC. Jeśli skompilowałeś swoje własne jądro to zalecam
  modyfikację jądra.

  Plik ze źródeł jądra, który powinieneś zmodyfikować około linii 1940,
  to /usr/src/linux/drivers/char/console.c


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



  Ja używam białego na niebieskim:


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



  Liczby to kody atrybutów w postaci szesnastkowej używane przez kartę
  graficzną: najbardziej znacząca cyfra ("1" w przykładzie powyżej) jest
  tłem; najmniej znacząca - pierwszym planem.  0=czarny, 1=niebieski
  2=zielony, 3=jasno-niebieski, 4=czerwony, 5=purpurowy,
  6=brązowy/żółty, 7=biały. Dodaj 8, aby uzyskać kolory jaskrawe.
  Zauważ, że w większości przypadków jaskrawe tło = mrugające znaki,
  matowe tło.  (Od sjlam1@mda023.cc.monash.edu.au
  <mailto:sjlam1@mda023.cc.monash.edu.au>).

  Możesz także dostarczyć nowy standard podczas działania dla
  wirtualnych konsol, na bazie na-ekran z niestandardowymi sekwencjami
  ANSI (znalazłem podczas przglądania źródeł jądra)


       ESC [ 8 ]



  która ustawia domyślne kolory na bieżące tło i pierwszy plan.  Wtedy
  łańcuch resetujący atrybuty (ESC [ m) wybiera te kolory zamiast
  białego i czarn...
Zgłoś jeśli naruszono regulamin