ОПИСАНИЕ
Программа ls(1) использует переменную окружения LS_COLORS для определения цветов, которыми должны отображаться имена файлов. Эта переменная окружения обычно устанавливается командой типа:
- eval `dircolors некий_путь/dir_colors`
Эта команда обычно находится в стандартном файле начальных настроек оболочки командной строки, например в /etc/profile или /etc/csh.cshrc. (Смотрите также dircolors(1).) Обычно здесь используется файл /etc/DIR_COLORS, и его настройки могут быть изменены файлом .dir_colors из каталога пользователя.
Данный файл настройки состоит из нескольких операторов, по одному в строке. Всё, что находится после символа решётки (#), считается комментарием (если этот символ находится в начале строки или перед ним находится как минимум один пробел). Пустые строки игнорируются.
Все операторы, появившиеся до первого оператора TERM, составляют глобальный раздел. Они действуют для всех типов терминалов. После глобального раздела находится один или более разделов, описывающих определённые терминалы. Он начинается с одного или более операторов TERM, который задаёт тип терминала (то же имя, что указывается в переменной окружения TERM). Для любого терминала глобальные настройки всегда можно перекрыть терминал-специфичными.
Распознаются следующие операторы (регистр букв неважен):
- TERM тип_терминала
- Начинает раздел, специфичный для терминала, и указывает, к какому типу терминала он применим. Можно указывать несколько операторов TERM, чтобы создать раздел, применимый к нескольким типам терминалов.
- COLOR yes|all|no|none|tty
- (Только для Slackware; игнорируется GNU dircolors(1).) Указывает, что расцветка должна быть всегда разрешена (yes или all), никогда не разрешена (no или none), или разрешена, только если вывод происходит на терминальное устройство (tty). По умолчанию no.
- EIGHTBIT yes|no
- (Только для Slackware; игнорируется GNU dircolors(1).) Указывает, разрешены ли по умолчанию восьмибитные символы ISO 8859. Из соображений совместимости можно также указывать 1 вместо yes или 0 вместо no. По умолчанию no.
- OPTIONS параметры
- (Только для Slackware; игнорируется GNU dircolors(1).) Добавляет параметры по умолчанию к командной строке ls. Здесь можно указать любой разрешённый параметр команды ls, причем нужно указывать начальный знак минус. Заметьте, что dircolors не проверяет, допустимы ли эти параметры.
- NORMAL цвет
-
Задаёт цвет, используемый для нормального (не имя файла) текста.
Синоним NORM.
- FILE цвет
- Задаёт цвет, используемый для обычных файлов.
- DIR цвет
- Задаёт цвет, используемый для каталогов.
- LINK цвет
-
Задаёт цвет, используемый для символьных ссылок.
Синонимы: LNK, SYMLINK.
- ORPHAN цвет
- Задаёт цвет, используемый для нерабочих символьных ссылок (указывающих на несуществующие файлы). Если этот цвет не задан, то ls будет использовать вместо него цвет LINK.
- MISSING цвет
- Задаёт цвет, используемый для отсутствующих файлов (несуществующих файлов, на которые указывают символьные ссылки). Если этот цвет не задан, то ls будет использовать вместо него цвет FILE.
- FIFO цвет
-
Задаёт цвет, используемый для FIFO (именованных каналов).
Синоним PIPE.
- SOCK цвет
- Задаёт цвет, используемый для сокетов.
- DOOR цвет
- (Поддерживается, начиная с fileutils 4.1) Задаёт цвет, используемый для файлов типа door (Solaris 2.5 и выше).
- BLK цвет
-
Задаёт цвет, используемый для специальных файлов блочных устройств.
Синоним BLOCK.
- CHR цвет
-
Задаёт цвет, используемый для специальных файлов символьных устройств.
Синоним CHAR.
- EXEC цвет
- Задаёт цвет, используемый для файлов с установленным атрибутом выполнения.
- SUID цвет
-
Задаёт цвет, используемый для файлов с установленным битом set-user-ID.
Синоним SETUID.
- SGID цвет
-
Задаёт цвет, используемый для файлов с установленным битом set-group-ID.
Синоним SETGID.
- STICKY цвет
- Задаёт цвет, используемый для файлов с установленным закрепляющим (sticky) битом.
- STICKY_OTHER_WRITABLE цвет
-
Задаёт цвет, используемый для каталогов с установленным атрибутом выполнения
и доступный на запись другим.
Синоним OWT.
- OTHER_WRITABLE цвет
-
Задаёт цвет, используемый для каталогов без установленного атрибута
выполнения и доступный на запись другим.
Синоним OWR.
- LEFTCODE цвет
-
Задаёт левый код для не-ISO 6429 терминалов (см. ниже).
Синоним LEFT.
- RIGHTCODE цвет
-
Задаёт правый код для не-ISO 6429 терминалов (см. ниже).
Синоним RIGHT.
- ENDCODE цвет
-
Задаёт конечный код для не-ISO 6429 терминалов (см. ниже).
Синоним END.
- *расширение цвет
- Задаёт цвет, используемый для файлов, чьи имена заканчиваются на заданное расширение.
.расширение цвет- То же самое, что и *.расширение. Задаёт цвет, используемый для файлов, чьи имена заканчиваются указанным .расширением. Заметьте, что точка входит в состав расширения, и из-за этого невозможно указать расширение, не начинающееся с точки, например ~ для резервных копий редактора emacs. Эта форма записи считается устаревшей.
Цветовые последовательности ISO 6429 (ANSI)
Большинство цветных ASCII-терминалов в настоящее время используют цветовые последовательности ISO 6429 (ANSI), а многие распространённые терминалы, не поддерживающие цвет, включая xterm и широко используемый и клонируемый DEC VT100, распознают цветовые коды ISO 6429 и без последствий удаляют их из выходного потока или же эмулируют их. ls по умолчанию использует коды ISO 6429, если включена расцветка.Цветовые последовательности ISO 6429 представляют собой последовательность чисел, разделённых точками с запятой. Самые распространенные коды:
-
0восстановить цвет по умолчанию
1яркие цвета
4подчёркнутый текст
5мигающий текст 30 чёрные символы 31 красные символы 32 зелёные символы 33 жёлтые (или коричневые) символы 34 синие символы 35 пурпурные символы 36 бирюзовые символы 37 белые (или серые) символы 40 чёрный фон 41 красный фон 42 зелёный фон 43 жёлтый (или коричневый) фон 44 синий фон 45 пурпурный фон 46 бирюзовый фон 47 белый (или серый) фон
Не все команды будут работать на любой системе или устройстве отображения.
ls использует следующие значения по умолчанию:
NORMAL | 0 | обычный (не имя файла) текст |
FILE | 0 | обычный файл |
DIR | 32 | каталог |
LINK | 36 | символьная ссылка |
ORPHAN | неопред. | недействительная символьная ссылка |
MISSING | неопред. | отсутствующий файл |
FIFO | 31 | именованный канал (FIFO) |
SOCK | 33 | сокет |
BLK | 44;37 | блочное устройство |
CHR | 44;37 | символьное устройство |
EXEC | 35 | исполняемый файл |
Некоторые терминальные программы неправильно распознают настройки цвета по умолчанию. Если весь текст становится расцвеченным после того, как вы просматриваете листинг каталога, измените коды NORMAL и FILE на цифровые коды для нормального цвета текста и фона.
Другие типы терминалов (расширенная настройка)
Если у вас есть терминал (или принтер!) с поддержкой цвета (или другими возможностями выделения), который использует другой набор кодов, вы всё равно сможете создать подходящие настройки. Для этого нужно использовать операторы LEFTCODE, RIGHTCODE и ENDCODE.При выводе имени файла ls генерирует такую последовательность: LEFTCODE кода_типа RIGHTCODE имя_файла ENDCODE, где код_типа --- цветовая последовательность, зависящая от типа или имени файла. Если ENDCODE не определён, то вместо него будет использоваться последовательность LEFTCODE NORMAL RIGHTCODE. Предназначением левого (LEFTCODE) и правого (RIGHTCODE) кодов является сокращение количества информации, которую нужно набирать (а также спрятать уродливые escape-последовательности от пользователя). Если они не подходят для вашего терминала, их можно выключить, поместив соответствующее ключевое слово на отдельной строке.
ЗАМЕЧАНИЕ: Если ENDCODE определён в глобальном разделе файла настроек, то его нельзя переопределить в разделе определённого терминала. Это означает, что все определения NORMAL не приведут ни к какому результату. Однако, можно использовать различные ENDCODE, что и приведёт к нужному результату.
Экранированные последовательности
Для того, чтобы указать в цветовых последовательностях или расширениях имён файлов управляющие символы или пробелы, можно использовать либо нотацию в стиле языка C с помощью обратной косой черты, либо нотацию в стиле программы stty с помощью символа ^. Нотация в стиле языка C включает в себя такие символы:
-
\a Bell (ASCII 7) \b Backspace (ASCII 8) \e Escape (ASCII 27) \f Form feed (ASCII 12) \n Newline (ASCII 10) \r Carriage Return (ASCII 13) \t Tab (ASCII 9) \v Vertical Tab (ASCII 11) \? Delete (ASCII 127) \nnn любой символ (восьмеричное число) \xnnn любой символ (шестнадцатеричное число) \_ Space \\ Backslash (\) \^ Caret (^) \# Hash mark (#)
Заметим, что для ввода пробела, обратной косой черты, крышки или любого управляющего символа в строке, а также знака решётки в качестве первого символа требуется экранирование.
ФАЙЛЫ
- /etc/DIR_COLORS
- Общесистемный файл настройки
- ~/.dir_colors
- Пользовательский файл настройки
Эта страница описывает формат файла dir_colors, который можно найти в пакете fileutils-4.1; другие версии могут немного отличаться.
ЗАМЕЧАНИЯ
Значение LEFTCODE и RIGHTCODE, используемые по умолчанию терминалами ISO 6429:
-
LEFTCODE \e[ RIGHTCODE m
По умолчанию значение ENDCODE не определено.