Home » Мультиокна в терминале: screen и tmux — настройка и сокращения
Мультиокна в терминале: screen и tmux — настройка и сокращения

Мультиокна в терминале: screen и tmux — настройка и сокращения

О чём эта статья и зачем она нужна?

Если ты хоть раз работал с сервером по SSH, то наверняка сталкивался с ситуацией: запустил долгий процесс, случайно закрыл терминал — и всё, процесс умер. Или нужно быстро переключаться между несколькими сессиями, а плодить кучу вкладок не хочется. Вот тут на сцену выходят мультиокна в терминале — screen и tmux. Это не просто “многооконность” для консоли, а настоящие швейцарские ножи для админа, девопса, разработчика. В этой статье разберём, как они работают, как быстро настроить, какие есть фишки, подводные камни и реальные кейсы применения. Если ты ищешь быстрые решения для серверов (будь то облако, VPS, Docker или дедик), этот гайд для тебя.

Почему мультиокна в терминале — это must-have?

Работа с сервером — это всегда про многозадачность. Нужно следить за логами, редактировать конфиги, ребутить сервисы, и всё это — часто одновременно. Обычный SSH-клиент или терминал не справляется: если сессия оборвалась, все процессы теряются. А если хочется запустить несколько задач — приходится открывать кучу вкладок или окон.

Screen и tmux решают эти проблемы раз и навсегда:

  • Они позволяют запускать несколько сессий внутри одного терминала.
  • Можно отсоединиться (detach) от сессии и вернуться к ней позже (attach), даже если соединение оборвалось.
  • Легко переключаться между окнами, делить экран на панели, копировать текст — и всё это без мышки.

В итоге: меньше головняка, больше контроля, выше надёжность. Особенно если работаешь с VPS или выделенным сервером (VPS, dedicated) — мультиокна экономят время и нервы.

Как это работает? Алгоритмы, структура и немного магии

Screen

Screen — это терминальный мультиплексор. Он создаёт “виртуальный” терминал, который живёт на сервере независимо от твоего SSH-подключения. Ты можешь запускать процессы внутри screen-сессии, отсоединяться, переподключаться — и все процессы будут продолжать работать.

  • Окна — внутри одной сессии можно открывать несколько окон, каждое со своим шеллом или процессом.
  • Детач/аттач — можно отсоединиться от сессии и потом снова к ней присоединиться с любого места.
  • Буфер обмена — есть свой буфер для копипаста (правда, пользоваться им не очень удобно).

tmux

tmux — более современный и гибкий мультиплексор. Принцип тот же: создаёт сессии, окна, панели. Но возможностей больше:

  • Панели — можно делить окно терминала на горизонтальные и вертикальные панели.
  • Гибкая настройка — почти всё кастомизируется: бинды, внешний вид, плагины.
  • Скрипты и автоматизация — легко интегрировать в свои воркфлоу.

В обоих случаях: процессы живут внутри сессии, а не в твоём локальном терминале. Даже если ты отключился или потерял сеть, всё продолжит работать.

Быстрая настройка: как запустить и не облажаться

Установка

Обычно screen и tmux уже есть в системе. Если нет — ставим:

# Для Debian/Ubuntu
sudo apt update
sudo apt install screen tmux

# Для CentOS/RHEL
sudo yum install screen tmux

# Для Arch
sudo pacman -S screen tmux

Базовые команды: screen

  • Запустить новую сессию: screen -S mysession
  • Отсоединиться (detach): Ctrl+A D
  • Показать список сессий: screen -ls
  • Подключиться к сессии: screen -r mysession
  • Создать новое окно: Ctrl+A C
  • Переключиться между окнами: Ctrl+A N (next), Ctrl+A P (previous)
  • Закрыть окно: exit или Ctrl+D

Базовые команды: tmux

  • Запустить новую сессию: tmux new -s mysession
  • Отсоединиться (detach): Ctrl+B D
  • Показать список сессий: tmux ls
  • Подключиться к сессии: tmux attach -t mysession
  • Создать новое окно: Ctrl+B C
  • Переключиться между окнами: Ctrl+B N (next), Ctrl+B P (previous)
  • Делить окно на панели: Ctrl+B " (горизонтально), Ctrl+B % (вертикально)
  • Переключаться между панелями: Ctrl+B стрелка
  • Закрыть окно/панель: exit или Ctrl+D

Минимальная настройка для комфорта

tmux — фаворит для кастомизации. Создай файл ~/.tmux.conf с такими строками для ускорения работы:

# Увеличить историю буфера
set-option -g history-limit 10000

# Удобнее копировать мышкой
set -g mouse on

# Переключение между окнами как в Vim
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

Для screen — файл ~/.screenrc:

# Увеличить историю
defscrollback 10000

# Показывать статус-бар
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w"

Реальные кейсы: где мультиокна — это спасение

Кейс Screen tmux Комментарий
Долгий деплой или билд + + Можно отсоединиться и вернуться позже, процесс не умрёт
Мониторинг логов и редактирование конфигов параллельно +/– ++ В tmux удобнее делить экран на панели
Работа с несколькими проектами/окружениями + ++ tmux поддерживает именованные окна и сессии, удобно для навигации
Копипаст между окнами + В screen неудобный буфер обмена, в tmux с мышкой и Vim-режимом — супер
Работа на слабых серверах ++ + Screen проще и легче, но tmux не сильно тяжелее

Положительный кейс

Ты деплоишь обновление на VPS, билд идёт 30 минут. Запускаешь билд в tmux, отсоединяешься, идёшь пить кофе. Возвращаешься — всё готово, можно смотреть логи, не боясь, что SSH отвалится.

Отрицательный кейс

Запустил важный процесс в обычной SSH-сессии, случайно закрыл терминал — процесс умер, билд сорвался, приходится всё запускать заново. Вот почему мультиокна — не роскошь, а необходимость.

Ошибки новичков и мифы

  • Запускать screen/tmux внутри screen/tmux (nested) — можно, но путаница с клавишами обеспечена.
  • Думать, что screen и tmux — это одно и то же. Нет, tmux мощнее, но чуть сложнее.
  • Забывать имена сессий. Лучше всегда давать осмысленные имена: tmux new -s deploy, screen -S logs.
  • Пытаться копировать мышкой в screen — работает не всегда, особенно в терминалах без поддержки мыши.
  • Не сохранять конфиги. Кастомизация — ключ к удобству!

Похожие решения и альтернативы

  • Byobu — надстройка над tmux и screen с красивым статус-баром и простыми биндами (byobu.org).
  • dvtm — динамический тайлинговый терминальный мультиплексор, похожий на dwm, но для консоли (dvtm на GitHub).
  • abduco — простой менеджер сессий (abduco на GitHub).

Сравнение: screen vs tmux

Фича screen tmux
Панели (split window) +
Настройка и плагины +
Лёгкость и стабильность + +
Буфер обмена +
Совместимость (старые сервера) + +/–
Документация и комьюнити + ++

Интересные факты и лайфхаки

  • tmux можно использовать для шаринга терминала — несколько пользователей могут подключиться к одной сессии и видеть/управлять ей одновременно (удобно для парного дебага или обучения).
  • tmux поддерживает цветовые схемы и кастомные статус-бары — можно сделать терминал красивым и информативным.
  • Можно запускать автоматические команды при старте сессии — например, сразу открывать нужные окна, запускать tail логов, открывать Vim и т.д.
  • С помощью плагинов (например, tpm) можно добавить автокомплит, синхронизацию панелей, интеграцию с git и многое другое.

Автоматизация и интеграция с DevOps-скриптами

Мультиокна — идеальный инструмент для автоматизации. Например:

  • Запускать деплой-скрипты в отдельных окнах tmux, чтобы видеть прогресс сразу по нескольким сервисам.
  • Встраивать tmux в CI/CD пайплайны для управления процессами и логами.
  • Скриптовать запуск tmux сессий с нужным окружением для новых разработчиков (onboarding).

Пример автозапуска сессии с нужной структурой:


tmux new-session -d -s myproject
tmux new-window -t myproject:1 -n 'logs'
tmux send-keys -t myproject:1 'tail -f /var/log/syslog' C-m
tmux new-window -t myproject:2 -n 'vim'
tmux send-keys -t myproject:2 'vim .' C-m
tmux attach -t myproject

Выводы и рекомендации

  • Screen — отличный выбор для минималистов и старых серверов. Прост, стабилен, работает везде, но функционал ограничен.
  • tmux — выбор для тех, кто хочет максимум комфорта, кастомизации и автоматизации. Поддерживает плагины, панели, удобный копипаст и интеграцию с современными воркфлоу.
  • Для сложных задач, мониторинга, деплоя, работы с несколькими сервисами — tmux вне конкуренции.
  • Не забывай про автоматизацию: мультиокна отлично сочетаются со скриптами и DevOps-инфраструктурой.
  • Экспериментируй с конфигами, кастомизируй бинды под себя, не бойся осваивать новые фичи.

Если ты хочешь, чтобы твои процессы не падали из-за случайного disconnect, если устал держать миллион вкладок или хочешь быстро переключаться между задачами — мультиокна в терминале должны быть у тебя в арсенале.

Официальные ресурсы:

Прокачай свой терминал — и пусть никакие disconnect и баги не мешают твоей работе!


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

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked