
- tmux позволява едновременно изпълнение, разделяне и управление на множество терминални сесии в рамките на един прозорец, предлагайки гъвкавост за разработка, системна администрация и сценарии за дистанционна работа.
- Основните концепции на tmux – сесии, прозорци и панели – осигуряват мощна организационна структура, която подобрява производителността и персонализирането на работния процес далеч отвъд терминалните приложения по подразбиране.
- tmux сесиите се запазват след прекъсване или загуба на връзки, което позволява сигурни и безпроблемни SSH работни процеси, както и усъвършенствана многозадачност, както локално, така и отдалечено.
- Цялостната конфигурация, скриптове, плъгини и клавишни комбинации дават възможност на потребителите да персонализират tmux според личните и професионалните си нужди, интегрирайки се с инструменти като Vim, създавайки работни потоци за множество проекти и повишавайки ефективността на командния ред.
Ако някога сте жонглирали с твърде много терминални прозорци, отчаяно сте се опитвали да не загубите местоположението си, докато се свързвате с отдалечена машина чрез SSH, или сте искали работните ви процеси от командния ред да приличат повече на добре организирана контролна зала, инструмент, наречен tmux, може би ще промени живота ви. Както за случайни разработчици, така и за опитни потребители на командния ред, tmux е онова швейцарско ножче, което винаги сте искали: то ви позволява да отваряте, управлявате, разделяте и съхранявате множество терминални среди – без хаос, само продуктивност. Но какво всъщност е tmux? Какво може да ви предложи, ако приемете неговите странности и силни страни?
Нека да подготвим сцената: Вие сте дълбоко в зоната, раздели навсякъде, SSH връзки отворени, процеси работещи, може би Vim сесия тук и shell скрипт там. Изведнъж интернетът ви се прецаква, или сменяте компютрите, или просто се губите сред всички тези отворени прозорци. С tmux не само можете да защитите работещите си процеси от подобни главоболия, но и да разделите терминала си като парчета от пъзел, да прескачате гъвкаво между работните пространства и да възобновявате без да прескачате - независимо коя машина или емулатор на терминал използвате. Независимо дали сте нови в концепциите за терминален мултиплексор или вече пишете tmux за напреднали сценарии, това ръководство е вашият спътник за извличане на максимума от всяко натискане на клавиш.
Какво е tmux? Разбиране на терминалните мултиплексори
tmux, което е съкращение от „терминален мултиплексор“, е програма, която ви позволява да стартирате и контролирате множество независими терминални сесии в рамките на един прозорец или отдалечена връзка. Можете също да разгледате този ресурс, за да научите как да извлечете още повече от tmux в напреднали среди (https://www.ikkaro.net/android-17-linux-terminal/).
Защо хората обичат tmux? Практическите причини са много:
- Едновременни работни среди: Можете да имате редактор тук, лог файлове там, сървъри, работещи в един панел, докато наблюдавате производителността в друг.
- Устойчивост: Процесите продължават да се изпълняват, дори ако терминалът ви се затвори, връзката се прекъсне или се отдалечите. Можете да излезете и да се върнете по-късно, точно оттам, откъдето сте спрели.
- Дистанционна работа: Особено през SSH, tmux защитава работата ви от унищожаване, ако мрежата падне, като поддържа сесиите активни на сървъра.
- персонализиране: Tmux е силно персонализируем, с обширни опции за конфигуриране, възможности за скриптове и плъгини, което го прави основен инструментариум в много инструменти за напреднали потребители.
Накратко, tmux не просто ви позволява да разделите терминала — той внася ред, удобство и мощна организационна структура в работата ви, превръщайки обикновена обвивка в нещо като стабилна работна среда за CLI. Ако сте използвали GNU Screen , tmux се основава на подобни идеи, но с по-чист, по-модерен код и по-добра разширяемост.
Основни понятия: Сесии, прозорци и панели
За да разберете наистина tmux, трябва да схванете три ключови концепции, които правят всичко да работи: сесии, прозорци и панели. След като ги усвоите, ще можете да проектирате персонализирани работни пространства на терминали за нула време.
сесии
Сесията е вашият контейнер от най-високо ниво в tmux. Всеки път, когато стартирате tmux, създавате нова сесия. Сесиите могат да представляват различни проекти, отдалечени връзки или работни потоци. Можете да имате няколко сесии, работещи във фонов режим, всяка от които е изключена от външния свят, докато не решите да се свържете (или превключите) към нея.
- Сесия = колекция от прозорци и техните панели.
- Те могат да останат активни (и работещи), дори ако прекъснете връзката или затворите терминала.
- След това можете да се свържете отново към всяка сесия от всяко място – това е като да телепортирате цялото си CLI работно пространство между устройства или терминали.
Научете как да извлечете максимума от tmux и други команди в тези ръководства за терминали, за да подобрите работния си процес.
Windows
В рамките на всяка сесия, tmux организира работата ви, използвайки прозорци. Всеки прозорец работи като терминал на цял екран, който може да бъде разделен на панели. Можете да превключвате между прозорците, да ги наименувате (например „разполагане“, „логове“, „редактор“) и да ги третирате като отделни работни пространства в рамките на вашата сесия.
- Прозорец = групиране на един или повече панели, представляващи задача или подмножество от вашия проект.
- Превключването между прозорците е мигновено и съдържанието остава активно – ако оставите дадена компилация да работи, тя ще продължи да се изпълнява, докато работите в друг прозорец.
- Windows има индекси (номерирани или опционални персонализирани имена), които можете да използвате за преки пътища и навигация.
Панели
Панелите са мястото, където многозадачността става реална. В рамките на един прозорец можете да разделите изгледа на множество „плочки“ или панели, всеки от които изпълнява собствена програма, команда или обвивка. Можете да ги разделяте хоризонтално или вертикално, да ги местите, да ги преоразмерявате и дори да синхронизирате входа във всички тях, ако е необходимо.
- Панел = отделен терминал, работещ в рамките на прозорец на дадена сесия.
- Те могат да бъдат разделяни, преоразмерявани, разширявани/свивани и местени независимо.
- Можете да взаимодействате с всеки панел, сякаш е негов собствен терминал.
Ключът? Всички те работят заедно: можете да имате една сесия за работа, с няколко прозореца за проекти или задачи, като всеки прозорец е разделен на панели според вашия работен процес.
Реални сценарии: Защо tmux е страхотен
1. Дистанционно разработване и SSH
Една от най-мощните характеристики на tmux е неговата устойчивост в отдалечени среди. Представете си, че сте свързани чрез SSH към отдалечен сървър, изпълнявайки дълги процеси или компилации. Без tmux, прекъсването на връзката вероятно би означавало загуба на изход или прекъсвания. С tmux просто се откачате от сесията си и по-късно (дори дни по-късно) се свързвате отново и продължавате точно оттам, откъдето сте спрели – процесите ви продължават да работят без прекъсване.
2. Управление на множество проекти и работни процеси
tmux е отличен за разработчици, жонглиращи с много проекти, всеки със собствена директория, зависимости и изпълняващи се процеси. Например, можете да създадете сесия, наречена „clientA“, с прозорци за „frontend“, „backend“, „database“ и „logs“. Всеки прозорец може да бъде разделен на панели с редактори, тестове и конзолен изход. Трябва да превключите към „clientB“? Отделете го и го прикачете отново към следващата сесия.
3. Едновременни инструменти, редактори и монитори
tmux превръща вашата обвивка в кокпит за продуктивност. Може би искате да гледате лог файлове, да изпълнявате команди на живо, да наблюдавате клъстер на Kubernetes и да редактирате код, всичко това едновременно. С tmux можете да разделяте панелите както желаете, като всеки от тях е толкова независим, колкото желаете. Честите потребители настройват персонализирани оформления, които отразяват ежедневието им – редактор в един панел, изход на сървъра в друг, инструменти за внедряване в трети.
4. Екипи, програмиране по двойки и преподаване
Тъй като tmux може да има няколко клиента, свързани към сесия едновременно, той е идеален за програмиране по двойки. Двама или повече души могат да се свържат към една и съща tmux сесия, да си сътрудничат на живо и да виждат действията си в реално време – идеално за отдалечен преглед на код, отстраняване на грешки или преподаване на концепции от командния ред (CLI).
Първи стъпки: Инсталация и първи стъпки
Как да инсталирате tmux
tmux работи на почти всяка Unix-подобна операционна система – Linux, macOS, *BSD и дори на Windows чрез WSL или Cygwin. В повечето Linux дистрибуции можете да го инсталирате директно от вашия мениджър на пакети:
- Debian/Ubuntu:
sudo apt install tmux - Федора/Червена шапка:
sudo dnf install tmux - Arch Linux:
sudo pacman -S tmux - macOS (с Homebrew):
brew install tmux
Искате ли да проверите инсталацията? Тип tmux -V за да видите инсталираната версия.
Стартиране на tmux сесия
За да стартирате първата си tmux сесия, просто изпълнете командата „tmux“:
tmux
Вече сте в сесия по подразбиране (често наричана сесия 0), като първият ви прозорец и панел действат като обичайната ви среда на обвивката. Можете да започнете да изпълнявате команди нормално.
Отделяне и повторно закрепване
Истинската стойност на tmux се вижда, когато се откъснете от сесията си и се върнете към нея по-късно. За да се откачите, използвайте префиксния ключ (по подразбиране Ctrl+b, понякога наричан „лидер на tmux“), последван от d:
Ctrl+b d
Вашата tmux сесия вече работи във фонов режим – безопасна е и чака да се върнете.
За да се свържете отново, избройте наличните сесии:
tmux ls
След това, с:
tmux attach -t session_number_or_name
Ако имате само една сесия, tmux attach или дори tmux a е достатъчно.
Организиране на работата ви: Сесии, прозорци и панели в детайли
Създаване и управление на сесии
Можете да създадете нова сесия (с персонализирано име) по следния начин:
tmux new -s my_session
Избройте всички текущи сесии:
tmux ls
Прикачи към конкретна сесия:
tmux attach -t my_session
Прекратяване на сесия (отвън или вътре в tmux):
tmux kill-session -t my_session
Създайте нов прозорец:
Ctrl+b c
Превключване между прозорци:
Ctrl+b n # Next window Ctrl+b p # Previous window
Превключване по номер:
Ctrl+b 0 # Window 0 Ctrl+b 1 # Window 1 ... up to 9
Преименувайте прозорец за по-лесно управление:
Ctrl+b ,
Панели: Разделяне и управление на изгледа
Разделяне на текущия прозорец вертикално (панелът отдясно):
Ctrl+b %
Разделяне хоризонтално (панелът по-долу):
Ctrl+b "
Придвижване между панелите (с клавишите със стрелки или hjkl):
Ctrl+b (Arrow) or Ctrl+b h/j/k/l
Размяна или преместване на панели:
- Преминаване към предишния панел:
Ctrl+b o - Завъртане на панелите:
Ctrl+b Ctrl+o - Преместване на панела наляво/надясно:
Ctrl+b {намляваCtrl+b } - Затваряне на текущия панел:
Ctrl+b x
Динамично преоразмеряване на панелите с помощта на Ctrl+b заедно с клавишите със стрелки (за фини настройки):
- Малка стъпка:
Ctrl+b Ctrl+arrow - Голяма стъпка:
Ctrl+b Alt+arrow
За да увеличите мащаба на панела до цял екран и той да запълни целия прозорец:
Ctrl+b z
Полезни стойности: Ключови комбинации на tmux
Красотата на tmux се крие в бързата навигация и управлението чрез клавишни комбинации. Ето тези, които ще използвате всеки ден:
- Стартиране на tmux:
tmux - Отделяне на сесията:
Ctrl+b d - Списък на сесиите:
tmux ls - Свързване към сесия:
tmux attach -t session_name - Нов прозорец:
Ctrl+b c - Следващ/Предишен прозорец:
Ctrl+b n/Ctrl+b p - Преименуване на прозорец:
Ctrl+b , - Разделяне на панела вертикално/хоризонтално:
Ctrl+b %/Ctrl+b " - Навигиране между панелите:
Ctrl+b arrowsorCtrl+b h/j/k/l - Затваряне на прозореца/панела:
Ctrl+b x/Ctrl+b & - Мащабиране на панел:
Ctrl+b z - Показване на всички преки пътища:
Ctrl+b ?
За пълна справка, проверете ръководството или официалната уики страница на tmux.
Лента на състоянието и визуално персонализиране
Интерфейсът на tmux е повече от функционален – той е проектиран да ви даде контекст с един поглед и бърз достъп до вашите работни пространства чрез лентата на състоянието.
Редът на състоянието
По подразбиране tmux показва лента на състоянието в долната част на терминала. Редът на състоянието показва вашата сесия, имената и индексите на прозорците, активния прозорец (обикновено маркиран) и полезна системна информация (хост, час, дата).
- Лявата страна показва прикачената сесия (напр. „).
- Центърът показва имената на всички прозорци, техните индекси и маркира активния.
- Дясната страна показва текущия хост, час и дата.
Персонализиране на лентата на състоянието
Лентата на състоянието е силно персонализируема чрез .tmux.conf конфигурационен файл. Можете да показвате повече информация, да променяте цветове, да добавяте индикатори за батерията или да изпълнявате вградени команди за динамично съдържание. Например:
- Промяна на цвета на лентата:
set -g status-style bg=cyan - Задаване на цвят на неактивния прозорец:
set -g window-status-style bg=yellow - Маркиране на текущия прозорец:
set -g window-status-current-style bg=red,fg=white
Можете да създавате скриптове и стилове за почти всеки елемент от интерфейса, от джаджи в лентата на състоянието до начина, по който се показват заглавията на прозорците, използвайки вграденото форматиране на tmux и вградените изрази в обвивката.
Не всеки е пурист на клавиатурата – tmux може да използва и мишка. Въпреки че клавишните комбинации са най-бързият начин, можете да активирате поддръжката на мишка, за да избирате, преоразмерявате или плъзгате панели/прозорци, да превключвате между раздели и да взаимодействате с контекстни менюта (започвайки с tmux 3.x):
- Активиране на режим на мишката (временно): Отвътре в tmux,
Ctrl+b :за да получите достъп до вътрешния команден ред, след това: set -g mouse on- Вече можете да щраквате и плъзгате границите на панелите, да избирате прозорци или да взаимодействате с изскачащи менюта, които се появяват при щракване с десен бутон.
За да направите това постоянно, добавете set -g mouse on към вашия .tmux.conf файл.
Конфигурация: Поемете контрол над вашата среда
Истинската сила на tmux се отключва, когато го персонализирате, за да отговаря на вашия стил на работа. tmux използва конфигурационен файл—~/.tmux.conf—за съхраняване на персонализирани преки пътища, оформления на лентата на състоянието, цветови схеми, плъгини и други.
Опции за конфигуриране на ключове
-
- Промяна на префиксния ключ: If
Ctrl+bусеща неудобство или е в конфликт с други инструменти, можете да го промените например наCtrl+a(като GNU Screen) със следното в.tmux.conf:
- Промяна на префиксния ключ: If
set -g prefix C-a unbind C-b bind C-a send-prefix
- Персонализиране на поведението на панела: Например, включете синхронизацията (въвеждане във всички панели едновременно) или променете автоматичните оформления.
- Конфигуриране на навигационните клавиши между прозорците и панелите: Можете да картографирате
Alt+arrowsза да превключвате между екраните, ако предпочитате.
Примерни настройки в .tmux.conf
# Change status bar color set -g status-style bg=blue # Show only the time on the right set -g status-right '%H:%M' # Underline the current window set -g window-status-current-style 'underscore' # Enable mouse set -g mouse on
Запазете и презаредете конфигурацията си онлайн:
tmux source-file ~/.tmux.conf
Има много за изследване. За вдъхновение разгледайте хранилищата за конфигурация с отворен код или уикито.
Силата на командния ред и скриптовете
tmux не е само за ръчна, интерактивна употреба. Той е идеален за скриптове и автоматизация. Можете да стартирате, прикачвате, прекратявате и манипулирате сесии, прозорци и панели от shell скриптове, което прави tmux основата за стабилно дистанционно администриране, CI/CD инфраструктура или възпроизводими среди за разработка (представете си: незабавно отваряне на 10 разделени панела с тестове, сървъри и редактори за секунди).
- Скриптиране на сесии за стартиране на проекти, сървъри или краткотрайни среди за разработка.
- Комбинирайте с tmux-възкресяване за запазване и възстановяване на пълните оформления след рестартиране.
- Изпращайте изхода от панела към файлове, други програми или го споделяйте в реално време с други.
Копиране, поставяне и история
Ако сте уморени да използвате мишката за копиране и поставяне в терминални сесии, tmux има собствена мощна система за управление на буфера за превъртане и клипборда. Активирайте режима на копиране с:
Ctrl+b Могат да се управляват именувани и неименувани буфери за поставяне, а с правилната конфигурация tmux може да се интегрира със системния клипборд за плавно копиране и поставяне.
Тази система помага при проучвания, прегледи на код или обработка на данни, което улеснява копирането на изхода или резултатите от лог файловете безпроблемно.
Разширени функции: Плаващи панели, оформления, дървовиден режим и менюта
Плаващи панели (tmux 3.8+)
Плаващите панели позволяват на панела да се намира на повърхността (като изскачащ прозорец) над текущото оформление на мрежата. употреба Ctrl+b * за да създадете плаващ панел; след това можете да го местите и преоразмерявате независимо, дори с мишката.
Оформления: Организиране с едно докосване
Превключване между различни автоматични оформления:
- Равномерно хоризонтално оформление:
Ctrl+b M-1 - Равномерно вертикално оформление:
Ctrl+b M-2 - Основен хоризонтален панел (един голям панел и други разделени):
Ctrl+b M-3 - Основна вертикала:
Ctrl+b M-4 - Плочки:
Ctrl+b M-5
Дървовиден режим: Визуален браузър
Разглеждайте визуално сесиите, прозорците и панелите си с дървовиден режим:
- Започнете го с
Ctrl+b s(сесии) илиCtrl+b w(Windows). Използвайте клавишите със стрелки за навигация, маркиране, избиране или групово изтриване. - Прегледът под списъка ви помага да идентифицирате какво има във всеки панел/прозорец/сесия.
Менюта и управление на клиенти
tmux включва контекстни менюта и клиентски режим за управление на множество връзки към една и съща сесия. Щракнете с десния бутон на мишката за изскачащи менюта и използвайте Ctrl+b D за управление на клиенти (отделяне, прекратяване, преглед на активни сесии и др.).
Плъгини: Изведете tmux на следващото ниво
Една от тайните зад трайната популярност на tmux е неговата динамична екосистема от плъгини, която лесно се управлява чрез мениджъра на плъгини (tpm) . С плъгините можете:
- Запазване и възстановяване на работни пространства с
- Запазете историята на превъртане назад при рестартирания с tmux-континуум
- Подобрения в лентата на състоянието, времето, батерията и други
Тази разширяемост позволява на tmux да е в крак с всяко ново поколение терминални работни процеси.
Зад кулисите: Сървърът, клиентите и архитектурата на tmux
tmux работи на клиент-сървър архитектура. Сървърът tmux стартира автоматично, когато изпълните първата команда; всички данни за сесията, прозореца и панела остават защитени на сървъра, а клиентите (т.е. вашите терминали) се свързват и изключват безпроблемно.
- Цялото активно състояние се управлява от сървърния процес, което гарантира, че никога няма да загубите работата си при смяна на терминали (или дори компютри, стига да се свържете отново).
- Клиентите са интерфейсът, който използвате за взаимодействие с tmux. Можете да имате множество клиенти, свързани към една и съща сесия – всички те да преглеждат и редактират едни и същи прозорци и панели в реално време.
По-задълбочено проучване на конфигурацията: Съвети за напреднали
Конфигурационната система на tmux е много подробна – тя обработва променливи на средата, вградени команди и други. Конфигурационни файлове (.tmux.conf) се анализират при стартиране на сървъра, което ви позволява:
- Дефиниране на персонализирани префикси, цветове и формати
- Предаване на променливи на средата към дъщерни процеси
- Превключване между
viнамляваemacsпреки пътища в режим на копиране - Добавете скриптове и куки за сложна автоматизация (например, стартиране на конкретни програми при зареждане или преконфигуриране на лентата на състоянието при конкретни тригери)
- Коментирайте и структурирайте конфигурацията си, за да я споделите с екип или в GitHub
Искате да заредите алтернативна конфигурация без рестартиране? Използвайте:
tmux source-file /path/to/file
Въпреки че конфигурацията на tmux не е пълноценен скриптов език, неговите функции (като разширяване на променливи, вградени команди и условни оператори) позволяват голяма гъвкавост за напреднали потребители.
Работа с режим на копиране и буфери за поставяне
tmux включва мощна система за режим на копиране за навигация и манипулиране на терминалния изход отвъд стандартното превъртане и селекция.
- Влезте в режим на копиране с
Ctrl+b - Управлявайте буферите, включително именуваните буфери за поставяне (с команди като
set-buffer,load-buffer,save-buffer) - Интегрирайте се със системния клипборд за лесно копиране и поставяне в графични приложения (с допълнителна конфигурация или плъгини)
Тази система помага при проучвания, прегледи на код или обработка на данни, което улеснява копирането на изхода или резултатите от лог файловете безпроблемно.
Ключова терминология и екосистемата на tmux
tmux въвежда своя собствена уникална терминология:
- Сесия: Колекция от прозорци и стъкла от най-високо ниво
- прозорец: Терминал на цял екран в рамките на сесия, съдържащ панели
- Панел: Подразделяне на прозорец, като всеки изпълнява собствена програма
- Клиент: Терминален екземпляр, свързан към tmux сесията или сървъра
- Префиксен ключ: Пряк път, който задейства tmux команди (по подразбиране,
Ctrl+b) - Ред на състоянието: Информация в долната част (или горната част, ако е конфигурирана) на вашия терминал
- Дървовиден режим: Визуален, удобен за навигация браузър на сесии, прозорци и панели
За пълни подробности и препратки към команди, вижте уикито.
Опции, стилове и формати: Направете вашия tmux перфектен
tmux се определя от своите опции – и със стотици налични, можете да конфигурирате всеки аспект на интерфейса по ваш вкус. Някои полезни опции включват:
- базов индекс — Започнете номерирането на прозорците от 1
- мишка — Включване/изключване на поддръжката на мишката
- статус-позиция — Преместване на лентата на състоянието горе или долу
- преномериране на прозорци — Автоматично преномериране на прозорците след изтриването им
- фокусни събития, заглавия на комплекти, клавиши за състояние — Настройване на фокуса на прозореца, заглавията и поведението на лентата
- стилови ключове — Дефиниране на атрибути и цветове на дисплея (от
fg=redда се#ff8800за персонализирани цветове)
tmux за напреднали потребители и скриптове
Напредналите потребители виждат tmux като много повече от просто помощна програма – той е основата на цялата им работна среда. Със скриптове можете да:
- Автоматизирайте настройката на средата за проекти
- Изпълнявайте повтарящи се конфигурации на прозорци и панели в CI, табла за управление или мониторинг
- Задействане на куки при събития (напр. изпълнение на диагностика при прикачване на сесии, регистриране на промени в лентата на състоянието)
- Верижни команди за автоматизиране на работни процеси (комбиниране
new-session; split-window; send-keysИ т.н.)
Проверете раздела за напреднали в уикито, за да започнете със сложни скриптове и плъгини.
Най-добри практики за извличане на максимума от tmux
Ето препоръчителни стратегии за най-добро изживяване с tmux:
- Дефинирайте сесиите около широки теми (като „работа“, „devops“, „лично“), със специфични прозорци и панели за подзадачи.
- Винаги наименувайте сесиите и прозорците си за бърза справка— избягвайте да се привързвате към безсмислени числа или низове.
- Поддържайте конфигурацията си под контрол на версиите така че можете да го възстановите или лесно да го споделите с екипа си.
- Разгледайте екосистемата на плъгините: Инсталирайте TPM и разгледайте готови плъгини в GitHub, за да разширите настройката си.
- Научете най-полезните преки пътища—те са вашето тайно оръжие за бързина, заслужава си да ги запомните!
- Бъдете в течение: tmux е в процес на активна разработка и нови функции като плаващи панели, дървовиден режим и управление на клиенти могат да направят работния ви процес още по-мощен.
Разгледайте ръководствата на общността, dotfiles и скрийнкастовете за практични идеи – има tmux съдържание за всеки стил на учене.
Полезни ресурси и къде да научите повече
- Проектът tmux в GitHub
- Red Hat: Ръководство за начинаещи за tmux
- Проект за плъгини tmux
- lars-ellingsen.dev/blog/tmux
- Ръководство за tmux в колежа Суортмор
Ако някога се изгубите или искате да видите какво е новото в най-новата версия, винаги проверявайте или се абонирайте за актуализации в GitHub.
Linux терминалът на Android 17: Пълно ръководство за нови функции, персонализации и актуализации за опитни потребители