Я использую stderred и нашел хорошее решение. Как примечания readme :
Stderred перехватывает write () и семейство потоковых функций (fwrite, fprintf, error ...) из libc, чтобы раскрасить весь вывод stderr, который идет на терминал, что делает его отличным от stdout. В основном он переносит текст, который идет в файл с дескриптором «2», с соответствующими управляющими кодами ANSI, делающими текст красным.
Он реализован в виде разделяемой библиотеки и не требует перекомпиляции существующих двоичных файлов благодаря функции предварительной загрузки / вставки динамических компоновщиков.
Он поддерживается в Linux (с LD_PRELOAD), FreeBSD (также LD_PRELOAD) и OSX (с DYLD_INSERT_LIBRARIES).
Компиляция проста, но вам нужно собрать ее из исходного кода, следуя инструкциям с сайта Github :
sudo apt-get install build-essential git cmake
потом
git clone git://github.com/sickill/stderred.git
cd stderred
потом
make
Наиболее важной частью является добавление соответствующей строки в ваш .bashrc
; вы должны указать ссылку на libstderred.so
файл в каталоге сборки; Вы должны использовать абсолютный путь к каталогу сборки (/ home / mike / src / stderred / build). Я добавляю следующее к моему .bashrc
:
export LD_PRELOAD="/home/mike/src/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
Очевидно, что если вы больше не хотите его использовать, удалите указанную выше строку .bashrc
и перезапустите терминал.
Результаты, проверенные на несуществующих файлах (очевидно, что они не будут работать при sudo
использовании, так как пользователь .bashrc
не будет прочитан, когда установлена другая среда):
(Кстати , это не поворачивает герцог @ Nukem быстрых красный , как было красным уже )