Гид по технологиям

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

7 min read Терминал Обновлено 29 Dec 2025
Настройка заставки терминала в Linux
Настройка заставки терминала в Linux

Настройка заставки терминала: пример экранов приветствия

О чём эта статья

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

Почему это полезно

  • Быстрый доступ к системной информации без дополнительных команд.
  • Улучшение рабочего окружения — эстетика и полезность при каждом запуске терминала.
  • Возможность автоматических напоминаний (дата, погода, статус сервисов).

Шаг 1: Найдите файл конфигурации оболочки

Каждая оболочка читает и выполняет свой конфигурационный файл при запуске интерактивной сессии. Расположение обычно в домашней директории пользователя:

  • Bash: ~/.bashrc
  • Zsh: ~/.zshrc
  • Fish: ~/.config/fish/config.fish

Проверьте, какая оболочка у вас установлена, командой:

echo $SHELL

Если хотите сменить оболочку — используйте chsh. Но для настройки заставки достаточно редактировать конфигурацию текущей оболочки.

Откройте конфигурационный файл любым редактором. Пример с Vim:

vim ~/.bashrc

Совет: перед изменением сделайте резервную копию:

cp ~/.bashrc ~/.bashrc.backup

Шаг 2: Проверка: простая строка приветствия

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

echo "Добро пожаловать в терминал!"

Сохраните, закройте редактор и перезапустите терминал. Если сообщение появляется — файл используется оболочкой.

Пример простой строки приветствия в терминале

Шаг 3: Полезные варианты содержимого заставки

Ниже — проверенные варианты, которые можно комбинировать. Добавляйте их в конец конфигурационного файла или в отдельный исполняемый скрипт и запускайте его оттуда.

Системная информация: neofetch / screenfetch

Neofetch и Screenfetch собирают и красиво выводят информацию о системе: дистрибутив, ядро, загрузку процессора, память и т. п.

Установите нужный пакет через менеджер пакетов вашей системы, например:

# Debian/Ubuntu
sudo apt install neofetch

# Arch
sudo pacman -S neofetch

# Fedora/CentOS
sudo dnf install neofetch

Добавьте в ~/.bashrc:

neofetch --ascii_distro Arch

Или для screenfetch:

screenfetch

Перезапустите терминал — увидите красивую панель с информацией.

Neofetch в заставке терминала

Важно: если вы используете удалённые сессии (SSH) и не хотите выводить длинные баннеры в автоматизированных скриптах, окружите вызов условием, которое проверяет интерактивность:

# Выводим только в интерактивной оболочке
if [ -t 1 ]; then
  command -v neofetch >/dev/null && neofetch
fi

Рандомное сообщение: fortune и cowsay

Fortune выводит случайные цитаты; cowsay оформляет текст в виде ASCII‑коровки или другой фигуры.

Установка:

# Ubuntu/Debian
sudo apt install fortune

# Arch
sudo pacman -S fortune-mod

# Fedora/CentOS
sudo dnf install fortune-mod

# cowsay
sudo apt install cowsay

Добавьте в конфигурацию:

# Простой один раз выводим стих/шутку
fortune | cowsay -f tux

Итог — весёлое приветствие. Учтите, что в enterprise‑окружениях использование внешних пакетов может быть ограничено политиками безопасности.

Вывод случайных цитат и ASCII‑арта

ASCII‑арт: figlet и toilet

Figlet преобразует обычный текст в крупный ASCII‑баннер. Toilet — похожая утилита с дополнительными стилями.

Установка:

# Debian/Ubuntu
sudo apt install figlet

# Arch
sudo pacman -S figlet

# Fedora
sudo dnf install figlet

Пример использования:

figlet -c "Hello, Dev"

Добавьте строку в ~/.bashrc или в отдельный скрипт, чтобы при запуске отображался ваш фирменный баннер.

ASCII‑арт в заставке терминала

Погода и дата: wttr.in и date

Для быстрого прогноза используйте публичный сервис wttr.in, который возвращает текстовую сводку погоды.

Установите curl, если его нет:

# Debian/Ubuntu
sudo apt install curl

Добавьте в конфиг:

# Погода для города: замените moscow на ваш город
curl -s "https://wttr.in/moscow?0"

# Текущая дата и время
date '+%A, %d %B %Y  %H:%M:%S'

Параметр ?0 показывает краткий текущий прогноз. Учтите приватность: запрос идёт в публичный сервис. Если вы в корпоративной сети, убедитесь, что политика допускает внешние HTTP запросы.

Погода и дата в заставке

Шаблон: аккуратный и безопасный скрипт заставки

Рекомендуется держать код заставки читаемым и быстро выполняемым. Пример минимального скрипта (~~/bin/welcome.sh):

#!/usr/bin/env bash
# Минимальная заставка: безопасно, быстро, опционально

# Не выполняем в non-interactive режимах
if [ -z "$PS1" ]; then
  return 0
fi

# Функция: вывод текста, если доступен инструмент
maybe_run() {
  command -v "$1" >/dev/null 2>&1 && "$@"
}

# Легкий баннер
maybe_run figlet -- "$(whoami)@$(hostname -s)"

# Системная инфа
maybe_run neofetch --stdout || maybe_run screenfetch

# Рандомная цитата (опционально)
maybe_run fortune | maybe_run cowsay -f tux

# Погода (non-blocking): запускаем в фоне и ограничиваем время
if command -v curl >/dev/null 2>&1; then
  { curl -s "https://wttr.in/moscow?0" | sed -n '1,3p'; } &
fi

# Дата
date '+%A, %d %B %Y  %H:%M:%S'

Сделайте файл исполняемым и добавьте в ~/.bashrc:

chmod +x ~/bin/welcome.sh
# затем в ~/.bashrc
[ -x "$HOME/bin/welcome.sh" ] && "$HOME/bin/welcome.sh"

Такой подход повышает читаемость и упрощает отладку.

Критерии приёмки

  • Заставка появляется при запуске интерактивной оболочки (в новом окне терминала).
  • Скрипт выполняется быстро (не блокирует prompt более 1–2 секунд) или выполняется частично в фоне.
  • Не ломает автоматизированные SSH/cron задачи (т. е. не выводит лишнего в non‑interactive сессиях).
  • Команды защищены проверками наличия утилит (command -v).

Отладка и частые проблемы

  1. Ничего не отображается: проверьте, читается ли файл (echo $SHELL; cat ~/.bashrc). Возможно, система использует ~/.profile или ~/.bash_profile — добавьте вызов вашего файла туда.
  2. Скрипт тормозит: внешние сетевые вызовы (wttr.in) могут блокировать. Вынесите их в фон или кешируйте результат в локальном файле с ограничением по времени.
  3. Автоматические задачи ломаются: убедитесь, что вывод заставки не запускается в non‑interactive сессиях. Используйте проверку [ -t 1 ] или проверку переменной PS1.
  4. Ошибки синтаксиса: проверьте скрипт shellcheck или sh -n script.sh.

Примеры команд для диагностики:

# Проверить, что команда доступна
command -v neofetch || echo "neofetch не найден"

# Проверить исполняемость скрипта
bash -x ~/bin/welcome.sh

Совместимость и миграция

Совместимость по оболочкам:

  • Bash: ~/.bashrc — стандарт для большинства дистрибутивов.
  • Zsh: ~/.zshrc — очень похожая логика, но синтаксис плагинов может отличаться.
  • Fish: использует собственный синтаксис и файл ~/.config/fish/config.fish. Приведённые bash‑скрипты нужно адаптировать.

Миграционные советы:

  • Переход с Bash на Zsh: перенесите логические части в отдельный скрипт и вызывайте его из .zshrc.
  • Fish требует переписывания функций; используйте отдельный скрипт на bash и запускайте его через bash -c, если хотите сохранить исходный код.

Безопасность и приватность

  • Не включайте в заставку вывод чувствительной информации (пароли, токены, ключи).
  • Внешние запросы (wttr.in, обновления, удалённые API) могут раскрывать IP и структуру окружения. Если это неприемлемо — используйте локальные источники или корпоративные API.
  • Проверяйте сторонние утилиты на происхождение перед установкой в production среде.

Роль‑ориентированные чеклисты

Разработчик:

  • Создать ~/bin/welcome.sh с проверками наличия команд.
  • Добавить вызов скрипта в ~/.bashrc при интерактивном запуске.
  • Убедиться, что скрипт не печатает в non‑interactive сессиях.

Системный администратор:

  • Утвердить список сторонних пакетов (neofetch, fortune, figlet) по безопасности.
  • При необходимости разместить аналогичный сервис погоды внутри сети.
  • Организовать резервные копии конфигураций и инструменты управления dotfiles (ansible, dotfiles repo).

