Гид по технологиям

Как настроить цвета вывода ls через LS_COLORS

7 min read Sysadmin Обновлено 14 Dec 2025
Настройка цветов ls через LS_COLORS
Настройка цветов ls через LS_COLORS

TL;DR

LS_COLORS — это переменная окружения, которая управляет цветами и атрибутами вывода команды ls в Bash. Создайте строку вида

LS_COLORS="di=1;31:*.mp3=1;32;41"

и добавьте её в ~/.bashrc, чтобы сохранить цвета по умолчанию. В статье объяснены коды цветов и атрибутов, примеры пресетов, альтернативы и чек-листы для администраторов и пользователей.

Быстрые ссылки

  • Как это работает
  • Как задать свои цвета
  • Как сделать их новыми настройками по умолчанию

Пример цветной выдачи команды ls в терминале

Как это работает

Переменная LS_COLORS содержит список правил, которые сопоставляют типы файлов или шаблоны имён с числовыми кодами атрибутов и цветов. Когда вы запускаете ls (с опцией –color=auto или если ваша оболочка/терминал открывает цветной вывод по умолчанию), программа читает LS_COLORS и окрашивает вывод согласно правилам.

Чтобы посмотреть текущую схему цветов, выполните:

echo $LS_COLORS

Вы получите длинную строку с парами типа=код, разделёнными двоеточиями. Перед экспериментами рекомендуется сохранить текущую переменную в другую, чтобы быстро восстановить настройки:

ORIGINAL=$LS_COLORS

А чтобы вернуть прежние значения в сессии:

LS_COLORS=$ORIGINAL

Важно: эти изменения действуют только в текущей сессии Bash до тех пор, пока вы не сохраните строку в файле конфигурации (~/.bashrc или аналогичном).

Внимание: некоторые реализации ls (в частности BSD-версия на macOS) используют другую переменную LSCOLORS или другой синтаксис. См. раздел совместимости ниже.

Как задать свои цвета — пошагово

  1. Понять базовый формат: каждая запись — это ключ=списоккоди_атрибутов. Примеры ключей: di, fi, ln, ex, *.mp3.
  2. Коды и атрибуты перечисляются через точку с запятой в значении. Несколько записей разделяются двоеточием.
  3. Проверяйте изменения в реальном времени с помощью ls --color=auto.

Простейший пример — перекрасить директории в жирный красный только в текущей сессии:

LS_COLORS="di=1;31"

Разбор: di — директории, = разделяет ключ и значение, 1;31 — жирный (1) и красный текст (31).

Если нужно добавить правило для файлов с расширением .desktop и сделать их подчёркнутыми и бирюзовыми, добавьте запись через двоеточие:

LS_COLORS="di=1;31:*.desktop=4;36"

Здесь *.desktop — шаблон для имён файлов, 4;36 — подчёркнутый (4) и синий-голубой/циан (36).

Справочник кодов: цвета, атрибуты и фон

Ниже — собранный справочник, который обычно нужен при составлении LS_COLORS.

Цвета переднего плана (foreground):

  • Чёрный: 30
  • Синий: 34
  • Бирюзовый/циан: 36
  • Зелёный: 32
  • Пурпурный: 35
  • Красный: 31
  • Белый: 37
  • Жёлтый: 33

Атрибуты текста:

  • Нормальный текст: 0
  • Жирный/яркий: 1
  • Тусклый: 2
  • Подчёркнутый: 4
  • Мигающий: 5 (не работает в большинстве эмуляторов)
  • Инвертированный: 7
  • Скрытый: 8

Коды фона (background):

  • Чёрный фон: 40
  • Синий фон: 44
  • Бирюзовый фон: 46
  • Зелёный фон: 42
  • Пурпурный фон: 45
  • Красный фон: 41
  • Белый фон: 47
  • Жёлтый фон: 43

Файловые ключи (filetype keys):

  • di — директория
  • fi — обычный файл
  • ln — символическая ссылка
  • pi — именованный канал (FIFO)
  • so — сокет
  • bd — блочное устройство
  • cd — символьное устройство
  • or — сирота (symbolic link, указывающий в никуда)
  • mi — отсутствующий файл, на который указывает сирота
  • ex — исполняемый файл (с правом x)
  • .extension — любой файл с указанным расширением (например, .txt, .mp3, .desktop)

Чтобы объединить атрибуты и цвета, используйте точку с запятой: di=1;4;33;44 — жирный, подчёркнутый, жёлтый текст на синем фоне.

Иллюстрация сочетаний атрибутов и цветов для ls

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

Ниже — несколько готовых конфигураций и сценариев, которые могут ускорить настройки.

Пример: жирный фиолетовый для директорий, подчёркнутый красный для исполняемых файлов, зелёный на красном для mp3:

LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"

Минимальный «только директории» пресет для проверки:

LS_COLORS="di=1;34"

Пресет для разработчика (файлы с расширением .sh — подчёркнуты, логи .log — красные, data-файлы — зелёные):

LS_COLORS="di=1;33:*.sh=4;36:*.log=1;31:*.dat=1;32"

Сохраните понравившийся пресет в переменную в своей оболочке, проверьте ls --color=auto, затем внесите строку в ~/.bashrc, чтобы сделать её постоянной.

Цветные метки для разных типов файлов в списке ls

Как сделать новые цвета настройками по умолчанию

  1. Откройте ваш ~/.bashrc в любимом редакторе, например nano:
nano ~/.bashrc
  1. Добавьте строку с вашим LS_COLORS в конец файла, например:
LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"
  1. Сохраните файл и выйдите (в nano — Ctrl+O, Enter, Ctrl+X).
  2. Закройте и откройте терминал или выполните source ~/.bashrc, чтобы применить изменения немедленно:
source ~/.bashrc

Если захотите вернуть системные значения, просто удалите добавленную строку из ~/.bashrc и откройте новую сессию терминала; либо используйте временное восстановление через сохранённую переменную ORIGINAL (см. выше).

Редактирование .bashrc в текстовом редакторе в терминале

Когда это не работает — типичные причины и диагностика

  • Вы используете macOS или BSD-версию ls: там часто поддерживается LSCOLORS (короткий формат) вместо LS_COLORS. Проверьте man ls и ищите упоминание LSCOLORS.
  • Ваш терминал не поддерживает нужные атрибуты (например, инверсия или мигание). Попробуйте другой эмулятор терминала или проверьте переменную $TERM.
  • Вы забыли использовать --color=auto или переменная LS_COLORS не применяется из-за переназначения ls (alias). Проверьте alias ls и type ls.
  • Правила переписаны позже в процессе инициализации оболочки (например, системой или другими скриптами). Просмотрите ~/.bash_profile, /etc/profile и /etc/bash.bashrc на предмет переопределений.

Если ls не окрашивает файлы, попробуйте временно запустить:

/bin/ls --color=always

и проверьте вывод. Также посмотрите значение TERM:

echo $TERM

и убедитесь, что он поддерживает цвета (например, xterm-256color).

Альтернативные подходы и совместимость

  1. dircolors — генерирует данные для LS_COLORS из человеко-читаемого файла. Вы можете создать файл с правилами и загрузить его:
dircolors -p > ~/.dircolors
# отредактируйте ~/.dircolors в текстовом виде
eval "$(dircolors ~/.dircolors)"
  1. Для macOS используйте LSCOLORS в ~/.bash_profile или другой конфигурации. Синтаксис LSCOLORS отличается и короче.

  2. Использовать сторонние утилиты, которые визуализируют файлы (например, exa) и поддерживают собственный конфиг цветов.

Таблица совместимости (упрощённо):

  • GNU coreutils ls (Linux): поддерживает LS_COLORS и dircolors
  • BSD ls (macOS): использует LSCOLORS, другой синтаксис
  • Пакеты типа exa: собственный конфиг и опции

Методология: как проектировать свою цветовую схему (короткая)

  1. Определите цели: видимость, приоритет файлом (исполняемый, конфиг, медиа), удобство для глаз.
  2. Выберите базовую палитру (2–4 цвета), чтобы не перегружать восприятие.
  3. Сопоставьте важность с контрастом (исполняемые — ярче, скрытые — менее заметны).
  4. Тестируйте в нескольких терминалах и при светлой/тёмной теме терминала.
  5. Зафиксируйте пресет и документируйте в dotfiles репозитории.

