Один раз потерять многочасовую компиляцию из-за обрыва интернета — и tmux становится первым пакетом после установки системы. Он не просто «открывает вкладки в терминале». Он хранит состояние рабочего окружения независимо от того подключены вы сейчас или нет.
Установить
sudo apt install tmux
sudo dnf install tmux
sudo pacman -S tmux
Проверить версию:
tmux -V
Три уровня структуры которые надо понять сразу
Без этого tmux кажется запутанным. Вот как это устроено:
Сессия — независимое рабочее окружение. Продолжает жить после отключения от SSH. Можно создать сессию deploy, сессию monitoring, сессию logs — каждая живёт своей жизнью.
Окно — вкладка внутри сессии. Аналог вкладки в браузере. В одном окне — nginx, в другом — база данных, в третьем — логи.
Панель — разделение одного окна на несколько терминалов. Слева код, справа его вывод. Или сверху редактор, снизу консоль.
Сессии: создать, найти, войти, выйти
Создать сессию с именем — имя потом упрощает поиск:
tmux new -s backend
Создать в фоне, не переключаясь в неё:
tmux new -s monitoring -d
Список всех живых сессий:
tmux ls
Подключиться по имени:
tmux attach -t backend
Если сессия одна — имя не нужно:
tmux attach
Отключиться и оставить сессию работать — внутри tmux:
Ctrl+b d
Завершить сессию — убить всё внутри:
tmux kill-session -t backend
Завершить все сессии разом:
tmux kill-server
Окна внутри сессии
Открыть новое окно:
Ctrl+b c
Переключаться между окнами:
Ctrl+b n следующее
Ctrl+b p предыдущее
Ctrl+b 0..9 по номеру
Список окон с предпросмотром:
Ctrl+b w
Переименовать текущее окно:
Ctrl+b ,
Закрыть текущее окно:
Ctrl+b &
Панели: разделить одно окно
Разделить по горизонтали — одна панель над другой:
Ctrl+b "
Разделить по вертикали — рядом:
Ctrl+b %
Переходить между панелями:
Ctrl+b стрелка
Изменить размер панели:
Ctrl+b Alt+стрелка
Закрыть текущую панель:
Ctrl+b x
Совместная работа двух пользователей в одной сессии
Оба видят один экран в реальном времени — удобно для парного дебага или удалённой помощи.
Первый создаёт:
tmux new -s shared
Второй подключается:
tmux attach -t shared
~/.tmux.conf: минимум который делает жизнь лучше
Смена префикса — Ctrl+a удобнее при долгой работе:
set-option -g prefix C-a
unbind C-b
bind C-a send-prefix
Нумерация окон с 1:
set -g base-index 1
Поддержка мыши — прокрутка и клик по панелям:
set -g mouse on
Увеличенная история:
set -g history-limit 10000
Применить изменения без перезапуска:
Ctrl+b :source-file ~/.tmux.conf
Шпаргалка
| Задача | Команда / клавиши |
|---|---|
| Создать сессию | tmux new -s имя |
| Список сессий | tmux ls |
| Войти в сессию | tmux attach -t имя |
| Выйти оставив работать | Ctrl+b d |
| Переименовать сессию | tmux rename-session -t старое новое |
| Убить сессию | tmux kill-session -t имя |
| Убить всё | tmux kill-server |
| Новое окно | Ctrl+b c |
| Список окон | Ctrl+b w |
| Разделить горизонтально | Ctrl+b " |
| Разделить вертикально | Ctrl+b % |
| Применить конфиг | Ctrl+b :source-file ~/.tmux.conf |