Ketika saya menangkap sesuatu, hasilnya selalu berwarna merah. Saya tahu bahwa perintah grep --colormencetak hasil dalam warna, yang secara default berwarna merah. Bisakah saya mengubah warnanya?
Ketika saya menangkap sesuatu, hasilnya selalu berwarna merah. Saya tahu bahwa perintah grep --colormencetak hasil dalam warna, yang secara default berwarna merah. Bisakah saya mengubah warnanya?
Jawaban:
Anda dapat mengubah warna sorotan grepdengan menggunakan variabel lingkungan GREP_COLORS, yang dapat Anda atur seperti ini:
export GREP_COLORS='ms=01;31'
Angka-angka dapat gaya teks, mengubah warna latar depan atau warna latar belakang, atau mengubah font.
Kondisi awal untuk semua GREP_COLORSopsi adalah gaya teks, font, dan warna default terminal. Menyetel ulang semua ini akan kembali ke default terminal, bukan default apa pun grep.
ᴀ;ʙ;…- ;memisahkan pilihan numerik yang Anda ingin menggabungkan (misalnya, berani kuning-hitam menggabungkan teks pilihan 1, 33dan 40dalam 1;33;40)+ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ dihidupkan ketika Anda menggunakan opsi angka itu-ᴇꜰꜰᴇᴄᴛ- ᴇꜰꜰᴇᴄᴛ dimatikan saat Anda menggunakan opsi angka itucolor, green, cyan, Dan grey- di bagian "Teks styling", ini mengacu pada warna foregroundcolors - di bagian "Gaya teks", ini mengacu pada warna latar depan dan warna latar belakangthis color- di bagian "Warna latar depan", ini mengacu pada warna latar depan; di bagian "Warna latar belakang", ini mengacu pada warna latar belakangString kosong atau 0me - reset semua gaya teks dan me-reset kedua warna ke default tetapi tidak me-reset font ke default.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ │ «reset style+colors» │ «reset style+colors» │ «reset style+colors» │
│ 0 │ «reset style+colors» │ «reset style+colors» │ «reset style+colors» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 1 │ +bold, +brighter color │ +bold, +brighter color │ +brighter color, │
│ │ │ │ -forced grey │
│ 2 │ +fainter color │ +fainter color │ +forced grey │
│ 3 │ +italic │ +italic │ +forced green │
│ │ │ │ ● overrides 2 and 4 │
│ 4 │ +underline │ +underline │ +forced cyan │
│ │ │ │ ● overrides 2 │
│ 5 │ «no effect» │ +blink │ «no effect» │
│ 7 │ +invert colors │ +invert colors │ +invert colors │
│ 8 │ +invisible │ +invisible │ «no effect» │
│ │ │ ● underline appears │ │
│ 9 │ +strikethrough │ +strikethrough │ «no effect» │
├─────┼─────────────────────────┤ ├───────────────────────┤
│ 21 │ -bold, -brighter color, │ +double underline │ -brighter color, │
│ │ -fainter color ├─────────────────────────┤ -forced grey │
│ 22 │ -bold, -brighter color, │ -bold, -brighter color, │ -brighter color, │
│ │ -fainter color │ -fainter color │ -forced grey │
│ 23 │ -italic │ -italic │ -forced green │
│ 24 │ -underline │ -underline, │ -forced cyan │
│ │ │ -double underline │ │
│ 25 │ «no effect» │ -blink │ «no effect» │
│ 27 │ -invert colors │ -invert colors │ -invert colors │
│ 28 │ -invisible │ -invisible │ «no effect» │
│ 29 │ -strikethrough │ -strikethrough │ «no effect» │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 39 │ «reset this color» │ «reset this color» │ «reset this color» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 30 │ very dark grey │ black │ black │
│ 31 │ dull red │ red │ light red │
│ 32 │ dull green │ light green │ light green │
│ 33 │ dull yellow │ yellow │ yellow │
│ 34 │ greyish blue │ dark blue │ sky blue │
│ 35 │ dull purple │ purple │ purple │
│ 36 │ teal │ cyan │ cyan │
│ 37 │ light grey │ light grey │ light grey │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 90 │ dark grey │ dull grey │ dull grey │
│ 91 │ red │ bright red │ bright red │
│ 92 │ lime green │ bright green │ bright green │
│ 93 │ yellow │ bright yellow │ pure yellow │
│ 94 │ light greyish blue │ dull blue │ deep blue │
│ 95 │ light purple │ magenta │ magenta │
│ 96 │ cyan │ bright cyan │ bright cyan │
│ 97 │ off white │ white │ white │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 38;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255 │
│ │ for closest supported color (non-GUI TTY has only 16 colors!) │
│ 38;5;ɴ │ replace ɴ with value from 256-color chart below │
│ │ for closest supported color (non-GUI TTY has only 16 colors!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Perhatikan bahwa TTY non-GUI tidak memberikan seri warna latar belakang yang lebih cerah.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 49 │ «reset this color» │ «reset this color» │ «reset this color» │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ 40 │ very dark grey │ black │ black │
│ 41 │ dull red │ red │ light red │
│ 42 │ dull green │ light green │ light green │
│ 43 │ dull yellow │ yellow │ yellow │
│ 44 │ greyish blue │ dark blue │ sky blue │
│ 45 │ dull purple │ purple │ purple │
│ 46 │ teal │ cyan │ cyan │
│ 47 │ light grey │ light grey │ light grey │
├─────┼─────────────────────────┼─────────────────────────┼╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶┤
│ 100 │ dark grey │ dull grey │ black │
│ 101 │ red │ bright red │ light red │
│ 102 │ lime green │ bright green │ light green │
│ 103 │ yellow │ bright yellow │ yellow │
│ 104 │ light greyish blue │ dull blue │ sky blue │
│ 105 │ light purple │ magenta │ purple │
│ 106 │ cyan │ bright cyan │ cyan │
│ 107 │ off white │ white │ light grey │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 48;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255 │
│ │ for closest supported color (non-GUI TTY has only 8 colors!) │
│ 48;5;ɴ │ replace ɴ with value from 256-color chart below │
│ │ for closest supported color (non-GUI TTY has only 8 colors!) │
└────────────┴────────────────────────────────────────────────────────────────────┘
Di atas grafik adalah tangkapan layar dari konten yang diterbitkan dalam "kode pelarian ANSI, warna 8-bit" di Wikipedia , yang ditulis oleh CMG Lee et al. pada 24 Februari 2016 dan sesudahnya , dan dilisensikan oleh penulis di bawah lisensi hak cipta CC BY-SA 3.0 dan lisensi hak cipta GFDL .
Warna dari grafik 256 warna di atas dapat digunakan sebagai berikut:
38;5;ɴ- ganti ɴ dengan nilai warna tertentu pada grafik di atas untuk mengubah warna latar depan ke warna terdekat yang didukung terminal48;5;ɴ- ganti ɴ dengan nilai warna tertentu pada bagan di atas untuk mengubah warna latar belakang ke warna terdekat yang didukung terminalSebagai contoh, 38;5;214;48;5;30akan mengatur latar depan ke warna 214dan latar belakang ke warna 30, memberikan hasil oranye pada terminal yang mendukungnya.
Perhatikan bahwa tidak semua terminal mendukung semua 256 warna, jadi penting untuk menyadari bahwa warna yang dipilih mungkin tidak digunakan. Hanya warna yang didukung paling dekat dengan yang dipilih yang akan digunakan.
Misalnya, TTY non-GUI hanya mendukung 16 warna dasar untuk latar depan dan 8 warna dasar untuk latar belakang, sehingga warna terdekat yang akhirnya digunakan mungkin bukan yang Anda harapkan. Sebagai contoh, pemilihan oranye-on-teal di atas ( 38;5;214;48;5;30) menunjukkan sebagai kuning-hitam di TTY non-GUI, karena itu adalah warna terdekat yang didukung.
10adalah font default. 11through 20adalah potensi font alternatif ( 20biasanya berarti font in di terminal langka yang mendukungnya). Hanya 10dan 12tampaknya ada secara default di TTY non-GUI, dan tidak ada yang ada di Terminal GNOME atau xterm.
greptidak benar-benar beralih font kembali sebelum keluar, jadi jalankan resetjika Anda terjebak dalam font yang tidak diinginkan setelah grepkembali ke shell.
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal ┃ xterm ┃ non-GUI TTY ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ 10 │ «no effect» │ «no effect» │ «reset font» │
│ 11 │ «no effect» │ «no effect» │ -messed up font │
│ 12 │ «no effect» │ «no effect» │ +messed up font │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘
Sumber bagian "Numeric options":
● "ANSI escape code, parameter SGR (Select Graphic Rendition)" di Wikipedia
● Verifikasi eksperimental pada Terminal GNOMExterm,, dan TTY non-GUI-mode pada Ubuntu 16.04
Nilai default GREP_COLORSadalah'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Arti setiap elemen yang diterima GREP_COLORSdapat diperiksa di halaman manual GNU.org .
Untuk penyelesaian, dan seperti yang ditunjukkan oleh @damadam, Anda harus menambahkan exportke Anda .bashrcuntuk menyimpan perubahan.
Terkait:
38;5;ɴ, di mana ɴ harus diganti dengan salah satu nilai warna. Untuk latar belakang, gunakan 48;5;ɴdengan cara yang sama. Sebagai contoh, 38;5;214;48;5;30harus memberi Anda jeruk pada itik. Jika tidak, terminal Anda mungkin tidak mendukung 256 warna. Sebagai contoh, TTY non-GUI hanya mendukung 16 warna untuk latar depan dan 8 untuk latar belakang dan akan memilih warna latar depan dan latar belakang dari 16 dan 8 yang paling dekat dengan oranye pada warna, yang berwarna kuning pada hitam.
Selain jawaban dari @M. Becerra, jangan lupa untuk menambahkan ini exportdi dalam ~/.bashrc. Anda bisa melakukannya seperti itu:
nano ~/.bashrc
dan ketik sekarang export:
export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
Ini menetapkan grephasil menjadi kuning, dan saya tidak perlu mengulang exportterminal setelah restart atau komputer.
<<<hello GREP_COLORS='ms=5;104' grep '.*'sekali! Daftar kode dapat ditemukan misalnya di sini (bagian 6).