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

GNU Screen в Linux — краткое руководство

5 min read Linux Обновлено 17 Dec 2025
GNU Screen в Linux — краткое руководство
GNU Screen в Linux — краткое руководство

GNU Screen — простой и надёжный терминальный мультиплексор для Linux. Установите пакет, запустите screen, отсоединяйтесь сочетанием клавиш и возвращайтесь с помощью screen -d -r. В статье есть готовые команды, чек‑лист для операций и советы по отладке “Dead” сессий.

Логотип или скриншот начального экрана GNU Screen

Быстрые ссылки

  • Using The GNU Screen Utility

Что такое GNU Screen

GNU Screen — это терминальный мультиплексор. Он создаёт несколько виртуальных терминалов внутри одной реальной сессии. Это полезно, если вы хотите:

  • Запустить несколько консолей в одном SSH-подключении.
  • Не потерять процессы при разрыве сети.
  • Переключаться между долгими фоновыми задачами.

Определение в одну строку: Screen сохраняет ваши сессии вне зависимости от состояния родительского терминала.

Установка

В Debian/Ubuntu достаточно одной команды:

sudo apt install screen

Установка GNU Screen в терминале

Если у вас RedHat/CentOS/Fedora, замените apt на yum или dnf в зависимости от версии дистрибутива.

Первый запуск и сплэш-экран

Чтобы открыть новую виртуальную консоль, выполните:

screen

При первом запуске появится сплэш-экран. Для продолжения нажмите пробел или Enter.

Сплэш-экран GNU Screen с подсказками управления

После закрытия сплэша вы окажетесь внутри виртуальной сессии. Внешне приглашение командной строки не изменится, но теперь вы работаете в рамках screen.

Важно: даже при закрытии родительского терминала процессы в screen продолжают работать.

Как понять, что вы в сессии Screen

Проверьте переменную окружения $STY. Простая проверка в bash:

if [ -n "$STY" ]; then
  echo "Вы в сессии screen: $STY"
else
  echo "Вы не в сессии screen"
fi

Если переменная $STY установлена, вы находитесь внутри screen.

Отсоединение и повторное подключение

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

  • Нажмите Ctrl+A, затем Ctrl+D

Это действие “детачит” (detach) сессию. Сессия остаётся живой в фоновом режиме.

Чтобы снова подключиться, выполните:

screen -d -r 

Команда screen -d -r попытается отсоединить и повторно подключить указанную сессию. Если у вас только одна сессия, можно выполнить просто:

screen -r

Просмотр списка сессий

Чтобы увидеть все текущие screen-сессии на машине:

screen -list

Состояние сессии будет помечено как Detached или Attached в зависимости от того, подключены вы к ней или нет.

Прокрутка буфера внутри screen

Если вывод длиннее видимой области терминала, используйте режим копирования (copy/scrollback):

  • Нажмите Ctrl+Esc (или Ctrl+A, затем Esc в некоторых конфигурациях). Это включает режим прокрутки.
  • Теперь можно использовать стрелки вверх/вниз или мышь для навигации.
  • Нажмите Esc, чтобы выйти из режима.

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

Обработка “Dead” сессий

Иногда запущенная внутри screen программа аварийно завершится. Тогда screen покажет такую сессию как “Dead” в выводе screen -list. Чтобы очистить такие записи, используйте:

screen -wipe

Пример очищенной или удалённой сессии GNU Screen

Документация и справка

Встроенная документация доступна через man:

man screen

Страница справки man screen

Читайте man для полного списка опций, включающих именованные сессии, логирование и тонкие настройки поведения.

Быстрая шпаргалка команд

  • Установить: sudo apt install screen
  • Запустить сессию: screen
  • Отсоединиться: Ctrl+A, Ctrl+D
  • Список сессий: screen -list
  • Повторное подключение: screen -r или screen -d -r
  • Очистить мёртвые сессии: screen -wipe
  • Документация: man screen

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

  1. Запуск долгого процесса через SSH:
  • Открываете screen, запускаете процесс (например сборку или резервную копию).
  • Отсоединяетесь (Ctrl+A, Ctrl+D) и закрываете SSH. Процесс продолжит работать.
  • Позже подключаетесь и возобновляете контроль.
  1. Работа с несколькими службами:
  • В одной сессии запускаете редактор, в другой — мониторите логи, в третьей — запускаете тесты.
  • Переключаетесь между окнами Screen с помощью Ctrl+A, затем номер окна.

