Po tym jak ostatnio musiałem naprawiać linię poleceń pewnej wielce poważanej serwerowej dystrybucji postawiłem opisać, jak się to robi prawidłowo. Bo z przerażeniem odkryłem, że większość dostępnych opisów zawiera błędy.
Ale zacznijmy od początku. Linia poleceń o której mówię, zwykle wygląda tak:
Wiele osób mówi, jak można zdefiniować kolory. Jednak w większości przypadków taka zabawa kończy się mniej więcej tak:
Jak więc prawidłowo zdefiniować linię poleceń?
W pliku ~/.bashrc definiujemy zmienną
export PS1='tutaj nasza definicja'
Styl definiujemy pomiędzy \[\033[ a m\].
Kody kolorów czcionki (dla koloru tła dodaj 10 do tej liczby):
- 30 – czarny
- 31 – czerwony
- 32 – zielony
- 33 – brązowy
- 34 – niebieski
- 35 – fioletowy
- 36 – jasnoniebieski
- 37 – biały
- 0 – usuń wszelkie formatowanie
Efekty czcionki:
- 0 – czcionka normalna
- 1 – pogrubienie
- 4 – podkreślenie
- 5 – mruganie
- 7 – zamień kolory czcionki i tła
Jeśli chcemy połączyć razem kilka efektów, to rozdzielamy poszczególne kody średnikami. Na przykład pogrubiona fioletowa czcionka na białym tle to 1;35;47. Jeśli chcemy wyczyścić całe formatowanie, to wystarczy wpisać 0 (czyli zero).
Większość opisów w sieci zawiera zwykle takie błędy:
- brak domknięcia definicji \]
- \e to nie jest idealnie to samo co \[\033
W praktyce ja stosuję takie definicje:
# user export PS1='\[\033[32m\]\u\[\033[33m\]@\[\033[1;36m\]\h\[\033[0;33m\]:\[\033[31m\]\w \[\033[1;32m\]\$\[\033[0m\] '
# root export PS1='\[\033[41;1;32m\]\u\[\033[0;33m\]@\[\033[1;36m\]\h\[\033[0;33m\]:\[\033[31m\]\w \[\033[1;31m\]\$\[\033[0m\] '
Pogrubiony host przydaje się zwłaszcza gdy loguję się na wiele serwerów. Łatwo wtedy napsuć wpisując komendę nie w tym oknie, w którym się chce. A gdy jestem rootem dodatkowo podkreślam kolorem, by było to widać z daleka.