
Терминал Linux по умолчанию отображает текст белым цветом на черном фоне, но его внешний вид можно полностью настроить. Изменение цветов помогает не только улучшить читаемость, но и ускорить работу с консолью при длительных сессиях. Linux поддерживает несколько способов настройки: через встроенные настройки терминала, использование ANSI-кодов и конфигурацию профилей оболочек.
Кроме того, оболочки Bash и Zsh позволяют устанавливать переменные окружения, определяющие цвета подсветки команд, каталогов и ошибок. Настройка PS1 или использование пакетов вроде dircolors обеспечивает удобное визуальное разделение информации без постоянного вмешательства пользователя. Эти инструменты делают терминал более информативным и адаптированным под конкретные задачи.
Настройка цветов через встроенные профили терминала
В GNOME Terminal доступ к профилям осуществляется через меню Правка → Профили → Управление профилями. Здесь можно создавать новые профили, дублировать существующие и изменять их параметры. Для изменения цвета фона и текста нужно открыть вкладку Цвета, снять галочку с Использовать системные цвета и выбрать нужные оттенки.
Konsole использует меню Настройки → Настройки профиля. В разделе Внешний вид можно выбрать готовую цветовую схему или создать собственную, задав RGB-значения для текста, фона и 16 базовых ANSI-цветов. Изменения применяются сразу и сохраняются для выбранного профиля.
Tilix позволяет управлять профилями через Настройки → Профили. Здесь можно редактировать существующие схемы или импортировать внешние файлы .dconf с готовыми цветами. Для текстового и фонового цветов предусмотрены ползунки для точной настройки оттенков.
Использование встроенных профилей упрощает поддержку нескольких конфигураций терминала. Можно создать отдельные профили для работы с кодом, системного администрирования и мониторинга, каждый с оптимальной контрастностью и набором цветов для удобного восприятия информации.
Изменение цвета текста с помощью escape-последовательностей

