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

Как пользоваться screen — простой мультиплексор терминала

7 min read Терминал Обновлено 22 Nov 2025
Как пользоваться screen — терминальный мультиплексор
Как пользоваться screen — терминальный мультиплексор

Терминал с несколькими сеансами screen

Зачем нужен screen

screen — это программа для Unix-подобных систем, называемая «терминальный мультиплексор». Она позволяет:

  • запускать несколько терминальных «окон» или сеансов внутри одного логина;
  • отсоединять (detach) сеанс и оставлять задачи выполняться в фоне;
  • повторно подключаться (reattach) к сеансу с того же или другого терминала/машины;
  • сохранять долгие задачи при выходе из графической сессии или разрыве SSH.

Коротко: screen освобождает вас от необходимости держать открытой оболочку ради одной долгой команды.

Установка

screen доступен почти во всех дистрибутивах. Примеры установки:

# Debian / Ubuntu / Mint
sudo apt install screen

# Fedora / RHEL
sudo dnf install screen

# Arch Linux
sudo pacman -S screen

# macOS (Homebrew)
brew install screen

Установится быстро, зависимости минимальные.

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

Первый сеанс

Запускать команды в screen можно по-разному. Самый простой способ — запустить интерактивную сессию и внутри неё открыть редактор или другую программу:

screen -S mysession
# внутри: nano mte_screen.txt

Или, если хотите сразу запустить команду в новом сеансе и оставить её в фоне:

# создать именованный сеанс и запустить команду в отсоединённом режиме
screen -dmS backup 7z a archive.7z /path/to/files

Пример простого запуска nano в отдельном сеансе (альтернатива предыдущему способу):

screen -S notes -U bash -c 'nano mte_screen.txt; exec bash'

Если предпочитаете минимализм, можно просто выполнить:

screen
# откроется новая сессия с интерпретатором; внутри запускаете что нужно, затем Ctrl-a d для отсоединения

Первый сеанс в screen

Как отсоединиться от сеанса

Внутри активного сеанса используйте стандартное сочетание клавиш:

  • Ctrl-a d — отсоединить текущую сессию (detach)

После этого редактор или программа продолжат работу в фоне, а вы вернётесь в исходный терминал. Terminal выведет строку вида:

[detached from 14384.pts-0.hostname]

Отсоединение сеанса

Как снова подключиться к сеансу

Если у вас только один активный сеанс, простая команда вернёт вас в него:

screen -r

Когда сессий несколько, сначала получите список, затем подключитесь к нужной.

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

Команда для просмотра всех сеансов:

screen -ls

Вы увидите что-то типа:

There are screens on:
    14384.mysession (Detached)
    14336.notes (Detached)
2 Sockets in /run/screen/S-youruser.

Подключение по идентификатору или по имени:

# по id
screen -r 14384

# по имени
screen -r mysession

# если нужно принудительно отсоединить сессию от другого терминала и подключиться
screen -d -r 14384

Список сеансов screen

