ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
  • Firma

Linux i kolorowy znak zachęty wiersza poleceń

Napisane przez Igor Brzeżek on 21 grudnia 2022
Napisane w: Linux Debian, Systemy operacyjne.

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:

Kolorowy znak zachęty Linux

Jeśli jesteś zwykłym użytkownikiem to twój znak zachęty będzie wyglądał jak niżej:

Znak zachęty zwykłego użytkownika

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.

Przykładowe znaki zachęty dla Bash i ZSH
Bash:
PS1=”\[\e[32m\][\[\e[m\]\[\e[1;34m\]\u\[\e[m\]\[\e[0;32m\]@\[\e[m\]\[\e[0;33m\]\h\[\e[m\]:\[\e[36m\]\w\[\e[m\]\[\e[32m\]]\[\e[m\]\$”

ZSH:
PROMPT=’%F{green}%n%F{white}@%F{cyan}%m:%F{yellow} %F{white}[%F{yellow}%d%F{white}]%F{green}$ %F{reset}’

Nawigacja

← Zmiana rozmiaru dysku wirtualnego i partycji systemu MS Windows pracującego w VirtualBox
VirtualBox i dodatki gościa dla Windows Server Core →
  • Szukaj

  • Kategorie

    • IT ogólnie (70)
      • Bezpieczeństwo (9)
      • CCTV (3)
      • Hardware (1)
      • Sieci (9)
        • MikroTik (7)
      • Software (39)
        • Programowanie (1)
        • Systemy operacyjne (15)
          • Linux Debian (14)
        • Windows (7)
      • WiFi (2)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Przekierowanie zapytań DNS do lokalnego resolvera
    • Szyfrowanie ruchu DNS za pomocą RouterOS
    • Analiza ruchu DNS na systemie RouterOS
    • MikroTik RouterOS – Generator pakietów
    • Maszyna wirtualna dla RouterOS w wersji ROS v6/7
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y