Linux Lifehack

tmux за пять минут: не терять сессию при обрыве SSH

Обрыв связи посреди обновления системы — потерянная сессия и сломанный пакетный менеджер. Минимальный набор команд tmux, чтобы этого не случилось.

Проверено: tmux 3.4, Ubuntu 24.04
tmux за пять минут: не терять сессию при обрыве SSH

Запустили apt upgrade на удалённом сервере, связь оборвалась — процесс убит на середине. tmux решает это одной командой перед началом работы.

Зачем

tmux держит сессию на сервере независимо от вашего подключения. Связь пропала — процессы продолжают работать, вы переподключаетесь и возвращаетесь ровно туда, где были.

Установка

sudo apt install -y tmux

Минимальный набор

Создать именованную сессию:

tmux new -s work

Отсоединиться, оставив всё работать: Ctrl+B, затем D

Посмотреть список сессий:

tmux ls

Вернуться:

tmux attach -t work

Если сессия одна, хватит короткой формы:

tmux a

Префикс

Все горячие клавиши tmux начинаются с префикса Ctrl+B. Нажали префикс, отпустили, затем нажали вторую клавишу.

Комбинация Действие
Ctrl+B D Отсоединиться
Ctrl+B C Новое окно
Ctrl+B N Следующее окно
Ctrl+B P Предыдущее окно
Ctrl+B % Разделить вертикально
Ctrl+B " Разделить горизонтально
Ctrl+B стрелка Перейти в соседнюю панель
Ctrl+B X Закрыть панель

Прокрутка

Колесо мыши в tmux работает не так, как в обычном терминале. Для прокрутки вывода: Ctrl+B, затем [ — включится режим копирования, листайте стрелками или PageUp. Выход — Q.

Полезная настройка

Файл ~/.tmux.conf:

set -g mouse on
set -g history-limit 50000
set -g base-index 1
setw -g mode-keys vi

mouse on включает прокрутку колесом и переключение панелей мышью — самая полезная строка для тех, кто начинает.

Применить в работающей сессии: Ctrl+B, затем :source-file ~/.tmux.conf

Совет. Возьмите за правило: любое длительное действие на сервере — обновление, миграция, копирование больших файлов — начинается с tmux a или tmux new -s work. Привычка стоит ноль усилий и однажды сэкономит вам вечер.

Итог

Четыре команды закрывают базовую потребность: tmux new -s имя, Ctrl+B D, tmux ls, tmux attach -t имя. Остальное осваивается по мере надобности.