Saya bertanya-tanya apakah mungkin untuk mengubah warna output dari perintah di linux ke warna yang berbeda dari pada baris perintah tempat saya mengetik. Agak monoton dan sulit untuk menemukan di mana output dimulai. seperti,
@USER/Destop$ ----> blue
/*
--------------
output file in white
-----------
*/
Terima kasih
preexec () { echo -n "\\e[40;34m" }
; yangprecmd
fungsi IMHO tidak perlu, tampaknya zsh me-reset warna itu sendiri sebelum menampilkan prompt. Tapi itu hanya berfungsi untuk perintah-perintah yang tidak akan mengubah warna itu sendiri (contoh yang menonjol adalahls
) seperti yang ditunjukkan oleh Harun. Dengancat
,,bc
perintah shell builtin, dll. (Dataralpine
) ini berfungsi dengan baik."\\e[40;34m"
ke akhirPROMPT
var saya , dan mengaturnya kembali menjadi putih denganpreexec () { echo -n "\\e[40;37m" }
...zle_highlight=(default:fg=cyan)
dengan versi zsh terbaru. Zsh juga menawarkan pewarnaan dinamis, sepertifish
; lihat bagian CHARACTER HIGHLIGHTING di man zshzle.Jawaban:
Tidak juga; warna output program tertentu dikontrol oleh perintah, bukan oleh terminal.
Karena itu, dengan anggapan terminal Anda memahami kode pelarian ANSI untuk warna (kebanyakan), Anda dapat menggunakan kode pelarian untuk mengatur warna prompt yang Anda inginkan di awal prompt, dan warna output yang Anda inginkan di akhir; ini akan menghasilkan baris perintah Anda juga menjadi warna apa pun yang Anda tetapkan untuk output, tapi itu mungkin sedekat Anda akan mendapatkan apa yang Anda cari. Misalnya, berikut ini:
akan memberi Anda prompt yang terlihat seperti:
dengan 'pengguna' dan 'tuan rumah' dengan warna ungu, 'wd' (cwd Anda) berwarna coklat (kuning gelap), dan semuanya setelah '$' dalam apa pun yang digunakan terminal Anda untuk biru muda. (Xterm default akan membuat ini dalam cyan; gnome-terminal tampaknya default ke warna biru jagung yang agak bagus.)
Kode warna aktual, sebagaimana ditentukan dalam format yang diperlukan untuk bash, adalah, misalnya
\[\033[00;35m\]
, di mana00;35
spesifikasi warna aktual; terkemuka00
jarang berubah, tetapi dapat menghasilkan efek IIRC tebal (01), garis bawah (??), dan membalikkan video (??), sedangkan trailing '35' adalah warna sebenarnya, yang dalam hal ini berwarna ungu.Sangatlah sulit menemukan daftar kode warna ANSI yang layak, tetapi warna latar depan berjalan dari 30 hingga 37, dan yang latar belakang dari 40 hingga 47, sebagai berikut:
Perlu diingat bahwa, karena Anda menetapkan warna default untuk semua yang mengikuti prompt Anda, program yang Anda jalankan yang tidak mengatur warna sendiri melalui kode escape akan mengambil warna itu - misalnya, jika Anda menjalankan pager, Anda cenderung melihat outputnya dalam warna yang sama dengan yang Anda tetapkan untuk perintah lain. Sementara itu, perintah yang tidak mengatur warna mereka sendiri melalui kode melarikan diri akan mengabaikan usaha Anda sepenuhnya.
sumber
tput
jauh lebih mudah dibaca untuk mewarnai. Sebagai contoh, prompt saya (dalam bash) adalahexport PS1="[\t \[$(tput setaf 9)\]\u\[$(tput setaf 15)\]@\[$(tput setaf 12)\]\h \[$(tput sgr0)\]\w ] \$ "
yang menampilkan waktu, kemudian nama pengguna dalam satu warna, yang@
lain, dan nama host dalam warna ketiga (merah, putih, dan biru saat ini), kemudian mencetak PWD dan$
. Sangat mudah untuk melihat sekilas di mana garis yang cepat ketika menggulir kembali ke sepanjang sejarah.~/.bashrc
; temukan baris di mana ia mengatur PS1, yang merupakan string prompt Anda, dan memodifikasinya seperti dijelaskan dalam jawaban. Apa yang harus diubah tergantung pada bagaimana string cepat Anda diatur, tetapi sebagian besar rincian penting ada di jawaban saya, dan sisanya dapat ditemukan dengan melakukan sedikit Googling. Saya tidak yakin apa yang Anda maksud dengan "apakah ada cara untuk menjaga yang terakhir sama seperti warna sebelumnya?"Anda dapat meneruskan output ke program yang melakukan pewarnaan. Misalnya, ada program seperti
pycolor
:Untuk membangun sendiri:
Lebih lanjut tentang output warna.
sumber
Ya saya punya ini berfungsi untuk bash, di linux dan mac OS setidaknya.
Pertama, atur beberapa variabel atribut, dan prompt PS1 untuk meninggalkan set terminal dengan atribut baris perintah yang diinginkan, misalnya:
Kemudian, gunakan perangkap DEBUG bash, yang dieksekusi sebelum setiap perintah, untuk mengubah atribut teks untuk output perintah:
sumber
Alternatif lain (berdasarkan perintah dengan perintah) adalah grc - generic colorizer. Dibutuhkan sedikit kerja untuk mengatur ekspresi reguler yang digunakannya untuk mewarnai sesuatu. Saya mengetahuinya di sini:
https://unix.stackexchange.com/questions/8414/how-to-have-tail-f-show-colored-output?newsletter=1&nlcode=17737|321c
dan di sini:
https://unix.stackexchange.com/questions/26313/colored-find-output
Saya bukan flash dengan regex, jadi saya belum banyak bekerja dengan perintah ini.
sumber
Lempar ini ke file .bashrc Anda dan kemudian sumber file setelah menyimpan.
Setelah ini selesai, Anda dapat menggunakan semua ini di terminal Anda secara permanen atau sampai Anda berkomentar variabel keluar atau menghapusnya sepenuhnya. Anda dapat menggunakannya dalam skrip di mesin Anda atau dengan substitusi perintah atau apa pun. Berikut ini adalah contoh bagaimana saya menggunakannya secara pribadi:
Saya biasanya menggunakan ini dengan perintah individu
echo
dan / atauprintf
tetapi Anda dapat menggunakannya untuk mewarnai perintah lain juga sepertiping
perintah. Tambahkan berikut ini.bashrc
untuk mendapatkan efek. Kemudian sumber.bashrc
file Anda dan jalankancping
perintah untuk digunakanping
dengan teks ungu. Anda dapat mengatur setiap fungsi perintah untuk menggunakan warna apa pun yang didukung terminal Anda.Lalu coba:
Output Anda untuk
cping
akan menjadi ungu. Jika Anda ingin menggunakan beberapa warna dalam output yang sama, Anda dapat menambahkannya dengan cara unik. Bagaimana Anda melakukannya sepenuhnya terserah Anda. Sebagai contoh:sumber
Anda harus melihat perintah hl yang tersedia di git hub:
github: git clone http://github.com/mbornet-hl/hl
dan pada:
http://www.flashnux.com/notes/page_000022_US.html
hl adalah perintah linux yang ditulis dalam C, khusus dirancang untuk mewarnai file teks atau output dari suatu perintah. Anda dapat menggunakan hingga 42 warna secara bersamaan, dan menggunakan file konfigurasi untuk menyederhanakan baris perintah. Anda dapat mewarnai keluaran dari setiap perintah yang dapat disalurkan ke perintah lain. Dan jika Anda tahu apa ekspresi reguler, akan sangat mudah bagi Anda untuk menggunakannya. Anda dapat menggunakan halaman manual untuk memahami cara menggunakannya.
sumber