Когда GNU Screen не подходит

  • Если вам нужна богатая HTML‑консольная интеграция или графические вкладки — рассмотрите tmux или терминал с вкладками.
  • Для сложной программируемой автоматизации сессий лучше tmux: у него более развитые скриптовые возможности и подключаемые плагины.

Альтернативы и сравнение

  • tmux — современная альтернатива с более гибкой конфигурацией и scripting API.
  • dtach — минималистичный демон для отсоединения, если вам не нужны дополнительные функции Screen.

Нельзя однозначно сказать, что одно решение лучше для всех. Screen прост и широко доступен, tmux предлагает больше возможностей для power‑пользователей.

Чек‑лист администратора

  • Установить пакет на целевой машине.
  • Настроить права для логирования, если нужно.
  • Проверить работу отсоединения/подключения в тестовой сессии.
  • Настроить мониторинг долгих процессов внутри screen (логи, уведомления).

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

  • Можно отсоединиться и вернуть контроль к сессии без потери процесса.
  • Команда screen -list показывает корректные состояния Attached/Detached.
  • Dead сессии корректно удаляются screen -wipe.
  • Пользователь понимает, как прокручивать вывод внутри сессии.

Мини‑методология для безопасного запуска фоновых задач

  1. Создайте screen-сегмент с понятным именем: screen -S backup-job
  2. Запустите процесс и убедитесь в выводе логов.
  3. Отсоединитесь Ctrl+A, Ctrl+D и закройте SSH.
  4. Проверяйте состояние сессии через screen -list или подключайтесь при необходимости.

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

Администратор:

  • Установить и обновить screen
  • Настроить ротацию логов для фоновых задач

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

  • Использовать screen для локальной отладки
  • Давать понятные имена сессиям screen -S

Оператор:

  • Мониторить состояние screen -list
  • Очищать Dead сессии screen -wipe

Примеры тестов и критерии приёмки

  • Тест 1: Запустить процесс в screen, отсоединиться, разорвать SSH, переподключиться — процесс должен быть жив.
  • Тест 2: Умышленно завершить процесс внутри screen и убедиться, что запись помечена как Dead, затем выполнить screen -wipe.

Простая логика принятия решения

flowchart TD
  A[Нужно ли сохранить процесс при закрытии терминала?] -->|Да| B[Использовать Screen или tmux]
  A -->|Нет| C[Обычный терминал]
  B --> D{Требуется скриптование и плагины?}
  D -->|Да| E[Выберите tmux]
  D -->|Нет| F[Выберите GNU Screen]

Риски и рекомендации по безопасности

  • Screen сам по себе не шифрует данные — используйте SSH для защищённого доступа.
  • Следите за правами на сокеты и временные файлы, если вы запускаете screen от разных пользователей.

Короткое резюме

GNU Screen остаётся быстрым и надёжным инструментом для управления виртуальными терминалами. Он прост в установке и использовании, хорошо подходит для сохранения долгих задач при разрыве сессий. Для продвинутых сценариев рассмотрите tmux.

Важно: практикуйтесь с detach/attach и попробуйте именованные сессии (screen -S name) — это упростит управление несколькими задачами.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Супер макро фотография — практическое руководство
Фотография

Супер макро фотография — практическое руководство

Микрофон тихий — увеличить громкость в Windows 10
Windows

Микрофон тихий — увеличить громкость в Windows 10

Найти серийный номер Windows 11
Windows

Найти серийный номер Windows 11

Как предотвратить XSS: практическое руководство
Веб‑безопасность

Как предотвратить XSS: практическое руководство

Подделать скриншот новости — инструменты разработчика
Гайды

Подделать скриншот новости — инструменты разработчика

Исправить physx3_x86.dll — подробное руководство
Windows

Исправить physx3_x86.dll — подробное руководство