Większość dystrybucji Linuksa konfiguruje podpowiedź Bash tak, aby wyglądała jak nazwa_użytkownika @ nazwa_hosta: katalog $
. Ale możesz tak skonfigurować podpowiedź Bash, by zawierała co chcesz, a nawet wybierać dowolne kolory.
Przykładowe kroki tutaj zostały przeprowadzone na Ubuntu 16.04 LTS. Proces powinien być taki sam w innych dystrybucjach systemu Linux, chociaż domyślny monit i ustawienia Bash w pliku .bashrc mogą być nieco inne.
Twoja konfiguracja podpowiedzi Bash jest przechowywana w pliku .bashrc Twojego konta użytkownika, który znajduje się pod adresem ~ / .bashrc
. Tak więc, jeśli Twoja nazwa użytkownika jest bob, plik jest na /home/bob/.bashrc
.
Możesz otworzyć plik, aby wyświetlić bieżącą zmienną Bash. Użyjemy nano jako naszego przykładowego edytora tekstu, chociaż możesz również użyć vi, emacs lub dowolnego innego edytora tekstu, w którym czujesz się komfortowo. Otwórz terminal i uruchom:
nano ~ / .bashrc
Przewiń w dół do PS1 =
Sekcja. Pierwsza zmienna wygląda dość skomplikowanie, ponieważ zawiera informacje o kolorach - wyjaśnimy to później. Druga zmienna, bez informacji o kolorze, brzmi następująco:
$ debian_chroot: + ($ debian_chroot) \ u @ \ h: \ w \ $
To nadal jest trochę skomplikowane ze względu na $ debian_chroot: + ($ debian_chroot)
bity. Po prostu powiedz Bashowi, żeby Cię powiadomił, jeśli używasz środowiska chroot Debiana i zwykle nie będzie pokazywane. Ignorując je, oto domyślna struktura zmiennej wiersza polecenia Bash:
\ u @ \ h: \ w \ $
\ u
wskazuje twoją nazwę użytkownika, @
wskazuje znak @, \ h
wskazuje nazwę hosta (nazwę komputera), :
wskazuje: postać, \ w
wskazuje katalog roboczy, i \$
wskazuje $ jeśli jesteś normalnym kontem użytkownika lub # jeśli jesteś rootem. Łącząc to wszystko, otrzymujesz nazwa użytkownika @ nazwahosta: working_directory $
.
Aby zmienić zapytanie Bash, wystarczy dodać, usunąć lub zmienić układ znaków specjalnych w zmiennej PS1. Istnieje jednak wiele innych zmiennych, niż te domyślne.
Pozostaw edytor tekstu dla teraz-w nano, naciśnij Ctrl + X, aby wyjść. Pokażemy Ci, jak eksperymentować ze zmiennymi, zanim zaczniesz pisać nowy plik .bashrc.
Twoja konfiguracja podpowiedzi Bash jest przechowywana w zmiennej PS1. Aby zapisać zawartość zmiennej PS1 w nowej zmiennej, uruchom następujące polecenie:
DEFAULT = $ PS1
Możesz teraz ustawić zmienną PS1 na różne wartości do eksperymentowania. Na przykład w pierwszym wierszu zostanie wyświetlony monit o podanie podstawowego monitu "użytkownik $", a drugi spowoduje ustawienie monitu na podstawowy monit "user: working_directory $".
PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"
Jeśli kiedykolwiek chcesz wrócić do domyślnego pytania, po prostu uruchom następujące polecenie.
PS1 = $ DEFAULT
Bash przywróci domyślny monit, ponieważ wcześniej zapisałeś te domyślne ustawienia. Pamiętaj, że wszelkie wprowadzone tutaj zmiany są tylko tymczasowe dla bieżącej sesji Bash, więc zawsze możesz się wylogować i ponownie zalogować lub zamknąć i ponownie otworzyć okno terminala, aby powrócić do domyślnego monitu. Ale powyższa linia umożliwia łatwe przywrócenie domyślnego wiersza poleceń Bash bez konieczności wylogowywania się lub zamykania okna.
Do zmiennej można dodać dowolne znaki lub tekst. Tak więc, aby przedłużyć domyślny wiersz "Hello World", możesz użyć:
PS1 = "Hello World \ u @ \ h: \ w \ $"
Teraz, gdy masz już podstawy, po prostu musisz wiedzieć, jakie są wszystkie znaki specjalne. Prawdopodobnie nie będziesz się przejmował wieloma z nich, ale oto pełna lista, która pojawia się w podręczniku Bash:
\za
\re
\ D format
\mi
\ h
\ H
\jot
\ l
\ n
\ r
\ s
\ t
\ T
\@
\ZA
\ u
\ v
\ V
\ w
\ W
\!
\#
\$
\ nnn
\\
\[
\]
Tak więc, jeśli chcesz dodać datę i godzinę do wiersza Basha i umieścić katalog roboczy na polecenie w drugiej linii, możesz użyć następującej konstrukcji:
PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"
Nawiasy kwadratowe tutaj nie są konieczne, ale pomagają rozbijać elementy wizualnie i ułatwiają czytanie linii. Jak już omówiliśmy wcześniej, możesz dodać dowolny tekst lub zwykłe znaki do zmiennej, którą lubisz, więc możesz swobodnie korzystać z tego, co działa.
Jest jeszcze jeden potężny trik, o którym powinieneś wiedzieć: możesz dodać wynik polecenia do podpowiedzi. Gdy pojawi się monit, Bash uruchomi polecenie i uzupełni bieżące informacje. Aby to zrobić, dołącz dowolne polecenie, które chcesz uruchomić między dwoma '
postacie. To nie jest apostrof - jest to poważny akcent, który pojawia się nad klawiszem Tab na klawiaturze.
Na przykład, powiedzmy, że chcesz wyświetlić wersję jądra systemu Linux w monicie. Możesz użyć linii podobnej do poniższej:
PS1 = "\ u @ \ h na" uname -s -r "\ w \ $"
Jako inny przykład, powiedzmy, że chcesz wyświetlić czas pracy systemu i obciążenie średnie, jak wyświetla się przez czas działania
dowództwo. Można użyć poniższej konstrukcji, która przed upływem czasu oczekiwania umieszcza uptime na własnej linii.
PS1 = "(" uptime ") \ n \ u @ \ h: \ w $"
Możesz eksperymentować z różnymi znakami specjalnymi i poleceniami, aby złożyć idealny wiersz polecenia.
Po ustaleniu preferowanego pytania możesz dodać do niego kolory. Jest to bardzo proste, ale sprawia, że zmienna wygląda okropnie niechlujnie i jest skomplikowana, jeśli nie rozumiesz, na co patrzysz.
Na przykład domyślną zmienną kolorów z wcześniejszych:
$ debian_chroot: + ($ debian_chroot) \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $
Lub, usuwając ponownie bity debian_chroot:
\ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $
To jest po prostu \ u @ \ h: \ w $
zmienna z wcześniejszych, ale z informacjami o kolorze. Naprawdę możemy podzielić go na kilka sekcji:
\ [\ 033 [01; 32m \]\ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \]\ w \ [\ 033 [00m \]\$
Pierwsza sekcja to \ u @ \ h
bit, poprzedzona informacją o kolorze, która zmienia kolor na zielony. Drugi to :
znak, poprzedzony informacją o kolorze, która usuwa wszelkie kolory. Trzeci to \ w
bit, poprzedzony informacją o kolorze, która zmienia kolor na niebieski. Czwarty to \$
bit, poprzedzona informacją o kolorze, która usuwa wszelkie kolory.
Gdy zrozumiesz, jak tworzyć własne tagi kolorów, możesz dodać dowolne kolory do dowolnych sekcji w twoim bashie.
Oto, co powinieneś wiedzieć: Musisz zawrzeć wszystkie informacje o kodzie koloru między\[
i \] postać
s. Wewnątrz tagu musisz zacząć od \033[
lub \mi[
aby wskazać Bashowi, że jest to informacja o kolorze. Obie \033[
i \mi[
Zrób to samo. \mi[
jest krótszy, więc może być wygodniejszy w użyciu, ale użyjemy go \033[
tutaj, ponieważ pasuje do tego, co jest używane domyślnie. Na końcu tagu musisz zakończyć m \
aby wskazać koniec kolorowego znacznika.
Łamiąc to, oto jak będzie wyglądał każdy tag koloru. Jedyną różnicą jest informacja, którą dodajesz w miejsce KOLORU, aby zdefiniować rzeczywisty kolor:
\[\033[KOLORm \]
Bash pozwala zmienić kolor tekstu pierwszego planu, dodać do tekstu atrybuty takie jak "pogrubienie" lub "podkreślenie" i ustawić kolor tła.
Oto wartości tekstu pierwszego planu:
Na przykład, ponieważ purpurowy tekst ma kod koloru 32, użyłbyś go \[\033[32m \]
dla fioletowego tekstu.
Możesz także określić atrybut dla tekstu. Ten atrybut musi zostać dodany przed numerem koloru, oddzielony średnikiem (;). Tekst o tych atrybutach będzie wyglądał inaczej w różnych emulatorach terminali.
Oto wartości atrybutów tekstu:
W rzeczywistości nie musisz uwzględniać zwykłego atrybutu tekstowego. W każdym razie to jest domyślne.
Na przykład, ponieważ czerwony tekst to kod 31, a pogrubiony tekst to kod 1, użyłbyś go \[\033[1;31m \]
dla pogrubionego czerwonego tekstu.
Możesz także określić kolor tła, ale nie możesz dodać atrybutu do koloru tła.
Oto wartości dla kolorów tła:
Na przykład, ponieważ niebieskie tło to kod 44, \[\033[44m \]
określałoby niebieskie tło.
Możesz określić znaczniki koloru pierwszego planu i tła. Na przykład 42 reprezentuje zielone tło, a 31 reprezentuje czerwony tekst. Tak więc, aby domyślny monit stał się czerwonym tekstem na zielonym tle, używałbyś:
PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "
Podajemy tutaj tylko jeden kolor tła, a następnie pojedynczy tekst pierwszego planu, który zaczyna się na początku monitu i jest stosowany do całego tekstu w monicie.Można jednak określić dowolną liczbę znaczników kolorów w zmiennej, aby pokolorować różne sekcje wiersza polecenia, tak jak lubisz.
Kolory tekstu tła i pierwszego planu są wyświetlane dalej, chyba że zostanie podany kod koloru 00, aby wyczyścić informacje o kolorach. Możesz również użyć tego znacznika wewnątrz zmiennej, aby przywrócić domyślne formatowanie w swoim podpowiedzi. Na przykład poniższy wiersz zakończyłby wszystkie kolory przed \$
postać.
PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ [\ 033 [00m \] \ $ "
Gdy skończysz eksperymentować z kolorami, powinieneś otrzymać podpowiedź Bash, którą lubisz w bieżącej sesji. Ale prawdopodobnie chcesz, aby ta nowa zachęta stała się na stałe, więc jest automatycznie używana we wszystkich sesjach Bash.
Aby to zrobić, wystarczy zmienić zawartość zmiennej PS1 w pliku .bashrc, który sprawdziliśmy wcześniej.
Otwórz plik .bashrc w preferowanym edytorze tekstu, na przykład:
nano ~ / .bashrc
Przewiń w dół i znajdź sekcję PS1 =. Wystarczy zastąpić domyślną zmienną zmienną niestandardową. Prawdopodobnie będziesz chciał opuścić $ debian_chroot: + ($ debian_chroot)
jednak same bity nie pojawią się, chyba że jesteś w środowisku chroot.
Wprowadź swoją kolorową zmienną PS1 pod if ["$ color_prompt" = yes]; następnie
linia. Wprowadź zmienną bez kolorów pod jeszcze
linia.
Zapisz plik i zamknij edytor tekstu. Na przykład, aby zapisać plik w nano, naciśnij Ctrl + O, naciśnij Enter, a następnie naciśnij Ctrl + X, aby zakończyć.
Następnym razem, gdy uruchomisz nową powłokę Bash - na przykład logując się na terminalu lub otwierając nowe okno terminala - zobaczysz spersonalizowany monit.