dircolors: global olarak renk ayarlarını değiştir


40

Renkli çıktı göstermenin lskullanımlarını anlıyorum dircolors. dircolorsdosya uzantılarıyla ilişkili, varsayılan komutla yazdırılabilen bir renk veritabanı vardır.

dircolors --print-database

man dir_colorsOkuduğumdan itibaren , sistem genelinde veritabanı içinde bulunmalıdır /etc/DIR_COLORS. Ancak bu dosya benim sistemimde mevcut değil (Debian). Sistem genelindeki renk ayarlarını nasıl değiştirebilirim dircolors? Komut dircolors --print-databaseayarları nereden alıyor, hiçbir dosya yokken.

Kullanıcının ~/.dircolorsayarlarıyla kullanıcıya özel bir dosyaya sahip olabileceğinin farkındayım , ancak herkes için ayarları değiştirmem gerektiğinden bu benim için uygun değil.

İkinci bir soru, dircolors için 8 bit renk kullanmanın mümkün olup olmadığıdır. Benim terminali xterm-256color.

Yanıtlar:


36

lsRenk değişkenini ortam değişkeninden alır LS_COLORS. dircolorsbu ortam değişkenini oluşturmak için yalnızca uygun bir yoldur. Bu ortam değişkeninin sistem genelinde geçerli olmasını sağlamak için, kabuğunuzun başlangıç ​​dosyasına yerleştirin.

Bunun için şunu bashkoydun /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)"

Çünkü zshonu devreye soktunuz ya /etc/zshrcda başlangıçta zshokumayı ayarladınız /etc/profile. Dağıtımınız zshbunu zaten yapmış olabilir . Bunu sadece dircolorsherkes için yapılan ayarın kullandıkları kabuğa bağlı olduğunu belirtmek için getirdim .

dircolorsAyarlarını nereden aldığıyla ilgili olarak, bir dosya belirtmediğinizde, sadece bazı yerleşik varsayılanları kullanır.

xtermDircolors dosyanızdaki 256 renk çıkış kodunu kullanabilirsiniz , ancak yalnızca xtermuyumlu terminaller için çalışacaklarını unutmayın . Örneğin, Linux metin konsolunda çalışmazlar.

256 renk çıkış kodunun formatı 38;5;colorNön plan renkleri ve 48;5;colorNarka plan renkleri içindir. Yani örneğin:

.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
256 renk kaçış kodunu nasıl kullanabileceğimi açıklayabilir misiniz? Diyelim ben aşağıdakileri değiştirmek istiyorum demek .mp3 00;36renkler grafik-256 xterm'den kullanım color126 için upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
user1968963

1
Tabii, düzenlememe bakın.
Matt

8

Komut dircolors --print-databaseayarları nereden alıyor, hiçbir dosya yokken.

Gereğince kılavuzda , bir dosyanın yokluğunda önceden derlenmiş bir veritabanını kullanır.

Dosya belirtilirse, dircolors, hangi dosya türleri ve uzantıları için hangi renkleri kullanacağınızı belirlemek için onu okur. Aksi takdirde, önceden derlenmiş bir veritabanı kullanılır. Bu dosyaların formatı ile ilgili detaylar için ' dircolors --print-database' çalıştırın .

Herkesin ayarlarını değiştirmek için bir /etc/dircolorsdosya oluşturabilir ve aşağıdakileri ekleyebilirsiniz /etc/bashrc:

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

7

Linux konsol arka plan renklerini dircolors ile ayarla:

Dircolors dosyanız konsolda ls ile görünen kelimelerin renklerini kontrol eder. .dircolorsDağıtımınız için bu dosyayı bulun ve size yardımcı olacak bir bağlantı bulun :

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

Fedora 17’de benim için dircolors dosyam: /etc/DIR_COLORS

Kopya /etc/DIR_COLORSsenin içine /home/el/.dircolorsdizine. Var değilse oluşturun.

/Home/el/.dircolors dosyasını düzenleyin, "dir" metnini arayın.

Bunu değiştir:

DIR 01;34   # directory

Buna:

DIR 01;36   # directory

Kabuğu kaydedip kapatın ve yeniden başlatın. Dizinler koyu maviden siyah üzerine (okunamaz) gider, siyah üzerine parlak maviden geçer (okunabilir).


2
-1: /etc/DIR_COLORSOP’nin dağıtımında hayır , Debian. Ve o zaten biliyor ~/.dircolors, bu soru değildi
MestreLion
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.