Ich benutze Stderred und habe es eine gute Lösung gefunden. In der Readme- Datei heißt es:
Stderred-Hooks auf write () und eine Familie von Stream-Funktionen (fwrite, fprintf, error ...) von libc, um alle stderr-Ausgaben, die an das Terminal gesendet werden, einzufärben und so von stdout zu unterscheiden. Grundsätzlich umschließt es Text, der mit dem Deskriptor "2" in die Datei geht, mit korrekten ANSI-Escape-Codes, wodurch der Text rot wird.
Es ist als gemeinsam genutzte Bibliothek implementiert und erfordert keine Neukompilierung vorhandener Binärdateien dank der Vorlade- / Einfügefunktion dynamischer Linker.
Es wird unter Linux (mit LD_PRELOAD), FreeBSD (auch LD_PRELOAD) und OSX (mit DYLD_INSERT_LIBRARIES) unterstützt.
Es ist einfach zu kompilieren, aber Sie müssen es aus dem Quellcode erstellen, indem Sie den Anweisungen auf der Github-Site folgen :
sudo apt-get install build-essential git cmake
Dann
git clone git://github.com/sickill/stderred.git
cd stderred
Dann
make
Der wichtigste Teil davon ist, die entsprechende Zeile zu Ihrem hinzuzufügen .bashrc
; Sie müssen eine Verknüpfung zu der libstderred.so
Datei im Erstellungsverzeichnis herstellen. Sie müssen den absoluten Pfad verwenden, unter dem sich das Erstellungsverzeichnis befindet (/ home / mike / src / stderred / build). Ich füge Folgendes zu meinem hinzu .bashrc
:
export LD_PRELOAD="/home/mike/src/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
Wenn Sie es nicht mehr verwenden möchten, entfernen Sie die obige Zeile von Ihrem .bashrc
und starten Sie das Terminal neu.
Die Ergebnisse, getestet mit nicht existierenden Dateien (es wird offensichtlich nicht funktionieren, wenn sudo
es verwendet wird, da der Benutzer .bashrc
nicht gelesen wird, wenn die andere Umgebung eingestellt ist):
(Übrigens es nicht dreht den Herzog @ nukem prompt rot wie die rot wurde bereits )