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

Настройка заставки терминала в 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
Автор
Редакция

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

Как получить 4 ТБ в iCloud — инструкция
Руководство

Как получить 4 ТБ в iCloud — инструкция

Не найден сканер отпечатков Windows Hello — восстановление
Windows

Не найден сканер отпечатков Windows Hello — восстановление

Новый интерфейс Google Play: как ориентироваться
Руководство

Новый интерфейс Google Play: как ориентироваться

Как записать экран на Mac — руководство
macOS

Как записать экран на Mac — руководство

Как смотреть презентацию iPhone 15 — где и когда
Гаджеты

Как смотреть презентацию iPhone 15 — где и когда

Ремонт Mac: варианты, советы и чеклисты
Ремонт

Ремонт Mac: варианты, советы и чеклисты