tmux в Linux: настройка и управление сессиями

11 Oct 2026, 14:34:42
tmux (Terminal Multiplexer) — это терминальный мультиплексор для Linux и других Unix-подобных систем, который позволяет создавать несколько терминальных окон и панелей в рамках одной сессии.
Главное преимущество tmux заключается в возможности отсоединяться от терминальной сессии и подключаться к ней повторно. Запущенные внутри сессии процессы продолжают работать даже после отключения SSH-клиента.
Это особенно полезно при администрировании удалённых серверов, когда необходимо выполнять длительные операции без постоянного подключения к терминалу.
Основные сценарии использования tmux:
  • Копирование и перенос больших объёмов данных с помощью rsync.
  • Импорт и экспорт баз данных MySQL и MariaDB.
  • Обновление операционной системы и выполнение длительных скриптов.
  • Мониторинг загрузки CPU, оперативной памяти и дисков.
  • Одновременная работа с несколькими терминалами на удалённом сервере.
Важно учитывать, что tmux сохраняет сессии при отключении клиента, но не защищает от перезагрузки или выключения сервера. После перезагрузки ранее запущенные сессии обычно не сохраняются.

1. Установка tmux

Сначала проверьте, установлен ли tmux:
tmux -V
Если команда не найдена, установите пакет с помощью пакетного менеджера вашей операционной системы.
Debian / Ubuntu:
apt update
apt install tmux

AlmaLinux / Rocky Linux / RHEL:
dnf install tmux
После установки повторно проверьте версию:
tmux -V

2. Создание новой сессии

Чтобы запустить tmux, выполните:
tmux
Для создания сессии с определённым именем используйте параметр -s:
tmux new -s migration
В этом примере создаётся сессия migration.
Внутри сессии можно выполнять обычные команды Linux, например:
top

или запустить копирование файлов:
rsync -avh /source/ /destination/
Сессия tmux работает независимо от подключения SSH-клиента. Поэтому при отсоединении от неё выполняющиеся процессы обычно продолжают работу.

3. Отсоединение от сессии

Чтобы выйти из сессии, не завершая её, используйте сочетание клавиш:
  1. Нажмите Ctrl+B.
  2. Отпустите клавиши.
  3. Нажмите D.
Это действие называется detach — отсоединение от сессии.
После этого вы вернётесь к обычной командной строке SSH, а процессы внутри tmux продолжат выполняться.
Не путайте отсоединение с командой exit: последняя завершает текущую оболочку, а если это последняя оболочка в сессии, может привести к её закрытию и остановке выполняющейся задачи.

4. Просмотр списка сессий

Чтобы посмотреть существующие сессии tmux, выполните:
tmux ls
Пример вывода:


В этом примере существуют две сессии: migration и update.
Если сессий нет, команда сообщит об отсутствии доступных сессий.

5. Повторное подключение к сессии

Чтобы вернуться к ранее созданной сессии, выполните:
tmux attach -t migration
Вместо migration укажите имя нужной сессии.
Если необходимо подключиться к единственной доступной сессии, можно использовать:
tmux attach
После подключения вы увидите состояние терминала и сможете продолжить работу с запущенной задачей.

6. Запуск задачи в отсоединённой сессии

Если необходимо запустить длительную операцию и сразу вернуться к командной строке SSH, создайте сессию в отсоединённом режиме:
tmux new-session -d -s backup
Команда создаст сессию backup, не подключая к ней текущий терминал.
Чтобы перейти к ней, выполните:
tmux attach -t backup
После этого запустите необходимую задачу. Например:
rsync -avh --progress /var/www/ /mnt/backup/www/
Когда команда начнёт выполняться, отсоединитесь сочетанием Ctrl+B, затем D. Копирование продолжится без необходимости держать SSH-соединение открытым.

Запуск команды при создании сессии

Команду также можно запустить непосредственно при создании сессии:
tmux new-session -d -s backup 'rsync -avh --progress /var/www/ /mnt/backup/www/'
В этом случае rsync запустится внутри сессии backup в отсоединённом режиме.
Для просмотра выполнения задачи подключитесь к сессии:
tmux attach -t backup
Учтите, что если команда завершится и оболочка закроется, сессия тоже может исчезнуть. Поэтому для длительных операций удобно создавать сессию, подключаться к ней, запускать команду вручную и затем отсоединяться.

7. Работа с несколькими окнами и панелями

