Znak zachęty wiersza poleceń (ang. prompt) to dość istotny element pracy z systemem Linux. W zależności od wydania i wersji jego domyślny wygląd może być różny. Ja chciałem ustawić go tak, aby wyglądał jak niżej:
Mój ‚prompt’ składa się z nazwy użytkownika, nazwy hosta oraz aktualnego katalogu, a wszystko to w trzech kolorach:
– dla użytkownika ‚root’ kolor czerwony dla innych zielony
– nazwa hosta na żółto (tu wygląda jak brązowy)
– katalog roboczy na jasno niebiesko
Dzięki kolorom szybko orientuję się na jakim koncie pracuję (czasem zapomnę i nawet zapominam przeczytać 🙂
W dystrybucji Ubuntu
W dystrybucji Ubuntu wystarczy edytować plik ukryty plik o nazwie ‚.bashrc’, wyszukać w nim sekcję jak niżej:
Zmienna PS1 określa właśnie jak wygląda znak zachęty i jakie ma kolory.
Pierwszy wpis PS1 można zakomentować, dodać pod nim kolejny o treści:
PS1=’\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[0;31m\]\u\[\033[1;30m\]@\[\033[00;33m\]\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\] # ‚
Sekcja ‚else’ określa jak ma wyglądać znak zachęty w przypadku gdy nie mamy kolorowego terminala (chyba już dość rzadki przypadek) ale i tu można wstawić ten sam PS1.
W innych dystrybucjach
Jeśli mamy inną zawartość powyższego pliku (np bak sekcji „if [ „$color….” to można sprawę załatwić inaczej:
– w katalogu /etc tworzymy plik o nazwie np. ‚promptcolors’
– do tego pliku wklejamy poniższy fragment
# ================================================= # Zmiana kolorow znaku zachety # w zaleznosci od uzytkownika # root - czerwony, inni - zielony KR="\[\033[0;31m\]" #czerwony KW="\[\033[0;37m\]" #bialy KB="\[\033[0;34m\]" #niebieski KY="\[\033[0;33m\]" #zolty KG="\[\033[0;32m\]" #zielony KLB="\[\033[1;34m\]" #jasnoniebieski if [ $UID -eq 0 ] then Znak='#' KolorNazwy=$KR else Znak='$' KolorNazwy=$KG fi # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*|linux) PS1="$KolorNazwy\u$KW@$KY\h$KW:$KLB\w$KW$Znak " ;; *) ;; esac unset Znak KolorNazwy KR KW KB KY KG KLB # Koniec skryptu # ===================================================
Powyższy skrypt (zakładając, że jest zapisany w pliku o nazwie ‚nazwa_skryptu’) można uruchomić z konsoli poleceniem:
>source nazwa_skryptu
Skrypt sprawdzi jaka jest twoja nazwa użytkownika (a raczej ID). Jeśli jesteś na koncie ‚root’ to otrzymasz znak zachęty jak niżej:
Jeśli jesteś zwykłym użytkownikiem to twój znak zachęty będzie wyglądał jak niżej:
Aby powyższe zadziałało automatycznie można:
– wywołać skrypt w ogólnym skrypcie startowym powłoki (np /etc/bash.bashrc)
– wywołać skrypt we własnym pliku (w katalogu domowym) o nazwie ‚.bashrc’
Aby wywołać nasz skrypt z ogólnego skryptu powłoki basha:
– edytujemy plik (z konta root) /etc/bash/bashrc
– na jego końcu dodajemy wywołanie naszego skryptu np:
#====================== # Kolory znaku zachety if [ -f "/etc/promptcolors" ]; then . /etc/promptcolors fi
Ta zmiana będzie miała wpływ na wszystkich użytkowników (o ile samodzielnie nie zdefiniowali sobie, w swoich plikach konfiguracyjnych innego wyglądu znaku zachęty)
Aby wywołać nasz skrypt z prywatnego pliku basha (dla aktualnie zalogowanego użytkownika):
– powyższy kod dopisujemy na końcu pliku ~/.bashrc czyli plik w katalogu domowym użytkownika, na którego aktualnie jestem zalogowany
– ta zmiana będzie oczywiście dotyczyć wyglądu znaku zachęty tylko aktualnego użytkownika
– aby zobaczyć zmiany należy się wylogować i ponownie zalogować
Ogólnie to chyba będzie bezpieczniej wykonywać zmiany tylko w swoich domowych plikach. Poza tym zwykły użytkownik i tak nie ma możliwości modyfikacji plików w katalogu /etc.
Automatyczna konfiguracja znaku zachęty dla nowych użytkowników
Jeśli nie chcemy modyfikować pliku /etc/bash.bashrc a chcemy dla każdego nowego użytkownika ustalać kolorowy znak zachęty można to wykonać modyfikując plik tzw. szkieletu. Plik ten to /etc/skel/.bashrc. Dodamy na jego końcu wpis jaku wyżej (wywołanie skryptu zmian kolorów znaku zachęty) i mamy gotowe. Pliki z tegoż katalogu są automatycznie kopiowane do katalogu domowego każdego nowo utworzonego użytkownika.