Saya menggunakan stderred dan telah menemukan solusi yang baik. Sebagai catatan readme nya :
Stderred hooks pada write () dan keluarga fungsi stream (fwrite, fprintf, error ...) dari libc untuk mewarnai semua output stderr yang masuk ke terminal sehingga membuatnya dapat dibedakan dari stdout. Pada dasarnya itu membungkus teks yang masuk ke file dengan deskriptor "2" dengan kode melarikan diri ANSI yang tepat membuat teks merah.
Ini diimplementasikan sebagai pustaka bersama dan tidak memerlukan kompilasi ulang dari binari yang ada berkat fitur preload / insert dari dynamic linker.
Ini didukung di Linux (dengan LD_PRELOAD), FreeBSD (juga LD_PRELOAD) dan OSX (dengan DYLD_INSERT_LIBRARY).
Mudah untuk dikompilasi, tetapi Anda harus membuatnya dari sumber dengan mengikuti instruksi dari situs Github-nya :
sudo apt-get install build-essential git cmake
Kemudian
git clone git://github.com/sickill/stderred.git
cd stderred
Kemudian
make
Bagian terpenting dari itu adalah menambahkan baris yang sesuai untuk Anda .bashrc
; Anda harus menautkan ke libstderred.so
file di direktori build; Anda harus menggunakan path absolut tempat direktori build berada (/ home / mike / src / stderred / build). Saya menambahkan yang berikut ini ke .bashrc
:
export LD_PRELOAD="/home/mike/src/stderred/build/libstderred.so${LD_PRELOAD:+:$LD_PRELOAD}"
Jelas, ketika Anda tidak ingin menggunakannya lagi, hapus baris di atas dari Anda .bashrc
dan restart terminal.
Hasilnya, diuji pada file yang tidak ada (itu jelas tidak akan berfungsi ketika sudo
digunakan, karena pengguna .bashrc
tidak akan dibaca ketika lingkungan yang berbeda diatur):
(Dengan cara itu tidak berubah duke saya @ Nukem merah prompt seperti yang merah sudah )