Настройка заставки терминала в Linux

Терминал — это «второй дом» для многих пользователей Linux: большую часть времени вы вводите команды, поэтому удобно и приятно видеть информативную и аккуратную заставку при запуске. Linux позволяет изменить практически любой аспект терминала: цветовую схему, шрифты, поведение и саму заставку.
В этой статье подробно показано, как настроить заставку терминала в Linux: где хранится конфигурация, какие утилиты можно использовать, шаблоны для .bashrc и рекомендации по безопасности и совместимости.
Шаг 1: Найдите файл конфигурации оболочки
Эмулятор терминала — это интерфейс для «подкапотной» оболочки. По умолчанию в большинстве дистрибутивов используется Bash; если вы предпочитаете другую оболочку (например, Zsh), её можно сменить с помощью chsh.
Каждая оболочка хранит свой конфигурационный файл в домашней папке пользователя. Для Bash это файл .bashrc, для Zsh — .zshrc.
Откройте файл конфигурации своей оболочки в любимом редакторе. Пример для Bash с Vim:
vim ~/.bashrcВажно: некоторые терминальные эмуляторы запускают оболочку в режимах “login” и “non-login”; конфигурация может читаться из разных файлов (.bash_profile, .bash_login, .profile). В разделе “Совместимость и миграция” ниже есть подробности.
Шаг 2: Добавление содержимого заставки
Для начала добавьте простую строку, чтобы убедиться, что конфиг читается:
echo "Welcome to the Terminal!"Сохраните файл, закройте терминал и откройте заново. Если сообщение появилось — можно добавлять более интересные элементы.

Показ системной информации
Чтобы вывести красивую сводку о системе, используйте neofetch или screenfetch. Установите выбранную утилиту через пакетный менеджер и добавьте команду в конец .bashrc:
neofetch
# или
screenfetch
Случайные цитаты
Пакет fortune выводит случайные цитаты. Установите его и добавьте:
fortuneНа многих системах хорошо сочетается с cowsay:
fortune | cowsay
ASCII-арт с figlet
Утилита figlet превращает текст в ASCII-арт. Установите её и используйте так:
figlet -cl "Это строка"Где “Это строка” — ваш текст.