Шаблон политики производительности

  • Максимальное время выполнения синхронной части заставки: 1 секунда.
  • Внешние сетевые вызовы выполняются асинхронно или кэшируются 30 минут.
  • Скрипт обеспечивает функцию выключения (ENV var DISABLE_WELCOME=1).

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

# В начале ~/.bashrc
[ "$DISABLE_WELCOME" = "1" ] && return

Примеры расширений и альтернативные подходы

  • Использовать systemd‑таблицы и метрики (systemd‑notify) для вывода состояния сервисов.
  • Для командной панели использовать tmux с собственной конфигурацией, которая отображает статус при старте.
  • Для графического терминала настраивать профиль эмулятора (шрифт, цвет) отдельно от заставки.

Тесты/критерии приёмки

  • Запуск нового терминального окна отображает баннер без задержки >1–2 с.
  • При выполнении ssh host командой без интерактивности вывод отсутствует.
  • Скрипт корректно обрабатывает отсутствие внешних утилит (возвращает 0).

Часто задаваемые вопросы

Q: Где лучше хранить кастомную заставку — прямо в ~/.bashrc или в отдельном скрипте? A: В отдельном исполняемом скрипте (~~/bin/welcome.sh). Это улучшает читаемость, тестируемость и позволяет легко переиспользовать код между оболочками.

Q: Как отключить заставку временно? A: Перед запуском терминала установите переменную окружения DISABLE_WELCOME=1 или закомментируйте вызов в ~/.bashrc.

Примеры конфигураций и сниппеты

Мини‑чеклист по командам установки (Debian/Ubuntu):

sudo apt update
sudo apt install -y neofetch fortune cowsay figlet curl

Простой invite‑скрипт для DevOps:

#!/bin/bash
if [ -t 1 ]; then
  echo "Host: $(hostname) | User: $(whoami)"
  free -h | awk '/Mem:/ {print "RAM: "$3" used / "$2" total"}'
  df -h / | awk 'NR==2{print "Root: " $3 " used of " $2}'
fi

Mermaid: простая схема принятия решения о включении заставки

flowchart TD
  A[Запуск оболочки] --> B{Интерактивная?}
  B -- Да --> C{DISABLE_WELCOME=1?}
  B -- Нет --> Z[Ничего не делаем]
  C -- Да --> Z
  C -- Нет --> D[Запуск welcome.sh]
  D --> E[Вывод не критичных данных]
  E --> Z

Ментальные модели и эвристики

  • Не нагружайте заставку: полезность > украшения. Минимум синхронных сетевых вызовов.
  • Делайте проверку наличия инструментов перед вызовом: это повышает переносимость.
  • Разделяйте презентацию и логику: храните логику в исполняемом скрипте, презентацию оставляйте в простых командных строках.

Локализация и международные нюансы

  • Формат даты в команде date можно локализовать через LC_TIME, например:
LC_TIME=ru_RU.UTF-8 date '+%A, %d %B %Y'
  • Сервисы погоды принимают названия городов на английском; при необходимости используйте координаты или локальные API.

Итог и рекомендации

  • Храните кастомную заставку в отдельном исполняемом скрипте и вызывайте его из файла конфигурации оболочки.
  • Проверяйте интерактивность и наличие утилит.
  • Будьте внимательны к безопасности и приватности при использовании внешних сервисов.

Короткая дорожная карта для внедрения:

  1. Создайте резервную копию ~/.bashrc.
  2. Напишите ~/bin/welcome.sh с проверками и минимальным набором инструментов.
  3. Добавьте условный вызов в ~/.bashrc.
  4. Тестируйте в интерактивной и non‑interactive среде.

Summary:

  • Простой способ добавить в терминал системную информацию, цитаты, ASCII‑арт и погоду.
  • Используйте neofetch, fortune, figlet, curl; объединяйте их через условные вызовы.
  • Соблюдайте безопасность и производительность — избегайте блокирующих сетевых вызовов в синхронной части заставки.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Пересылка почты Outlook ↔ Gmail: полное руководство
Почта

Пересылка почты Outlook ↔ Gmail: полное руководство

Как узнать, что пора менять батарейку AirTag
Гаджеты

Как узнать, что пора менять батарейку AirTag

Как удалить устройства из Google Home
Умный дом

Как удалить устройства из Google Home

Вернуть «Open command window here» в Windows 11
Windows

Вернуть «Open command window here» в Windows 11

Подключение Bluetooth-наушников к Wear OS
Гаджеты

Подключение Bluetooth-наушников к Wear OS

Запустить успешную страницу на Patreon
Монетизация

Запустить успешную страницу на Patreon