При работе в терминале как удалённо так и локально, часто возникает необходимость запустить долго выполняющийся процесс и «свернуть» его, чтоб при закрытии консоли или разъединении соединения исполняемый процесс не прервался.
Как пример вам необходимо сделать дамп большой БД, который может делаться несколько часов, вы запускаете команду и сворачиваете этот процесс, а в терминале можете заниматься другими задачами, при необходимости можно всегда вернутся к этому окну где у вас делается Дамп и посмотреть, что да как там.
Напишу краткую инструкцию по работе с наиболее популярными.
Оконный менеджер Screen в Linux
Screen — это консольная утилита для управления несколькими сессиями в рамках одного терминала в Linux и других Unix‑подобных системах. По сути, она создаёт виртуальные терминалывнутри одного физического соединения. Это особенно полезно при работе через SSH: если соединение прервётся, запущенные процессы не завершатся — их можно будет восстановить после повторного подключения.
Ключевая особенность Screen — возможность «откреплять» (detach) и «подключать» (attach)сессии. Например, вы запустили долгий процесс (компиляцию, загрузку файла и т. д.), затем открепили сессию и вышли из системы. Позже, подключившись снова, вы можете вернуться к тойже сессии и увидеть, что процесс завершился или всё ещё выполняется. Это делает screen незаменимым инструментом для администрирования серверов, где стабильность и непрерывность работы критически важны.
# Запуск новой сессии screen
screen
# Запуск новой сессии с заданным именем (удобно для идентификации)
screen -S my_session_name
# Просмотр списка всех существующих сессий screen
# Показывает ID сессии, её статус (Attached/Detached) и название
screen -ls
# Подключение к откреплённой (Detached) сессии
# Если есть только одна сессия — подключается к ней
screen -r
# Подключение к конкретной сессии по имени или ID
# Замените "session_id_or_name" на реальное значение из вывода screen -ls
screen -r session_id_or_name
# Принудительное переподключение к сессии, которая уже подключена где‑то ещё
# Открепляет сессию с другого терминала и подключает здесь
screen -d -r
# Альтернативный вариант принудительного переподключения (более явный)
screen -dr
# Завершение конкретной сессии screen извне (из другого терминала)
# Указывает имя сессии, которую нужно завершить
screen -X -S my_session_name quit
# Отправка команды в работающую сессию screen без подключения к ней
# Пример: отправка команды "clear" в окно №0 сессии "my_session_name"
screen -S my_session_name -p 0 -X stuff "clear^M"
# Создание нового окна внутри текущей сессии screen (выполняется уже внутри screen)
# Эквивалентно нажатию Ctrl+a, c
screen -p -X screen
# Вывод справки по всем доступным опциям команды screen
screen --help
# Полный выход из сессии screen (завершение всех окон и сессии)
# Выполняется внутри сессии: Ctrl+a, \ или команда ниже
# screen -X quit
Горячие клавиши внутри сессии screen
Все сочетания начинаются с префикса Ctrl + a, после которого нажимается вторая клавиша.
Управление окнами:
- Ctrl + a, c — создать новое окно.
- Ctrl + a, w — показать список всех окон.
- Ctrl + a, « — интерактивное меню выбора окна (можно выбрать стрелками).
- Ctrl + a, n — перейти к следующему окну.
- Ctrl + a, p — перейти к предыдущему окну.
- Ctrl + a, 0–9 — перейти к окну с номером от 0 до 9.
- Ctrl + a, A — переименовать текущее окно.
Разделение экрана:
- Ctrl + a, S (заглавная S) или :split — разделить экран по горизонтали (создаёт область снизу).
- Ctrl + a, | или :split -v — разделить экран по вертикали (в новых версиях).
- Ctrl + a, Tab или :focus — переключиться между разделёнными областями.
- Ctrl + a, X или :remove — закрыть активную разделённую область.
- Ctrl + a, Q или :only — закрыть все области, кроме текущей (оставить только одно окно).
Работа с сессией:
- Ctrl + a, d — открепить сессию (detach) и выйти из
screen, оставив процессы работать в фоне. - *Ctrl + a, * — завершить всю сессию
screen(с подтверждением). - Ctrl + a, k — закрыть текущее окно (с подтверждением).
Оконный менеджер Tmux в Linux
Tmux (сокращение от terminal multiplexer) — это мощный оконный менеджер для терминала вLinux и других Unix‑подобных системах. Программа позволяет в рамках одного терминаласоздавать и управлять несколькими сессиями, окнами и панелями (панелями называютразделенные области внутри окна).
Ключевая особенность tmux — возможность отсоединять и повторно присоединять сессии. Это значит, что запущенные в терминале процессы продолжают работать даже после закрытия SSH‑подключения или завершения сеанса. Позже можно подключиться к той же сессии и увидеть,что происходило в ваше отсутствие. Такая функциональность незаменима при работе судалёнными серверами: например, если интернет‑соединение прервалось, вы не потеряетезапущенные задачи (длительные вычисления, фоновые сервисы, скрипты).
Основные возможности и практическое применение
Tmux предлагает ряд инструментов, которые делают работу в терминале удобнее и продуктивнее:
- Сессии — независимые рабочие пространства. Можно запустить несколько сессий для разныхпроектов и переключаться между ними.
- Окна — аналоги вкладок внутри сессии. Каждое окно может содержать один процесс илинабор панелей.
- Панели — разделенные области экрана внутри окна. Например, можно одновременно видетьредактор кода в одной панели и вывод логов в другой.
- Горячие клавиши — управление всеми элементами с помощью сочетаний клавиш (поумолчанию префикс —
Ctrl+B). Это позволяет быстро создавать, разделять, перемещать изакрывать панели без использования мыши. - Сохранение состояния — даже при обрыве соединения сессия остаётся активной на сервере.Подключитесь снова и продолжайте работу с того же места.
На практике tmux используют:
- системные администраторы — для мониторинга нескольких серверов и сервисоводновременно;
- разработчики — для параллельной работы с редактором кода, терминалом сборки и выводомтестов;
- аналитики данных — для запуска длительных вычислений и отслеживания их прогресса.
Отличия от Screen:
- tmux предпочтительнее для современной работы: удобнее панели, гибкая настройка, активное развитие, лучшая поддержка Unicode.
- screen может подойти, если нужна максимальная совместимость со старыми системами или выуже привыкли к его командам.
Оконный менеджер Byobu в Linux
Byobu — это текстовый менеджер окон и терминальный мультиплексор, упрощающий работу с GNU Screen и Tmux. Инструмент позволяет запускать несколько программ в фоне в рамках однойконсольной сессии и восстанавливать подключение к ней после переподключения (например, приразрыве SSH‑соединения). Byobu отображает строку состояния с системной информацией(загрузка ЦП, памяти, дата и время и т. д.) в нижней части экрана без сложных настроек. Подходит для администрирования серверов и длительных процессов (компиляция, бэкапы и т. п.).
Ключевые преимущества Byobu:
- интуитивно понятные горячие клавиши на базе функциональных клавиш (F1–F12) вместосложных комбинаций Ctrl;
- готовая строка состояния «из коробки»;
- выбор бэкенда (Tmux или Screen) через настройки;
- поддержка разделения экрана на панели и навигации между ними;
- сохранение сессий при разрыве соединения.
Основные команды и горячие клавиши
Базовые команды в терминале:
byobu— запустить Byobu (восстановить существующую или создать новую сессию);byobu new -s <имя>— создать сессию с указанным именем;byobu -S <имя_сессии>— подключиться к именованной сессии;byobu-version— проверить версию;byobu-config— открыть меню настроек (альтернатива F9).
Горячие клавиши (по умолчанию):
- Управление окнами:
- F2 — создать новое окно;
- F3 / F4 — перейти к предыдущему / следующему окну;
- Ctrl+a 0–9 — переключиться на окно по номеру;
- F8 — переименовать текущее окно;
- Ctrl+a k — закрыть текущее окно.
- Сессии:
- F6 — отсоединиться от сессии (процессы продолжают работать);
- Shift+F6 — отсоединиться без logout;
- Ctrl+Shift+F2 — создать новую сессию.
- Разделение экрана (панели):
- Shift+F2 — разделить экран горизонтально;
- Ctrl+F2 — разделить экран вертикально;
- Shift+F3 / Shift+F4 — переместить фокус на предыдущую / следующую зону;
- Ctrl+F6 — удалить активную панель;
- Shift+F11 — развернуть панель на весь экран (и обратно).
- Прокрутка и копирование:
- F7 или Alt+PgUp / Alt+PgDn — войти в режим прокрутки (копирования);
- Space — начать выделение текста;
- Enter — скопировать выделенный текст;
- Alt+Insert или Ctrl+a ] — вставить скопированное.
- Прочее:
- F5 — перечитать профиль;
- F9 — открыть меню настроек;
- Shift+F1 — показать справку по горячим клавишам;
- Ctrl+a R — перезагрузить профиль.
