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 →


