tmux (terminal multiplexer) — программа для мультиплексирования терминала: один SSH-сеанс делится на несколько независимых окон и панелей (panes), которые продолжают работать после отключения SSH-соединения. Это решает ключевую проблему серверного администрирования: разрыв SSH не прерывает выполняющийся процесс.
Основные концепции
- Session: изолированный набор окон, сохраняется при отключении SSH
- Window: аналог вкладки браузера — отдельный терминал внутри сессии
- Pane: разделение окна по горизонтали или вертикали на независимые терминалы
- Prefix key: Ctrl+b — клавиша-модификатор перед командами tmux
Основные команды
# Создать сессию
tmux new -s deploy
# Отключиться от сессии (сессия продолжается)
Ctrl+b, d
# Список сессий
tmux ls
# Подключиться к сессии
tmux attach -t deploy
# Разделить окно вертикально
Ctrl+b, %
# Разделить горизонтально
Ctrl+b, "
# Переключиться между панелями
Ctrl+b, стрелки
# Создать новое окно
Ctrl+b, c
# Переключиться между окнами
Ctrl+b, 0-9
# Убить сессию
tmux kill-session -t deploy
История
tmux создан Николасом Рёдером (Nicholas Marriott) в 2007 году как более современная альтернатива GNU screen (1987). tmux 1.0 вышел в 2009 году. Преимущества перед screen: лучшая поддержка UTF-8, возможность вертикального разделения панелей (screen 4.1+ тоже добавил), современный API для плагинов (tpm — Tmux Plugin Manager). tmux 2.x добавил true color, 3.x — улучшил поддержку мыши и синхронизацию панелей.
tmux vs screen
| Параметр | tmux | screen |
|---|---|---|
| Вертикальное разделение | Да (с 2007) | Да (screen 4.1+) |
| Плагины | TPM (Tmux Plugin Manager) | Нет |
| Статус-строка | Настраиваемая | Базовая |
| Активная разработка | Да | Минимальная |
На что обращать внимание
На VPS tmux — стандартный инструмент для долгоживущих операций: деплой, компиляция, бэкап, обновление пакетов. Запусти долгий процесс в tmux-сессии — можно закрыть терминал, вернуться через час и найти процесс завершённым. Конфигурация tmux в ~/.tmux.conf: популярный starter — .tmux by gpakosz с преднастроенными горячими клавишами. Для совместного администрирования: несколько SSH-сессий могут подключиться к одной tmux-сессии одновременно через tmux attach -t session.
История tmux
tmux создан Николасом Уилсоном (Nicholas Marriott) в 2007 году как альтернатива GNU screen с более чистой кодовой базой и расширенными возможностями. Версия 1.0 выпущена в 2009 году. Ключевое отличие от screen: разделение экрана на панели (panes) прямоугольниками — горизонтально и вертикально. tmux 1.7 (2012) добавил поддержку мыши. tmux 2.0 (2015) — Unicode и 256 цветов. tmux 3.x (2019+) — поддержку 24-bit True Color. OpenBSD включает tmux в базовую систему с 2009 года.
Основные горячие клавиши tmux
Ctrl+b c- Создать новое окно
Ctrl+b n / p- Следующее/предыдущее окно
Ctrl+b %- Разделить вертикально
Ctrl+b "- Разделить горизонтально
Ctrl+b стрелки- Переключение между панелями
Ctrl+b d- Detach (сессия продолжает работу)
tmux attach -t 0- Переподключиться к сессии 0
На что обращать внимание
tmux — стандартный инструмент на любом VPS. Запускай долгие операции (компиляция, бэкап, миграция БД) внутри tmux: при разрыве SSH соединение не прерывается. Для персонализации: ~/.tmux.conf с set -g mouse on включает поддержку мыши. Популярный starter-конфиг — .tmux by gpakosz (github.com/gpakosz/.tmux). Альтернатива для простых задач: screen — старше и проще, но менее функционален. Для совместного администрирования: несколько SSH-сессий подключаются к одной tmux-сессии через tmux attach -t session — видят одно и то же.