tmux позволяет работать с несколькими терминалами в рамках одной сессии.
Основные сочетания клавиш:
Сочетание клавиш

Действие

Ctrl+B, затем CСоздать новое окно
Ctrl+B, затем NПерейти к следующему окну
Ctrl+B, затем PПерейти к предыдущему окну
Ctrl+B, затем 0–9Перейти к окну по номеру
Ctrl+B, затем %Разделить панель вертикально
Ctrl+B, затем "Разделить панель горизонтально
Ctrl+B, затем стрелкаПереключиться между панелями
Ctrl+B, затем DОтсоединиться от сессии
Ctrl+B, затем ?Показать справку по сочетаниям клавиш
Например, запустить в одном окне можно запустить команду top, во втором — ping, а в третьем — просмотр системных журналов.

8. Завершение сессии

Чтобы завершить текущую оболочку внутри tmux, выполните:
exit
Если это последняя оболочка в последнем окне, сессия завершится.
Для принудительного завершения определённой сессии используйте:
tmux kill-session -t backup
Чтобы завершить все сессии tmux текущего пользователя, выполните:
tmux kill-server
Внимание: завершение сессии может остановить работающие внутри неё процессы. Перед выполнением этих команд убедитесь, что важные задачи завершены.

9. Что делать, если SSH-соединение оборвалось

Если соединение SSH неожиданно прервалось, подключитесь к серверу повторно и проверьте список сессий:
tmux ls
Если нужная сессия существует, подключитесь к ней:
tmux attach -t cdn-migration
Если сессия отсутствует, это может означать, что задача завершилась, сессия была закрыта или сервер tmux остановился.
Для проверки оставшихся процессов используйте, например:
pgrep -af rsync
При необходимости проверьте системные журналы и состояние сервера. Не запускайте повторное копирование, пока не убедитесь, что предыдущая операция не выполняется.

10. tmux и screen: сравнение

screen — другой терминальный мультиплексор, который также позволяет сохранять терминальные сессии при отключении SSH-клиента и повторно подключаться к ним.
Оба инструмента подходят для запуска длительных задач на Linux-серверах. Основные различия заключаются в управлении окнами и панелями, настройке и привычном рабочем процессе.
Возможность

tmux

screen

Продолжение работы после отключения SSHДаДа
Повторное подключение к сессииДаДа
Несколько окон в одной сессииДаДа
Разделение терминала на панелиДаДа
Гибкая настройка интерфейса и сочетаний клавишДаДа, но подход к настройке отличается
Именованные сессииДаДа
Поддержка на старых системахЗависит от доступности версииЧасто встречается на старых системах

Основные команды tmux и screen

Действие

tmux

screen

Создать именованную сессиюtmux new -s workscreen -S work
Показать список сессийtmux lsscreen -ls
Отсоединиться от сессииCtrl+B, затем DCtrl+A, затем D
Повторно подключитьсяtmux attach -t workscreen -r work
Завершить сессиюtmux kill-session -t workscreen -S work -X quit
Если сессия screen уже подключена в другом месте, для повторного подключения может понадобиться предварительно отсоединить её или использовать соответствующие параметры команды.

Что выбрать: tmux или screen

Выбирайте tmux, если:
  • Вы регулярно администрируете серверы через SSH.
  • Вам необходимо работать с несколькими окнами и панелями.
  • Вы хотите гибко настраивать терминальное окружение.
  • Вы часто выполняете несколько длительных задач одновременно.
Выбирайте screen, если:
  • Он уже установлен на сервере и его возможностей достаточно.
  • Вам нужен простой способ сохранить терминальную сессию при отключении SSH.
  • Вы работаете со старыми системами, где screen уже используется.
Оба инструмента могут быть установлены одновременно, но управляют разными сессиями. Сессию screen нельзя открыть через tmux и наоборот.

Заключение

tmux — удобный инструмент для администрирования Linux-серверов через SSH. Он позволяет сохранять терминальные сессии при отключении клиента, управлять несколькими окнами и панелями и выполнять длительные операции без необходимости постоянно держать соединение открытым.
Для повседневной работы достаточно запомнить основные команды:
tmux new -s work
tmux ls
tmux attach -t work
tmux kill-session -t work
tmux -V

tmux и screen решают схожую задачу, поэтому выбор зависит от ваших потребностей и привычек. Для нового рабочего окружения можно начать с tmux, а если screen уже используется и полностью устраивает, переходить на другой инструмент необязательно.