tmux в Linux: сессии, окна, панели и горячие клавиши
tmux держит оболочки и запущенные в них программы живыми после закрытия терминала или обрыва SSH: создайте сессию командой tmux new -s work, отключитесь клавишами Ctrl+b d и вернитесь через tmux attach -t work. Ниже команды для сессий, окон и панелей, таблица горячих клавиш и готовый .tmux.conf.

Содержание
Что такое tmux и из чего он состоит
tmux - терминальный мультиплексор: внутри одного окна терминала или одного SSH-подключения он держит несколько оболочек и не даёт им умереть, когда вы закрыли терминал или потеряли связь. Запустили долгую сборку на сервере, отключился Wi-Fi, переподключились - сборка идёт дальше, вывод на месте.
Команда tmux запускает фоновый сервер, а терминал становится его клиентом. Закрыли клиент - сервер и программы в нём живут дальше. Внутри сервера три уровня:
- Сессия - набор окон под одним именем, например
workилиdeploy. К сессии можно отключиться и потом вернуться. - Окно - аналог вкладки. Номера окон видны в строке состояния внизу.
- Панель - часть окна. Окно делится на панели по горизонтали и вертикали, в каждой своя оболочка.
Все действия выполняются через префикс: по умолчанию это Ctrl+b. Нажали и отпустили префикс, затем нажали клавишу команды. Дальше в тексте запись Ctrl+b d означает именно такую последовательность, а не одновременное нажатие трёх клавиш.
Установка tmux в Ubuntu, Fedora и Arch
Пакет называется одинаково во всех популярных дистрибутивах:
# Debian 13, Ubuntu 26.04, Linux Mint
sudo apt install tmux
# Fedora 44
sudo dnf install tmux
# Arch Linux, CachyOS, EndeavourOS
sudo pacman -S tmux
# проверить версию
tmux -VВерсии в репозиториях на октябрь 2026 года заметно отличаются. В Debian 13 стоит 3.5a (в trixie-backports есть 3.7c), в Ubuntu 26.04 LTS - 3.6a, в Fedora 44 с обновлениями 3.7c, в Arch уже 3.8. Клавиши и команды из статьи работают во всех этих версиях, а плавающие панели и встроенные темы есть только в 3.8.
Запуск без аргументов создаёт сессию с номером 0, внизу появляется строка состояния с именем сессии и списком окон.
Сессии: создать, отключиться, вернуться
Безымянные сессии быстро путаются, поэтому имя лучше задавать сразу. Основные команды выполняются в обычной оболочке, вне tmux или внутри него:
# новая сессия с именем work
tmux new -s work
# список сессий
tmux ls
# подключиться к сессии work
tmux attach -t work
# короткая форма: подключиться к последней сессии
tmux a
# подключиться, если сессия есть, иначе создать
tmux new -A -s work
# подключиться и выкинуть других клиентов этой сессии
tmux attach -d -t work
# завершить сессию
tmux kill-session -t work
# завершить вообще всё: сервер и все сессии
tmux kill-serverОтключиться от сессии, оставив её работать, можно клавишами Ctrl+b d (detach). Закрыть окно терминала крестиком тоже безопасно: процессы внутри tmux не получат сигнал завершения. А вот exit в последней оболочке сессии закрывает саму сессию.
Переключение между сессиями
Изнутри tmux удобнее всего Ctrl+b s: откроется дерево сессий с окнами, стрелками выбираете нужную и жмёте Enter. Клавиши Ctrl+b ( и Ctrl+b ) листают сессии по кругу, Ctrl+b $ переименовывает текущую.
Окна и панели: деление экрана
Окна делят задачи внутри сессии (редактор, логи, htop), панели нужны, когда два вывода надо видеть одновременно.
Окна
Ctrl+b c создаёт окно, Ctrl+b , переименовывает его, Ctrl+b n и Ctrl+b p переключают на следующее и предыдущее, цифры Ctrl+b 0...9 открывают окно по номеру, Ctrl+b w показывает список всех окон всех сессий. Закрыть окно можно через exit в каждой его панели или клавишами Ctrl+b & с подтверждением.
Панели
Деление: Ctrl+b % режет окно на левую и правую части, Ctrl+b " на верхнюю и нижнюю. Запомнить проще так: знак процента похож на вертикальную черту между двумя кружками. Переход между панелями: Ctrl+b и стрелка в нужную сторону, или Ctrl+b o по кругу. Ctrl+b q на секунду показывает номера панелей, нажатие цифры в этот момент переводит в нужную.
Размер меняется сочетанием Ctrl+b, затем Ctrl+стрелка (шаг в одну клетку) или Alt+стрелка (шаг в пять клеток). Ctrl+b z разворачивает панель на всё окно и возвращает обратно, это самая полезная клавиша, когда нужно прочитать длинную строку лога. Ctrl+b Space перебирает готовые раскладки, Ctrl+b ! выносит панель в отдельное окно, Ctrl+b x закрывает её.
Те же действия доступны командами, что удобно в скриптах:
# поделить по вертикали и открыть новую панель в текущем каталоге
tmux split-window -h -c "#{pane_current_path}"
# выровнять панели сеткой
tmux select-layout tiled
# одновременный ввод во все панели окна (например, на нескольких серверах)
tmux set-window-option synchronize-panes onГорячие клавиши tmux: шпаргалка
Стандартные привязки без собственного конфига. Если меняли префикс, подставьте свой.
| Клавиши | Действие |
|---|---|
Ctrl+b d | Отключиться от сессии (она продолжает работать) |
Ctrl+b s | Дерево сессий и переключение |
Ctrl+b $ | Переименовать сессию |
Ctrl+b c | Новое окно |
Ctrl+b , | Переименовать окно |
Ctrl+b n / p | Следующее / предыдущее окно |
Ctrl+b 0-9 | Окно по номеру |
Ctrl+b w | Список окон |
Ctrl+b % | Разделить на левую и правую панели |
Ctrl+b " | Разделить на верхнюю и нижнюю панели |
Ctrl+b стрелка | Перейти в соседнюю панель |
Ctrl+b z | Развернуть панель на всё окно и обратно |
Ctrl+b x | Закрыть панель |
Ctrl+b [ | Режим прокрутки и копирования |
Ctrl+b ] | Вставить последний скопированный буфер |
Ctrl+b : | Командная строка tmux |
Ctrl+b ? | Все привязки клавиш |
Полный актуальный список для вашей версии выводит Ctrl+b ? или команда tmux list-keys в оболочке. Выход из этого списка по q.
Прокрутка истории и копирование текста
Колесо мыши в tmux без настройки часто листает историю команд оболочки вместо вывода, и новички решают, что прокрутки нет. Она есть: Ctrl+b [ включает режим копирования, дальше работают стрелки, PgUp, PgDn, поиск по Ctrl+s (в раскладке emacs) или / (в раскладке vi). Выход по q.
Копирование в режиме emacs (по умолчанию): поставить курсор, нажать Ctrl+Space, выделить стрелками, нажать Alt+w. Текст попадёт в буфер tmux, вставка через Ctrl+b ]. Если привычнее vim, включите vi-раскладку в конфиге (пример ниже), тогда выделение начинается клавишей v, а копирование y.
Чтобы мышь листала вывод и выделяла текст, нужна опция mouse. В tmux 3.8 по списку изменений она включена по умолчанию, в версиях из Debian и Ubuntu её надо включить самому: Ctrl+b :, затем set -g mouse on. С включённой мышью обычное выделение терминала перехватывает tmux; чтобы выделить текст средствами самого терминала, держите Shift (в Konsole, GNOME Terminal, Kitty, Alacritty это работает именно так).
Глубина истории по умолчанию 2000 строк на панель. Для логов этого мало, увеличьте history-limit в конфиге. До версии 3.7 новое значение действует только на панели, созданные после изменения, начиная с 3.7 оно применяется и к уже открытым.
Работа по SSH без обрывов
Главный сценарий: длинная операция на сервере, которую нельзя прерывать, например обновление дистрибутива или rsync большого архива. Порядок такой:
- Подключитесь к серверу и сразу войдите в именованную сессию:
tmux new -A -s main. - Запустите задачу внутри tmux.
- Если связь оборвалась, подключитесь снова и выполните ту же команду
tmux new -A -s main: она найдёт сессию и подключит к ней.
Можно сократить до одной команды на своей машине. Ключ -t обязателен, без него ssh не выделит терминал и tmux ответит ошибкой open terminal failed: not a terminal:
ssh -t user@server tmux new -A -s mainЧтобы не набирать это каждый раз, добавьте блок в ~/.ssh/config. Опция RemoteCommand выполнит tmux при входе, а RequestTTY заменит ключ -t:
Host srv
HostName 203.0.113.10
User admin
RequestTTY yes
RemoteCommand tmux new -A -s mainПосле этого ssh srv сразу открывает сессию main. Для разовых входов без tmux создайте второй Host-блок без RemoteCommand. Подробнее о файле конфигурации клиента в статье про SSH-клиент в Linux, а про защиту самого сервера в материале по настройке sshd.
tmux спасает от обрыва SSH, но не от перезагрузки сервера: после ребута все сессии исчезают. Если задача должна пережить перезагрузку, оформите её как службу или таймер systemd, а tmux оставьте для интерактивной работы.
Вложенный tmux
Если tmux запущен и у вас локально, и на сервере, префикс Ctrl+b поймает внешний. Чтобы отправить его во внутренний, нажмите префикс дважды: Ctrl+b Ctrl+b, затем клавишу команды. Другой вариант: локально переназначить префикс на Ctrl+a, а на серверах оставить стандартный.
Настройка .tmux.conf
tmux читает пользовательский конфиг из ~/.tmux.conf или из ~/.config/tmux/tmux.conf (поддержка XDG-пути появилась в версии 3.1). Файла по умолчанию нет, его создают вручную. Ниже рабочий минимум с комментариями, который можно взять целиком:
# префикс Ctrl+a вместо Ctrl+b
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# мышь, история, нумерация окон с единицы
set -g mouse on
set -g history-limit 50000
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
# цвета и быстрая реакция на Esc (важно для vim)
set -g default-terminal "tmux-256color"
set -sg escape-time 10
# понятное деление: | и -, новая панель в текущем каталоге
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
# vi-клавиши в режиме копирования
setw -g mode-keys vi
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
# перечитать конфиг по префикс + r
bind r source-file ~/.tmux.conf \; display "config reloaded"Изменения не применяются к уже запущенному серверу сами. Перечитайте файл командой tmux source-file ~/.tmux.conf или привязкой префикс r из примера. Если после правки tmux не стартует, запустите его с явным пустым конфигом, чтобы проверить, виноват ли файл: tmux -f /dev/null new -s test.
Плагины
Плагины обычно ставят через менеджер TPM. Чаще всего берут tmux-resurrect и tmux-continuum: они сохраняют раскладку окон и рабочие каталоги и восстанавливают их после перезагрузки, но не сами процессы.
Когда tmux ведёт себя странно
- no server running on /tmp/tmux-1000/default. Сессий нет, сервер не запущен. Это не ошибка: создайте сессию через
tmux new -s имя. Если сессия точно была, проверьте, тот ли пользователь: у root и у вас разные серверы. - missing or unsuitable terminal: tmux-256color. На старой системе нет описания терминала в terminfo. Поставьте пакет
ncurses-term(Debian, Ubuntu) или замените в конфиге значение наscreen-256color. - Блёклые цвета в vim и neovim. Добавьте поддержку truecolor для внешнего терминала:
set -as terminal-features ",xterm-256color:RGB". - Esc в vim срабатывает с задержкой. В версиях до 3.5 стандартный
escape-timeравен 500 мс, это хорошо заметно. С 3.5 по умолчанию 10 мс; на Debian 12 и старее задайте значение в конфиге, как в примере выше. - Скопированный текст не попадает в системный буфер. Нужна опция
set -g set-clipboard onи поддержка OSC 52 в эмуляторе терминала. В Wayland-сессии можно передавать выделение вwl-copyкомандойcopy-pipe-and-cancel.
Если хочется освоить терминал глубже, загляните в горячие клавиши терминала и bash и в подборку основных команд Linux. Полное описание опций и форматов есть в официальном man tmux и в вики проекта.
Частые вопросы
Как выйти из tmux, не закрывая программы?
Нажмите Ctrl+b, отпустите и нажмите d. Сессия отключится и продолжит работать в фоне, вернуться можно командой tmux attach или tmux a.
Как прокрутить вывод вверх в tmux?
Нажмите Ctrl+b [ и листайте стрелками или PgUp. Выход из режима по q. Чтобы работало колесо мыши, включите set -g mouse on (в tmux 3.8 опция включена по умолчанию).
Чем tmux отличается от screen?
Оба держат сессии после отключения. У tmux удобнее панели, понятнее конфиг и активнее разработка, поэтому для новых систем обычно выбирают его. GNU screen по-прежнему есть в репозиториях и пригодится на старых серверах.
Сохраняются ли сессии tmux после перезагрузки?
Нет, сервер tmux живёт в памяти. Плагины tmux-resurrect и tmux-continuum восстанавливают раскладку и каталоги, но не запущенные процессы.
Где лежит конфиг tmux?
В ~/.tmux.conf или ~/.config/tmux/tmux.conf. Системный файл /etc/tmux.conf читается первым, если существует. После правки выполните tmux source-file ~/.tmux.conf.
Документация и источники
- tmux(1) manual page, OpenBSD / tmux, 2026
- tmux wiki: Getting Started, tmux, 2026
- tmux CHANGES (3.8), tmux, 2026
Читайте также
- Как подключиться по SSH из Linux и Windows: от первого входа до туннелей
- Горячие клавиши терминала Linux и приёмы работы в bash
- Основные команды Linux для начинающих с примерами
- Защита SSH-сервера в Linux: ключи, ограничения и журналирование
- htop и процессы Linux: как найти нагрузку и правильно убить процесс
- Vim для начинающих: как выйти из редактора, сохранить файл и работать без мыши
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.