Использование tmux: Полное руководство по мультиплексированию терминала на Linux
Эффективное управление Linux сервером требует правильных инструментов — и мало какие инструменты столь трансформативны, как tmux. Являетесь ли вы разработчиком, жонглирующим несколькими процессами, системным администратором, поддерживающим удаленные сеансы, или опытным пользователем, живущим в терминале, tmux (Terminal Multiplexer) кардинально меняет то, как вы взаимодействуете с командной строкой.
Это подробное руководство охватывает все, что вам нужно знать о tmux: что это такое, почему это важно, как его установить и настроить, и как эффективно его использовать в реальных серверных окружениях — включая VPS Hosting и выделенную инфраструктуру.
Что такое tmux?
tmux — это открытый терминальный мультиплексор, который позволяет создавать, управлять и навигировать несколько сеансов терминала в одном окне. Вместо открытия десятков отдельных SSH-соединений или вкладок терминала, tmux позволяет организовать все в одном постоянном структурированном рабочем пространстве.
В основе tmux лежат три иерархических концепции:
- Сеансы — контейнер верхнего уровня. Сеанс содержит одно или несколько окон и сохраняется даже после отключения.
- Окна — похожи на вкладки браузера, каждое окно занимает весь экран терминала.
- Панели — подразделения внутри окна. Вы можете разделить окно горизонтально или вертикально на несколько панелей, запускающих независимые процессы одновременно.
Эта архитектура делает tmux особенно мощным в среде удаленных серверов. Когда вы подключены через SSH к VPS или Dedicated Server, потеря соединения больше не означает потерю работы — ваш сеанс tmux продолжает работать в фоне и готов к переподключению в момент вашего возврата.
Зачем использовать tmux? Ключевые преимущества для системных администраторов и разработчиков
Прежде чем переходить к командам, стоит понять, почему tmux стал стандартным инструментом в профессиональном управлении серверами:
1. Сохранение сеансов
Долгоживущие процессы — миграции баз данных, задачи компиляции, мониторинг логов — продолжают работать без перерывов даже если ваше SSH соединение разорвется. Это критически важно при работе с удаленной инфраструктурой.
2. Управление параллельными рабочими процессами
Разделите ваш терминал на панели, чтобы одновременно редактировать файл конфигурации, отслеживать логи и мониторить ресурсы системы — все без переключения окон.
3. Совместный доступ
Несколько пользователей могут одновременно подключиться к одному сеансу tmux, что позволяет осуществлять парное программирование в реальном времени или совместную отладку на общем сервере.
4. Воспроизводимые рабочие пространства
Сохраняйте и восстанавливайте сложные многопанельные, многооконные макеты, чтобы ваша рабочая среда была согласованной между сеансами.
5. Легкий и универсальный
tmux работает полностью в терминале без зависимостей от графического интерфейса, что делает его идеальным для headless серверов, контейнеров и минимальных установок Linux.
Установка tmux
tmux доступен в репозиториях пакетов по умолчанию практически всех основных дистрибутивов Linux. Выберите соответствующую команду для вашей системы:
Ubuntu / Debian
sudo apt update
sudo apt install tmuxCentOS / RHEL / Fedora
# CentOS/RHEL 7
sudo yum install tmux
# CentOS/RHEL 8+ and Fedora
sudo dnf install tmuxArch Linux
sudo pacman -S tmuxmacOS (via Homebrew)
brew install tmuxПроверка установки
tmux -VЭто должно вернуть установленную версию, например tmux 3.3a.
Понимание клавиши префикса tmux
Каждый ярлык клавиатуры tmux начинается с клавиши префикса — комбинации клавиш, которая сигнализирует tmux, что следующее нажатие клавиши является командой, а не обычным вводом.
Префикс по умолчанию — Ctrl + b. На протяжении этого руководства мы будем обозначать это как <prefix>. Таким образом, <prefix> c означает: нажмите Ctrl + b, отпустите обе клавиши, затем нажмите c.
> Совет профессионала: Многие опытные пользователи переназначают префикс на Ctrl + a (аналогично GNU Screen) по эргономическим причинам. Мы рассмотрим это в разделе настройки.
Основные команды tmux: сеансы
Запуск нового сеанса
Запустите tmux с сеансом по умолчанию без имени:
tmuxЗапустите сеанс с описательным именем (настоятельно рекомендуется):
tmux new -s session_nameНапример, при управлении веб-сервером:
tmux new -s webserverСписок активных сеансов
Вне tmux выведите список всех запущенных сеансов:
tmux lsПример вывода:
webserver: 3 windows (created Mon Jan 13 10:22:01 2025)
database: 1 window (created Mon Jan 13 09:15:44 2025)Отключение от сеанса
Чтобы отключиться от текущего сеанса (оставив его работающим в фоне):
<prefix> dТо есть: Ctrl + b, затем d.
Вы вернётесь в обычную оболочку, а сеанс tmux продолжит работу со всеми его процессами.
Переподключение к сеансу
Переподключитесь к определённому именованному сеансу:
tmux attach-session -t session_nameИли используйте сокращённую форму:
tmux a -t session_nameЕсли существует только один сеанс:
tmux attachПереименование сеанса
Находясь внутри tmux:
<prefix> $Введите новое имя и нажмите Enter.
Завершение сеанса
Чтобы завершить определённый сеанс и все его процессы:
tmux kill-session -t session_nameЧтобы завершить все сеансы:
tmux kill-serverОсновные команды tmux: Windows
Windows функционируют как вкладки в сеансе. Каждое окно может запускать полностью независимый процесс.
| Действие | Сочетание клавиш |
|---|---|
| Создать новое окно | <prefix> c |
| Переключиться на следующее окно | <prefix> n |
| Переключиться на предыдущее окно | <prefix> p |
| Переключиться на окно по номеру | <prefix> 0–9 |
| Переименовать текущее окно | <prefix> , |
| Список всех окон | <prefix> w |
| Закрыть текущее окно | <prefix> & |
Core tmux Commands: Panes
Panes позволяют разделить одно окно на несколько областей терминала — одна из самых мощных функций tmux.
| Action | Shortcut |
|---|---|
| Разделить pane горизонтально (сверху/снизу) | <prefix> " |
| Разделить pane вертикально (слева/справа) | <prefix> % |
| Навигация между panes | <prefix> Arrow Keys |
| Изменить размер pane (удерживайте и повторяйте) | <prefix> Ctrl + Arrow Keys |
| Развернуть pane на весь экран / восстановить | <prefix> z |
| Преобразовать pane в новое окно | <prefix> ! |
| Закрыть текущий pane | <prefix> x |
| Показать номера panes | <prefix> q |
Практический пример: макет мониторинга сервера
Вот типичный трёхпанельный макет для мониторинга веб-сервера:
# Start a new session
tmux new -s monitor
# Split horizontally to create a bottom pane
# Press: <prefix> "
# In the top pane: run htop
htop
# Switch to bottom pane: <prefix> Arrow Down
# Split bottom pane vertically: <prefix> %
# Bottom-left: tail the web server error log
tail -f /var/log/nginx/error.log
# Bottom-right: watch active connections
watch -n 2 'ss -tuln'Это дает вам панель мониторинга в реальном времени в одном окне терминала — бесценно при управлении production-сервером.
Режим копирования: прокрутка и выделение текста
По умолчанию колесико прокрутки мыши не работает в tmux. Для прокрутки вывода или копирования текста используется режим копирования.
Вход в режим копирования
<prefix> [Навигация в режиме копирования
| Действие | Клавиша |
|---|---|
| Прокрутка вверх | Arrow Up или Ctrl + u |
| Прокрутка вниз | Arrow Down или Ctrl + d |
| Поиск вперед | / |
| Поиск назад | ? |
| Начать выделение | Space |
| Копировать выделение | Enter |
| Выход из режима копирования | q |
Вставка скопированного текста
<prefix> ]Настройка tmux: файл .tmux.conf
Истинная мощь tmux проявляется, когда вы адаптируете его под свой рабочий процесс через файл конфигурации, расположенный в ~/.tmux.conf.
Шаг 1: Откройте или создайте файл конфигурации
nano ~/.tmux.confЕсли файл не существует, эта команда создаст его автоматически.
Шаг 2: Примените свои настройки
Ниже приведена хорошо прокомментированная, готовая к использованию в продакшене конфигурация, охватывающая наиболее важные настройки:
# ============================================
# ~/.tmux.conf — tmux Configuration
# ============================================
# --- Prefix Key ---
# Change prefix from Ctrl+b to Ctrl+a (more ergonomic)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# --- Mouse Support ---
# Enable mouse for pane selection, resizing, and scrolling
set -g mouse on
# --- Indexing ---
# Start window and pane numbering at 1 (easier keyboard navigation)
set -g base-index 1
setw -g pane-base-index 1
# --- Pane Splitting ---
# Intuitive split shortcuts (| for vertical, - for horizontal)
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# --- Pane Navigation (Vim-style) ---
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# --- Pane Resizing ---
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# --- Visual Appearance ---
# Enable 256-color support
set -g default-terminal "screen-256color"
# Status bar styling
set -g status-bg colour235
set -g status-fg colour136
# Left status: session name
set -g status-left "#[fg=colour166,bold] [#S] "
set -g status-left-length 20
# Right status: hostname, date, and time
set -g status-right "#[fg=colour166]#H #[fg=colour136]| %Y-%m-%d #[fg=colour71]%H:%M "
set -g status-right-length 60
# Highlight active window in status bar
setw -g window-status-current-style fg=colour166,bold
# --- History ---
# Increase scrollback buffer size
set -g history-limit 10000
# --- Reload Config ---
# Reload tmux config with <prefix> r
bind r source-file ~/.tmux.conf ; display-message "Config reloaded!"Шаг 3: Сохраните и выйдите (nano)
- Сохранить:
Ctrl + O, затемEnter - Выход:
Ctrl + X
Шаг 4: Перезагрузите конфигурацию
Если tmux уже запущен, примените изменения без перезагрузки:
<prefix> :Затем введите:
source-file ~/.tmux.confНажмите Enter. Или, если вы добавили привязку перезагрузки из конфигурации выше, просто нажмите:
<prefix> rШаг 5: Проверьте свои настройки
- Новая клавиша префикса: Нажмите
Ctrl + a, затемcдля создания нового окна. - Поддержка мыши: Щелкайте на разные панели для переключения фокуса; прокручивайте колесиком мыши.
- Строка состояния: Убедитесь, что имя хоста, дата и время отображаются в нижнем правом углу.
- Разделение панелей: Нажмите
<prefix> |для вертикального разделения,<prefix> -для горизонтального.
Продвинутые техники tmux
Автоматизация макетов сеансов с помощью shell-скриптов
Автоматизируйте всю настройку рабочего пространства с помощью shell-скрипта:
#!/bin/bash
# start-dev.sh — Launch a preconfigured development environment
SESSION="dev"
tmux new-session -d -s $SESSION -n "editor"
# Window 1: Code editor
tmux send-keys -t $SESSION:1 "vim ." Enter
# Window 2: Server logs
tmux new-window -t $SESSION -n "logs"
tmux send-keys -t $SESSION:2 "tail -f /var/log/nginx/access.log" Enter
# Window 3: Shell (split into two panes)
tmux new-window -t $SESSION -n "shell"
tmux split-window -h -t $SESSION:3
tmux send-keys -t $SESSION:3.1 "htop" Enter
# Attach to the session
tmux attach-session -t $SESSIONСделайте его исполняемым и запустите:
chmod +x start-dev.sh
./start-dev.shСинхронизация панелей
Отправляйте одну и ту же команду на все панели одновременно — чрезвычайно полезно при управлении несколькими серверами одновременно:
<prefix> :
setw synchronize-panes onОтключите с помощью:
setw synchronize-panes offСовместное использование сеансов между пользователями
Два пользователя могут подключиться к одному сеансу для совместной работы в реальном времени:
# User 1 creates a session
tmux new -s shared
# User 2 attaches to it
tmux attach -t sharedОба пользователя видят и контролируют один и тот же терминал в реальном времени.
tmux Quick Reference Cheat Sheet
Session Commands
| Command | Description |
|---|---|
tmux new -s name | Создать именованную сессию |
tmux ls | Список сессий |
tmux a -t name | Подключиться к сессии |
tmux kill-session -t name | Завершить сессию |
<prefix> d | Отключиться от сессии |
<prefix> $ | Переименовать сессию |
Window Commands
| Shortcut | Description |
|---|---|
<prefix> c | Новое окно |
<prefix> n / p | Следующее / предыдущее окно |
<prefix> 0–9 | Переключиться на окно по номеру |
<prefix> , | Переименовать окно |
<prefix> & | Закрыть окно |
Pane Commands
| Shortcut | Description |
|---|---|
<prefix> % | Разделить вертикально |
<prefix> " | Разделить горизонтально |
<prefix> Arrow | Навигация по панелям |
<prefix> z | Увеличить / уменьшить панель |
<prefix> x | Закрыть панель |
<prefix> q | Показать номера панелей |
tmux в реальных сценариях сервера
Сценарий 1: Запуск длительных развертываний на VPS
При развертывании приложений на VPS с cPanel или пользовательской панели управления длительные скрипты развертывания являются частой проблемой. С tmux:
tmux new -s deploy
./deploy.sh
# Detach with <prefix> d — the deployment continues even if SSH dropsПереподключитесь позже, чтобы проверить прогресс:
tmux a -t deployСценарий 2: Администрирование нескольких серверов
При управлении несколькими выделенными серверами, откройте отдельные окна tmux для каждого сервера:
tmux new -s admin
# Window 1: Server A
ssh admin@server-a.example.com
# <prefix> c — new window
# Window 2: Server B
ssh admin@server-b.example.com
# <prefix> c — new window
# Window 3: Server C
ssh admin@server-c.example.comПереключайтесь между серверами мгновенно с <prefix> 1, <prefix> 2, <prefix> 3.
Сценарий 3: Мониторинг инфраструктуры веб-хостинга
Для пользователей общего веб-хостинга с доступом SSH, tmux предоставляет легкий способ постоянно запускать скрипты мониторинга без необходимости в выделенном менеджере процессов.
Устранение распространенных проблем tmux
tmux: command not found
Установите tmux, используя менеджер пакетов вашого дистрибутива (см. раздел установки выше).
Цвета выглядят неправильно или искажены
Добавьте это в ваш ~/.tmux.conf:
set -g default-terminal "screen-256color"И убедитесь, что ваш SSH-клиент и эмулятор терминала поддерживают 256 цветов.
Прокрутка мышью не работает
Убедитесь, что set -g mouse on находится в вашей конфигурации и конфигурация была перезагружена. Некоторые эмуляторы терминала требуют дополнительной конфигурации.
Не могу найти мою сессию после переподключения
Запустите tmux ls для отображения всех активных сессий. Если ничего не появляется, сервер мог перезагрузиться. Рассмотрите возможность использования супервизора процессов или systemd сервиса для автоматического запуска сессий tmux при загрузке.
Клавиша префикса не отвечает
Проверьте синтаксис вашего ~/.tmux.conf. Распространенная ошибка — забыть unbind C-b перед установкой нового префикса.
Заключение
tmux — один из самых эффективных инструментов, которые вы можете добавить в свой рабочий процесс Linux. Его комбинация сохранения сеансов, гибкого управления окнами, разделения панелей и глубокой настраиваемости делает его незаменимым для всех, кто серьёзно работает в терминале — от разработчиков и инженеров DevOps до системных администраторов, управляющих производственной инфраструктурой.
Инвестиция в изучение tmux окупается немедленно: больше не будет потери работы из-за разорванных SSH-соединений, больше не нужно жонглировать окнами терминала и больше нет затрат на переключение контекста. Независимо от того, запускаете ли вы рабочие нагрузки на высокопроизводительном плане VPS Hosting или управляете Dedicated Servers, tmux предоставляет вам структурированную, надёжную и эффективную среду командной строки.
Начните с основ — создайте сеанс, разделите панель, отсоедините и переподключитесь — затем постепенно развивайте свой ~/.tmux.conf по мере развития ваших потребностей. Через несколько дней вы будете удивляться, как вы когда-либо обходились без него.
*Нужна надёжная серверная среда, чтобы применить свои навыки tmux на практике? Изучите диапазон планов VPS Hosting, Dedicated Servers и VPS Control Panels от AlexHost — созданные для производительности, стабильности и полного доступа root.*
на всех хостинговых услугах