Установка и эффективное использование tmux в Linux

Введение
Если вы постоянно переключаетесь между несколькими терминалами и теряете нужное окно, мультиплексор решит проблему. tmux позволяет запускать несколько терминальных сеансов внутри одного окна, восстанавливать рабочие состояния, разделять экран на панели и управлять сессиями удалённо.
Ключевые понятия (в 1 строке каждое)
- Сессия: набор окон и панелей, объединённых для конкретной задачи.
- Окно: виртуальный рабочий экран в рамках сессии.
- Панель: разделённая область окна, это отдельный псевдотерминал.
- Префикс: специальная комбинация клавиш (по умолчанию Ctrl+B), после которой идут управляющие сочетания.
Установка tmux на Linux
Выберите команду для вашей дистрибуции и выполните её в терминале с правами администратора.
Debian / Ubuntu / производные:
sudo apt update
sudo apt install tmuxCentOS / RHEL (yum) или современные RHEL/Fedora (dnf):
sudo yum install tmux
# или
sudo dnf install tmuxArch Linux / Manjaro:
sudo pacman -S tmuxПосле установки запустите tmux командой:
tmuxКоманда создаст новую сессию и откроет оболочку. Строка состояния внизу отображает информацию о текущей сессии.
Важно: в некоторых системах пакет называется tmux, в других — доступен в репозитории EPEL (для старых CentOS). Если пакет не найден, проверьте репозитории или билды для вашей версии ОС.
Первые шаги: базовая навигация и префикс
Префикс по умолчанию — Ctrl+B. Сначала нажмите префикс, затем нужную клавишу для управления.
Основные сочетания:
- Ctrl+B c — создать новое окно.
- Ctrl+B “ — разделить окно горизонтально.
- Ctrl+B % — разделить окно вертикально.
- Ctrl+B o — перейти к следующей панели.
- Ctrl+B x — закрыть текущую панель.
- Ctrl+B d — отсоединиться (detach) от сессии, процессы продолжат работать.
- Ctrl+B s — список сессий.
- Ctrl+B & — закрыть текущее окно.
Если вы только начинаете, запишите эти сочетания — они покрывают большинство рабочих сценариев.
Управление сессиями
Создать новую сессию с именем:
tmux new -s test-sessionПросмотреть список сессий внутри запущенного tmux:
# внутри tmux: нажмите Ctrl+B sОтсоединиться от сессии (detach) можно двумя способами:
# Быстрое сочетание
Ctrl+B d
# Или в командной строке tmux
:detachПодключиться к последней сессии:
tmux attachПодключиться к конкретной сессии по имени:
tmux attach -t test-sessionУбить сессию (осторожно — завершает все процессы в сессии):
tmux kill-session -t test-sessionСоветы
- Давайте понятные имена сессиям по проектам: web, db-maint, deploy.
- При работе с несколькими удалёнными хостами используйте разные сессии для каждого хоста.
Управление окнами
Окна охватывают весь экран и могут содержать несколько панелей. Основные операции:
- Создать окно: Ctrl+B c
- Переименовать окно: Ctrl+B , (ввод нового имени в приглашении)
- Перейти к окну по номеру: Ctrl+B 1 (2, 3 и т.д.)
- Переместить или поменять окна местами:
# внутри tmux: откройте командную строку Ctrl+B :
:swap-window -s 1 -t 3- Удалить окно: Ctrl+B &
Совет: установите нумерацию окон с 1 (нижнее в конфиге), если вам неудобна нулевая индексация.
Использование панелей
Панели — это мощный инструмент для параллельной работы в одном окне. Примеры использования: журналирование сервера + интерактивный REPL + редактор.
Создание панелей:
# горизонтальное разделение
Ctrl+B "
# вертикальное разделение
Ctrl+B %Навигация между панелями:
Ctrl+B o # перейти к следующей панели
# или использовать стрелки (если настроено) Ctrl+B <стрелка>Увеличить/свернуть панель (toggle zoom):
Ctrl+B zЗакрыть текущую панель:
Ctrl+B xКомбинируйте горизонтальные и вертикальные разделы для удобной компоновки рабочего пространства.
Конфигурация tmux: ~/.tmux.conf
Файл конфигурации позволяет перенести ваши предпочтения в постоянную настройку. Откройте или создайте файл ~/.tmux.conf в выбранном редакторе:
vim ~/.tmux.conf
# или
nano ~/.tmux.confПримеры полезных настроек
- Смена префикса с Ctrl+B на Ctrl+A (несколько пользователей предпочитают такое поведение):
set -g prefix C-a
unbind C-b
bind C-a send-prefix- Нумерация окон и панелей с 1:
set -g base-index 1
set -g pane-base-index 1- Включение поддержки мыши (выделение, изменение размера панелей, переключение окон):
set -g mouse on- Удобная строка состояния (пример базового оформления):
set -g status-interval 5
set -g status-left '#[fg=green]#S' # имя сессии слева
set -g status-right '#[fg=yellow]%Y-%m-%d %H:%M' # время справаПосле правки конфигурации примените её без перезапуска, выполнив внутри tmux:
# внутри tmux: откройте командную строку Ctrl+B :
:source-file ~/.tmux.confСоветы по конфигу
- Комментируйте изменения, чтобы быстро вернуть старую конфигурацию.
- Храните резервную копию ~/.tmux.conf в dotfiles-репозитории.
Плагины и расширения
Сообщество написало множество плагинов. Популярный менеджер — Tmux Plugin Manager (TPM). Он упрощает установку, обновление и удаление плагинов.
TPM: базовая последовательность установки
# клонируйте TPM в ~/.tmux/plugins/tpm
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmДобавьте в ~/.tmux.conf список плагинов, например:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# в конце конфигурации
run '~/.tmux/plugins/tpm/tpm'После этого внутри tmux нажмите Ctrl+B I (заглавная i), чтобы установить плагины.
tmux-resurrect сохраняет состояние сессий и позволяет восстанавливать их после перезагрузки. tmux-continuum автоматизирует периодическое сохранение.
Практические рабочие процессы (workflow)
Ниже — примеры применения tmux в реальных ролях.
Role-based чек-листы
Разработчик:
- Создать сессию с именем проекта.
- Окно 1: редактор (vim/code).
- Окно 2: тесты / сборка.
- Окно 3: REPL / мониторинг логов.
- Настроить tmux-resurrect для восстановления состояний.
Системный администратор:
- Отдельная сессия на каждый сервер.
- Панель 1: ssh в сервер.
- Панель 2: tail -f логов.
- Испольовать detached-сессии для долгих задач.
При парном программировании:
- Одна общая сессия, две панели для участников.
- Выставить порядок окон и пометки через названия.
Мини-методология внедрения tmux (быстрый план)
- Установите tmux и запустите базовую сессию.
- Освойте 5 основных сочетаний клавиш в течение дня.
- Создайте ~/.tmux.conf с минимальными настройками (префикс, base-index, mouse).
- Добавьте tmux-resurrect через TPM.
- Интегрируйте конфиг в dotfiles и синхронизируйте.
Шпаргалка: основные команды и сочетания
Команды терминала (вне tmux):
# создать именованную сессию
tmux new -s name
# подключиться
tmux attach -t name
# перечень сессий
tmux ls
# прикрепиться к последней
tmux attach
# убить сессию
tmux kill-session -t nameКлавиатурные сочетания (внутри tmux, префикс Ctrl+B):
- c — новое окно
- , — переименовать окно
- % — вертикальное разделение
- “ — горизонтальное разделение
- o — следующая панель
- x — закрыть панель
- z — увеличить/вернуть панель
- d — отсоединиться
- s — список сессий
Отладка и распространённые проблемы
Проблема: мышь не работает
- Решение: включите mouse в конфиг: set -g mouse on и выполните source-file.
Проблема: символы управления неправильно отображаются
- Решение: проверьте переменную окружения TERM. Для tmux обычно используют tmux-256color или xterm-256color. Установите в конфиге:
set -g default-terminal "tmux-256color"и в локальной системе убедитесь, что терминал поддерживает 256 цветов.
Проблема: плагины не устанавливаются
- Решение: проверьте, что TPM установлен в ~/.tmux/plugins/tpm, и что вы нажали Ctrl+B I внутри сессии. Также проверьте соединение с интернетом и права на директорию.
Когда tmux может не подойти
- Если вы предпочитаете GUI-терминалы с вкладками и не хотите клавиатурных сочетаний.
- Для простых однократных команд в локальном терминале tmux может быть избыточен.
Полезные эвристики и правила
- Всегда давайте понятные имена сессиям и окнам.
- Храните конфиг в dotfiles и версионируйте.
- Начните с малого: выучите 5 сочетаний, затем расширяйте.
- Используйте плагины только когда они реально экономят время.
Мини-руководство по восстановлению и откату (incident runbook)
Сценарий: после перезагрузки сервер не восстанавливает сессии
- Подключитесь по SSH.
- Проверьте, что tmux запущен и что tmux-resurrect установлен.
- Если есть дамп восстановления, выполните команду восстановления в инструкциях плагина (например, tmux-resurrect предоставляет команды восстановления через интерфейс плагина).
- Если восстановление невозможно, вручную запустите новые сессии и сохраните их состояние.
Короткая галерея пограничных случаев
- Мобильные терминалы: есть клиенты, которые поддерживают tmux через SSH (например, Termux/ConnectBot), но опыт работы будет отличаться от десктопа.
- Windows: на WSL tmux работает как в Linux; на нативном cmd.exe/PowerShell без эмуляции терминала поведение ограничено.
1-строчная глоссарий
- tmux: терминальный мультиплексор; позволяет иметь несколько виртуальных терминалов в одном окне.
- TPM: менеджер плагинов для tmux.
- tmux-resurrect: плагин для сохранения и восстановления состояния сессий.
Краткое резюме
tmux — лёгкий и гибкий инструмент для управления терминалами. Он особенно полезен разработчикам и администраторам, которым нужно поддерживать долгоживущие процессы, отслеживать логи и работать с несколькими задачами одновременно. Начните с базовых сочетаний клавиш, вынесите конфигурацию в ~/.tmux.conf, подключите пару проверенных плагинов и версионируйте конфиг вместе с dotfiles.
Важно: практикуйтесь и настраивайте tmux под свои привычки — это окупается в виде ускорения рабочей рутины.
Связанные ресурсы и следующая задача
- Установите tmux, создайте тестовую сессию и попробуйте: создать окно, разделить его на две панели и отсоединиться/подключиться обратно.
- Если нужно, подключите TPM и протестируйте tmux-resurrect.