Открыть сервис

GNU Screen: терминальный мультиплексор

GNU Screen — это свободная компьютерная программа, терминальный мультиплексор, позволяющая запускать несколько независимых сеансов работы в одном терминале и управлять ими. Программа разработана в рамках проекта GNU и распространяется под лицензией GPL. Screen обеспечивает возможность отсоединения (detach) сеанса от терминала и последующего повторного подключения (attach) к нему, что делает её незаменимым инструментом для работы на удалённых серверах через SSH.

История

Разработка GNU Screen началась в 1987 году. Автором первой версии является Оливер Лауб (Oliver Laub). В 1990 году программа была включена в состав проекта GNU. На протяжении многих лет Screen оставался стандартным терминальным мультиплексором в большинстве дистрибутивов Linux и Unix-подобных систем. В 2007 году вышла стабильная версия 4.0, а в 2014 году — версия 4.3. Разработка продолжается, однако в последние годы Screen уступает по популярности более современному аналогу — tmux, который предлагает более гибкую архитектуру клиент-сервер.

Основные возможности

Screen функционирует как прослойка между терминалом и запущенными процессами. Ключевые функции программы включают:

  • Мультиплексирование: создание нескольких независимых окон и виртуальных экранов внутри одного терминала.
  • Отсоединение и повторное подключение: процесс сеанса продолжает работать в фоновом режиме даже после закрытия терминала. Пользователь может вернуться к нему с любого другого устройства.
  • Параллельное отображение: возможность разделения экрана на несколько областей (регионов), в каждой из которых отображается отдельное окно.
  • Совместное использование: несколько пользователей могут подключаться к одному сеансу Screen, что позволяет организовать коллективную работу в терминале.
  • Скроллбэк: ведение буфера прокрутки для каждого окна.
  • Копирование и вставка: реализация буфера обмена, работающего независимо от X Window System.

Устройство и принцип работы

Screen работает по модели клиент-сервер, хотя и не так явно, как tmux. При запуске программа создаёт серверный процесс, который управляет виртуальными терминалами (pty). Каждый виртуальный терминал связан с конкретным приложением. Клиентская часть (сам процесс screen в терминале пользователя) взаимодействует с сервером через сокет Unix.

Управление программой осуществляется через горячие клавиши. По умолчанию командной клавишей (префиксом) является Ctrl+A. После нажатия префикса вводится команда. Основные команды:

  • Ctrl+A c — создать новое окно;
  • Ctrl+A n / Ctrl+A p — переключение на следующее/предыдущее окно;
  • Ctrl+A "список окон;
  • Ctrl+A d — отсоединить сеанс (detach);
  • Ctrl+A S — разделить экран по горизонтали;
  • Ctrl+A Tab — переключение между регионами.

Конфигурация программы хранится в файле .screenrc в домашней директории пользователя. В нём можно задавать приветственное сообщение, назначать собственные сочетания клавиш, настраивать цветовую схему и автоматически запускать определённые приложения при старте.

Применение

GNU Screen широко используется системными администраторами и разработчиками для:

  • Поддержания длительных процессов (например, сборки программ, резервного копирования) при нестабильном интернет-соединении: при обрыве SSH-соединения сеанс не прерывается.
  • Организации рабочего пространства на удалённом сервере без необходимости открытия множества SSH-соединений.
  • Запуска интерактивных программ (например, текстовых редакторов, IRC-клиентов) в фоновом режиме.
  • Демонстрации экрана при коллективной работе или обучении.

Ограничения

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

Сравнение с tmux

Основное отличие tmux от Screen заключается в использовании модели «сервер—клиент» с раздельными процессами для каждого сеанса, что упрощает управление и повышает надёжность. tmux также поддерживает более современные функции, такие как вложенные сессии и скриптование через командную строку. Однако Screen легче в освоении для базовых задач и требует меньше системных ресурсов.

Источники

  • Официальная документация GNU Screen (GNU Screen User's Manual).
  • Сайт проекта GNU (www.gnu.org/software/screen).
  • Руководство по администрированию Linux (man pages).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →