- Home »

Мультиокна в терминале: 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 и баги не мешают твоей работе!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.