Знакомая ситуация: вы подключились к серверу по 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 — переключение.

Обсуждение урока

0
Комментарии видны всем. Чтобы участвовать в обсуждении, войдите или зарегистрируйтесь.
Модерация сообщества

Пожаловаться на комментарий

Расскажите модераторам, что именно требует внимания.