12:23
BASH - Znak zachęty Powłoki
Większość użytkowników prawdopodobnie używa systemu graficznego podczas pracy w systemie Linux, jednak konsola systemowa nadal powinna stanowić główną platformę do poruszania się po systemie. Odpowiednio przygotowany znak zachęty powłoki z pewnością ułatwi pracę użytkownikowi podczas korzystania z konsoli.
BASH należy do jednych z najpopularniejszych powłok w systemach UNIX'owych. Zna ją prawdopodobnie każdy użytkownik Linuksa. Nazwa BASH pochodzi od Bourne-Again SHell i stanowi część projektu GNU. Pierwsze wersje powłoki zostały napisane przez Brian'a Fox'a w 1987.
Znak zachęty
Znak zachęty może być pojedynczym znakiem, lub ich ciągiem. Informuje on o gotowości przyjmowania poleceń przez system operacyjny. W zależności od używanej terminala, oraz od jego konfiguracji może on zawierać różne informacje. Najczęściej wyświetla ścieżkę, bądź nazwę aktualnego katalogu. Przechowywane mogą być w nim również inne informacje, jak nazwa komputera, domeny, zalogowanego użytkownika, aktualny czas i datę, czy po prostu nazwę używanej powłoki.
Zachęta w powłoce BASH
W powłoce BASH standardowy znak zachęty przechowywany jest w zmiennej PS1. Zaraz po zalogowaniu się widzimy już jaką przyjął wartość. Widzimy jednak tylko znaki drukowane, wypisane przez powłokę na podstawie danych zawartych w zmiennej. Aby zobaczyć jak zbudowany jest znak zachęty, wystarczy wypisać zmienną PS1:
echo $PS1
lub
set | grep PS1
Standardowo, zaraz po skompilowaniu powłoki BASH jako znak zachęty będzie widniała informacja o nazwie używanej powłoki, oraz jej wersji (zawartość zmiennej PS1 to s-v$):
bash-3.1$
Aby zmienić znak zachęty wystarczy przypisać do zmiennej PS1 inną zawartość:
PS1="Nowy znak zachety> "
Powłoka BASH posiada również wtórny znak zachęty. Wyświetlany jest gdy do wykonania polecenia potrzebne są dodatkowe dane z wejścia w celu uzupełnienia podstawowej komendy. Wtórny znak zachęty przechowywany jest w zmiennej PS2.
Znaki specjalne
Wewnątrz zmiennej znaku zachęty mogą znajdować się znaki specjalne. Wszystkie znaki specjalne poprzedzone są symbolem ''.
-
a- znak dzwonka ASCII (07) -
d- data w formacie 'DzienTygodnia Miesiąc Dzień' np: "Tue May 26" -
e- znak escape ASCII (033) -
h- nazwa hosta do pierwszej kropki -
H- nazwa hosta -
j- liczba zadań aktualnie obsługiwanych przez powłokę -
l- główna część nazwy urządzenia powłoki -
n- znak nowej linii -
r- powrót karetki -
s- nazwa powłoki -
t- aktualny czas w formacie 24h GG:MM:SS -
T- aktualny czas w formacie 12h GG:MM:SS -
@- aktualny czas w formacie 12h GG:MM -
A- aktualny czas w formacie 24h GG:MM -
u- nazwa aktualnie zalogowanego użytkownika -
v- wersja powłoki BASH (np. 3.1) -
V- wersja powłoki BASH (np. 3.1.17) -
w- ścieżka aktualnego katalogu -
W- nazwa aktualnego katalogu -
!- numer polecenia w historii BASH -
#- numer polecenia -
$- jeżeli UID jest 0 wyświetla # w przeciwnym wypadku $ -
nnn- znak odpowiadający szesnastkowej liczbie nnn - - symbol ''
-
[- początek sekwencji znaków niedrukowalnych -
]- koniec sekwencji znaków niedrukowalnych
Przypisywanie znaku zachęty
Wspomniałem wcześniej, jak można przypisać do zmiennej PS1 ciąg znaków, aby uzyskać nowy znak zachęty. Wpisane w ten sposób ciągi znaków do zmiennej będą pamiętane tylko w obrębie aktualnie działającego terminala. Aby zmiany były pamiętane dla każdego uruchomionego terminala zaraz po zalogowaniu się, należy ustawić tą zmienną w pliku .bashrc znajdującego się w katalogu domowym każdego użytkownika. W przypadku braku pliku należy go utworzyć.
Kolorowy znak zachęty
Powłoka BASH umożliwia nadawanie pewnym obszarom znaku zachęty pewnych kolorów. Wybór kolorów nie jest duży (zaledwie 16), ale zastosowanie dobrze dobranych kolorów zwiększy czytelność informacji znajdujących się w znaku zachęty.
- \[\033[0m\] - brak formatowania
- \[\033[1;30m\] - szary
- \[\033[0;30m\] - czarny
- \[\033[0;31m\] - czerwony
- \[\033[1;31m\] - jasny czerwony
- \[\033[0;32m\] - zielony
- \[\033[1;32m\] - jasny zielony
- \[\033[0;33m\] - brązowy
- \[\033[1;33m\] - żółty
- \[\033[0;34m\] - niebieski
- \[\033[1;34m\] - jasny niebieski
- \[\033[0;35m\] - fioletowy
- \[\033[1;35m\] - purpurowy
- \[\033[0;36m\] - cyjan
- \[\033[1;36m\] - morski
- \[\033[0;37m\] - siwy
- \[\033[1;37m\] - biały
Kolory, gdzie przed średnikiem znajduje się jedynka, przez terminale obsługujące obsługujące czcionkę pogrubioną będą wyświetlane jako pogrubione. W tym wypadku niektóre terminale mogą interpretować te kolory nie jako rozjaśnione/przyciemnione, a po prostu pogrubione.
Przykładowe formatowania znaku zachęty:
-
PS1="\u@\h \w \$ " -
PS1="\u:\W \$ " -
PS1="\[\033[1;32m\][\t] \[\033[0;36m\]\w \$ \[\033[0m\] " -
PS1="\[\033[1;36m\][\A \d] \[\033[0;37m\]\W \$ \[\033[0m\] " -
PS1="\[\033[1;34m\][\u] \[\033[0;35m\]\w \$ \[\033[0m\] " -
PS1="\[\033[1;30m\]\u\[\033[1;31m\](\w)\$ \[\033[0m\] " -
PS1="\[\033[0;33m\]\!: \[\033[0m\] " -
PS1="\[\033[0;36m\]\w \[\033[0;37m\]\#\$ \[\033[0m\] " -
PS1="\[\033[0;31m\]\t -\[\033[0;33m\] \w \[\033[0;37m\]\$ \[\033[0m\] " -
PS1="\[\033[0;37m\](\#)\[\033[01;33m\]\u@\h\[\033[0;36m\] \w \$\[\033[00m\] "
Wyniki:

Wpisy na blogu 
Dodaj komentarz