Домашняя » как » Как изменить цвета каталогов и файлов в команде ls

    Как изменить цвета каталогов и файлов в команде ls

    Если вы запустили Ls Команда Bash, вы заметите, что каталоги и файлы, которые вы видите, раскрашены в соответствии с их типом. Вы можете настроить свою собственную цветовую схему, чтобы выбрать различные цвета текста, цвета фона и форматирование, такие как жирный шрифт и подчеркивание.

    Как это работает

    Цветовая схема хранится в переменной LS_COLORS. Чтобы просмотреть текущую цветовую схему, вы можете указать Bash напечатать содержимое переменной:

    echo $ LS_COLORS

    Вы увидите длинный список типов файлов и цифровых кодов. Мы сами объясним, как создать такой список.

    Прежде чем поиграться с этим, мы рекомендуем сохранить текущее содержимое переменной LS_COLORS в другую переменную. Это позволит вам быстро восстановить настройки по умолчанию без выхода из оболочки и повторного входа в систему, а также закрытия и повторного открытия окна терминала. Чтобы сохранить текущее содержимое переменной LS_COLORS в новую переменную с именем ORIGINAL, выполните:

    ОРИГИНАЛ = $ LS_COLORS

    В любое время вы можете выполнить следующую команду, чтобы отменить изменения и восстановить цвета по умолчанию:

    LS_COLORS = $ ОРИГИНАЛ

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

    Как установить пользовательские цвета

    Переменная LS_COLORS содержит список типов файлов вместе с соответствующими цветовыми кодами. Список по умолчанию длинный, потому что в нем указаны разные цвета для разных типов файлов.

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

    LS_COLORS = "ди = 1; 31"

    ди = 1; 31 немного говорит Ls что каталоги (ди) являются (знак равно) смелый (1;) красный (31).

    Однако это просто очень простая переменная LS_COLORS, которая определяет каталоги как один цвет и оставляет любой другой тип файла в качестве цвета по умолчанию. Допустим, мы хотим сделать файлы с расширением .desktop подчеркнутым голубым цветом. Для этого мы можем запустить следующую команду:

    LS_COLORS = "ди = 1: 31:. * Рабочий стол = 4; 36"

    Это говорит Ls что каталоги (ди) являются (знак равно) смелый (1;) красный (31) а также (:) любой файл, заканчивающийся на .desktop (* .desktop) является (знак равно) подчеркнуто (4;) голубой (36).

    Это процесс для сборки вашего списка типов файлов и цветов. Укажите сколько угодно в форме filetype = color, разделяя их символом двоеточия (:).

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

    Вот список кодов цвета для текста переднего плана:

    • Черный: 30
    • Синий: 34
    • Голубой: 36
    • Зеленый: 32
    • Фиолетовый: 35
    • Красный: 31
    • Белый: 37
    • Желтый: 33

    Например, поскольку желтый текст имеет цветовой код 33, вы должны использовать ди = 33 сделать каталоги желтыми.

    Вот список атрибутов цвета текста:

    • Нормальный текст: 0
    • Жирный или светлый текст: 1 (зависит от эмулятора терминала.)
    • Тусклый текст: 2
    • Подчеркнутый текст: 4
    • Мигающий текст: 5 (Это не работает в большинстве эмуляторов терминала.)
    • Перевернутый текст: 7 (инвертирует цвета переднего плана и фона, поэтому вы увидите черный текст на белом фоне, если текущий текст - белый текст на черном фоне.)
    • Скрытый текст: 8

    При указании атрибута или нескольких цветовых кодов разделите список кодов точкой с запятой (;). Вам не нужно указывать 0 для обычного текста, так как обычный текст используется, когда вы не указываете здесь атрибут.

    Например, поскольку жирный текст имеет цветовой код 1, а желтый текст - цветной код 33, следует использовать ди = 1; 33 сделать каталоги жирным желтым. Вы также можете указать более одного атрибута. Например, вы можете использовать ди = 1; 4; 33 сделать каталоги жирным, подчеркнутым желтым.

    Вот список кодов цвета фона:

    • Черный фон: 40
    • Голубой фон: 44
    • Голубой фон: 46
    • Зеленый фон: 42
    • Фиолетовый фон: 45
    • Красный фон: 41
    • Белый фон: 47
    • Желтый фон: 43

    Например, поскольку синий фон имеет цветовой код 44, вы должны использовать ди = 44 использовать синий фон для каталогов. Вы также можете комбинировать код цвета фона, код цвета переднего плана и столько атрибутов, сколько хотите. Например, ди = 1; 4; 33; 44 даст вам жирный, подчеркнутый желтый текст на синем фоне.

    Вот список кодов типов файлов:

    • Справочник: ди
    • Файл: фи
    • Символическая ссылка: ln
    • Именованная труба (FIFO): пи
    • Гнездо: так
    • Блочное устройство: бд
    • Символьное устройство: CD
    • Символьная ссылка (указывает на файл, который больше не существует): или
    • Отсутствующий файл (отсутствующий файл, на который указывает символическая ссылка-сирота): mi
    • Исполняемый файл (имеет разрешение «x»): ex
    • * .extension: Любой файл, заканчивающийся указанным вами расширением. Например, используйте * .txt для файлов, оканчивающихся на .txt, * .mp3 для файлов, оканчивающихся на .mp3, * .desktop для файлов, оканчивающихся на .desktop, или на все остальное, что вам нравится. Вы можете указать сколько угодно разных расширений файлов.

    Укажите столько разных типов кодов типов файлов, сколько вам нужно разных цветов, разделенных символом:. Повторите этот процесс для сборки вашей переменной LS_COLORS.

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

    LS_COLORS = "ди = 1; 35: ех = 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 = "ди = 1; 35: ех = 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 будет использовать цвета по умолчанию.