dircolors: memodifikasi pengaturan warna secara global


40

Saya mengerti lskegunaan dircolorsuntuk menampilkan keluaran berwarna. dircolorsmemiliki basis data default warna yang terkait dengan ekstensi file, yang dapat dicetak dengan perintah

dircolors --print-database

Dari yang man dir_colorssaya baca, basis data seluruh sistem harus berada di /etc/DIR_COLORS. Tetapi file ini tidak ada di sistem saya (Debian). Bagaimana cara saya memodifikasi pengaturan warna seluruh sistem dircolors? Dari mana perintah dircolors --print-databasemengambil pengaturan, ketika tidak ada file.

Saya sadar bahwa pengguna dapat memiliki file khusus pengguna ~/.dircolorsdengan pengaturannya, tetapi ini tidak cocok untuk saya, karena saya perlu mengubah pengaturan untuk semua orang.

Pertanyaan kedua adalah, apakah mungkin untuk menggunakan warna 8-bit untuk dircolors. Terminal saya adalah xterm-256color.

Jawaban:


36

lsmembawanya pengaturan warna dari variabel lingkungan LS_COLORS. dircolorshanyalah cara mudah untuk menghasilkan variabel lingkungan ini. Agar variabel lingkungan ini berlaku di seluruh sistem, letakkan di file startup shell Anda.

Karena bash, Anda akan memasukkan ini ke /etc/profile:

# `dircolors` prints out `LS_COLORS='...'; export LS_COLORS`, so eval'ing
# $(dircolors) effectively sets the LS_COLORS environment variable.

eval "$(dircolors /etc/DIR_COLORS)"

Karena zsh, Anda akan memasukkannya /etc/zshrcatau mengatur untuk zshmembaca /etc/profilesaat startup. Distribusi Anda mungkin sudah zshmelakukannya. Saya hanya membawa ini untuk menunjukkan bahwa pengaturan dircolorsuntuk semua orang benar-benar tergantung pada shell yang mereka gunakan.

Adapun dari mana dircolorsmendapatkan pengaturannya, ketika Anda tidak menentukan file itu hanya menggunakan beberapa bawaan bawaan.

Anda dapat menggunakan xterm256 kode pelarian warna dalam file dircolors Anda, tetapi perlu diketahui bahwa kode itu hanya berfungsi untuk xtermterminal yang kompatibel. Mereka tidak akan berfungsi pada konsol teks Linux, misalnya.

Format untuk 256 kode pelarian warna adalah 38;5;colorNuntuk warna foreground dan 48;5;colorNuntuk warna latar belakang. Jadi misalnya:

.mp3  38;5;160                   # Set fg color to color 160      
.flac 48;5;240                   # Set bg color to color 240
.ogg  38;5;160;48;5;240          # Set fg color 160 *and* bg color 240.
.wav  01;04;05;38;5;160;48;5;240 # Pure madness: make bold (01), underlined (04), blink (05), fg color 160, and bg color 240!

1
bisa tolong jelaskan bagaimana saya bisa menggunakan kode melarikan diri 256 warna? Katakanlah saya ingin mengubah berikut .mp3 00;36untuk penggunaan color126 dari xterm-256 warna grafik upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
user1968963

1
Tentu, lihat edit saya.
Matt

8

Dari mana perintah dircolors --print-databasemengambil pengaturan, ketika tidak ada file.

Sesuai manual , menggunakan database yang sudah dikompilasi tanpa adanya file.

Jika file ditentukan, dircolors membacanya untuk menentukan warna yang digunakan untuk jenis dan ekstensi file mana. Jika tidak, database yang telah dikompilasi digunakan. Untuk detail tentang format file-file ini, jalankan ' dircolors --print-database'.

Untuk mengubah pengaturan untuk semua orang, Anda bisa membuat /etc/dircolorsfile dan menambahkan yang berikut ke /etc/bashrc:

d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"

7

Linux mengatur warna latar belakang konsol dengan warna-warna:

File dircolors Anda mengontrol warna untuk kata-kata yang muncul melalui ls di konsol. Temukan .dircolorsfile ini untuk distribusi Anda, tautan untuk membantu:

http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html

Bagi saya di Fedora 17, file dircolors saya adalah: /etc/DIR_COLORS

Salin /etc/DIR_COLORSke /home/el/.dircolorsdirektori Anda . Buat jika tidak ada.

Edit /home/el/.dircolors, cari teks "dir".

Ubah ini:

DIR 01;34   # directory

Untuk ini:

DIR 01;36   # directory

Simpan dan tutup dan mulai ulang shell. Direktori berubah dari biru gelap menjadi hitam (tidak dapat dibaca) menjadi biru cerah pada hitam (dapat dibaca).


2
-1: tidak ada /etc/DIR_COLORSdi distro OP, Debian. Dan dia sudah tahu ~/.dircolors, bukan itu pertanyaannya
MestreLion
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.