Zmienne powłoki PS1
i PS2
odpowiadają za postać zachęty (prompt) wyświetlanej przez powłokę. Zobaczyć bieżące wartości:
$ echo $PS1
$ echo $PS2
Sekwencje znaków zawarte między \[
i \]
to kody sterujące terminala. Kody sterujące odpowiadają np. za ustawienie kolorów.
PS1
– podstawowy znak zachęty
PS2
– znak przy kontynuacji w kolejnej linii, np. przy niezamkniętym cudzysłowie.
Zmienić znak zachęty na prostszy.
$ PS1='\$' # prosty znak zachęty
Zmienne powłoki i zmienne środowiskowe nie są nigdzie zapamiętywane! Zamknąć terminal i otworzyć ponownie – zmiany przepadły.
W celu uzyskania permanentnych zmian można użyć plików konfiguracyjnych powłoki. Dalsza część przykładu specyficzna dla basha: Istnieje plik /etc/bash.bashrc
, zawierający listę komend wykonywanych przy każdym uruchomieniu powłoki bash. Składnia komend jest dokładnie taka sama, jak te wpisywane bezpośrednio w terminalu.
$ less /etc/bash.bashrc # Zaobserwować, że pod koniec pliku, jest ustawiony PS1
Poza plikiem globalnym dla całego systemu, każdy użytkownik może stworzyć swój plik konfiguracji w katalogu domowym: .bashrc
Przypomnienie: pliki o nazwach zaczynających się na .
to pliki ukryte.
$ # Tak, poniżej echo ma wystąpić 2 razy. (dlaczego?)
$ echo 'echo Test konfiguracji' >> ~/.bashrc # dopisanie przykładowej komendy do pliku .bashrc
Uruchomić nowe okno emulatora terminala, zobaczyć efekt. Typowo w pliku .bashrc ustawia się preferowane przez użytkownika wartości zmiennych powłoki, na przykład PS1.
Otworzyć plik .bashrc w edytorze nano.
$ nano ~/.bashrc
Ustawić nową wartość PS1 w pliku .bashrc, zapisać plik. Uruchomić nowe okno terminala, zobaczyć efekt.
Przeczytać podsekcję PROMPTING podręcznika systemowego bash.
Ustawić w pliku .bashrc zachętę tak, aby była następującej postaci:
nazwę maszyny (hostname), bieżącą datę i czas
(w kolejnej linii) katalog bieżący, login, nazwę urządzenia terminala $
Proszę zwrócić uwagę na potrzebę cytowania znaku \
PS1=\w
to co innego niż PS1=\\w
lub PS1='\w'