GNU/Linux >> Belajar Linux >  >> Linux

Cara mengubah warna terminal Linux Anda

Anda dapat menambahkan warna ke terminal Linux Anda menggunakan pengaturan pengkodean ANSI khusus, baik secara dinamis dalam perintah terminal atau dalam file konfigurasi, atau Anda dapat menggunakan tema yang sudah jadi di emulator terminal Anda. Either way, teks hijau atau kuning nostalgia pada layar hitam sepenuhnya opsional. Artikel ini menunjukkan bagaimana Anda dapat membuat Linux berwarna (atau monokromatik) seperti yang Anda inginkan.

Kemampuan terminal

Sistem modern biasanya default ke setidaknya xterm-256color, tetapi jika Anda mencoba menambahkan warna ke terminal tanpa hasil, Anda harus memeriksa pengaturan TERM Anda.

Secara historis, terminal Unix secara harfiah adalah:titik fisik pada titik akhir literal (penghentian) dari sistem komputer bersama di mana pengguna dapat mengetikkan perintah. Mereka unik dari mesin teletype (itulah sebabnya kami masih memiliki perangkat /dev/tty di Linux saat ini) yang sering digunakan untuk mengeluarkan perintah dari jarak jauh. Terminal memiliki monitor CRT built-in, sehingga pengguna dapat duduk di terminal di kantor mereka untuk berinteraksi langsung dengan mainframe. Monitor CRT mahal—baik untuk pembuatan dan kontrol; lebih mudah untuk memiliki komputer mengeluarkan teks ASCII mentah daripada khawatir tentang anti-aliasing dan basa-basi lainnya yang dianggap remeh oleh komputer modern. Namun, perkembangan teknologi terjadi dengan cepat bahkan saat itu, dan dengan cepat menjadi jelas bahwa ketika terminal tampilan video baru dirancang, mereka membutuhkan kemampuan baru untuk tersedia secara opsional.

Misalnya, VT100 baru yang mewah yang dirilis pada tahun 1978 mendukung warna ANSI, jadi jika pengguna mengidentifikasi tipe terminal sebagai vt100, maka komputer dapat mengirimkan output warna, sementara perangkat serial dasar mungkin tidak memiliki opsi seperti itu. Prinsip yang sama berlaku saat ini, dan disetel oleh variabel lingkungan TERM. Anda dapat memeriksa definisi TERM Anda dengan echo :

$ echo $TERM
xterm-256color

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Usang (tetapi masih dipertahankan pada beberapa sistem untuk kepentingan kompatibilitas mundur) /etc/termcap file mendefinisikan kemampuan terminal dan printer. Versi modernnya adalah terminfo, terletak di /etc atau /usr/share, tergantung pada distribusi Anda. File-file ini mencantumkan fitur yang tersedia di berbagai jenis terminal, banyak di antaranya ditentukan oleh perangkat keras historis:ada definisi untuk vt100 hingga vt220, serta untuk emulator perangkat lunak modern seperti xterm dan Xfce. Sebagian besar perangkat lunak tidak peduli jenis terminal apa yang Anda gunakan; dalam kasus yang jarang terjadi, Anda mungkin mendapatkan peringatan atau kesalahan tentang jenis terminal yang salah saat masuk ke server yang memeriksa fitur yang kompatibel. Jika terminal Anda diatur ke profil dengan fitur yang sangat sedikit, tetapi Anda tahu emulator yang Anda gunakan mampu melakukan lebih, maka Anda dapat mengubah pengaturan Anda dengan mendefinisikan variabel lingkungan TERM. Anda dapat melakukannya dengan mengekspor variabel TERM di file konfigurasi ~/.bashrc Anda:

export TERM=xterm-256color

Simpan file, dan muat ulang pengaturan Anda:

$ source ~/.bashrc

Kode warna ANSI

