Спестете 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.

Разбиране на клавиша Prefix в tmux

Всеки tmux клавишен пряк път започва с клавиш prefix — комбинация от клавиши, която сигнализира на 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 функционират като раздели в рамките на сесия. Всеки window може да изпълнява напълно независим процес.

ДействиеКлавишна комбинация
Създаване на нов window<prefix> c
Преминаване към следващия window<prefix> n
Преминаване към предишния window<prefix> p
Преминаване към window по номер<prefix> 0–9
Преименуване на текущия window<prefix> ,
Списък на всички windows<prefix> w
Затваряне на текущия window<prefix> &

Core tmux Commands: Panes

Panes позволяват да разделите един прозорец на множество терминални области — една от най-мощните функции на tmux.

ДействиеКлавишна комбинация
Разделяне на pane хоризонтално (горе/долу)<prefix> "
Разделяне на pane вертикално (ляво/дясно)<prefix> %
Навигиране между panes<prefix> Arrow Keys
Преоразмеряване на pane (задръжте и повторете)<prefix> Ctrl + Arrow Keys
Увеличаване на pane на цял екран / възстановяване<prefix> z
Преобразуване на pane в нов прозорец<prefix> !
Затваряне на текущия pane<prefix> x
Показване на номерата на panes<prefix> q

Практически пример: Оформление за мониторинг на сървър

Ето типично оформление с три panes за мониторинг на уеб сървър:

# 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: Администрация на множество сървъри

При управление на множество Dedicated Servers, отворете отделни 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: Мониторинг на инфраструктурата на уеб хостинг

За потребители на Shared Web Hosting, които имат 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 план или управлявате bare-metal Dedicated Servers, tmux ви дава структурирана, устойчива и ефективна среда на командния ред.

Започнете с основите — създайте сесия, разделете панел, отделете се и се присъедините отново — след това постепенно изградете вашата ~/.tmux.conf според вашите нужди. За няколко дни ще се чудите как сте се справяли без него.

*Имате нужда от надежда среда на сървър, за да приложите вашите умения в tmux? Разгледайте диапазона на AlexHost от VPS Hosting планове, Dedicated Servers и VPS Control Panels — изградени за производителност, стабилност и пълен root достъп.*