Для изменения цвета текста в терминале Linux используют ANSI escape-последовательности. Стандартный формат выглядит как \033[<код>m, где <код> определяет цвет или атрибут текста. Например, \033[31m устанавливает красный цвет, \033[32m – зелёный, \033[0m сбрасывает все настройки.
Существует 8 базовых цветов: черный (30), красный (31), зеленый (32), желтый (33), синий (34), пурпурный (35), циан (36), белый (37). Для ярких оттенков используют добавление 60: например, ярко-красный – 91, ярко-зеленый – 92.
Цвет фона задаётся аналогично с кодами 40–47 для стандартных цветов и 100–107 для ярких. Пример установки зеленого текста на черном фоне: \033[32;40mТекст\033[0m.
Для динамических сценариев удобно использовать echo с флагом -e: echo -e "\033[33mЖелтый текст\033[0m". Можно комбинировать атрибуты: жирный (1), подчёркнутый (4), мигающий (5), например, \033[1;34mЖирный синий\033[0m.
Для расширенных цветов терминалы поддерживают 256-цветный режим с кодом \033[38;5; для текста и \033[48;5; для фона, где N – значение от 0 до 255. Такой подход позволяет задавать точные оттенки без ограничений базовой палитры.
Смена цвета фона терминала через конфигурационные файлы

Цвет фона терминала можно настроить напрямую через конфигурационные файлы оболочки или терминала. В большинстве случаев изменения производятся в файлах ~/.bashrc, ~/.zshrc или специфичных для терминала, например ~/.Xresources для X11-терминалов.
Для Bash или Zsh можно использовать escape-последовательности ANSI. Например, добавление строки echo -e «\e[48;5;236m» в конец ~/.bashrc задаст серый фон при запуске терминала. Число после 48;5; обозначает индекс цвета по 256-цветной палитре.
В X11-терминалах через ~/.Xresources можно задать цвет фона явно. Пример:
URxvt*background: #1e1e1e
После изменения ~/.Xresources необходимо выполнить команду xrdb -merge ~/.Xresources, чтобы новые настройки вступили в силу без перезапуска терминала.
GNOME Terminal и другие терминалы с графическим интерфейсом часто используют JSON-файлы профилей или dconf. Для GNOME Terminal можно изменить фон через команду:
dconf write /org/gnome/terminal/legacy/profiles:/
Здесь <PROFILE_ID> – идентификатор активного профиля терминала. Команда сразу применяет выбранный цвет фона.
Регулярное использование конфигурационных файлов позволяет сохранять единый стиль терминала, применять его на разных устройствах и автоматизировать настройки при новых сессиях.
Использование команды `tput` для настройки цвета

Команда `tput` позволяет управлять цветом текста и фона терминала через последовательности терминала, что делает её совместимой с различными эмуляторами терминала. Она обращается к базе данных терминалов `terminfo` и корректно устанавливает цвета без прямого использования escape-последовательностей.
Для изменения цвета текста используют параметр `setaf`, а для цвета фона – `setab`. Например:
| Команда | Описание |
tput setaf 1 |
Устанавливает красный цвет текста |
tput setab 4 |
Устанавливает синий цвет фона |
tput sgr0 |
Сбрасывает цвет и атрибуты к стандартным |
Цвета идентифицируются числами от 0 до 7 для стандартной палитры:
| 0 | Чёрный |
| 1 | Красный |
| 2 | Зелёный |
| 3 | Жёлтый |
| 4 | Синий |
| 5 | Магента |
| 6 | Циан |
| 7 | Белый |
Пример использования в скрипте Bash:
#!/bin/bash
tput setaf 2; echo "Зелёный текст"
tput setab 0; echo "Текст на чёрном фоне"
tput sgr0
Для расширенной 256-цветной палитры используют `tput setaf <номер_цвета>` и `tput setab <номер_цвета>` с номерами от 0 до 255. Это позволяет задавать более точные оттенки текста и фона.
Применение цветовых схем в Bash и Zsh

Для Bash чаще всего применяется переменная PS1, которая задает формат приглашения командной строки:
\[\e[31m\]– устанавливает красный цвет текста.\[\e[42m\]– устанавливает зеленый фон.\[\e[0m\]– сброс всех цветов к значениям по умолчанию.
Пример настройки PS1 для красного текста на желтом фоне:
PS1='\[\e[31m\]\u@\h:\w\$\[\e[0m\] '
В Zsh применяются аналогичные методы, но есть встроенные темы и фреймворки, такие как oh-my-zsh. Цвета задаются через переменные вида %F{цвет} для текста и %K{цвет} для фона:
PROMPT='%F{red}%n@%m %F{blue}%~ %f$ '
Здесь %f сбрасывает цвет текста, а %k – цвет фона. Для упрощения управления можно использовать готовые темы из каталога ~/.oh-my-zsh/themes.
Дополнительно можно настроить цвета для системных сообщений, каталогов и файлов с помощью переменной LS_COLORS. Для Bash и Zsh команда выглядит одинаково:
eval "$(dircolors -b ~/.dircolors)"
Файл ~/.dircolors содержит соответствия расширений файлов и цветовых кодов. Изменяя этот файл, можно задать индивидуальные схемы подсветки.
Для динамического изменения цветовой схемы в обеих оболочках удобно использовать функции и алиасы:
function set_colors() {
export PS1='\[\e[36m\]\u@\h:\w\$ \[\e[0m\]'
}
alias darkmode='set_colors'
Это позволяет переключать схемы без редактирования конфигурационных файлов вручную.
Примеры базовых цветов текста: 30 – черный, 31 – красный, 32 – зеленый, 33 – желтый, 34 – синий, 35 – пурпурный, 36 – голубой, 37 – белый. Фон задается числами 40–47 в аналогичном порядке. Для восстановления стандартного цвета используется код \e[0m.
Настройка постоянных цветов для разных пользователей

Для каждого пользователя в Linux можно задать индивидуальные цвета терминала, редактируя файлы конфигурации оболочки. В Bash это ~/.bashrc, в Zsh – ~/.zshrc. Добавление escape-последовательностей напрямую в эти файлы позволит применять цвета при каждом запуске терминала.
Пример настройки текста и фона в Bash:
Чтобы сделать цвет постоянным, добавьте в ~/.bashrc:
PS1=’\[\e[37;44m\]\u@\h:\w\$ \[\e[0m\]’
Это изменит цвет текста на белый, а фон на синий для командной строки пользователя. Для Zsh аналогично используется переменная PROMPT:
PROMPT=’%F{white}%K{blue}%n@%m:%~%f%k $ ‘
Если система имеет несколько пользователей, следует настроить соответствующие файлы ~/.bashrc или ~/.zshrc для каждого. Администратор может автоматизировать установку через /etc/skel/ – при создании нового пользователя нужные настройки копируются автоматически.
Для систем с графическими эмуляторами терминала, такими как GNOME Terminal, можно использовать профили, где задаются цвет текста и фона, а затем назначить профиль конкретному пользователю через dconf или интерфейс настроек.
Комбинация редактирования конфигурационных файлов и использования профилей гарантирует, что выбранные цвета будут постоянными при любом запуске терминала для каждого пользователя.
Проверка и отладка цветовых настроек в терминале

Базовая проверка поддержки цветов выполняется командой:
tput colors
Она возвращает количество цветов, поддерживаемых терминалом. Для большинства современных терминалов это 256.
Чтобы протестировать конкретные цвета текста и фона, можно использовать цикл:
for i in {0..255}; do
echo -e "\e[38;5;${i}mЦвет ${i}\e[0m"
done
Для фоновых цветов замените 38 на 48. Это позволяет визуально определить читаемость и контраст.
Если цвета не отображаются как ожидается:
- Проверьте, что переменные окружения
TERMустановлены корректно, напримерxterm-256color. - Перезапустите терминал после изменения
~/.bashrcили~/.zshrc, чтобы применились новые настройки. - Используйте
dircolors -pдля просмотра текущих правил цветов дляlsи изменяйте их при необходимости.
echo -e "\e[0;31mТест\e[0m" | cat -v
Это покажет фактические управляющие символы и поможет понять, какие последовательности применяются и где могут возникать конфликты.
Если используется терминал с графическим интерфейсом, проверьте настройки профиля на предмет переопределения цветов, так как они могут иметь приоритет над системными настройками.
Вопрос-ответ:
Как изменить цвет текста в терминале Linux для конкретного пользователя?
Для изменения цвета текста для отдельного пользователя можно редактировать его файл настроек оболочки, например ~/.bashrc или ~/.zshrc. Добавьте в него escape-последовательности ANSI с нужным цветом, например: PS1="\[\e[32m\]\u@\h:\w\$ \[\e[0m\]". Это установит зелёный цвет для приглашения команд. После редактирования файла нужно выполнить source ~/.bashrc, чтобы изменения вступили в силу.
Можно ли менять цвет вывода отдельных команд без изменения общего цвета терминала?
Да, для отдельных команд можно использовать ANSI-коды в комбинации с командой echo или оболочкой. Например, echo -e "\e[31mОшибка\e[0m" выведет слово «Ошибка» красным цветом, а остальные команды будут отображаться стандартным цветом. Также можно использовать алиасы для часто используемых команд с нужным цветом.
Как проверить, какие цвета поддерживает мой терминал?
Большинство современных терминалов поддерживают 256 цветов, но это можно проверить командой tput colors. Если терминал возвращает число 8, значит поддерживаются только базовые цвета. Также можно использовать тестовые скрипты, которые выводят таблицу цветов, чтобы убедиться, какие оттенки отображаются корректно.
Можно ли настроить разные цвета для фоновых и текстовых элементов одновременно?
Да, можно задать как цвет текста, так и фон, используя escape-последовательности. Например, echo -e "\e[37;44mТекст на синем фоне\e[0m" выведет белый текст на синем фоне. При этом код \e[0m сбрасывает цвета к стандартным после вывода, чтобы дальнейшие команды не наследовали настройки.
Как сделать постоянные цветовые настройки для всех терминальных сессий?
Для постоянных изменений нужно добавить соответствующие настройки в конфигурационные файлы оболочки. В Bash это ~/.bashrc, в Zsh — ~/.zshrc. Например, можно определить переменные PS1 с цветами для приглашения команд или создать функции для цветного вывода. После редактирования файлов необходимо перезапустить терминал или выполнить source ~/.bashrc, чтобы настройки применились.