Terminal modern telah mewarisi urutan pelarian ANSI untuk fitur "meta". Ini adalah urutan karakter khusus yang ditafsirkan oleh terminal sebagai tindakan, bukan karakter. Misalnya, urutan ini membersihkan layar hingga prompt berikutnya:

$ printf `\033[2J`

Itu tidak menghapus riwayat Anda; itu hanya membersihkan layar di emulator terminal Anda, jadi ini adalah urutan pelarian ANSI yang aman dan demonstratif.

ANSI juga memiliki urutan untuk mengatur warna terminal Anda. Misalnya, mengetik kode ini akan mengubah teks berikutnya menjadi hijau:

$ printf '\033[32m'

Selama Anda melihat warna dengan cara yang sama seperti komputer, Anda dapat menggunakan warna untuk membantu Anda mengingat sistem yang Anda masuki. Misalnya, jika Anda secara teratur melakukan SSH ke server Anda, Anda dapat mengatur server prompt Anda menjadi hijau untuk membantu Anda membedakannya sekilas dari prompt lokal Anda. Untuk prompt hijau, gunakan kode ANSI untuk hijau sebelum karakter prompt Anda dan akhiri dengan kode yang mewakili warna default normal Anda:

export PS1=`printf "\033[32m$ \033[39m"`

Latar depan dan latar belakang

Anda tidak terbatas pada pengaturan warna teks Anda. Dengan kode ANSI, Anda dapat mengontrol warna latar belakang teks serta melakukan beberapa gaya dasar.

