Linux что это за цветок

Цвета терминала Linux

Одно из главных преимуществ Linux заключается в том, что при желании в нём можно настроить всё, что угодно. В этом и выражается преимущество проективных систем, над процедурными. Фактически, это конструктор, состоящий из отдельных блоков, каждый из которых можно настроить по своему желанию.

Особенно интересно, если не просто копируешь чужой «рецепт», а пытаешься разобраться, что и как устроено. И даже решая несерьезную задачу, узнаешь что-то новое.

Раскрашиваем цвета вывода ls

Как-то захотелось мне настроить цвета терминала linux в выводе команды ls. Ну не нравился блекло-фиолетовый цвет для каталогов в Linux Mint. Начал разбираться.

Из документации к ls, выяснил, что установка цветов для вывода осуществляется при помощи утилиты dircolors, которая либо устанавливает параметры цвета из своей собственной базы, либо берет их из файла

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

/.bashrc, файл с настройками командной оболочки, а сами параметры определяются через переменную LC_COLORS.

Действительно, в .bashrc обнаружился скрипт следующего содержания:

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

Если запустить утилиту dircolors, она выводит значение переменной LC_COLOR.

Также возможен вывод значения переменной LC_COLORS в структурированном виде, указанием ключа:

Поскольку вывод получается длинный, приводить его не буду.

Если перенаправить вывод dircolors -p >

/.dircolors, то будет создан структурированный файл, из которого и будут браться настройки цветов. Редактируя данный файл и устанавливаются настройки цвета для вывода ls.

В созданном файле .dircolors есть подсказка:

Устанавливая последовательность через точку с запятой и получаем нужный нам цвет в консоли linux, согласно перечисленным. Цвета терминала linux от 30 до 37 для цвета шрифта, а с 40 до 47 для фона. К примеру:

DIR 01;34 подразумевает, что имена директорий будут выделяться жирным шрифтом и синим цветом.

Но таким способом получается всего восемь цветов, а современные эмуляторы терминала способны выводить как минимум 256! Выяснилось, что существуют и другие способы установки цвета. К примеру, значение EXEC 38;5;208;1 — даёт оранжевый толстый шрифт у исполняемых файлов.

Чтобы не перебирать цвета linux вручную, есть уже готовая таблица цветов:

Подставляя в значение цвета 38;5;x — где x цвет из таблицы, получаем необходимый результат. Получается что-то вроде этого:

