Мы уверены, что вы, должно быть, использовали команду ls для отображения содержимого каталога. В Ubuntu и многих других дистрибутивах вы увидите вывод команды ls в разных цветах.
Если вы этого не видите, вы можете получить цветной вывод следующим образом:
ls --color=auto
Но задумывались ли вы когда-нибудь, что означают эти цвета в выводе команды ls?
Значение цветов, используемых в команде ls в Ubuntu
В этом разделе мы используем терминал 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, вы знаете, что это для цвета фона.