• База знань
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Стаття також доступна російською (перейти до перегляду).

Використання TMUX

Зміст

Термінальні мультиплексори дозволяють створити на базі ОС Linux ефективне багатозадачне середовище для управління віддаленими серверами та виконання інших задач адміністрування. Tmux є одним із сучасних представників вказаного ПЗ, створеного на заміну відомого програмного засобу Screen, котрий ми розглядали раніше у відповідній статті. На відміну від останнього, Tmux має розширений набір функцій та команд, що дозволяє створювати потужні сценарії обробки даних, що вкрай необхідно при виконанні задач адміністрування. Розглянемо основні можливості програми та приклади її використання на VPS-сервері Ubuntu.

Основні концепції та визначення

Tmux розповсюджується за вільною ISC (Internet Systems Consortium) ліцензією, що дозволяє безперешкодно використовувати його для своїх потреб. Він входить до складу базового ПЗ OpenBSD та може використовуватися на всіх BSD-системах, а також macOS, Solaris та ОС Linux.

Наведемо основні концепції та визначення у термінології розробників програми.

Сервер Tmux (Server) – основний процес, котрий запускається автоматично при запуску утиліти користувачем і здійснює управління всіма запущеними у середовищі Tmux програмами. Працює лише у фоновому режимі до поки є хоча б одна відкрита сесія.

На сервері водночас може працювати декілька сесій,

Клієнт (Client) – під’єднується до термінальної сесії із зовнішнього терміналу.

Термінальна сесія Tmux (Session) – набір псевдотерміналів, працюючих під управлінням Tmux. Кожна сесія може мати необмежену кількість вікон.

Вікно (Window) – екран, котрий об’єднує певне число панелей та може бути пов’язане із кількома сесіями. Кожне вікно має свій індекс.

Панель (Pane) – містить псевдотермінал та відображається у одному вікні.

Список вікон поточної сесії можна переглянути у статусній строчці у нижній частині екрану.

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

Введення управляючих команд можливе також у псевдотерміналах за допомогою змінної оточення TMUX.

Кожне вікно має свою назву та одну активну панель. При створенні будь-якого вікна йому присвоюється назва першої запущеної в ньому програми.

Кожна сесія має лише одне поточне вікно.

До сесії завжди можна під’єднатися та знову від’єднатися. При цьому вона продовжує працювати у фоновому режимі.

Всі програми запускаються із псевдотерміналів панелей, кожна з яких належить лише одному вікну.

За допомогою команд та гарячих клавіш можна переміщатися між сесіями, між вікнами однієї сесії та між панелями одного вікна.

До однієї сесії може бути під’єднано кілька клієнтів, результати роботи котрих будуть доступні кожному із учасників.

При запуску програми без параметрів автоматично створюється нова сесія із єдиним вікном (екраном).

Встановлення Tmux на сервері Ubuntu

Для більшості підтримуємих платформ програму можна встановити із систем управління пакетами. Це не викликає труднощів, треба лише враховувати тип пакетного менеджера. Однак, якщо потрібна актуальна на даний час версія програми, можна скористатися можливістю збірки утиліти та її встановлення із вихідного коду. Для цього також є всі можливості. Треба лише попередньо встановити необхідні залежності, після чого скомпілювати та встановити пакет.

Послідовність дій у цьому випадку буде наступною:

  • Завантажити із сайту розробників архівний файл із вихідним кодом програми;
  • Розгорнути архів на сервері та перейти до каталогу із кодом (tmux-3.хх);
  • Виконати інструкції, наведені у файлі README, розміщеного у корні каталогу.

При цьому вимоги до ПЗ VPS-сервера будуть наступними: необхідно мати компілятори мови C, а також yacc, make та pkg-config.

Ми ж скористаємося можливостями «стандартної» інсталяції програми із пакетів ОС Debian.

Оновимо індекс пакетів на сервері:

$ sudo apt update

Оновлення індекс пакетів

Запустимо інсталятор. Для цього введемо в терміналі:

$ sudo apt install tmux

Запуск інсталятора

Вихід команди: tmux is already the newest version (3.2a-4ubuntu0.2).

Це означає, що Tmux входить до базового ПЗ нашого дистрибутиву і тому вона вже встановлена і готова до використання.

Перевірити версію програми можна за допомогою наступної команди:

$ tmux -V

Перевірка версії прогами

Результат: tmux 3.2a.

Отже, тепер можна починати працювати з утилітою.

Використання команд Tmux для управління сесіями

Утиліта має безліч команд різного призначення, однак найчастіше використовуються команди для управління сесіями – для під’єднання, від’єднання, зупинення, завершення їх роботи та багато інших.

Наведемо декотрі з команд:

  • attach-session – під’єднання до вказаної у команді сесії;
  • dtach-session – від’єднання від вказаної сесії одного або всіх клієнтів в залежності від параметрів команди;
  • kill-session – завершення роботи;
  • list-clients – переглянути список під’єднаних клієнтів;
  • rename-session – перейменування;
  • new-session – створення нової.

Для вказування ідентифікаторів клієнтів або сесій у всіх зазначених командах використовуються опції -t та -s. За допомогою першої опції вказується об’єкт, до котрого застосовується команда (target), наприклад, під’єднання до визначеної сесії. Друга вказує на об’єкт над котрим відбуваються дії, наприклад, перейменування сесії із вказаним ідентифікатором.

Для початку роботи з утилітою запустимо її без параметрів. При цьому автоматично буде створена нова сесія, до котрої ми будемо під’єднані. Введемо в терміналі:

$ tmux

Запуск tmux

