Zastosowanie kolorów w powłoce bash. (prompt, motd)
Artykuł przedstawiający wykorzystanie kolorowego tekstu w powłoce bash w dystrybucji Slackware.
Część 1 – prompt
Po włączeniu konsoli naszym oczom ukazuje się znak zachęty:
freerider@spontaniczny:~$
w defaultowych kolorach (biały na czarnym tle).
Aby to zmienić wystarczy wyedytować zmienną PS1 wpliku /etc/profile.
Defaultowy wpis odpowiedzialny za prompt wygląda następująco:
PS1=’\u@\h:\w\$ ’
Żeby zmienić kolory najpierw trzeba zapoznać się z kodami kolorów
(tabela poniżej)
Kolor | Tekst | Tło |
czarny czerwony zielony żółty niebieski magenta cyjan biały |
30 31 32 33 34 35 36 37 |
40 41 42 43 44 45 46 47 |
Przykład zastosowania koloru:
\[\033\E[32m\]TEKST – wyświetli zielony napis TEKST.
\[\033\E[31;44m]TEKST – wyświetli czerwony napis TEKST na niebieskim tle.
ponieważ za kolor odpowiada „32m„, dla napisu z tłem po średniku wstawiamy kod koloru tła „31;44m”
Załóżmy ze chcemy zrobić następujący prompt „user@host:~$” w kolorach
user – czerwony
@ – zielony
host: – niebieski
~$ – biały
zmienna PS1 powinna wyglądać następująco
PS1=’\[\033[31m\]\u\[\033[32m\]@\[\033[34m\]\h:\[\033[37m\]\w$ ’
do tego można użyć jeszcze efektów typu pogrubienie, podkreślenie itp.
(tabela poniżej)
kod | efekt |
1 22 4 24 5 25 |
Pogrubienie bez pogrubienia podkreślenie bez podkreślenia miganie bez migania |
Przykład:
\[\033\E[32;4m\]TEKST – wyświetli zielony, podkreślony napis TEKST.
Teraz w wyglądzie twojego promptu ogranicza cię tylko wyobraźnia.
Część 2 – motd
Plik odpowiedzialny za motd (powitanie) w slackware to /etc/motd.
Wszystko co wpiszesz do tego pliku wyświetli się po zalogowaniu usera do systemu.
Niestety w tym pliku nie możemy robić kolorów. Jeżeli chcesz kolorowy motd
musisz najpierw wyłączyć domyślny plik. W tym celu otwórz do edycji plik
/etc/rc.d/rc.S następnie odszukaj i zakomentuj # następujący wpis:
echo „$(/bin/uname -sr).” > /etc/motd
Teraz przejdź do katalogu /etc/profile.d/ i utwórz plik motd.sh
cd /etc/profile.d/
touch motd.sh
Wszystko co wpiszesz do tego pliku zostanie wywołane przy zalogowaniu usera.
(żeby kolorowy motd działał musi być w postaci skryptu).
Kolorowanie tekstu w skryptach wygląda trochę inaczej niż przy „prompt”
wszystko co chcemy wyświetlić musimy poprzedzić poleceniem
echo -e
np. jeżeli chcesz wyświetlić napis TEKST w kolorze zielonym wydaj polecenie:
echo -e „\E[32m TEKST \033[0m”
efekty dodatkowe (podkreślenie itp.) można dodawać tak samo jak w przypadku prompt.
Poniżej przykładowa zawartość pliku motd.sh
#!/bin/sh
RELEASE=$(uname -r)
NAME=$(uname -n)
SYS=$(uname -s)
VERSION=$(cat /etc/slackware-version)
echo -e „”
echo -e „\E[32m Welcome to $NAME \033[0m”
echo -e „\E[31m $SYS $VERSION \033[0m”
echo -e „\E[33m Kernel $RELEASE \033[0m”
echo -e „”
Na koniec tylko nadaj prawo do wykonywania chmod +x motd.sh
i tak jak przy prompt, w wyglądzie twojego motd ogranicza cię już tylko twoja wyobraźnia.