Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Віртуальні сервери

Використання 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 працює повністю в терміналі без залежності від GUI, що робить його ідеальним для безголових серверів, контейнерів і мінімальних установок 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 (через 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> &

Основні команди tmux: Панелі

Панелі дозволяють розділити одне вікно на кілька областей терміналу — одна з найпотужніших функцій tmux.

ДіяСкорочення
Розділити панель горизонтально (верх/низ)<prefix> "
Розділити панель вертикально (ліво/право)<prefix> %
Навігація між панелями<prefix> Arrow Keys
Змінити розмір панелі (утримувати та повторювати)<prefix> Ctrl + Arrow Keys
Розгорнути панель на весь екран / відновити<prefix> z
Перетворити панель на нове вікно<prefix> !
Закрити поточну панель<prefix> x
Показати номери панелей<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'

Це дає вам інформаційну панель реального часу в одному вікні терміналу — неоцінимо при управлінні сервером у виробництві.

Режим копіювання: прокручування та виділення тексту

За замовчуванням колесо прокручування миші не працює в 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 Шпаргалка швидкого довідника

Команди сеансу

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

Команди вікна

СкороченняОпис
<prefix> cНове вікно
<prefix> n / pНаступне / попереднє вікно
<prefix> 0–9Перейти до вікна за номером
<prefix> ,Перейменувати вікно
<prefix> &Закрити вікно

Команди панелі

СкороченняОпис
<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 на практиці? Дослідіть асортимент AlexHost планів VPS Hosting, Dedicated Servers та VPS Control Panels — розроблені для продуктивності, стабільності та повного доступу root.*