Введение / Зачем это нужно
Tmux (terminal multiplexer) — это терминальный мультиплексор, который позволяет управлять несколькими сессиями, окнами и панелями в одном терминале. Он особенно полезен для администрирования серверов через SSH: вы можете запустить длительные процессы, отсоединиться, а позже вернуться и продолжить работу с того же места. После освоения tmux вы сможете значительно повысить эффективность работы в командной строке Linux, организовав пространство под свои задачи.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть доступ к терминалу Linux (Ubuntu, Debian, Fedora и т.д.).
- Есть права на установку пакетов (обычно через
sudo). - Базовое знакомство с командной строкой (навигация, выполнение команд). -Tmux версии 3.0 или новее (в современных дистрибутивах обычно последняя).
Пошаговая инструкция
Шаг 1: Установите tmux
Установите tmux через менеджер пакетов вашего дистрибутива. Для большинства дистрибутивов на базе Debian/Ubuntu:
sudo apt update
sudo apt install tmux
Для Fedora/RHEL:
sudo dnf install tmux
Для Arch Linux:
sudo pacman -S tmux
После установки проверьте версию:
tmux -V
# Пример вывода: tmux 3.3a
Шаг 2: Создайте новую сессию
Запустите tmux, создав сессию с понятным именем:
tmux new -s работа
Вы увидите строку состояния внизу экрана с именем сессии (работ), номером окна и временем. Теперь все команды внутри tmux выполняются с префиксом Ctrl+b (по умолчанию), после которого нажимается другая клавиша.
Шаг 3: Основные операции с окнами
Внутри сессии вы работаете с окнами — аналогами вкладок.
- Создать новое окно:
Ctrl+b c - Переключиться между окнами:
Ctrl+b n(следующее) илиCtrl+b p(предыдущее). Также можноCtrl+b 0..9для перехода по номеру. - Переименовать текущее окно:
Ctrl+b ,(введите имя, нажмитеEnter). - Закрыть окно: выйдите из оболочки (например,
exit) или нажмитеCtrl+b &(подтвердитеy).
Шаг 4: Разделение панелей
Tmux позволяет разделять окно на несколько панелей (panes) для одновременного просмотра.
- Разделить вертикально (лево/право):
Ctrl+b % - Разделить горизонтально (верх/низ):
Ctrl+b " - Переключаться между панелями:
Ctrl+b стрелка(в направлении панели). - Закрыть панель: выйдите из оболочки в ней или нажмите
Ctrl+b x(подтвердитеy).
Шаг 5: Отсоединение и повторное подключение
Одна из главных фич tmux — отсоединение (detach) без завершения процессов.
- Отсоединиться от сессии:
Ctrl+b d - Вернуться к сессии:
tmux attach -t работа - Присоединиться к другой сессии:
tmux attach -t другое_имя
Вы также можете создать новую сессию в другом терминале и работать параллельно.
Шаг 6: Управление сессиями извне
Когда вы вне tmux, полезно управлять сессиями через CLI.
- Список активных сессий:
tmux ls - Переименовать сессию:
tmux rename-session -t старое новое - Удалить сессию:
tmux kill-session -t работа - Создать сессию и сразу запустить команду:
tmux new -d -s бэкап 'tar -czf /backup.tar.gz /важная_папка'(сессия запустится в фоне).
Проверка результата
Убедитесь, что tmux работает корректно:
- Создайте сессию, откройте несколько окон и панелей.
- Отсоединитесь (
Ctrl+b d), затем зайдите в другой терминал и выполнитеtmux attach -t <имя_сессии>— вы должны вернуться к тому же состоянию. - Запустите долгую команду (например,
ping 8.8.8.8), отсоединитесь, подключитесь снова — процессpingдолжен продолжаться. - Проверьте, что окна и панели сохраняются.
Возможные проблемы
⚠️ Префикс конфликтует с другим ПО
ЕслиCtrl+bуже используется (например, в Vim), измените префикс. Добавьте в~/.tmux.confстрокуset -g prefix C-a(заменит наCtrl+a). Перезапустите tmux.
⚠️ Невозможно копировать текст мышью
По умолчанию tmux перехватывает мышь. Для копирования через системный буфер включите поддержку мыши: в~/.tmux.confдобавьтеset -g mouse on. Перезагрузите конфиг:Ctrl+b : source-file ~/.tmux.conf.
⚠️ Сессия не сохраняется после перезагрузки
Tmux хранит сессии только в памяти. Для автосохранения используйте плагины (например,tmux-resurrect). Установите через менеджер плагинов (TPM) и добавьте в.tmux.conf.
⚠️ Ошибка «no server running» при attach
Сессия уже завершена или была убита. Проверьте список:tmux ls. Если сессии нет, создайте новую.