dircolors

Что такое команда dircolors в Linux

Команда dircolors в Linux — это утилита, предназначенная для настройки цветовой схемы вывода команд, таких как ls, dir, vdir и других, использующих библиотеку GNU coreutils. С помощью неё можно задать, какие цвета будут отображаться для файлов, каталогов, символических ссылок, исполняемых файлов, архивов и других типов объектов.

Обычно команда dircolors в Linux используется вместе с переменной окружения LS_COLORS, которая хранит информацию о цветах в формате, понятном утилите ls. Таким образом, dircolors — это связующее звено между конфигурационным файлом цветов и самим терминалом.

Пример простого вызова:

Bash
dircolors

Эта команда выведет текущие настройки цветовой схемы, используемые системой.

Чтобы применить настройки для текущего сеанса, используют:

Bash
eval "$(dircolors)"

или для пользовательского файла конфигурации:

Bash
eval "$(dircolors ~/.dircolors)"

Основные параметры команды dircolors

Параметр --help

Показывает краткую справку по всем доступным опциям и синтаксису команды dircolors в Linux:

Bash
dircolors --help

Это полезно, когда нужно быстро вспомнить назначение ключей без обращения к документации.

Параметр --version

Выводит информацию о версии программы:

Bash
dircolors --version

Иногда версии могут отличаться между дистрибутивами, и это важно учитывать при настройке цветовых схем.

Параметр -b (или --sh)

Форматирует вывод для Bourne shell (bash, dash, sh). Это наиболее часто используемый вариант. Пример:

Bash
eval "$(dircolors -b ~/.dircolors)"

Команда создаёт список переменных окружения в формате, который понимает bash, и сразу применяет его.

Если в .bashrc добавить строку:

Bash
eval "$(dircolors -b ~/.dircolors)"

то цветовая схема будет автоматически активироваться при каждом запуске терминала.

Параметр -c (или --csh)

Выводит настройки в формате, совместимом с C shell (csh или tcsh).

Bash
eval "`dircolors -c ~/.dircolors`"

Этот вариант подходит пользователям, которые используют C shell или tcsh в качестве основного интерпретатора команд.

Параметр FILE

Можно явно указать файл конфигурации:

Bash
dircolors /etc/DIR_COLORS

Или использовать персональный файл:

Bash
dircolors ~/.dircolors

Файлы конфигурации содержат пары «тип файла — цвет», например:

Bash
DIR 01;34
LINK 01;36
EXEC 01;32

Цвета кодируются ANSI-последовательностями: первая часть определяет стиль (например, 01 — жирный шрифт), а вторая — цвет (34 — синий, 32 — зелёный и т.д.).

Как работает dircolors с LS_COLORS

Переменная окружения LS_COLORS

После выполнения команды dircolors в Linux создаётся или обновляется переменная LS_COLORS.
Посмотреть её содержимое можно так:

Bash
echo $LS_COLORS

Пример вывода:

Bash
di=01;34:ln=01;36:so=01;35:ex=01;32:*.tar=01;31

Каждый элемент указывает, каким цветом будет отображаться объект определённого типа.

  • di — директория
  • ln — символическая ссылка
  • so — сокет
  • ex — исполняемый файл
  • *.tar — файлы с расширением .tar
Совет: если вы хотите временно отключить цветной вывод, выполните:

Bash
unset LS_COLORS
Это удобно при отладке или при работе с терминалами, не поддерживающими цвета ANSI.

Пример пользовательской настройки цветов

Создайте файл ~/.dircolors и добавьте:

Bash
# Моя схема цветов
DIR 01;34
LINK 01;36
EXEC 01;32
*.py 00;33
*.sh 00;35

Примените изменения:

Bash
eval "$(dircolors -b ~/.dircolors)"

Теперь .py файлы будут отображаться жёлтым цветом, а .sh — пурпурным.
Это помогает визуально отличать типы файлов при работе с проектами.

Совет: используйте комментарии # в файле .dircolors для пояснения цветовых настроек — это облегчает поддержку и изменение конфигурации.

Расширенные возможности dircolors

Совместимость с другими утилитами

Хотя команда dircolors в Linux чаще всего применяется для ls, её также можно использовать с другими инструментами, поддерживающими переменную LS_COLORS. Например:

  • vdir — выводит содержимое директорий в вертикальном формате.
  • dir — альтернатива ls с более простым интерфейсом.

Все эти программы читают значения из LS_COLORS, что делает dircolors универсальным инструментом настройки цветового вывода.

Использование в разных дистрибутивах

В дистрибутивах Debian, Ubuntu, Fedora или Arch Linux путь к системному файлу по умолчанию может отличаться. Обычно это /etc/DIR_COLORS или /etc/dir_colors.

Чтобы просмотреть стандартные настройки, выполните:

Bash
cat /etc/DIR_COLORS

или

Bash
cat /etc/dir_colors

После этого можно скопировать файл в домашнюю директорию для пользовательских изменений:

Bash
cp /etc/DIR_COLORS ~/.dircolors

Это даёт возможность гибко настроить схему под себя, не влияя на системные настройки.

Применение при старте системы

Чтобы настройки применялись автоматически при каждом запуске сессии, добавьте в .bashrc или .zshrc строку:

Bash
eval "$(dircolors -b ~/.dircolors)"

Теперь цвета будут активироваться при открытии нового терминала.

Если используется C shell, добавьте:

Bash
eval "`dircolors -c ~/.dircolors`"

в файл ~/.cshrc.

Практические примеры использования

  1. Проверить текущие цвета: dircolors
  2. Применить системную схему: eval "$(dircolors /etc/DIR_COLORS)"
  3. Применить пользовательскую схему: eval "$(dircolors -b ~/.dircolors)"
  4. Проверить эффект: ls --color=auto После этого разные типы файлов будут выделены заданными цветами.

Команда dircolors в Linux — простой, но мощный инструмент, который помогает сделать работу в терминале визуально понятнее и удобнее. Настроив цвета под себя, можно существенно повысить читаемость вывода команд и снизить вероятность ошибок при работе с файлами.