CLICOLOR та LS_COLORS в bash


48

У мене є наступна настройка в .bashrc для розфарбовування списків.

експорт CLICOLOR = 1
експорту LS_COLORS = 'ні = 00: fi = 00: di = 00; 34: ln = 01; 36: pi = 40; 33: так = 01; 35: do = 01; 35: bd = 40; 33; 01: cd = 40; 33; 01: або = 40; 31; 01: ex = 01; 32: *. tar = 01; 31: *. tgz = 01; 31: *. arj = 01; 31: *. taz = 01; 31: *. Lzh = 01; 31: *. Zip = 01; 31: *. Z = 01; 31: *. Z = 01; 31: *. Gz = 01; 31: *. Bz2 = 01; 31: *. Deb = 01; 31: *. Rpm = 01; 31: *. Jar = 01; 31: *. Jpg = 01; 35: *. Jpeg = 01; 35: *. Gif = 01; 35: * .bmp = 01; 35: *. pbm = 01; 35: *. pgm = 01; 35: *. ppm = 01; 35: *. tga = 01; 35: *. xbm = 01; 35: *. xpm = 01; 35: *. tif = 01; 35: *. tiff = 01; 35: *. png = 01; 35: *. mov = 01; 35: *. mpg = 01; 35: *. mpeg = 01; 35: *. Avi = 01; 35: *. Fli = 01; 35: *. Gl = 01; 35: *. Dl = 01; 35: *. Xcf = 01; 35: *. Xwd = 01; 35: *. Ogg = 01; 35: *. Mp3 = 01; 35: *. Wav = 01; 35: ';

Цей сайт показує код кольорів, і я хочу змінити колір каталогів на `світлий колір '. Але зробити ді наступним чином це не впливає.

di = 04; 94

Цікавим є те, що навіть після мого коментування LS_COLORS я бачу кольоровий вихід, якщо у мене є CLICOLOR = 1.

  • Що мені робити, щоб колір каталогі був світло-синім (94)?
  • Що це для CLICOLOR та LS_COLORS? Чому фарбування працює без LS_COLORS?

Відповіді:


53

Існує кілька різних реалізацій кольору для ls, і ви зв'язали деякі з них.

  • На FreeBSD і Mac OS X , lsпоказані кольору , якщо CLICOLORзмінна середовища або якщо -Gпередається в командному рядку. Фактичні кольори конфігуруються за допомогою LSCOLORSзмінної середовища (вбудовані параметри за замовчуванням використовуються, якщо ця змінна не встановлена). Щоб показати каталоги світло-синього кольору, використовуйте

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • З GNU ls , наприклад, в Linux, lsпоказує кольори, якщо --colorвони передані в командному рядку. Фактичні кольори конфігуруються через LS_COLORSзмінну середовища, яку можна встановити за допомогою dircolorsкоманди (вбудовані параметри за замовчуванням використовуються, якщо ця змінна не встановлена).


5
Дякую за відповідь, чи можете ви навчити мене, що означає Exfxcxdxbxegedabagacad?
prosseek

@prosseek: Перегляньте сторінки чоловіків, на які я посилався. Наприклад, перші два символи - це передній план і фон для каталогів, eозначає темно-синій, Eозначає світло-синій і xозначає за замовчуванням. fна третьому положенні робить символічні ланки пурпурові тощо.
Жил "ТАК - перестань бути злим"

На цьому ж рядку, як мені зробити treeпоказові кольори? Дерево показує кольори на моїй машині Debian, але не робить цього на моєму Mac. Змінні середовища існують для кольору, як описано вище. Тож мій Mac показує кольори для будь-яких lsкоманд, але ні tree. Я встановив дерево з пивом.
DanCat

2
@DanCat Я не знаю. treeі lsце не пов'язані між собою утиліти, немає жодної причини, щоб налаштування однієї застосували до іншого. Ви повинні задати це окремим питанням.
Жил "ТАК - перестань бути злим"

1
Для ледачих людей (як я) ось генератор LSCOLORS geoff.greer.fm/lscolors
липня

11

Що це для CLICOLOR та LS_COLORS? Чому фарбування працює без LS_COLORS?

CLICOLORбуде вмикати або вимикати кольори LS_COLORSне потрібно, і дозволить вам налаштувати кольори.

Зауважте, що в деяких операційних системах (наприклад, MacOSX та FreeBSD) значення має ім'я LSCOLORS, а не LS_COLORS.

Я уникаю встановлення кольору за допомогою LS_COLORS, тому що тоді мені потрібно застосувати ту саму колірну схему на ста різних комп'ютерах та 10 різних Un * xes. Натомість я змінюю колір у своїй програмі Terminal, яка працює однаково на більшості хостів Unix.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.