Kolory na terminalach Linux-owych.
Autor: Thorbjłrn Ravn Andersen, ravn@dit.ou.dk v1.4, 7
Sierpnia 1997 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz
MMaarruusszzeewwsskkiiBB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll.. 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
. Dokument ten został napisany
w standardzie ISO-8859-2.
______________________________________________________________________
Spis 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.
______________________________________________________________________
11.. WWpprroowwaaddzzeenniiee..
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.
22.. SSzzyybbkkii ssttaarrtt ddllaa nniieecciieerrpplliiwwyycchh..
Jeśli masz _n_o_w_ą 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.
33.. CCzzyy jjaa ttoo ww ooggóóllee mmaamm??
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 _n_i_e 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.
44.. ZZ jjaakkiicchh kkoolloorróóww mmoożżnnaa wwyybbiieerraaćć ??
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
55.. JJaakk sskkoonnffiigguurroowwaaćć kkoolloorryy ddllaa llss??
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).
66.. JJaakk sskkoonnffiigguurroowwaaćć iinnnnyy ssttaannddaarrdd tteekkssttoowwyy nniiżż bbiiaałłee--nnaa--cczzaarrnnyymm ??
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:
66..11.. XXtteerrmm..
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.
66..22.. KKoonnssoollee wwiirrttuuaallnnee..
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
).
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 czarnego.
Właściwie będziesz musiał wysłać ten łańcuch na konsolę poleceniem
echo za każdym razem kiedy restartujesz komputer. Zależnie od tego do
czego używasz swojego Linux-a, może być kilka odpowiednich miejsc:
66..22..11.. //eettcc//iissssuuee
To jest miejsce, gdzie wyświetla się komunikat "Welcome to Linux
xx.yy", i jest to dobry wybór dla komputera, na którym pracujesz tylko
ty. (Przypuszczalnie będzie zmorą dla użytkowników logujących się
zdalnie przy pomocy telnet-a). Plik ten jest tworzony podczas startu
(Slackware w /etc/rc.d/rc.S; RedHat w /etc/rc.d/rc.local), i
powinieneś zmodyfikować linie wyglądające mniej więcej tak:
echo ""> /etc/issue
echo Welcome to Linux /bin/uname -a | /bin/cut -d\ -f3. >> /etc/issue
na:
ESCAPE=""
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
Ten kod spowoduje przesunięcie kursora na początek strony, ustawienie
koloru (tutaj: biały na niebieskim), zapisanie tego wyboru i
wyczyszczenie reszty ekranu. Modyfikacja zadziała przy następnym
starcie systemu. Zapamiętaj, aby wpisać kod klawisza ESC przy pomocy
Ctrl-Q w emacs-ie, Ctrl-V w vi lub `Esc w joe, bo wygląda na to, że
powłoka, w której się uruchamia ten skrypt nie rozumie sekwencji:
/033.
66..22..22.. //eettcc//pprrooffiillee lluubb ..pprrooffiillee..
if [ "$TERM" = "console" ]; then
echo "\033[37;44m\033[8]" #
# albo użyj setterm
setterm -foreground white -background blue -store
fi
66..22..33.. //eettcc//llooggiinn lluubb ..llooggiinn
if ( "$TERM" == "console" ) then
echo "\033[37;44m\033[8]"
# albo użyj setterm
setterm -foreground white -background blue -store
endif
66..33.. LLooggoowwaanniiee zzddaallnnee..
Powinieneś być w stanie użyć setterm tak jak to było pokazane wyżej.
Jeszcze raz: wymaga to, aby zdalny komputer wiedział wystarczająco
dużo na temat twojego terminala i żeby emulator terminala, przy pomocy
którego się logujesz, obsługiwał kolory. Z moich doświadczeń wynika,
że najlepszymi emulatorami vt100 dostępnymi obecnie na inne platformy
to:
· MS-DOS: MS-Kermit (darmowy, nie jest prod. Microsoftu)
· Windows 95/NT: Kermit/95 (shareware)
· OS/2: Kermit/95 (shareware). Zauważ jednak, że
standardowy telnet rozumie kolory i można go ustawić lokalnie.
Szczegóły na temat Kermita znajdziesz na
77.. OOpprrooggrraammoowwaanniiee..
Wszystkie informacje opisane tutaj zakładają instalację GNU/Linux-a.
Jeśli masz coś innego (jak np. Sun-a z X-ami czy coś takiego), to
możesz zdobyć i samemu sobie skompilować programy.
Kolorowa wersja xterm-a jest oparta na standardowych źródłach xterm-a
z łatą dostępną na każdym serwerze X11R6. Xterm dystrybuowany wraz z
R6.3 podobno ma natywną obsługą kolorów, ale nie był przeze mnie
testowany.
Na przykład tutaj: color-xterm-R6pl5-patch.gz
Przejrzyj dokumentację jeśli używasz starszej wersji X-ów. Uwaga: Nie
próbowałem tego samemu !!!
Można go pobrać z serwera: ftp.icm.edu.pl. Weź wersję co najmniej
3.13.
Będziesz jeszcze potrzebować łaty, którą możesz pobrać z tego samego
katalogu, a nazywa siÄ™ ona "color-ls-3.12.0.3.patch.gz"
Osobiście udało mi się skompilować color-ls na Solaris-ie, SunOS-ie i
Irix-ie.
Byłbym wdzięczny za wszelki odzew na temat tego tekstu. Mój adres
pocztowy: ravn@dit.ou.dk
--
Thorbjłrn Ravn Andersen
88.. OOdd ttłłuummaacczzaa..
TÅ‚umaczenie to jest chronione prawami autorskimi © Bartosza
Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na
prawach takich samych jak dokument oryginalny.
Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne,
składniowe, techniczne to pisz do mnie:
B.Maruszewski@jtz.org.pl
Na pewno znajdziesz tu jakieÅ› niejasne i niepolskie konstrukcje.
Jeśli wpadniesz na lepszy pomysł daj mi znać.
Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/
Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże
stronie. Dostępne są także poprzez anonimowe ftp pod adresem
ftp.jtz.org.pl w katalogu /HOWTO/.
Przetłumaczone przeze mnie dokumenty znajdują się także na mojej
stronie WWW. SÄ… tam
też odwołania do Polskiej Strony Tłumaczeniowej.
Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę
dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to wyślij
list o treści subscribe jtz Imię Nazwisko na adres
majordomo@ippt.gov.pl
Wyszukiwarka
Podobne podstrony:
colour ls pl 8
colour ls pl 1
colour ls pl 6
Colour ls pl (3)
colour ls pl 4
colour ls pl 5
colour ls pl 3
Colour ls pl (2)
colour ls pl 7
colour ls pl 2
colour ls 3 i2y3a3htwxboisuqldnhk7pmmft6tohtniwed5i i2y3a3htwxboisuqldnhk7pmmft6tohtniwed5i
colour ls 4 c4cuxdodcxbytow57gmvg5rphby3pqrmm7hwaxq c4cuxdodcxbytow57gmvg5rphby3pqrmm7hwaxq
colour ls 5 y6erpussqnugfwff2mfcjppft7z5scteac4feki y6erpussqnugfwff2mfcjppft7z5scteac4feki
colour ls 1 ygidk7oxbsgbv3afkfl4i6k4awrr243dexvlvli ygidk7oxbsgbv3afkfl4i6k4awrr243dexvlvli
colour ls 6 qcsrhsi5mqy6mhp5zrkcvgcsy2ldfeanwjhvxma qcsrhsi5mqy6mhp5zrkcvgcsy2ldfeanwjhvxma
colour ls 2 zm25oj33ku77tgajutuyqthxrp6c2icezwgsc6q zm25oj33ku77tgajutuyqthxrp6c2icezwgsc6q
colour ls 7 jtgn4qme2avze324sf3wrekdcfidvyrhtavxdcy jtgn4qme2avze324sf3wrekdcfidvyrhtavxdcy
424 D LS pl
colour ls gsxhbohkss2eq3ylbefnrbvhxatqixe5tunvvja gsxhbohkss2eq3ylbefnrbvhxatqixe5tunvvja
więcej podobnych podstron