Чек-листы по ролям

Для администратора:

  • Убедиться, что изменения не влияют на системные скрипты
  • Хранить конфиг в централизованном dotfiles-репозитории
  • Дать рекомендацию по совместимым TERM-значениям

Для разработчика:

  • Выделить исполняемые файлы и скрипты ярким цветом
  • Использовать отличимые цвета для разных типов ресурсов (.log, .tmp, .env)
  • Тестировать в средах CI с разных систем (Linux/macOS)

Для обычного пользователя:

  • Начать с одного простого пресета (например, только директории)
  • Сохранить изменения в ~/.bashrc
  • Держать резервную копию оригинальных значений

Шпаргалка и шаблоны (cheat sheet)

Основные команды:

# Просмотр текущих настроек
echo $LS_COLORS

# Временно установить в текущей сессии
LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"

# Восстановить из резервной переменной
LS_COLORS=$ORIGINAL

# Экспортировать через dircolors (если есть ~/.dircolors)
eval "$(dircolors ~/.dircolors)"

Шаблон строки для .bashrc (скопируйте и адаптируйте):

# Пользовательская схема для ls
LS_COLORS="di=1;34:ln=36:so=35:pi=33:ex=1;32:*.sh=4;36:*.log=1;31:*.mp3=1;32;41"
export LS_COLORS

Решение типичных задач: примеры использования

  • Хочу быстро найти исполняемые файлы в каталоге: сделайте ex=1;4;33 (жирный, подчёркнутый, жёлтый). Затем выполните ls -l — исполняемые будут выделяться.
  • Хочу, чтобы директории отличались менее ярко: используйте di=0;34.
  • Нужно выделить мультимедиа: *.mp3=1;32 и *.mp4=1;32.

Безопасность и приватность

Переменная LS_COLORS не содержит конфиденциальной информации — она лишь задаёт отображение. Однако будьте внимательны при хранении общих dotfiles: не добавляйте в публичные репозитории приватные токены или пароли случайно. Сам LS_COLORS безопасен для совместного использования.

Маленький глоссарий — 1 строка на термин

  • LS_COLORS — переменная окружения для цветовой схемы команды ls.
  • dircolors — утилита для генерации/загрузки конфигурации LS_COLORS из файла.
  • LSCOLORS — альтернативная короткая переменная, часто на macOS/BSD.
  • TERM — переменная окружения, определяющая возможности терминала.

Когда менять схему не стоит — контрпримеры

  • Если вы работаете в терминале, где цвета мешают доступности (высокая контрастность для слабовидящих), лучше отключить цвета.
  • В скриптах или логах, где цветной вывод мешает парсингу текстовых данных, не используйте –color=always.
  • При совместной работе в многопользовательской системе сохраняйте обратимость изменений — не навязывайте персональные настройки другим пользователям.

Резюме

LS_COLORS даёт гибкий и лёгкий способ визуально различать файлы в ls. Понимание ключей (di, ex, *.ext), кодов цветов и атрибутов позволяет настроить удобную палитру. Сохраните строку в ~/.bashrc или используйте dircolors для более читабельного управления. Проверяйте совместимость с вашей платформой и открывайте терминал заново после изменения конфигурации.

Ключевые действия:

  • Сохраните оригинал перед изменениями: ORIGINAL=$LS_COLORS.
  • Экспериментируйте временно: LS_COLORS="di=1;31".
  • Сохраните навсегда: добавьте строку в ~/.bashrc и выполните source ~/.bashrc.

Важно: если используете macOS, проверьте LSCOLORS и man ls.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как надёжно удалять файлы в Windows
Безопасность данных

Как надёжно удалять файлы в Windows

Как использовать Bitmoji Reactions в Snapchat
Социальные сети

Как использовать Bitmoji Reactions в Snapchat

Ввод специальных символов в OS X за два нажатия
macOS

Ввод специальных символов в OS X за два нажатия

Включение TRIM для SSD в Windows 11
SSD

Включение TRIM для SSD в Windows 11

Скачивание файлов в Safari на iPhone и iPad
iOS

Скачивание файлов в Safari на iPhone и iPad

Скачать ISO Windows с Tech Bench бесплатно
Windows

Скачать ISO Windows с Tech Bench бесплатно