Użyłem kilku kolorów w monicie PS1, takich jak
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Gdzie mogę znaleźć listę kodów kolorów, których mogę użyć?
Spojrzałem na Colorize Bash Console Color, ale nie odpowiedział na moje pytanie dotyczące listy faktycznych kodów.
Byłoby miło, gdyby istniała również bardziej czytelna forma.
Zobacz także https://unix.stackexchange.com/a/127800/10043
\]
tutaj nie jest właściwie częścią sekwencji kolorów; służy to konkretnemu ustawianiu monitów (dodałem kilka akapitów na końcu mojej odpowiedzi na ten temat). „Byłoby miło, gdyby istniała również bardziej czytelna forma”. -> Wytnij i wklej we własnej odpowiedzi jest jednym ze sposobów, aby to zrobić.Odpowiedzi:
Są to sekwencje specjalne ANSI ; ten link prowadzi do tabeli kodów kolorów, ale na tej stronie Wikipedii są też inne ciekawe rzeczy. Nie wszystkie z nich działają na (np.) Normalnej konsoli Linux.
To jest niepoprawne:
0
resetuje terminal do domyślnych (prawdopodobnie białych). Rzeczywisty kod białego pierwszego planu to 37. Ponadto nawias klamrowy zamykający na końcu (\]
) nie jest częścią sekwencji kolorów (zobacz kilka ostatnich akapitów poniżej, aby wyjaśnić ich cel w ustawianiu monitu).Należy pamiętać, że niektóre terminale GUI pozwalają określić niestandardowy schemat kolorów. Wpłynie to na wynik.
Jest tutaj lista, która dodaje 7 kolorów pierwszego planu i 7 kolorów tła, których wcześniej nie widziałam, ale wydają się działać:
Ponadto, jeśli masz 256-kolorowy terminal GUI (myślę, że większość z nich jest teraz), możesz zastosować kolory z tej tabeli:
Sekwencja ANSI, aby je wybrać, używając liczby w lewym dolnym rogu, rozpoczyna się
38;5;
na pierwszym planie i48;5;
na tle, a następnie numer koloru, a więc np .:Daje mi jasnopomarańczowy kolor na jasnobrązowy (co oznacza, że paleta kolorów jest z grubsza przybliżona).
Możesz zobaczyć kolory na tym wykresie 1, ponieważ dość łatwo pojawiałyby się na twoim terminalu:
Wynik jest oczywisty.
Niektóre systemy ustawiają zmienną $ TERM na,
xterm-256color
jeśli używasz 256-kolorowego terminala za pomocą jakiegoś kodu powłoki/etc/profile
. W innych przypadkach powinieneś mieć możliwość skonfigurowania terminala, aby z niego korzystał. To pozwoli aplikacjom TUI wiedzieć, że jest 256 kolorów i pozwoli ci dodać coś takiego~/.bashrc
:Pamiętaj, że kiedy używasz sekwencji ucieczki kolorów w swoim znaku zachęty, powinieneś umieścić je w
\
nawiasach kwadratowych (z prefiksem), jak poniżej:Zauważ, że
[
wnętrze sekwencji kolorów nie jest usuwane, ale otaczające są. Celem tego drugiego jest wskazanie powłoce, że zamknięta sekwencja nie liczy się do długości znaku zachęty. Jeśli ta liczba jest niepoprawna, podczas przewijania historii mogą się zdarzyć dziwne rzeczy, np. Jeśli jest ona zbyt długa, nadmiar długości ostatniego przewijanego ciągu pojawi się na monitach i nie będzie można cofnąć się do to (jest ignorowane w taki sam sposób, jak podpowiedź).Zauważ też, że jeśli chcesz dołączać dane wyjściowe polecenia uruchamianego za każdym razem, gdy monit jest używany (w przeciwieństwie do tylko jednego razu po ustawieniu pytania), powinieneś ustawić go jako literał ciąg z pojedynczymi cudzysłowami, np .:
Chociaż nie jest to świetny przykład, jeśli jesteś zadowolony z używania specjalnych
\d
lub\D{format}
szybkich ucieczek bash - które nie są tematem pytania, ale można je znaleźćman bash
pod poniżejPROMPTING
. Istnieje wiele innych przydatnych ucieczek, takich jak\w
bieżący katalog,\u
bieżący użytkownik itp.1. Główną częścią tego wykresu, kolory 16 - 231 (zauważ, że nie są one uporządkowane numerycznie) to sześcian kolorów 6 x 6 x 6 RGB. „Kolorowa kostka” odnosi się do faktu, że przestrzeń kolorów RGB można przedstawić za pomocą trójwymiarowej tablicy (z jedną osią dla czerwieni, jedną dla zieleni i jedną dla niebieskiego). Każdy kolor w sześcianie tutaj może być reprezentowany jako współrzędne w tablicy 6 x 6 x 6, a indeks na wykresie obliczany w ten sposób:
Pierwszy kolor w sześcianie, o indeksie 16 na wykresie, jest czarny (RGB 0, 0, 0). Możesz użyć tej formuły w skrypcie powłoki:
źródło
echo
do niczego innego niż dosłowny tekst, który nie zaczyna się od myślnika (-
). Nie można go przenosić. Wszystkie typowe implementacje naruszają standard, który stanowi, że żadna opcja nie powinna być obsługiwana. Gorzej, są niespójne. Zamiast tego powinieneś użyćprintf
. (I nie osadzaj zmiennych w instrukcjach printf, użyj%s
.)colortest-256
wypisz paletę xterm w ładnej, kompaktowej formie. (apt-get install colortest
jeśli brak)Wygląda na to, że przynajmniej niektóre z list to:
na podstawie https://wiki.archlinux.org/index.php/Color_Bash_Prompt
źródło
Napisałem funkcję bash, która może pokazać wszystkie kolory, jeśli to pomoże.
Możesz to wrzucić do pliku .bashrc / .bash_profile / .bash_aliases lub zapisać jako skrypt i uruchomić w ten sposób. Możesz użyć kolorów, aby zmienić kolor, tak jak ja z moim imieniem poniżej.
Wyjścia colorgrid ():
Zmieniłem swoje nazwisko w moim .bash_profile, wykonując następujące czynności:
Zauważ, że przedrostek 01 w łańcuchu jak
\[\033[01;38;5;214m\]a
ustawia pogrubienie.źródło
Kolejny skrypt, taki jak ten opublikowany przez TAFKA „goldilocks” do wyświetlania kolorów, który może być nieco bardziej praktyczny w celach informacyjnych:
To powinno mieć odpowiedni rozmiar dla używanego terminala. W tym celu jest nieco przesadzony, ale teraz możesz kontrolować wiele aspektów wyświetlania tego za pomocą parametrów. Mam nadzieję, że wszystkie są oczywiste.
źródło
źródło