Zastanawiałem się, czy można zmienić kolor wyjścia polecenia w Linuksie na inny kolor niż kolor wiersza poleceń, w którym wpisuję. To jest monotonne i trudne do znalezienia, gdzie zaczyna się wyjście. lubić,
@USER/Destop$ ----> blue
/*
--------------
output file in white
-----------
*/
Dzięki
preexec () { echo -n "\\e[40;34m" }
;precmd
funkcja nie jest IMHO konieczne wydaje zsh resetuje sam kolor przed wyświetleniem monitu. Ale działa to tylko w przypadku tych poleceń, które nie zmienią samego koloru (widocznym przykładem jestls
), jak zauważył Aaron. Zcat
,bc
, wbudowany poleceń powłoki itp (nawetalpine
) to działa prawidłowo."\\e[40;34m"
na końcu mojegoPROMPT
var i ustawiłem go ponownie z białym za pomocąpreexec () { echo -n "\\e[40;37m" }
...zle_highlight=(default:fg=cyan)
najnowszej wersji zsh. Zsh oferuje również dynamiczne kolory, takie jakfish
; patrz sekcja PODKREŚLANIE ZNAKÓW w man zshzle.Odpowiedzi:
Nie całkiem; kolor wyjścia danego programu jest kontrolowany przez komendę, a nie przez terminal.
To powiedziawszy, zakładając, że twój terminal rozumie kody ucieczki ANSI dla koloru (większość robi), możesz użyć kodów ucieczki, aby ustawić pożądany kolor pytania na początku pytania, a pożądany kolor wyjściowy na końcu; spowodowałoby to, że linie poleceń byłyby również w tym samym kolorze, który ustawiłeś dla danych wyjściowych, ale prawdopodobnie jest to tak blisko, jak masz zamiar dostać się do tego, czego szukasz. Na przykład:
wyświetli monit, który wygląda następująco:
z „user” i „host” w kolorze fioletowym, „wd” (twój cwd) w kolorze brązowym (ciemnożółty) i wszystko po „$” w dowolnym kolorze używanym przez terminal dla jasnoniebieskiego. (Domyślny xterm renderuje to w cyjan; terminal gnome wydaje się domyślnie mieć raczej ładny odcień bławatka).
Rzeczywisty kod koloru, określony w niezbędnym formacie dla bash, to np.
\[\033[00;35m\]
Gdzie00;35
jest rzeczywista specyfikacja koloru; wiodące00
rzadko się zmieniają, ale mogą powodować pogrubienie IIRC (01), podkreślenie (??) i odwrotne wideo (??), podczas gdy końcowe „35” to rzeczywisty kolor, który w tym przypadku jest fioletowy.Zaskakująco trudno jest znaleźć porządną listę kodów kolorów ANSI, ale kolory pierwszego planu biegną od 30 do 37, a tła od 40 do 47, w następujący sposób:
Pamiętaj, że ponieważ ustawiasz domyślny kolor dla wszystkiego, co następuje po monicie, uruchamiane programy, które nie ustawiają własnych kolorów za pomocą kodów specjalnych, przyjmą ten kolor - na przykład, jeśli uruchomisz pager, prawdopodobnie zobaczysz wynik w tym samym kolorze, który ustawiłeś dla innych poleceń. Tymczasem, polecenia, które należy ustawić swoje własne kolory kodem ewakuacyjnych zignoruje swoje wysiłki w całości.
źródło
tput
jest o wiele bardziej czytelne do kolorowania. Na przykład mój monit (w bash)export PS1="[\t \[$(tput setaf 9)\]\u\[$(tput setaf 15)\]@\[$(tput setaf 12)\]\h \[$(tput sgr0)\]\w ] \$ "
określa, która godzina, następnie nazwa użytkownika w jednym kolorze,@
w innym, a nazwa hosta w trzeciej (obecnie czerwona, biała i niebieska), a następnie drukuje PWD i$
. Łatwo jest zobaczyć na pierwszy rzut oka, gdzie są wiersze pytania podczas przewijania historii.~/.bashrc
; znajdź wiersz, w którym ustawia PS1, który jest ciągiem zachęty, i zmodyfikuj go zgodnie z opisem w odpowiedzi. To, co należy zmienić, zależy od tego, jak skonfigurowany jest Twój ciąg zachęty, ale większość istotnych szczegółów znajduje się w mojej odpowiedzi, a resztę można znaleźć, wykonując niewielką wyszukiwarkę Google. Nie jestem pewien, co masz na myśli przez „czy istnieje sposób, aby zachować ten sam, co kolor wcześniej”?Możesz przekazać dane wyjściowe do programu, który wykonuje kolorowanie. Na przykład istnieją programy takie jak
pycolor
:Aby zbudować własny:
Więcej na temat wydruków kolorowych.
źródło
Tak, mam to działa przynajmniej dla bash, na Linux i Mac OS.
Najpierw ustaw niektóre zmienne atrybutów i monit PS1, aby opuścić zestaw terminali z pożądanymi atrybutami wiersza polecenia, na przykład:
Następnie użyj pułapki DEBUG bash, która jest wykonywana tuż przed każdym poleceniem, aby zmienić atrybuty tekstu dla danych wyjściowych polecenia:
źródło
Inną alternatywą (na podstawie poleceń) jest grc - ogólny kolorizer. Konfiguracja wyrażeń regularnych używanych do pokolorowania rzeczy zajmuje trochę pracy. Dowiedziałem się o tym tutaj:
/unix/8414/how-to-have-tail-f-show-colored-output?newsletter=1&nlcode=17737|321c
i tu:
/unix/26313/colored-find-output
Nie jestem flash z wyrażeniami regularnymi, więc nie pracowałem dużo z tymi poleceniami.
źródło
Wrzuć je do pliku .bashrc, a następnie zapisz plik źródłowy po zapisaniu.
Gdy to zrobisz, możesz użyć dowolnego z nich w terminalu na stałe lub do momentu skomentowania zmiennych lub całkowitego ich usunięcia. Możesz ich używać w skryptach na komputerze lub z zastępowaniem poleceń lub cokolwiek innego. Oto następujący przykład, w jaki sposób korzystam z nich osobiście:
Zwykle używam ich z indywidualnymi
echo
i / lubprintf
komendami, ale możesz ich użyć do pokolorowania również innych komend, takich jakping
komenda. Dodaj następujące elementy,.bashrc
aby uzyskać efekty. Następnie źródłowy.bashrc
plik i uruchomcping
polecenie, aby użyćping
z fioletowym tekstem. Możesz ustawić każdą funkcję polecenia, aby używała dowolnego koloru obsługiwanego przez terminal.Więc spróbuj:
Twój wynik
cping
będzie fioletowy. Jeśli chcesz używać wielu kolorów na tym samym wydruku, możesz dodać je w unikalny sposób. To, jak to zrobisz, zależy wyłącznie od Ciebie. Na przykład:źródło
Powinieneś rzucić okiem na komendę hl dostępną w git hub:
github: git clone http://github.com/mbornet-hl/hl
i na:
http://www.flashnux.com/notes/page_000022_US.html
hl to polecenie linux napisane w C, zaprojektowane specjalnie do pokolorowania pliku tekstowego lub wyniku polecenia. Możesz użyć do 42 kolorów jednocześnie i użyć pliku konfiguracyjnego, aby uprościć wiersze poleceń. Możesz pokolorować dane wyjściowe każdego polecenia, które można potokować do innego. A jeśli wiesz, jakie są wyrażenia regularne, korzystanie z nich będzie bardzo łatwe. Możesz użyć strony podręcznika, aby zrozumieć, jak z niej korzystać.
źródło