tmux — це програма мультиплексор віртуальних консолей, дозволяє легко перемикатись між кількома програмами в одному терміналі, від'єднуватись від програм, залишаючи їх у фоні, і приєднувати їх до іншого терміналу і багато іншого. Він є зручним інструментом для одночасного керування багатьма програмами з інтерфейсом командного рядка. tmux є альтернативою GNU Screen, проте розробляється активніше і використовує ліцензію BSD на відміну від GNU GPL v3 у GNU screen. При запуску tmux створює нову сесію з одним вікном і відображає його на екрані. Внизу екрану відображається лінія статусу з інформацією про поточну сесію, вона також використовується для введення інтерактивних команд.

Сесія tmux — це сукупність «псевдо-терміналів» під управлінням tmux, кожна сесія має одне або кілька «вікон» приєднаних до неї, вікно може бути розділене на кілька прямокутних «панелей», у кожній з яких міститься псевдо-термінал. Будь-яка кількість екземплярів tmux може приєднатись до однієї сесії і будь-яка кількість вікон може знаходитись у ній. tmux виходить при завершення всіх сесій.

Сесії tmux є стійкими і можуть пережити випадкові роз'єднання (наприклад роз'єднання ssh) або навмисне від'єднання (за допомогою комбінації клавіш CTRL+b d). Знову приєднатись до сесії можна за допомогою команди tmux attach.

tmux відображає сесії за допомогою клієнта і всі сесії управляються за допомогою єдиного сервера, клієнт і сервер є окремими процесами, комунікація яких відбувається через сокет, що міститься в директорії /tmp.

Поєднання клавіш tmux може керуватись з підєднаного клієнта, використовуючи комбінації клавіш, що починаються з префікса, стандартний префікс C+b (Ctrl+b), після якого натискається командна клавіша, клавіша-модифікатор (переважно Alt) позначена M КомбінаціяОписC-bНадіслати клієнтові команду-префіксC-oПеремкнутись на наступну панель у поточному вікніC-zПризупинити tmux!Винести панель у окреме вікно"Розділити поточну панель горизонтально навпіл#Перелічити всі буфери вставлення$Перейменувати поточну сесію%Розділити поточну панель вертикально навпіл&Знищити поточне вікно'Вибрати вікно, ввівши його індекс,Перейменувати поточне вікно -Видалити останній скопійований у буфер текст.Перенести поточне вікно, інтерактивно вказавши індекс0 — 9Вибрати вікно з вказаним індексом:Викликати командний рядок tmux;Повернутись до попередньої панелі=Інтерактивно вибрати, який буфер вставити?Показати всі поєднання клавішDІнтерактивно обрати, який клієнт від'єднати[Перейти у режим копіювання, щоб копіювати текст або переглядати історію]Вставити останній скопійований буферcСтворити нове вікноdВідєднати поточний клієнтfВвести текст для пошуку в поточному вікніiПоказати інформацію про поточне вікноlПерейти до попередньо відкритого вікнаnПерейти до наступного вікнаoПерейти до наступної панелі в поточному вікніpперейти до попереднього вікнаqТимчасово показати індекси панелейrПримусово оновити поточний клієнтsІнтерактивно обрати нову сесію для клієнтаLПовернутись до попередньої підєднаної сесіїtПоказати час у поточній панеліwІнтерактивно обрати вікноxЗнищити поточну панель{Поміняти місцями поточну панель з попередньою }Поміняти місцями поточну панель з наступною~Показати попередні повідомлення від tmuxPage UpУвійти в режим копіювання і піднятись на один екран вверхКлавіші «Вверх», «Вниз», «Вліво», «Вправо»Переміщення між панелямиM-nПереміститись до наступного вікна з сигналом або маркером активностіM-pПереміститись до попереднього вікна з сигналом або маркером активностіM-oПоміняти місцями панелі поточного вікна у зворотньому напрямкуC + «Вверх», «Вниз», «Вліво», «Вправо»Змінити розмір поточної панелі з кроком розміром 1 клітинкаM + «Вверх», «Вниз», «Вліво», «Вправо»Змінити розмір поточної панелі з кроком розміром 5 клітинок

Всі комбінації клавіш можна змінити за допомогою команд bind-key і unbind-key. Щоб зробити зміни постійними, їх можна зберегти у конфігураційному файлі .tmux.conf у домашній директорії користувача.

Функціональність tmux володіє тим самим функціоналом що і GNU Screen, проте має багато додаткових можливостей, серед них можна виділити наступні: Використання клієнт-серверної архітектури, де кожен сервер використовує єдиний сокет і володіє багатьма сесіями, до яких можуть приєднуватись скільки завгодно клієнтів; Кращий командний інтерфейс, що дозволяє виконувати більшість команд tmux прямо з терміналу, це полегшує написання скриптів для tmux; tmux має багато буферів обміну; tmux може автоматично перейменовувати імена вікон відповідно до запущених у них програм; можливість використання клавіатурних схем vi та emacs; Можливість обмежити розмір вікна; Можливість пошуку по тексту у вікні; У tmux є поняття «вікно» і «панель», тоді як у GNU screen є тільки вікна. Кожне вікно може містити кілька панелей; Статусна лінія tmux легша для сприйняття і використання; Вихідний коди tmux більше відповідає сучасним стандартам, відповідно полегшуючи розширення; tmux обмежує розмір вікон розмірами терміналу.

Зноски

Джерела