Знакомая ситуация: вы подключились к серверу по SSH, запустили длинный процесс — миграция базы данных, сборка проекта, rsync на терабайт данных. И тут Wi-Fi моргнул. Или ноутбук ушёл в сон. Или VPN отвалился на секунду. SSH-соединение оборвалось — и вместе с ним умер ваш процесс. Миграция прервалась на полпути. Данные в неопределённом состоянии. Начинай сначала.
Или другая ситуация: вам нужно одновременно смотреть логи в одном окне, редактировать конфиг в другом и держать открытый htop в третьем. Открывать три SSH-соединения? Можно, но неудобно.
Обе проблемы решает tmux — и после знакомства с ним вы не представите, как работали без него.
Ключевое слово — независимо от подключения. Когда вы запускаете процесс внутри tmux, он выполняется на сервере в сессии tmux. Ваш SSH — просто «окно» в эту сессию. Окно закрылось (SSH оборвался) — а сессия продолжает жить. Подключаетесь снова, «открываете окно» обратно — и всё на месте. Как будто ничего не произошло.
Представьте рабочий стол в офисе. На нём разложены документы, открыт редактор, запущен калькулятор. Вы уходите домой — стол остаётся как есть. Приходите утром — всё на месте, продолжаете с того же места. tmux — это такой «рабочий стол» для терминала. Установка (если ещё не установлен):
sudo apt install tmux
Запуск — одно слово:
tmux
Вы увидите обычный терминал, но с зелёной полоской внизу. Это и есть tmux-сессия. Всё, что вы делаете внутри — живёт в ней.
Теперь главный трюк. Запустите что-нибудь долгое:
ping google.com
А теперь — отсоединитесь от сессии, не закрывая её:
Ctrl+B, затем D
Сначала Ctrl+B (это «префикс» tmux — сигнал, что следующая клавиша — команда для tmux, а не для терминала). Отпускаете. Потом нажимаете D (detach — отсоединиться).
Вы вернулись в обычный терминал. А ping продолжает работать внутри tmux-сессии. Можете закрыть терминал, отключить SSH, выключить ноутбук — ping не остановится.
Чтобы вернуться:
tmux attach
И вот он — ваш ping, всё ещё работает. Как будто вы никуда не уходили.
Давайте закрепим базовый рабочий цикл — три команды, которые покрывают 80% использования tmux:
# 1. Создать новую сессию (с именем — чтобы не путаться)
tmux new -s deploy
# 2. Отсоединиться (изнутри сессии)
Ctrl+B, D
# 3. Подключиться обратно
tmux attach -t deploy
Имена сессий — это спасение, когда их больше одной. Вместо «к какой из трёх безымянных сессий мне подключиться?» — tmux attach -t deploy. Чётко, однозначно.
Посмотреть все активные сессии:
tmux ls
deploy: 1 windows (created Tue Mar 25 10:00:00 2025)
monitoring: 2 windows (created Tue Mar 25 09:30:00 2025)
Две сессии — deploy и monitoring. Видно, сколько окон в каждой и когда они созданы.
А что если нужно несколько «вкладок» внутри одной сессии? Для этого в tmux есть окна (windows) — аналог вкладок в браузере:
# Создать новое окно
Ctrl+B, C
# Переключиться на следующее окно
Ctrl+B, N
# Переключиться на предыдущее
Ctrl+B, P
# Переключиться на окно по номеру
Ctrl+B, 0 (или 1, 2, 3...)
# Переименовать текущее окно (чтобы видеть в статус-баре)
Ctrl+B, ,
В зелёной полоске внизу вы увидите список окон: 0:bash 1:vim 2:logs. Как вкладки — только в терминале.
Шпаргалка — распечатайте и повесьте рядом с монитором (серьёзно, первую неделю без неё никак):
| Действие | Команда |
| --- | --- |
| Создать сессию | tmux new -s имя |
| Отсоединиться | Ctrl+B, D |
| Подключиться обратно | tmux attach -t имя |
| Список сессий | tmux ls |
| Убить сессию | tmux kill-session -t имя |
| Новое окно | Ctrl+B, C |
| Следующее окно | Ctrl+B, N |
| Окно по номеру | Ctrl+B, 0-9 |
| Переименовать окно | Ctrl+B, , |
| Закрыть текущее окно | exit или Ctrl+D |
Подведём итог. tmux решает две фундаментальные проблемы: процессы умирают при обрыве SSH — и вам нужно несколько терминалов в одном соединении. tmux new -s name, Ctrl+B, D, tmux attach -t name — три команды, которые изменят вашу жизнь на сервере. Без преувеличения: когда освоите tmux, вы будете запускать его первым делом при каждом подключении — автоматически, не задумываясь.
В следующем уроке разберём tmux глубже: панели (разделение экрана), копирование текста и настройка под себя.
tmux — терминальный мультиплексор. Создаёт сессии, которые живут на сервере независимо от SSH-подключения.
Главная проблема: SSH оборвался → процесс умер. В tmux: SSH оборвался → сессия продолжает жить. tmux attach — и вы обратно.
Ctrl+B — префикс tmux. Все команды: Ctrl+B, отпустить, нажать клавишу действия.
Базовый цикл: tmux new -s имя (создать) → Ctrl+B, D (отсоединиться) → tmux attach -t имя (вернуться).
Окна — вкладки внутри сессии. Ctrl+B, C — новое, Ctrl+B, N/P/0-9 — переключение.