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.

Pokaż Ukryj 1 trackbacks

Zostaw komentarz