Przejdź do głównej zawartości

Linux 7 - RedHat, CentOS - znak zachęty.

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

Gdzie:
  • \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 : 

#!/bin/bash

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:


Komentarze

Prześlij komentarz

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości