Saya menghabiskan sebagian besar waktu saya bekerja di lingkungan Unix dan menggunakan emulator terminal. Saya mencoba menggunakan warna pada baris perintah, karena warna membuat output lebih berguna dan intuitif.
Opsi apa yang ada untuk menambahkan warna ke lingkungan terminal saya? Trik apa yang Anda gunakan? Jebakan apa yang Anda temui?
Sayangnya, dukungan untuk warna bervariasi tergantung pada jenis terminal, OS, pengaturan TERM, utilitas, implementasi kereta, dll.
Berikut adalah beberapa tips dari pengaturan saya, setelah banyak eksperimen:
- Saya cenderung menyetel
TERM=xterm-color
, yang didukung di sebagian besar host (tetapi tidak semua). - Saya bekerja pada sejumlah host yang berbeda, versi OS yang berbeda, dll. Saya menggunakan semuanya dari macOS X, Ubuntu Linux, RHEL/CentOS/Scientific Linux dan FreeBSD. Saya mencoba untuk membuat semuanya tetap sederhana dan umum, jika memungkinkan.
- Saya melakukan banyak pekerjaan menggunakan GNU
screen
, yang menambahkan lapisan kesenangan lainnya. - Banyak OS mengatur hal-hal seperti
dircolors
dan secara default, dan saya tidak ingin mengubah ini pada ratusan host yang berbeda. Jadi saya mencoba untuk tetap dengan default. Sebagai gantinya, saya mengubah konfigurasi warna terminal saya. -
Gunakan warna untuk beberapa perintah Unix (
ls
,grep
,less
,vim
) dan prompt Bash. Perintah-perintah ini tampaknya menggunakan "urutan pelarian ANSI" standar. Misalnya:alias less='less --RAW-CONTROL-CHARS' export LS_OPTS='--color=auto' alias ls='ls ${LS_OPTS}'
Saya akan memposting .bashrc
saya dan jawab pertanyaan saya sendiri Jeopardy Style.
Jawaban yang Diterima:
Berikut adalah beberapa hal yang dapat Anda lakukan:
Editor + Kode
Banyak editor memiliki dukungan penyorotan sintaks. vim
dan emacs
mengaktifkannya secara default. Anda juga dapat mengaktifkannya di bawah nano
.
Anda juga dapat menyintak kode sorotan di terminal dengan menggunakan Pygments sebagai alat baris perintah.
mengerti grep --color=auto
menyoroti semua pertandingan. Anda juga dapat menggunakan export GREP_OPTIONS='--color=auto'
untuk membuatnya persisten tanpa alias. Jika Anda menggunakan --color=always
, itu akan menggunakan warna bahkan saat pemipaan, yang membingungkan banyak hal.
l
ls --color=always
Warna ditentukan oleh:
export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33'
(petunjuk:dircolors
bisa membantu)
PS1
Anda dapat mengatur PS1 (shell prompt) untuk menggunakan warna. Misalnya:
PS1='e[33;[email protected]: e[31mWe[0m$ '
Akan menghasilkan PS1 seperti:
[kuning][dilindungi email]:[merah]~[normal]$
Anda bisa menjadi sangat kreatif dengan ini. Sebagai ide:
PS1='e[se[0;0He[1;33mh tne[1;32mThis is my computere[u[[email protected]: w]$ '
Letakkan bilah di bagian atas terminal Anda dengan beberapa info acak. (Untuk hasil terbaik, gunakan juga alias clear="echo -e 'e[2Jnn'"
.)
Menyingkirkan Urutan Escape
Terkait:Resolusi layar tidak terdaftar?
Jika ada sesuatu yang macet menghasilkan warna saat Anda tidak menginginkannya, saya menggunakan sed
baris untuk menghapus urutan pelarian:
sed "s/[^[[0-9;]*[a-zA-Z]//gi"
Jika Anda menginginkan pengalaman yang lebih otentik, Anda juga dapat menghilangkan baris yang dimulai dengan e[8m
, yang menginstruksikan terminal untuk menyembunyikan teks. (Tidak didukung secara luas.)
sed "s/^[^[8m.*$//gi"
Perhatikan juga bahwa ^[s itu harus aktual, literal ^[s. Anda dapat mengetiknya dengan menekan ^V^[ di bash, yaitu Ctrl + V , Ctrl + [ .