Misalnya, dengan \033[4m , Anda dapat membuat teks digarisbawahi, atau dengan \033[5m Anda dapat mengaturnya untuk berkedip. Itu mungkin tampak konyol pada awalnya—karena Anda mungkin tidak akan menyetel terminal Anda untuk menggarisbawahi semua teks dan berkedip sepanjang hari—tetapi ini dapat berguna untuk fungsi tertentu. Misalnya, Anda dapat menyetel kesalahan mendesak yang dihasilkan oleh skrip shell untuk berkedip (sebagai peringatan bagi pengguna Anda), atau Anda dapat menggarisbawahi URL.

Untuk referensi Anda, berikut adalah kode warna latar depan dan latar belakang. Warna latar depan berada dalam rentang 30, sedangkan warna latar berada dalam rentang 40:

Warna Latar depan Latar Belakang
Hitam \033[30m \033[40m
Merah \033[31jt \033[41jt
Hijau \033[32m \033[42m
Oranye \033[33m \033[43m
Biru \033[34m \033[44m
Magenta \033[35m \033[45m
Cyan \033[36m \033[46m
Abu-abu muda \033[37m \033[47m
Mundur ke default distro \033[39m \033[49m

Ada beberapa warna tambahan yang tersedia untuk latar belakang:

Warna Latar Belakang
Abu-abu gelap \033[100m
Merah muda \033[101jt
Hijau muda \033[102m
Kuning \033[103m
Biru muda \033[104m
Ungu muda \033[105m
Teal \033[106m
Putih \033[107m

Permanen

Mengatur warna dalam sesi terminal Anda hanya bersifat sementara dan relatif tidak bersyarat. Terkadang efeknya berlangsung selama beberapa baris; itu karena metode pengaturan warna ini bergantung pada pernyataan printf untuk menyetel mode yang hanya berlangsung hingga sesuatu yang lain menimpanya.

Cara emulator terminal biasanya mendapatkan instruksi tentang warna apa yang digunakan adalah dari pengaturan variabel lingkungan LS_COLORS, yang pada gilirannya diisi oleh pengaturan dircolors. Anda dapat melihat pengaturan Anda saat ini dengan pernyataan gema:

$ echo $LS_COLORS
rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;
38;5;11:so=38;5;13:do=38;5;5:bd=48;5;
232;38;5;11:cd=48;5;232;38;5;3:or=48;
5;232;38;5;9:mi=01;05;37;41:su=48;5;
196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;
196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;
[...]

Atau Anda dapat menggunakan dircolors secara langsung:

$ dircolors --print-database
[...]
# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35
[...]

Jika itu terlihat samar, itu karena memang begitu. Digit pertama setelah jenis file adalah kode atribut, dan memiliki enam opsi:

  • 00 tidak ada
  • 01 tebal
  • 04 garis bawah
  • 05 berkedip
  • 07 terbalik
  • 08 disembunyikan

Digit berikutnya adalah kode warna dalam bentuk yang disederhanakan. Anda bisa mendapatkan kode warna dengan mengambil digit terakhir kode ANSII (32 untuk latar depan hijau, 42 untuk latar belakang hijau; 31 atau 41 untuk merah, dan seterusnya).

Distribusi Anda mungkin menetapkan LS_COLORS secara global, sehingga semua pengguna di sistem Anda mewarisi warna yang sama. Jika Anda menginginkan satu set warna yang disesuaikan, Anda dapat menggunakan dircolors untuk itu. Pertama, buat salinan lokal dari pengaturan warna Anda:

$ dircolors --print-database > ~/.dircolors

Edit daftar lokal Anda sesuai keinginan. Saat Anda puas dengan pilihan Anda, simpan file. Pengaturan warna Anda hanyalah database dan tidak dapat digunakan secara langsung oleh ls, tetapi Anda dapat menggunakan dircolors untuk mendapatkan shellcode yang dapat Anda gunakan untuk mengatur LS_COLORS:

$ dircolors --bourne-shell ~/.dircolors 
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;
[...]
export LS_COLORS

Salin dan tempel output itu ke file ~/.bashrc Anda dan muat ulang. Atau, Anda dapat membuang output itu langsung ke file .bashrc dan memuat ulang.

$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc

Anda juga dapat membuat Bash menyelesaikan .dircolors saat peluncuran alih-alih melakukan konversi secara manual. Secara realistis, Anda mungkin tidak akan sering mengubah warna, jadi ini mungkin terlalu agresif, tetapi ini merupakan opsi jika Anda berencana untuk banyak mengubah skema warna. Di file .bashrc Anda, tambahkan aturan ini:

[[ -e $HOME/.dircolors ]] && eval "`dircolors --sh $HOME/.dircolors`"

Jika Anda memiliki file .dircolors di direktori home Anda, Bash mengevaluasinya saat diluncurkan dan menetapkan LS_COLORS yang sesuai.

Warna

Warna di terminal Anda adalah cara mudah untuk memberi diri Anda referensi visual cepat untuk informasi spesifik. Namun, Anda mungkin tidak ingin terlalu bergantung pada mereka. Lagi pula, warna tidak universal, jadi jika orang lain menggunakan sistem Anda, mereka mungkin tidak melihat warna dengan cara yang sama seperti Anda. Selain itu, jika Anda menggunakan berbagai alat untuk berinteraksi dengan komputer, Anda mungkin juga menemukan bahwa beberapa terminal atau koneksi jarak jauh tidak memberikan warna yang Anda harapkan (atau warna sama sekali).

Selain peringatan tersebut, warna dapat berguna dan menyenangkan di beberapa alur kerja, jadi buat database .dircolor dan sesuaikan dengan keinginan Anda.


Linux
  1. Bagaimana membawa keberuntungan ke terminal Linux Anda

  2. Cara Mencari Web Dari Terminal Di Linux

  3. Bagaimana mengubah identitas sistem Linux

  1. Ubah tema warna terminal Linux Anda

  2. Bagaimana tmux memicu kegembiraan di terminal Linux Anda

  3. Cara Mengubah Shell Default Di Linux

  1. Bersantai dengan api di terminal Linux Anda

  2. Cara Menggunakan Perintah cd Linux untuk Mengubah Direktori

  3. Cara Mengatur atau Mengubah Zona Waktu di Linux