Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux VPS

Использование 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 tmux

CentOS / RHEL / Fedora

# CentOS/RHEL 7
sudo yum install tmux

# CentOS/RHEL 8+ and Fedora
sudo dnf install tmux

Arch Linux

sudo pacman -S tmux

macOS (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.

ActionShortcut
Разделить 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

CommandDescription
tmux new -s nameСоздать именованную сессию
tmux lsСписок сессий
tmux a -t nameПодключиться к сессии
tmux kill-session -t nameЗавершить сессию
<prefix> dОтключиться от сессии
<prefix> $Переименовать сессию

Window Commands

ShortcutDescription
<prefix> cНовое окно
<prefix> n / pСледующее / предыдущее окно
<prefix> 0–9Переключиться на окно по номеру
<prefix> ,Переименовать окно
<prefix> &Закрыть окно

Pane Commands

ShortcutDescription
<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.*