Полезные приёмы и флаги

  • screen -S name — создать именованный сеанс (удобно для автоматизации и распознавания);
  • screen -dmS name command — запустить команду в новом именованном сеансе и сразу отсоединиться;
  • screen -ls — перечислить сеансы;
  • screen -r — повторно подключиться;
  • screen -d -r — отсоединить и подключиться (полезно при «занятом» сеансе);
  • Ctrl-a c — создать новое окно внутри сеанса;
  • Ctrl-a n / Ctrl-a p — перейти к следующему/предыдущему окну;
  • Ctrl-a 0..9 — перейти к окну с указанным номером (0–9);
  • Ctrl-a “ — список окон для выбора;
  • Ctrl-a A — задать заголовок (title) текущего окна;
  • Ctrl-a k — убить (kill) текущее окно;
  • Ctrl-a [ — войти в режим копирования/просмотра буфера (для прокрутки вывода);
  • Ctrl-a H — начать логирование текущего окна в файл (включить/выключить запись).

Когда seans завершается сам по себе

Если вы запускали команду непосредственно через screen (screen -dmS name command), и эта команда завершилась, seанс может закрыться автоматически. Чтобы seанс оставался живым после завершения команды, создавайте интерактивную оболочку в сеансе или добавьте команду, которая удерживает оболочку, например:

screen -S longjob bash -c 'long-running-command; echo "done"; exec bash'

Или вручную выполните screen, затем внутри уже запустите нужную команду — seанс останется даже если команда завершится и вы не выходите из оболочки.

Работа с удалёнными машинами и разными терминалами

Главная сила screen — независимость от конкретного окна терминала. Вы можете:

  • стартовать задачу по SSH на сервере в сеансе screen и отсоединиться — задача продолжит выполняться;
  • закрыть локальный терминал и позже подключиться с ноутбука и reattach к тому же сеансу;
  • использовать разные эмуляторы терминала (gnome-terminal, Guake, xterm), подключаться к одному сеансу.

Пример: подключились по SSH, запустили бэкап в screen и вышли из SSH — бэкап идёт дальше.

Повторное подключение из другого терминала

Когда screen не подходит или лучше использовать альтернативы

  • Если вы хотите более современную и легко настраиваемую программу с разделением панелей, продвинутой конфигурацией и активным сообществом — рассмотрите tmux. tmux чаще используется в средах, где важны скрипты и плагины.
  • Для простого фонового выполнения одиночной команды подойдёт nohup или systemd-run.
  • Для GUI-сессий и управления задачами на уровне сервисов лучше systemd.

Каждый инструмент имеет свои сильные стороны: screen надёжен и прост; tmux гибче и современнее.

Шпаргалка — ключевые команды и сочетания

  • Создать именованный сеанс: screen -S name
  • Создать и сразу отсоединить: screen -dmS name command
  • Список: screen -ls
  • Подключиться: screen -r [id|name]
  • Принудительно переотключить и подключиться: screen -d -r id
  • Отсоединиться изнутри: Ctrl-a d
  • Новое окно: Ctrl-a c
  • Переключиться: Ctrl-a n / Ctrl-a p / Ctrl-a 0..9
  • Назвать окно: Ctrl-a A
  • Убить окно: Ctrl-a k
  • Режим копирования: Ctrl-a [
  • Начать логирование: Ctrl-a H

Мини-методика для запуска долгих задач (SOP)

  1. Подключитесь по SSH к серверу.
  2. Создайте именованный сеанс: screen -S mytask.
  3. Запустите команду (вручную или через screen -dmS mytask command).
  4. Нажмите Ctrl-a d, чтобы отсоединиться и закрыть SSH, если нужно.
  5. Позже подключитесь: screen -r mytask, проверьте лог или статус задачи.
  6. По окончании завершите процесс или закройте сеанс Ctrl-a k в нужном окне.

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

  • Сессии screen наследуют права пользователя, от которого они запущены. Не запускайте screen от root без явной необходимости.
  • Логи можно включить (Ctrl-a H). Следите, чтобы логи не содержали секретов и были защищены правами доступа.
  • При работе на многопользовательном сервере проверяйте права на сокеты screen (обычно в /run/screen или /var/run/screen).

Полезные трюки и расширенные примеры

  • Запустить команду и оставить оболочку открытой по завершении:
screen -S demo bash -c 'sleep 60; echo done; exec bash'
  • Автоматический запуск скрипта в фоне при старте системы: используйте системный системный менеджер (systemd) или crontab @reboot; screen можно вызвать из этих механизмов, но учтите, что процессы должны иметь корректные переменные окружения.

Сравнение с tmux (коротко)

  • Простота: screen выигрывает по простоте и наличию во всех старых дистрибутивах.
  • Конфигурирование: tmux гибче, лучше для сложных скриптов и раскладок.
  • Совместимость: screen работает практически везде.

Выбор зависит от привычек и требований. Для базового мультизадачности screen — отличный выбор.

Когда screen может подвести

  • Если вы хотите пользоваться современными терминальными «кладками» и тонкой настройкой макросов, screen менее удобен.
  • В редких случаях старые сборки screen могут иметь несовместимости с некоторыми эмуляторами терминала; тогда обновление или переход на tmux решают проблему.

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

  • Подумайте о screen как о «несгораемом» контейнере для сеанса терминала: вы можете закрыть панель, но контейнер остаётся.
  • Именуйте сеансы для ясности: name = «host-task» или «project-role».
  • Используйте отдельные окна для долгих задач и мониторинга, чтобы не смешивать логи и интерактивную работу.

Решение: когда создать именованный сеанс

flowchart TD
  A[Нужно ли оставить задачу после выхода?] -->|Да| B[Создать именованный сеанс]
  A -->|Нет| C[Запустить команду обычным способом]
  B --> D{Команда должна запускаться в фоне?
}
  D -->|Да| E[screen -dmS name command]
  D -->|Нет| F[screen -S name, запустить внутри команду]
  E --> G[Отсоединиться]
  F --> G
  G --> H[Позже: screen -r name]

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

  • Умею создавать именованные сеансы и подключаться к ним;
  • Могу запускать задачу в фоне так, чтобы она продолжала работать после отсоединения;
  • Могу просмотреть список сеансов и корректно выбрать нужный;
  • Знаю базовые сочетания клавиш: Ctrl-a d, Ctrl-a c, Ctrl-a n/p, Ctrl-a A.

1‑строчный глоссарий

  • Сеанс (session): изолированный экземпляр экрана, где выполняется оболочка или команда.
  • Окно (window): виртуальная вкладка внутри сеанса screen.
  • Отсоединение (detach): действие, которое закрывает клиентскую привязку к сеансу, оставляя сеанс живым.
  • Reattach: подключение обратно к уже существующему сеансу.

Быстрый чеклист для ролей

  • Системный администратор: создавайте именованные сеансы для бэкапов и мониторинга, используйте screen -dmS в cron/systemd.
  • Разработчик: используйте окна для параллельной отладки, логов и запуска тестов.
  • Аналитик/учёный данных: запускайте долгие вычисления по SSH через screen и отсоединяйтесь при необходимости.

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

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

Важно: практикуйтесь с основными сочетаниями клавиш и именуйте сеансы — это сразу повысит вашу продуктивность.

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

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

Xbox Game Pass на Android — как настроить и играть
Гайды

Xbox Game Pass на Android — как настроить и играть

Remote Play Together в Steam: как играть с друзьями
Игры

Remote Play Together в Steam: как играть с друзьями

Активация ключа Steam — как добавить игру
Игры

Активация ключа Steam — как добавить игру

Безопасный режим PS5: как войти и что делать
Игры

Безопасный режим PS5: как войти и что делать

Исправление нестабильного Ethernet в Windows 10
Сеть

Исправление нестабильного Ethernet в Windows 10

Настройка Welcome Hub на PS5 — руководство
Игры

Настройка Welcome Hub на PS5 — руководство