Но как это работает? Дело в том, что установка цвета вывода информации в эмуляторе терминала осуществляется при помощи ANSI escape-кодов. Это определенная последовательность символов, которая не выводится на экран, однако влияет на вывод. Называется она так, поскольку начинается с 33[ — кода «Esc». Поскольку терминалов и эмуляторов терминалов существует множество, эти управляющие коды стандартизированы. Управлением цветом через последовательность от 30 до 37 — это стандарт ECMA-48. Информация о нем содержится в разделе console_codes. А управление через 38;5;* — определено стандартом T.416. Более подробная информация есть, конечно же, в Википедии.

Читайте также:  Mac os не видеть весь жесткий диск

Раскрашиваем и изменяем строку приглашения:

Разобравшись, как устанавливать цвета linux через esc-коды, не составит труда переделать и раскрасить строку приглашения. За ее вывод отвечает переменная PS1, которая определена в файле

В Linux Mint скрипт ее инициализации имеет следующий вид:

То-есть сперва определяется, запустил ли скрипт root или обычный пользователь. Поскольку в подавляющем большинстве случаев имеет место именно второй вариант, то и редактировать нужно строку, следующую после первого ‘else’. Формат строки расшифрован в документации по баш, в разделе «Promting». Из него следует, что esc-последовательность должна начинаться с «[» и заканчиваться «]». Таким образом:

  • [33[01;32m] — устанавливает зеленый цвет;
  • u — выводит имя пользователя;
  • h — выводит имя хоста;
  • [33[00m] — очищает установленные атрибуты;
  • [33[01;34m] — устанавливает синий цвет;
  • w — выводит имя рабочей директории;
  • Привет! — пример того, что может быть выведен любой производный текст.

Что ещё можно вывести в строке приглашения:

  • d — дату, в формате «Wed Dec 28»;
  • A — время в 24-часовом формате;
  • ! — номер текущей команды в истории;
  • n — перенос вывода на другую строку;

Введем что нибудь поинтереснее:

И строка приглашения примет вид:

Так, не понял, а откуда взялась ёлка-то?

Ну ладно, на самом деле, если в конец .bashrc вставить echo -e «С Новым годом», то поздравление будет выводиться при каждом запуске терминала перед приглашением ввода. Соответственно, вывод можно раскрашивать каким угодно способом. А там уж и ёлку нарисовать не сложно.

Источник

Что означают разные цвета в лс?

Что ls означают разные цвета в команде Ubuntu ? Например, когда я набираю ls команду в одной из моих папок, я получаю один из файлов светло-зеленого цвета, а другой (который является папкой) — синего цвета с зеленой подсветкой.

Что означают эти цвета, и есть ли руководство по всем цветам?

  • Синий : каталог
  • Зеленый : исполняемый или распознанный файл данных
  • Небесно-голубой : Символическая ссылка
  • Желтый с черным фоном : устройство
  • Розовый : файл графического изображения
  • Красный : архивный файл
  • Красный с черным фоном : Неработающая ссылка

Довожу до вашего сведения:

Чтобы выключить цвет, вы должны закомментировать следующие строки в .bashrc .

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

Выход:

Примечание:

  • Для получения дополнительной информации введите man dir_colors в терминале.

Вы можете узнать, какие цвета ls использует, посмотрев на $LS_COLORS переменную:

  • Бирюзовый: аудио файлы 1
  • Ярко-красный: архивы и сжатые файлы 2
  • Фиолетовый: картинки и видео 3

Кроме того, файлы раскрашены по атрибутам:

aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.

tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace, зоопарк, cpio, 7z, рз.

Читайте также:  Windows 10 не работает l2tp ipsec

JPG, JPEG, GIF, BMP, PBM, PGM, PPM, TGA, XBM, XPM, TIF, TIFF, PNG, SVG, SVGZ, Mng, PCX, MOV, MPG, MPEG, M2V, MKV, ОГМ, MP4, M4V, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, тревожность, ogv, ogx.

Вся эта информация содержится в выходных данных dircolors —print-database , но ее форматирование довольно нечитаемо.

Вот техническое объяснение того, что происходит:

Цветовой код состоит из трех частей:

Первая часть перед точкой с запятой представляет стиль текста.

  • 00 = нет, 01 = жирный, 04 = подчеркивание, 05 = мигание, 07 = обратный, 08 = скрытый.

Вторая и третья часть — это цвет и цвет фона:

  • 30 = черный, 31 = красный, 32 = зеленый, 33 = желтый, 34 = синий, 35 = пурпурный, 36 = голубой, 37 = белый.

Каждая часть может быть опущена, при условии, что начинается слева. то есть «01» означает жирный, «01; 31» означает жирный и красный. И вы бы заставили свой терминал печатать в цвете, выполнив инструкцию \33[ и завершив ее символом m . 33 или 1B в шестнадцатеричном формате, это знак ASCII «ESCAPE» (специальный символ в наборе символов ASCII). Пример:

Печать «Hello World» ярко-красным.

Команда ls с аргументом —color=auto (в Ubuntu ls это псевдоним для ls —color=auto ) проходит по всем именам файлов и пытается сначала сопоставить разные типы, такие как Executable, Pipe и так далее. Затем он пытается сопоставить регулярные выражения, такие как * .wav, и печатает полученное имя файла, заключенное в эти инструкции по изменению цвета для bash.

Если вы наберете dircolors ( echo $LS_COLORS также работает) из командной строки, вы получите список кодов и цветов для большого количества типов файлов в 1 строке. dircolors —print-database показывает им по 1 строке за раз. Вот краткий список (я постарался указать самые важные). Внизу есть объяснение того, что представляют собой разные коды в конце каждой строки:

  • Коды атрибутов: 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
  • Цветовые коды текста: 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
  • Коды цвета фона: 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

Если вы хотите поэкспериментировать с этим, вот пример того, как установить цвет для файла:

Это позволит установить *.ogg и .mp3 в bold magenta . И если вы положите его в свой .bashrc файл, он станет постоянным.

С настройкой по умолчанию

  • Неокрашенный (белый) : текст файла или файла без имени (например, права на вывод ls -l )
  • Жирный синий : каталог
  • Жирный голубой : символическая ссылка
  • Жирный зеленый : исполняемый файл
  • Жирный красный : архив
  • Жирный пурпурный : файл изображения, видео, графика и т. Д. Или дверь или розетка
  • Cyan : аудиофайл
  • Желтый с черным фоном : труба (AKA FIFO)
  • Жирный желтый с черным фоном : блочное устройство или символьное устройство
  • Жирный красный с черным фоном : сиротская ссылка или отсутствующий файл
  • Неокрашен красным фоном : файл set-user-ID
  • Черный с желтым фоном : файл set-group-ID
  • Черный с красным фоном : файл с возможностью
  • Белый с синим фоном : липкий каталог
  • Синий с зеленым фоном : другой каталог для записи
  • Черный с зеленым фоном : липкий и прочий для записи каталог
Читайте также:  Платформа windows azure теджасви редкар тони гвидичи

Скрипт для отображения цветов

Выход с настройкой по умолчанию:

Вывод с моей настройкой (пользовательские dircolors и пользовательская тема терминала Solarized):

Я получил описания от dircolors -p и man dir_colors и заполнил пробелы своими собственными исследованиями.

Цвета и описания одинаковы с 14.04 по 17.10.

Ни один из ответов здесь не включает 256 вариантов цвета в последних версиях Ubuntu. Я испытываю недостаток цвета (некоторые цвета создают мне проблемы рядом друг с другом), поэтому синий каталог по умолчанию на черном цвете мне очень трудно читать. Далее следует мое исследование, чтобы изменить это.

Введите, dircolors -p |less чтобы увидеть ваш текущий цветовой код.

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

/ .dircolors, поэтому выведите вывод dircolors в .dircolor, чтобы вы могли начать с него с помощью этой команды. dircolors -p >

Альтернатива: подобрать очень похожие 256 цветов в солнечном проекте Seebi .

Возьмите этот скрипт для проверки цвета и запустите его с помощью команды, colortest -w чтобы вы могли видеть все цвета одновременно. Выберите цвет. Мне нравится апельсин # 208. Я хочу, чтобы это был цвет текста, поэтому, используя эту информацию о расширенных цветовых кодах, я могу применить это.

Итак, у вас есть цвет, что теперь? Сначала мы должны создать строку.

Первым числом будет код атрибута, скорее всего 00, но если вы хотите, чтобы он мигал, перейдите с 05:

Выберите код атрибута: 00 = нет 01 = полужирный 04 = подчеркивание 05 = мигание 07 = обратный 08 = скрытый

Затем выберите добавление ;38;5; к этому коду атрибута, чтобы указать цвет текста, чтобы получить 00; 38; 5; а затем добавить свой цвет. Я выбрал 208, поэтому я получаю 00;38;5;208 .

Если вы хотите также наложить на него фон, выберите другой цвет (скажем, 56) с помощью скрипта colortest и добавьте ;48;5; для фона и 56 для цвета, чтобы получить общую строку 00;38;5;208;48;5;56 .

Так что теперь у вас есть, что вы делаете с этим?

/.dircolors и найдите раздел, который вы хотите изменить (для меня это DIR) на строку, которую мы определили выше «00; 38; 5; 208».

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

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

Вы можете сделать эту же процедуру с 16 цветами. Вам не нужны специальные; 38; 5 или; 48; 5 вещи. Просто бросьте цифры в строку и наслаждайтесь простотой.

Спасибо Дэну и Сиби за их заметки и код по этому вопросу.

Источник

Оцените статью