У верхній частині створеного вікна присутнє запрошення командної строчки, а у нижній на зеленому фоні виведена строчка стану із інформацією про поточну сесію з лівого боку ([0] 0:bash*) та назву панелі вікна у лапках (з правого боку), а також час та дата проведення операції. За замовчуванням панелі присвоюється ім’я хоста (dedicated). Створене вікно має лише одну панель, котра займає увесь екран.

Для сесії (у квадратних дужках) та вікна (перед двокрапкою) виведений їхній ідентифікатор «0». Вікно отримало свою назву відповідно до назви першої запущеної програми. У нашому випадку це оболонка bash. Зірочка є ознакою того, що це є поточне вікно сесії.

Спробуємо перейменувати створену сесію, вказавши в команді її нове ім’я – name1. Для цього введемо в терміналі:

$ tmux rename-session name1

Перейменування сесії

Можна переконатися, що сесія отримала нову назву, що видно із інформації, котра виведена у квадратних дужках строчки стану.

Так само можна задати назву сесії одразу при її створенні. Відповідна команда буде виглядати наступним чином:

$ tmux new-session -s main_sess

Тут main_sess – довільне ім’я нової сесії.

Вказана команда також може бути записана так:

$ tmux new -s main_sess

Тобто, частина команди під ім’ям «session» може бути опущена. Так само це стосується і інших команд, у котрих використовується вказане слово.

Команда під'єднання до створеної сесії буде виглядати так:

$ tmux attach -tmain_sess

Тут -t – параметр для вказування цільового об’єкту до котрого застосовується команда; main_sess – ім’я сесії.

Окрім команд можна використовувати так звані гарячі клавіші. Наприклад, для від’єднання від поточної сесії у останньому прикладі треба натиснути наступну групу клавіш:

Ctrl+b d

Тут Ctrl+b – префіксний ключ, котрий завжди передує натисканню певної гарячої клавіші; його символічне зображення має наступний вигляд:

C-b

Одразу при його активації програма переходить у режим очікування введення чергової команди.

Робота з вікнами

Безпосереднє управління вікнами зазвичай відбувається за допомогою гарячих клавіш. При цьому попереду такої клавіші завжди активується префікс, про що вже говорилося вище. Наведемо найбільш поширені гарячі клавіші:

  • C-b c – створити нове вікно;
  • C-b 0-9 – відкрити вікно за його індексним номером;
  • C-b w – обрати вікно зі списку;
  • C-b , – перейменувати поточне вікно;
  • C-b : – відкрити командну строчку.

Для прикладу, створимо нове вікно. Для цього активуємо префікс та натиснемо клавішу c.

Екран після цього буде виглядати так, як показано нижче.

Активація нового вікна

У лівій частині строчки стану виведена наступна інформація про поточну сесію: [name1] 0:bash- 1:bash*. Отже, було додане вікно із присвоєнням йому індексу «1». І воно одразу ж стало поточним, про що говорить наявність зірочки після його назви.

Як і у випадку сесій, ми можемо вільно виконувати різноманітні команди із вікнами – перейменовувати, змінювати поточне тощо. Як правило, це не викликає якихось складнощів.

Робота з панелями

Для зручності використання програми передбачена можливість розбиття вікон на окремі ділянки або панелі за термінологією розробників. Вони дають змогу створити цілий набір псевдотерміналів, маючи лише одне вікно або екран. Як і у випадку вікон, керувати такими панелями зручно за допомогою гарячих клавіш. Наведемо основні з них:

  • C-b % – розбити поточну панель по горизонталі;
  • C-b " – розбити поточну панель по вертикалі;
  • C-b o – перейти на наступну панель;
  • C-b Ctrl+стрілка – зміна розміру поточної панелі;
  • C-b стрілка – перейти на панель за напрямком стрілки;
  • C-b ; – переключитися між поточною та попередньою панеллю;
  • C-b x – закриття панелі.

Для прикладу, розіб’ємо вікно №1 по горизонталі, натиснувши клавішу «%» після префіксу. Після цього наш екран буде мати наступний вигляд:

Розбиття вікон по горизонталі

Можна переконатися, що тепер замість одного ми маємо можливість використовувати два термінали. Також звертаємо увагу на те, що строчка стану ніяким чином не зазнала змін. І це зрозуміло, оскільки ми, як і раніше знаходимося у одному і тому ж вікні у межах однієї й тієї ж сесії.

Змінимо поточну панель за допомогою стрілки. Вигляд екрану стане таким:

Зміна активності вікна

Тобто, тепер активною стала ліва панель, про що свідчить наявність у ній курсору.

Передбачена можливість змінювати стиль відображення кожної з панелей, наприклад, ширину та колір їхніх границь. Для цього існує величезний набір відповідних команд та опцій, але їх розгляд виходить за рамки нашої статті.

Налаштування Tmux

Налаштування програми дає змогу отримати зручний інструмент адміністрування для вирішення повсякденних задач. Всі параметри по управлінню програмою та їх значення сконцентровані у конфігураційному файлі із ім’ям .tmux.conf, зазвичай розташованому у домашній директорії користувача. Переглянемо його, щоб подивитися типові значення параметрів. Для цього введемо в терміналі:

$ nano ~/.tmux.conf

Редагування файлу .tmux.conf

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

Підписуйтесь на наш телеграм-канал https://t.me/freehostua, щоб бути в курсі нових корисних матеріалів.

Дивіться наш канал Youtube на https://www.youtube.com/freehostua.

Ми у чомусь помилилися, чи щось пропустили?

Напишіть про це у коментарях, ми з задоволенням відповімо та обговорюємо Ваші зауваження та пропозиції.

 
Дата: 31.07.2024
Автор: Олександр Ровник
Голосування

Авторам статті важлива Ваша думка. Будемо раді його обговорити з Вами:

comments powered by Disqus
navigate
go
exit
Дякуємо, що обираєте FREEhost.UA