Погода и дата
Для вывода погоды удобно использовать wttr.in через curl. Пример для Парижа (замените на ваш город):
curl wttr.in/paris?0Параметр ?0 выводит только текущее состояние. Текущую дату можно добавить через утилиту date:
date
Безопасность и надёжность: выполнять только в интерактивной оболочке
Важно: команды в .bashrc выполняются при каждом запуске оболочки. Если вы добавите к ним длительные сетевые запросы или интерактивные программы, это может ломать автоматические скрипты и SSH-сессии. Чтобы избежать этого, выполняйте заставку только в интерактивной оболочке.
Пример безопасной обёртки:
# Выполнять только в интерактивной оболочке
case $- in
*i*)
# сюда добавляйте неинтерактивный вывод заставки
neofetch
fortune | cowsay
;;
*)
;;
esacАльтернативный способ проверки интерактивности:
if [ -n "$PS1" ]; then
# интерактивные команды
fiВажно также явно указывать пути к утилитам (например, /usr/bin/neofetch), если вы не уверены в PATH во всех контекстах.
Примеры готовых фрагментов для .bashrc
- Минимальная заставка с проверкой интерактивности:
# ~/.bashrc
case $- in
*i*)
echo "Добро пожаловать, $(whoami)!";
date;
;;
esac- Полный пример с neofetch, fortune и погодой:
case $- in
*i*)
/usr/bin/neofetch --stdout || true
/usr/games/fortune | /usr/games/cowsay || true
/usr/bin/figlet -cl "$(whoami)@$(hostname -s)" || true
/usr/bin/curl -s "wttr.in/$(curl -s ipinfo.io/city 2>/dev/null || echo "")?0" 2>/dev/null || true
date
;;
esacПримечание: в примере выше используются явные пути и оператор || true, чтобы ошибки внешних команд не прерывали загрузку оболочки.
Когда заставка может не работать
- Если вы редактируете неправильный файл: Bash может читать .bash_profile или .profile вместо .bashrc в зависимости от режима запуска.
- Если оболочка не интерактивна (например, запуск скрипта через cron), проверка интерактивности предотвратит запуск заставки.
- Если в конфиг добавлен код, ожидающий TTY или ввод пользователя, автоматические процессы могут зависнуть.
Альтернативные подходы
- Настроить заставку на уровне терминального эмулятора (например, терминальные профили в GNOME Terminal, Tilix) — удобнее для пользовательского интерфейса.
- Использовать менеджеры конфигураций: хранить шаблон .bashrc в dotfiles и синхронизировать через git.
- Для централизованной информации (погода, уведомления) настроить профиль терминала, который запускает при старте небольшой пользовательский скрипт.
Методика безопасного развертывания (мини-руководство)
- Создайте резервную копию текущего конфигурационного файла:
cp ~/.bashrc ~/.bashrc.backup- Добавляйте изменения по одному блоку и проверяйте, перезапуская терминал.
- Убедитесь, что используется проверка интерактивности (case $- или PS1).
- Тестируйте в новой сессии SSH и в автоматических заданиях (cron/CI), чтобы убедиться, что они не ломаются.
Ролевые чек-листы
Для разработчика:
- Добавить имя пользователя/хоста и git-статус текущего репозитория (при желании).
- Не добавлять блокирующие команды.
- Хранить dotfiles в репозитории.
Для системного администратора:
- Выводить краткую информацию о системе (neofetch, uptime).
- Проверить, что заставка не использует нестабильные сетевые сервисы.
- Использовать явные пути к утилитам.
Для новичка:
- Начать с простого echo и date.
- Не копировать сложные скрипты без понимания.
Критерии приёмки
- При открытии новой интерактивной сессии терминала отображается заставка.
- Неинтерактивные задачи (скрипты, cron) выполняются без задержек.
- При удалении или переименовании внешних утилит загрузка оболочки не завершается ошибкой.
Отладка и восстановление
Если после изменения .bashrc терминал не открывается или зависает, откройте новый терминал в режиме без чтения конфигурации или воспользуйтесь TTY (Ctrl+Alt+F3), затем восстановите резервную копию:
cp ~/.bashrc.backup ~/.bashrcСовместимость и миграция
- Bash: .bashrc для интерактивной оболочки, .bash_profile / .profile для login-оболочек. Добавляйте источник .bashrc из .bash_profile при необходимости:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi- Zsh: используйте ~/.zshrc. Многие идеи из Bash можно перенести с минимальными изменениями.
Тонкости безопасности и конфиденциальности
- Внешние вызовы (curl wttr.in, ipinfo.io) передают запросы третьим сторонам — не используйте их, если политика конфиденциальности вашей сети этого не позволяет.
- Никогда не вставляйте в .bashrc непроверенный код из интернета.
- Для команд, требующих токенов или паролей, используйте защищённые способы хранения (например, переменные окружения, менеджеры секретов) и не выводите их в окружение заставки.
Тестовые сценарии
- Интерактивный запуск: откройте новый терминал — заставка отображается.
- SSH-скрипт: запустите удалённый скрипт через SSH — должен выполниться без зависаний.
- Cron: убедитесь, что cron-задачи выполняются, и их вывод не содержит заставки.
- Отсутствие утилит: временно переименуйте neofetch — оболочка не должна падать.
Примеры шаблонов и сниппетов (cheat sheet)
- Минимальный шаблон:
# ~/.bashrc
case $- in
*i*)
echo "Привет, $(whoami)!";
date;
;;
esac- Расширенный шаблон:
case $- in
*i*)
command -v neofetch >/dev/null && neofetch
command -v fortune >/dev/null && command -v cowsay >/dev/null && fortune | cowsay
command -v figlet >/dev/null && figlet -cl "$(whoami)@$(hostname -s)"
command -v curl >/dev/null && curl -s "wttr.in/$(curl -s ipinfo.io/city 2>/dev/null || echo "")?0"
date
;;
esacКраткие подсказки и эвристики
- Правило простоты: ставьте на заставку только ту информацию, которая действительно полезна.
- Избегайте длительных сетевых вызовов при каждом запуске терминала.
- Всегда тестируйте изменения в новой сессии и в автоматизированных задачах.
Частые вопросы
Как сделать так, чтобы заставка не мешала скриптам?
Оберните команды проверкой интерактивной оболочки (case $- или проверка PS1).
Где лучше хранить кастомные скрипты для заставки?
В каталоге ~/bin или в dotfiles-репозитории и укажите абсолютные пути в .bashrc.
Работает ли это в терминале GNOME/konsole/Terminator?
Да: конфигурация оболочки одинакова; однако некоторые эмуляторы могут иметь собственные профили, которые проще настроить через GUI.
Социальный анонс
Настроил(а) заставку терминала в Linux: просто добавьте neofetch, fortune|cowsay, figlet и wttr.in в .bashrc (выполняйте только в интерактивной оболочке). Удобно, информативно и быстро!
Краткое резюме
- Разместите команды заставки в файле конфигурации оболочки (.bashrc или .zshrc).
- Выполняйте вывод только для интерактивных сессий.
- Используйте neofetch, fortune, figlet и wttr.in по необходимости.
- Тестируйте изменения и храните резервную копию конфигурации.
Полезные ссылки и команды для установки (развернутое руководство по пакетам)
- Ubuntu/Debian:
sudo apt install neofetch fortune-mod figlet cowsay curl- Arch Linux:
sudo pacman -S neofetch fortune-mod figlet cowsay curl- Fedora/CentOS:
sudo dnf install neofetch fortune-mod figlet cowsay curlЕсли вам нужна готовая конфигурация .bashrc под ваш набор утилит и стиль оформления, опишите, какие элементы хотите видеть (инфо о системе, погода, ASCII-арт, случайные цитаты), и я подготовлю персонализированный шаблон.
Похожие материалы
Запуск Командной строки от имени администратора
Отключить напоминания Facebook Memories и скрыть их
Как управлять cookie в Chrome, Firefox и Edge
Как управлять расширениями в Chrome, Edge, Vivaldi
Добавить пользовательские эмодзи в Discord