Jak ustawić monit o użycie dwóch kolorów?

15

Jedną z rzeczy, które podobały mi się w Mint, było to, że terminal zwykle pokazywał dwa kolory: wszystko od lewej do $jednego będzie jednym kolorem, a wszystko po $drugim będzie inne.

Czy istnieje sposób na skonfigurowanie tego systemu za pomocą Ubuntu?

TSJNachos117
źródło
Do Twojej wiadomości znalazłem plik /etc/bash.bashrc z Mint 14 na pastebin . Pierwsze i ostatnie wiersze muszą zostać usunięte, w przeciwnym razie pojawi się błąd. Dobrym pomysłem może być także załadowanie pliku ~ / .bash_aliases, zakładając, że taki plik istnieje.
TSJNachos117

Odpowiedzi:

21

Uruchom następujące polecenie w terminalu:

gedit ~/.bashrc

Po .bashrcotwarciu zlokalizuj i odkomentuj force_color_prompt=yes(to znaczy usuń skrót, aby nie wyglądał już tak:) #force_color_prompt=yes.

Zapisz plik i otwórz nowe okno terminala, a powinieneś już zobaczyć zmianę (monit powinien mieć jasnozielony , który jest zdefiniowany przez 1; 32 ). Następnie możesz zmienić dowolną wartość koloru, którą chcesz; np .: 0; 35 = fioletowy .

Aby edytować wartości kolorów, zlokalizuj następującą sekcję i zmień wartości domyślne z niektórymi przykładami wymienionymi poniżej:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;31m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Możesz sprawdzić tę tabelę kolorów Bash, aby uzyskać pełny zakres wartości kolorów, ale oto kilka podstawowych, z którymi możesz się pobawić (zwróć uwagę, że „Światło” nie jest tym, co mogłoby się wydawać - w rzeczywistości oznacza „pogrubienie”): Czarny 0; 30 - Ciemnoszary 1; 30 - Niebieski 0; 34 - Jasnoniebieski 1; 34 - Zielony 0; 32 - Jasnozielony 1; 32 - Cyjan 0; 36 - Jasny cyjan 1; 36 - Czerwony 0; 31 - Jasny Czerwony 1; 31 - Fioletowy 0; 35 - Jasny fiolet 1; 35 - Brązowy 0; 33 - Żółty 1; 33 - Jasny szary 0; 37 - Biały 1; 37

Na przykład oto linia, której używam:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35m\]\u@\h\[\033[00m\]:\[\033[01;34m\] \w\[\033[01;37m\] > '

lub moja dziewczyna użyj:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u\[\033[01;31m\]@\[\033[01;36m\]\h\[\033[01;33m\]:\[\033[01;31m\]\w\[\033[01;33m\]\# '

Zapraszam do eksperymentowania, ustawiając monit, zmieniając wartość zmiennej środowiskowej PS1 w terminalu w następujący sposób:

export PS1="...your values..."

Lub tylko

PS1="...your values..."

Oto jak wygląda mój terminal:

terminal

Źródło: http://ubuntugenius.wordpress.com/2011/07/11/how-to-change-the-command-line-prompt-colour-in-the-ubuntulinux-terminal/

Radu Rădeanu
źródło
1
skąd pochodzi zdjęcie kwiatu?
NHDaly,
3

Wystarczy zmodyfikować $PS1pliki startowe powłoki za pomocą odpowiednich wywołań tput, aby ustawić i usunąć atrybuty tekstu. Szczegółowe informacje można znaleźć na stronach tput(1)i terminfo(5)man.

export PS1="\[$(tput setaf 2)\][\u@\h \W]\$ \[$(tput sgr0)\]"
Ignacio Vazquez-Abrams
źródło
@ RaduRădeanu: „w plikach startowych powłoki”
Ignacio Vazquez-Abrams
Lepsze pliki inicjujące powłokę
Radu Rădeanu
1
Zamiast $(tput setaf 2)i $(tput sgr0)zaleciłbym bezpośrednie użycie sekwencji ucieczki ANSI: \033[32mi \033[m. Wynik jest taki sam, ale nie wymaga połączenia.
wjandrea,
1

To, o czym mówisz, nazywa się monitem . Dostępnych jest wiele opcji i skryptów do modyfikowania monitów przy użyciu różnych kolorów i wyświetlania wszelkiego rodzaju dodatkowych informacji. Dobry początek z kilkoma przykładami można znaleźć w kolekcji Jamiego, a IBM ma kilka ciekawych wyjaśnień dla początkujących. Jeśli chcesz dokładniej przyjrzeć się szczegółom, zapoznaj się z tym kompleksowym poradnikiem

binfalse
źródło
0

Możesz spróbować tego:

PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

(najpierw wypróbuj w terminalu). Następnie, jeśli ci się spodoba, możesz umieścić go gdzieś w swoim .bashrcpliku.

gniourf_gniourf
źródło