dircolors: модифікація кольорів у глобальному масштабі


40

Я розумію, lsвикористовує dircolorsдля відображення кольорового виводу. dircolorsмає за замовчуванням базу даних кольорів, пов'язаних з розширеннями файлів, які можна надрукувати за допомогою команди

dircolors --print-database

Як man dir_colorsя читав, загальносистемна база даних повинна знаходитися в /etc/DIR_COLORS. Але цей файл не існує в моїй системі (Debian). Як я можу змінити загальносистемні параметри кольору dircolors? Звідки команда dircolors --print-databaseбере налаштування, коли жодного файлу не існує.

Я знаю, що користувач може мати специфічний для користувача файл ~/.dircolorsіз його налаштуваннями, але це для мене не підходить, оскільки мені потрібно змінити налаштування для всіх.

Друге питання - чи можна використовувати 8-бітові кольори для кольорів декор. Мій термінал є xterm-256color.

Відповіді:


36

lsприймає параметри кольору з змінної середовища LS_COLORS. dircolorsце просто зручний спосіб генерування цієї змінної середовища. Щоб ця змінна середовище набула чинності в усьому світі, помістіть її у файл запуску вашої оболонки.

Бо bashви вкладете це /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)"

Тому що zshви можете або помістити його, /etc/zshrcабо домовитись про zshчитання /etc/profileпри запуску. Ваш розповсюдження, можливо, вже zshзробив це. Я просто доводжу це, щоб зазначити, що налаштування dircolorsсправді всіх залежить від оболонки, яку вони використовують.

Що стосується того, звідки dircolorsотримує його налаштування, коли ви не вказуєте файл, він просто використовує деякі вбудовані параметри за замовчуванням.

Ви можете використовувати xterm256 кольорових кодів втечі у вашому файлі кольорів, але пам’ятайте, що вони працюватимуть лише для xtermсумісних терміналів. Наприклад, вони не працюватимуть на текстовій консолі Linux.

Формат 256 кольорових кодів втечі призначений 38;5;colorNдля кольорів переднього плану та 48;5;colorNкольорів тла. Так, наприклад:

.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 кольорових кодів втечі? Скажімо, я хочу змінити наступне, .mp3 00;36щоб використовувати color126 з xterm-256 кольорової діаграми upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
user1968963

1
Звичайно, дивіться мою редакцію.
Метт

8

Звідки команда dircolors --print-databaseбере налаштування, коли жодного файлу не існує.

Відповідно до посібника , він використовує попередньо складену базу даних за відсутності файлу.

Якщо файл вказаний, dircolors читає його, щоб визначити, які кольори використовувати для яких типів файлів та розширень. В іншому випадку використовується попередньо складена база даних. Щоб отримати детальну інформацію про формат цих файлів, запустіть ' dircolors --print-database'.

Для того, щоб змінити налаштування для всіх, ви можете створити /etc/dircolorsфайл і додати /etc/bashrc:

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

7

Набір Linux консольних кольорів фону з кольорами:

Ваш dircolors файл контролює кольори для слів, які відображаються через ls на консолі. Знайдіть цей .dircolorsфайл для розповсюдження, посилання на допомогу:

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

Для мене у Fedora 17 мій файл дикольорів: /etc/DIR_COLORS

Скопіюйте /etc/DIR_COLORSу свій /home/el/.dircolorsкаталог. Створіть його, якщо його не існує.

Редагуйте /home/el/.dircolors, шукайте текст "dir".

Змініть це:

DIR 01;34   # directory

До цього:

DIR 01;36   # directory

Збережіть і закрийте та перезавантажте оболонку. Довідники переходять від темно-синього на чорному (нечитабельний) до яскравого чирку на чорному (читабельному).


2
-1: немає /etc/DIR_COLORSв дистрибуції ОП, Debian. І він уже про це знає, про ~/.dircolorsце не було питання
MestreLion
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.