Saya menggunakan beberapa warna di prompt PS1 saya seperti
\033]01;31\] # pink
\033]00m\] # white
\033]01;36\] # bold green
\033]02;36\] # green
\033]01;34\] # blue
\033]01;33\] # bold yellow
Di mana saya dapat menemukan daftar kode warna yang dapat saya gunakan?
Saya melihat Colorize Bash Console Color tetapi tidak menjawab pertanyaan saya tentang daftar kode yang sebenarnya.
Akan lebih baik jika ada bentuk yang lebih mudah dibaca juga.
\]
sini sebenarnya bukan bagian dari urutan warna; itu melayani tujuan dalam pengaturan meminta secara khusus (saya telah menambahkan beberapa paragraf di akhir jawaban saya tentang ini). "Akan lebih baik jika ada bentuk yang lebih mudah dibaca juga." -> cut n 'paste dalam jawaban Anda sendiri adalah salah satu cara untuk melakukan ini.Jawaban:
Itu adalah urutan pelarian ANSI ; tautan itu adalah bagan kode warna tetapi ada hal-hal menarik lainnya pada halaman Wikipedia itu juga. Tidak semuanya bekerja pada (misalnya) konsol Linux normal.
Ini salah:
0
me-reset terminal ke default-nya (yang mungkin putih). Kode aktual untuk foreground putih adalah 37. Juga, tanda kurung tutup yang keluar di akhir (\]
) bukan bagian dari urutan warna (lihat beberapa paragraf terakhir di bawah ini untuk penjelasan tujuan mereka dalam mengatur prompt).Perhatikan bahwa beberapa terminal GUI memungkinkan Anda menentukan skema warna yang disesuaikan. Ini akan mempengaruhi output.
Ada daftar di sini yang menambahkan 7 warna latar depan dan 7 warna latar belakang yang belum pernah saya lihat sebelumnya, tetapi tampaknya berhasil:
Selain itu, jika Anda memiliki terminal GUI 256 warna (saya pikir sebagian besar dari mereka sekarang), Anda dapat menerapkan warna dari grafik ini:
Urutan ANSI untuk memilih ini, menggunakan nomor di sudut kiri bawah, dimulai
38;5;
untuk latar depan dan48;5;
latar belakang, kemudian nomor warna, jadi mis:Memberi saya oranye terang pada cokelat (artinya, bagan warna kira-kira kira-kira).
Anda dapat melihat warna pada bagan 1 ini seperti yang akan muncul di terminal Anda dengan cukup mudah:
Outputnya cukup jelas.
Beberapa sistem mengatur variabel $ TERM ke
xterm-256color
jika Anda berada di terminal 256 warna melalui beberapa kode shell/etc/profile
. Pada yang lain, Anda harus dapat mengkonfigurasi terminal Anda untuk menggunakan ini. Itu akan membuat aplikasi TUI tahu ada 256 warna, dan memungkinkan Anda untuk menambahkan sesuatu seperti ini ke~/.bashrc
:Berhati-hatilah bahwa ketika Anda menggunakan urutan pelarian warna di prompt Anda, Anda harus melampirkannya dalam
\
tanda kurung kotak yang lolos ( diawali), seperti ini:Perhatikan
[
interior untuk urutan warna tidak lolos, tetapi yang melampirkan. Tujuan dari yang terakhir adalah untuk menunjukkan kepada shell bahwa urutan terlampir tidak dihitung terhadap panjang karakter prompt. Jika hitungan itu salah, hal-hal aneh akan terjadi ketika Anda menggulir kembali ke sepanjang sejarah, misalnya, jika terlalu panjang, panjang kelebihan dari string yang digulir terakhir akan muncul melekat pada prompt Anda dan Anda tidak akan dapat mundur ke itu (itu diabaikan dengan cara yang sama prompt adalah).Perhatikan juga bahwa jika Anda ingin menyertakan output dari perintah yang dijalankan setiap kali prompt digunakan (bukan hanya sekali ketika prompt diatur), Anda harus mengaturnya sebagai string literal dengan tanda kutip tunggal, misalnya:
Meskipun ini bukan contoh yang bagus jika Anda senang menggunakan bash's special
\d
atau\D{format}
prompt escape - yang bukan topik pertanyaan tetapi dapat ditemukan diman bash
bawahPROMPTING
. Ada berbagai pelarian berguna lainnya seperti\w
untuk direktori saat ini,\u
untuk pengguna saat ini, dll.1. Bagian utama dari bagan ini, warna 16 - 231 (perhatikan bahwa jumlahnya tidak berurutan) adalah kubus warna 6 x 6 x 6 RGB. "Color cube" mengacu pada fakta bahwa ruang warna RGB dapat direpresentasikan menggunakan array tiga dimensi (dengan satu sumbu untuk merah, satu untuk hijau, dan satu untuk biru). Setiap warna dalam kubus di sini dapat direpresentasikan sebagai koordinat dalam array 6 x 6 x 6, dan indeks dalam grafik dihitung sebagai berikut:
Warna pertama dalam kubus, pada indeks 16 dalam bagan, adalah hitam (RGB 0, 0, 0). Anda bisa menggunakan rumus ini dalam skrip shell:
sumber
echo
untuk apa pun selain teks literal yang tidak dimulai dengan tanda hubung (-
). Itu tidak bisa diangkut. Semua implementasi umum melanggar standar yang menyatakan bahwa tidak ada opsi yang harus didukung. Lebih buruk lagi, mereka tidak konsisten. Anda harus menggunakannyaprintf
sebagai gantinya. (Dan jangan menanamkan variabel di dalam pernyataan printf, gunakan%s
.)colortest-256
daftar pallette xterm dalam bentuk ringkas yang bagus. (apt-get install colortest
jika tidak ada)Sepertinya setidaknya beberapa daftar adalah:
berdasarkan https://wiki.archlinux.org/index.php/Color_Bash_Prompt
sumber
Saya menulis fungsi bash yang dapat menampilkan semua warna, jika ini membantu.
Anda dapat membuangnya di .bashrc / .bash_profile / .bash_aliases atau simpan sebagai skrip dan jalankan dengan cara itu. Anda dapat menggunakan warna untuk mengubah warna seperti yang saya lakukan dengan nama saya di bawah ini.
keluaran colorgrid ():
Saya mengubah nama saya di .bash_profile saya dengan melakukan ini:
Perhatikan bahwa awalan 01 dalam string seperti
\[\033[01;38;5;214m\]a
menyetelnya menjadi tebal.sumber
Skrip lain seperti yang diposting oleh TAFKA 'goldilocks' untuk menampilkan warna yang mungkin sedikit lebih praktis untuk tujuan referensi:
Ini harus berukuran dengan benar untuk terminal yang Anda gunakan. Ini sedikit berlebihan untuk tujuan ini, tetapi sekarang Anda dapat mengontrol banyak aspek bagaimana ini ditampilkan melalui parameter. Semoga semuanya cukup jelas.
sumber
sumber