Jak dostosować kolory i zawartość Bash w wierszu poleceń terminala Linux
Obecnie Bash jest domyślną powłoką w większości (jeśli nie we wszystkich) nowoczesnych dystrybucjach Linuksa. Być może jednak zauważyłeś, że kolor tekstu w terminalu i treść podpowiedzi mogą się różnić w zależności od dystrybucji.
Sugerowana lektura: 5 najczęściej używanych powłok Open Source dla Linuksa
Jeśli zastanawiasz się, jak dostosować to dla lepszej dostępności lub po prostu dla kaprysu, czytaj dalej – w tym artykule wyjaśnimy, jak to zrobić.
Zmienna środowiskowa PS1 Bash
Wiersz poleceń i wygląd terminala są regulowane przez zmienną środowiskową o nazwie PS1
. Według strony podręcznika Bash, PS1 reprezentuje główny ciąg znaków zachęty, który jest wyświetlany, gdy powłoka jest gotowa do odczytania polecenia.
Dozwolona zawartość w PS1 składa się z kilku znaków specjalnych zakończonych odwrotnym ukośnikiem, których znaczenie podano w sekcji PROMPPING strony podręcznika.
Dla ilustracji wyświetlmy aktualną zawartość PS1
w naszym systemie (w Twoim przypadku może to wyglądać nieco inaczej):
echo $PS1
[\u@\h \W]$
Wyjaśnimy teraz, jak dostosować PS1 do naszych potrzeb.
Dostosowywanie formatu PS1
Zgodnie z sekcją PODPOWIEDZI na stronie podręcznika, takie jest znaczenie każdego znaku specjalnego:
\u:
nazwa użytkownika bieżącego użytkownika.\h:
nazwa hosta aż do pierwszej kropki (.) w pełnej nazwie domeny.\W:
nazwa bazowa bieżącego katalogu roboczego, z $HOME w skrócie tyldą (~).\$:
Jeśli bieżący użytkownik jest rootem, wyświetl #, w przeciwnym razie $.
Na przykład możemy rozważyć dodanie \!
, jeśli chcemy wyświetlić numer historii bieżącego polecenia, lub \H
, jeśli chcemy wyświetlić nazwę FQDN zamiast krótka nazwa serwera.
W poniższym przykładzie zaimportujemy oba do naszego bieżącego środowiska, wykonując to polecenie:
PS1="[\u@\H \W \!]$"
Po naciśnięciu Enter zobaczysz, że treść podpowiedzi zmienia się, jak pokazano poniżej. Porównaj monit przed i po wykonaniu powyższego polecenia:
Teraz pójdźmy o krok dalej i zmieńmy kolor użytkownika i nazwy hosta w wierszu poleceń – zarówno tekst, jak i otaczające go tło.
Właściwie możemy dostosować 3 aspekty podpowiedzi:
Text Format | Foreground (text) color | Background color |
0: normal text | 30: Black | 40: Black |
1: bold | 31: Red | 41: Red |
4: Underlined text | 32: Green | 42: Green |
33: Yellow | 43: Yellow | |
34: Blue | 44: Blue | |
35: Purple | 45: Purple | |
36: Cyan | 46: Cyan | |
37: White | 47: White |
Użyjemy znaku specjalnego \e
na początku i m
na końcu, aby wskazać, że poniżej znajduje się sekwencja kolorów.
W tej sekwencji trzy wartości (tło, format i pierwszy plan) są oddzielone przecinkami (jeśli nie podano żadnej wartości, przyjęto wartość domyślną) .
Sugerowana lektura: Naucz się skryptowania powłoki Bash w systemie Linux
Ponadto, ponieważ zakresy wartości są różne, nie ma znaczenia, który (tło, format czy pierwszy plan) określisz jako pierwszy.
Na przykład następujący kod PS1
spowoduje wyświetlenie monitu w żółtym podkreślonym tekście z czerwonym tłem:
PS1="\e[41;4;33m[\u@\h \W]$ "
Choć wygląda dobrze, to dostosowanie będzie obowiązywać tylko w przypadku bieżącej sesji użytkownika. Jeśli zamkniesz terminal lub opuścisz sesję, zmiany zostaną utracone.
Aby wprowadzić te zmiany na stałe, będziesz musiał dodać następujący wiersz do ~/.bashrc
lub ~/.bash_profile
w zależności od Twojej dystrybucji:
PS1="\e[41;4;33m[\u@\h \W]$ "
Możesz pobawić się kolorami, aby znaleźć ten, który będzie dla Ciebie najlepszy.
Streszczenie
W tym artykule wyjaśniliśmy, jak dostosować kolor i treść zachęty Bash. Jeśli masz pytania lub sugestie dotyczące tego posta, skorzystaj z poniższego formularza komentarza, aby się z nami skontaktować. Oczekujemy na kontakt zwrotny!