Jeżeli kiedykolwiek zdarzyło Ci się pracować systemem Linux z pewnością wiesz co to jest okno terminala. W terminalu mamy również coś takiego jak znak zachęty. Znak ten to pierwsza linia za jaką wpisujemy polecenia (dla tych co nie wiedzą). W różnych dystrybucjach może przyjmować różne domyślne formy, ale najczęściej jest to coś podobnego do [root@nazwahosta ~] lub też przykładowo -bash4.2# itp. Można tu jednak dla wygody umieścić sobie inne informacje. Znak zachęty może wyglądać również następująco: [12:45] [root@nazwahosta] [/lokalizacja] $ gdzie widoczna jest godzina , zalogowany użytkownik, nazwa hosta oraz ścieżka w jakiej się obecnie znajdujemy. Prompt jak również zwykło się nazywać znak zachęty może być również kolorowy. Kolory sprawią, że będzie on bardziej czytelny i lepiej odetnie się od pozostałych poleceń. Zmienna systemowa przechowująca format znaku zachęty nosi nazwę "PS1" by zobaczyć jej aktualny format wystarczy wydać polecenie echo $PS1.
Krok 1 - Ustawienie znaku zachęty do postaci [godzina] [uzytkownik@serwer] [lokalizacja]
W terminalu wydajemy polecenie :
export PS1='[\A][\u@\h][\w] $ '
Po wykonaniu powyższego prompt będzie wyglądał w następujący sposób:
[04:13][root@an-server][/opt]
Krok 2 - Kolorowanie znaku zachęty.
W terminalu wydajemy polecenie uwzględniające kolorowanie znaku zachęty tak, że godzina będzie żółta, nazwa użytkownika zielona, nazwa hosta czerwona, a lokalizacja błękitna.
export PS1='[\[\e[0;33m\]\A\[\e[m\]][\[\e[0;32m\]\u\[\e[m\]@\[\e[0;31m\]\h\[\e[m\]][\[\e[0;36m\]\w\[\e[m\]] $ '
Choć powyższe może wyglądać na dość złożone w rzeczywistości wszystko składa się w logiczną całość.
Jeżeli chcemy zastosować kolorowanie w terminalu standardowo używa się do tego takiego wzorca :
\e[X;Ym TEKST_DO_KOLOROWANIA \e[m
- \e[ - Rozpoczyna kolorowanie
- X;Y - para kolorów (wymienione w poniższej tabeli)
- m - obowiązkowy znak
- \e[m - Sekwencja znaków kończąca kolorowanie
Aby poznać wartości pary X;Y można użyć skryptu kolory.sh :
esc="\033["
echo -n " _ _ _ _ _40 _ _ _ 41_ _ _ _42 _ _ _ 43"
echo "_ _ _ 44_ _ _ _45 _ _ _ 46_ _ _ _47 _"
for fore in 30 31 32 33 34 35 36 37; do
line1="$fore "
line2=" "
for back in 40 41 42 43 44 45 46 47; do
line1="${line1}${esc}${back};${fore}m Normal ${esc}0m"
line2="${line2}${esc}${back};${fore};1m Bold ${esc}0m"
done
echo -e "$line1\n$line2"
done
Efektem działania będzie :
Krok 3 - Zapisywanie ustawień dla użytkownika w .bash_profile
Jeżeli chcemy by prompt wyglądał tak jak zaplanowaliśmy wyżej za każdym razem gdy zalogujemy się do terminala ustawienie zmiennej PS1 należy zapisać w pliku .bash_profile
#Prompt
export PS1='[\[\e[0;33m\]\A\[\e[m\]][\[\e[0;32m\]\u\[\e[m\]@\[\e[0;31m\]\h\[\e[m\]][\[\e[0;36m\]\w\[\e[m\]] $ '
Efekt końcowy dla prompta wygląda tak :
Przydatne linki:
Jestem pod wrażeniem. Bardzo ciekawie napisany artykuł.
OdpowiedzUsuń