Как изменить цвета каталогов и файлов в команде ls
Опубликовано: 2022-01-29 Если вы запускали команду ls
в Bash, вы заметите, что каталоги и файлы, которые вы видите, окрашены в соответствии с их типом. Вы можете настроить собственную цветовую схему, чтобы выбрать различные цвета текста, цвета фона и форматирование, например жирный шрифт и подчеркивание.
Как это работает
Цветовая схема хранится в переменной LS_COLORS. Чтобы просмотреть текущую цветовую схему, вы можете указать Bash напечатать содержимое переменной:
эхо $LS_COLORS
Вы увидите длинный список типов файлов и числовых кодов. Мы объясним, как создать такой список самостоятельно.
Прежде чем экспериментировать с этим, мы рекомендуем сохранить текущее содержимое переменной LS_COLORS в другую переменную. Это позволит вам быстро восстановить настройки по умолчанию, не выходя из оболочки и не входя снова, а также не закрывая и не открывая снова окно терминала. Чтобы сохранить текущее содержимое переменной LS_COLORS в новую переменную с именем ORIGINAL, запустите:
ОРИГИНАЛ=$LS_COLORS
В любой момент вы можете запустить следующую команду, чтобы отменить изменения и восстановить цвета по умолчанию:
LS_COLORS=$ОРИГИНАЛ
Ваши изменения всегда являются временными, пока вы не отредактируете файл, чтобы сделать их новыми значениями по умолчанию. Вы всегда можете выйти и снова войти в систему или закрыть и снова открыть окно терминала, чтобы восстановить цвета по умолчанию. Однако это позволяет легко сделать это с помощью одной быстрой команды.
Как установить собственные цвета
Переменная LS_COLORS содержит список типов файлов вместе с соответствующими цветовыми кодами. Список по умолчанию длинный, потому что он определяет разные цвета для разных типов файлов.
Давайте начнем с простого примера, чтобы продемонстрировать, как это работает. Допустим, мы хотим изменить цвет каталогов с жирного синего по умолчанию на жирный красный. Для этого мы можем запустить следующую команду:
LS_COLORS="ди=1;31"
Бит di=1;31
сообщает ls
, что каталоги ( di
) выделены ( =
) полужирным ( 1;
) красным ( 31
).
Однако это всего лишь очень простая переменная LS_COLORS, которая определяет каталоги как один цвет и оставляет все остальные типы файлов в качестве цвета по умолчанию. Допустим, мы хотим сделать файлы с расширением .desktop подчеркнутым голубым цветом. Для этого мы можем запустить следующую команду:
LS_COLORS="di=1:31:*.desktop=4;36"
Это сообщает ls
, что каталоги ( di
) выделены ( =
) полужирным ( 1;
) красным ( 31
) и ( :
) любой файл, оканчивающийся на .desktop ( *.desktop
), ( =
) подчеркнутый ( 4;
) голубой ( 36
).
Это процесс составления вашего списка типов файлов и цветов. Укажите столько, сколько хотите, в форме filetype=color, разделяя каждый символ двоеточием (:).
СВЯЗАННЫЕ С: Как настроить (и раскрасить) вашу подсказку Bash
Чтобы составить свой собственный список, вам просто нужно знать список цветовых кодов и кодов типов файлов. При этом используются те же цифровые цветовые коды, которые вы используете при изменении цвета в приглашении Bash.
Вот список цветовых кодов для текста переднего плана:
- Черный: 30
- Синий: 34
- Голубой: 36
- Зеленый: 32
- Фиолетовый: 35
- Красный: 31
- Белый: 37
- Желтый: 33
Например, поскольку желтый текст имеет цветовой код 33, вы должны использовать di=33
, чтобы сделать каталоги желтыми.
Вот список атрибутов цвета текста:
- Обычный текст: 0
- Жирный или светлый текст: 1 (зависит от эмулятора терминала).
- Тусклый текст: 2
- Подчеркнутый текст: 4
- Мигающий текст: 5 (это не работает в большинстве эмуляторов терминала).
- Перевернутый текст: 7 (это инвертирует цвета переднего плана и фона, поэтому вы увидите черный текст на белом фоне, если текущий текст — белый текст на черном фоне).
- Скрытый текст: 8
При указании атрибута или нескольких цветовых кодов разделяйте список кодов точкой с запятой (;). Вам не нужно указывать 0 для обычного текста, так как обычный текст используется, когда вы не указываете здесь атрибут.
Например, поскольку полужирный текст имеет цветовой код 1, а желтый текст — цветовой код 33, вы должны использовать di=1;33
, чтобы выделить каталоги жирным желтым цветом. Вы также можете указать более одного атрибута. Например, вы можете использовать di=1;4;33
, чтобы выделить каталоги полужирным шрифтом с подчеркнутым желтым цветом.
Вот список кодов цветов фона:
- Черный фон: 40
- Синий фон: 44
- Голубой фон: 46
- Зеленый фон: 42
- Фиолетовый фон: 45
- Красный фон: 41
- Белый фон: 47
- Желтый фон: 43
Например, поскольку синий фон имеет цветовой код 44, вы должны использовать di=44
, чтобы использовать синий фон для каталогов. Вы также можете комбинировать код цвета фона, код цвета переднего плана и столько атрибутов, сколько хотите. Например, di=1;4;33;44
даст вам жирный подчеркнутый желтый текст на синем фоне.
Вот список кодов типов файлов:
- Каталог: ди
- Файл: fi
- Символическая ссылка: ln
- Именованный канал (FIFO): пи
- Розетка: так
- Блочное устройство: bd
- Символьное устройство: компакт-диск
- Потерянная символическая ссылка (указывает на файл, который больше не существует): или
- Отсутствующий файл (отсутствующий файл, на который указывает потерянная символическая ссылка): mi
- Исполняемый файл (имеет разрешение «x»): ex
- *.extension: Любой файл, заканчивающийся указанным вами расширением. Например, используйте *.txt для файлов, заканчивающихся на .txt, *.mp3 для файлов, заканчивающихся на .mp3, *.desktop для файлов, заканчивающихся на .desktop, или что-то еще, что вам нравится. Вы можете указать столько различных расширений файлов, сколько захотите.
Укажите столько различных типов кодов типов файлов с любым количеством цветов, сколько хотите, разделив их символом :. Повторите этот процесс, чтобы собрать переменную LS_COLORS.
Например, допустим, вы хотите использовать жирный фиолетовый текст для каталогов, подчеркнутый красный текст для исполняемых файлов и жирный зеленый текст на красном фоне для файлов .mp3. Объединив коды типов файлов и цветовые коды из приведенных выше списков, вы получите:
LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"
Как установить новые цвета по умолчанию
Теперь у вас есть пользовательская переменная LS_COLORS, которая работает в текущем сеансе Bash. Однако вы, вероятно, захотите сделать его постоянным, чтобы он автоматически использовался всякий раз, когда вы начинаете новый сеанс Bash, и вам не нужно об этом помнить.
Вы можете установить свою пользовательскую переменную LS_COLORS и любую другую переменную Bash, которая вам нравится, добавив ее в файл .bashrc вашей учетной записи пользователя. Этот файл находится по адресу ~/.bashrc. Итак, если ваше имя пользователя — bob, вы найдете его в /home/bob/.bashrc. Есть и другие способы установки переменных окружения, но это самый простой.
Сначала откройте этот файл в предпочитаемом вами текстовом редакторе. Мы будем использовать nano в качестве примера, но вы можете использовать vi, emacs или что-то еще, что вам нравится.
нано ~/.bashrc
Добавьте свою пользовательскую переменную LS_COLORS в новую строку в конце файла, например:
LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"
Сохраните файл и выйдите. В nano нажмите Ctrl+O, затем нажмите Enter, чтобы сохранить, затем нажмите Ctrl+X, чтобы выйти.
Всякий раз, когда вы начинаете новый сеанс Bash, Bash читает файл .bashrc и автоматически устанавливает вашу переменную LS_COLORS. Чтобы изменить цвета в будущем, вернитесь к файлу .bashrc и отредактируйте строку LS_COLORS.
Вы также можете просто удалить строку LS_COLORS=
, добавленную вами в файл .bashrc, чтобы снова использовать цвета по умолчанию. Если вы не установите значение LS_COLORS, Bash будет использовать цвета по умолчанию.