ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Цвета в выходных данных команды ls: что они означают?

Цвета в выходных данных команды ls: что они означают?

Мы уверены, что вы, должно быть, использовали команду ls для отображения содержимого каталога. В Ubuntu и многих других дистрибутивах вы увидите вывод команды ls в разных цветах.

Если вы этого не видите, вы можете получить цветной вывод следующим образом:

ls --color=auto

 

Но задумывались ли вы когда-нибудь, что означают эти цвета в выводе команды ls?

 

Значение цветов, используемых в команде ls в Ubuntu

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

В этом разделе мы используем терминал Ubuntu по умолчанию и его цветовой профиль.

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

Большинство терминалов отображают исполняемые файлы, ссылки, обычные файлы и каталоги разными цветами, чтобы вы могли легко различать их.

Некоторые терминалы, такие как терминал по умолчанию в Ubuntu, выводят его на новый уровень и добавляют больше цветов для музыкальных файлов, изображений и видео.

Выглядит запутанно? Позвольте мне расшифровать каждый из них для вас!

Цвет Описание
Жирный синий Каталоги.
Неокрашенный Файл или многожильная ссылка.
Жирный голубой Символическая ссылка, указывающая на файл.
Жирный зеленый Исполняемый файл (скрипты с .sh расширением).
Выделенный жирным красным Архивный файл (в основном архивный файл или zip-файл).
Пурпурный Указывает на изображения и видеофайлы.
Голубой Аудиофайлы.
Желтый с черным bg Файл канала (известный как FIFO).
Выделите красный цвет черным bg Неработающая символическая ссылка.
Неокрашенный (белый) с красным bg Указывает на файл set-user-ID.
Черный с желтым bg Указывает на файл set-group-ID.
Белый с синим bg Показывает привязанный каталог.
Синий с зеленым bg Указывает на другой каталог, доступный для записи
Черный с зеленым bg Когда каталог имеет характеристики как липких, так и доступных для записи других каталогов.
Опять же, приведенные выше данные о цвете основаны на настройках терминала по умолчанию, и если вы измените палитру цветов, вы не получите аналогичных результатов.

Но что, если ваш терминал не отображает никаких цветов? Что ж, для этого есть причина и решение.

 

Что, если команда ls не отображает цветной вывод?

Вот в чем дело. Команда ls по умолчанию не должна отображать цвета в выходных данных. Она будет отображать цвета, если вы используете флаг –color=auto.

ls --color=auto

 

Тогда почему команда ls добавляет цвета по умолчанию в Ubuntu и некоторых других дистрибутивах? Это потому, что в вашем дистрибутиве установлен псевдоним для команды ls, позволяющий использовать флаг –color=auto при выполнении команды ls:

alias

 

Таким образом, если команда ls не отображает цветной вывод, псевдоним по умолчанию не задан.

Теперь вы можете использовать флаг –color=auto всякий раз, когда используете команду ls.

Но это не очень удобно. Вместо этого вы должны создать псевдоним и добавить его в свой bashrc, чтобы команда ls отображала цвета по умолчанию.

 

Создайте постоянный псевдоним для ls для отображения цветов

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

nano ~/.bashrc

 

Перейдите к концу файла используя Alt + / и вставьте следующую строку в терминал:

alias ls='ls --color=auto'

 

После завершения сохраните изменения и выйдите из текстового редактора nano.

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

source ~/.bashrc

 

Вот и все! С этого момента вы можете использовать цветной вывод.

 

Откуда команда ls получает цвет?

Теперь начинается интересная часть. Где определены цвета для команды ls? Ответ – LS_COLORS.

ДА. Это специальная переменная среды с именем LS_COLORS, которая определяет цвета, используемые командой ls.

Это хорошо, но кто определяет эту переменную? Что, если бы вы захотели внести некоторые изменения? Мы также ответим на эти вопросы.

На самом деле, у вас есть специальная команда dircolors для настройки цвета для команды ls.

Разные оболочки имеют разные форматы цветового профиля. Вот почему вы должны указывать оболочку при использовании этой команды.

Как вы можете видеть, она определяет переменную среды LS_COLORS и экспортирует ее, чтобы переменная была доступна для подоболочки.

Теперь, если вы хотите его использовать, вы можете либо скопировать и вставить его в свой файл bashrc, либо перенаправить вывод следующим образом:

dircolors -b >> .bashrc

 

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

 

Понимание цветового профиля

LS_COLORS содержит данные в паре ключ-значение, разделенные двоеточием (:). Если значение состоит более чем из одной части, они разделяются точкой с запятой (;).

Ключ обычно предопределен. Часть значений представляет цвета.

Итак, если там написано ln=01;36, это означает, что для символьных ссылок шрифт выделен жирным шрифтом, а цвет (36) – голубым.

0 – для обычного, 1 – для жирного, 4 – для подчеркнутого. 31 – для красного, 32 – для зеленого и т.д. Цветовые коды следуют за управляющим кодом ANSI.

Другой пример. or=40;31;01 означает, что ссылка на несуществующий файл (ключ или) использует черный фон (цветовой код 40), красный цвет и жирный шрифт (код 01).

Мы думаем, порядок не имеет значения, потому что коды не перекрываются. 31 – это код для красного цвета переднего плана, а 41 – это цвет для красного цвета фона. Итак, если используется 41, вы знаете, что это для цвета фона.

Exit mobile version