Konfiguracja powłoki bash

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'