Что такое tmux и как удобно работать в терминале с несколькими сессиями
Если ты часто работаешь на сервере по SSH, собираешь проекты, запускаешь демоны или следишь за логами — скорее всего, сталкивался с тем, что соединение рвётся, и все процессы вместе с ним. Решение есть — tmux.
Это мощный терминальный мультиплексор, который позволяет держать несколько сессий, окон и панелей внутри одного терминала. Даже если SSH-соединение оборвётся, все процессы продолжат работать в фоне.
Что такое tmux
tmux (terminal multiplexer) — это инструмент, который:
- позволяет запускать несколько терминалов внутри одного окна;
- сохраняет сессии при разрыве SSH-подключения;
- даёт возможность делить экран на панели;
- позволяет подключаться к той же сессии с другого устройства.
Проще говоря, tmux создаёт «виртуальный рабочий стол» внутри терминала, где можно держать сразу несколько задач и не бояться потерять их при отключении.
Установка
На Linux всё просто:
sudo apt install tmux # Debian/Ubuntu
sudo dnf install tmux # Fedora
sudo yum install tmux # CentOS
На macOS:
brew install tmux
После установки запусти:
tmux
Ты окажешься в новой сессии tmux, где можешь работать как в обычном терминале.
Основные команды
Все команды tmux вызываются комбинацией клавиш:
Ctrl + b — это префикс, после которого идёт действие.
Например:
Ctrl+b c
— создать новое окно;Ctrl+b n
— перейти к следующему окну;Ctrl+b p
— к предыдущему;Ctrl+b ,
— переименовать окно;Ctrl+b d
— отсоединиться от сессии (detach).
После отсоединения ты можешь спокойно выйти из SSH. Когда вернёшься — сессия будет ждать.
Работа с сессиями
Посмотреть все сессии:
tmux ls
Подключиться к существующей:
tmux attach -t mysession
Создать новую сессию с именем:
tmux new -s mysession
Закрыть сессию:
tmux kill-session -t mysession
Деление экрана на панели
Это одна из лучших фишек tmux — можно делить окно на вертикальные и горизонтальные панели.
Ctrl+b %
— вертикальное разделение;Ctrl+b "
— горизонтальное;Ctrl+b стрелки
— переключение между панелями;Ctrl+b x
— закрыть текущую панель.
Так удобно, например, смотреть логи и одновременно редактировать конфиг, не открывая новый SSH.
Автозапуск и конфигурация
Файл настроек tmux находится по пути ~/.tmux.conf
.
Вот пример минимальной конфигурации для комфорта:
# Использовать Ctrl+a как префикс вместо Ctrl+b
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Включить мышь
set -g mouse on
# Более удобное переключение окон
bind -n C-Left previous-window
bind -n C-Right next-window
# 256 цветов
set -g default-terminal "screen-256color"
После изменения файла можно перезапустить конфиг:
tmux source-file ~/.tmux.conf
Восстановление после обрыва SSH
Допустим, ты собирал проект на сервере, а интернет пропал. Без tmux процесс бы умер.
Но если ты был в tmux-сессии, всё просто:
tmux attach
и продолжаешь с того же места.
Именно за это sysadmin’ы и devops-инженеры так любят tmux.
Продвинутые фичи
- Шаринг сессий: два пользователя могут подключиться к одной и той же сессии (
tmux attach -t shared
) и работать вместе. - Скрипты автозапуска: можно прописать в
.bashrc
, чтобы при логине автоматически подключаться к нужной сессии. - Интеграция с SSH: часто tmux используют совместно с mosh для стабильных подключений через нестабельные сети.
Альтернатива: GNU Screen
До tmux существовал GNU Screen — старейший мультиплексор терминала.
Он проще, но менее гибкий. tmux имеет современный API, лучше поддерживает скрипты, цвета и расширенные возможности конфигурации.
В целом, если только начинаешь — выбирай tmux.
Заключение
tmux — незаменимый инструмент для тех, кто часто работает в терминале.
Он решает сразу несколько проблем:
- защищает от потери сессии при обрыве SSH;
- экономит время при работе с несколькими задачами;
- позволяет держать всё под рукой в одном окне.
Потрать 10 минут, чтобы привыкнуть к сочетаниям клавиш — и потом не сможешь без него жить.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний