Статья также доступна на украинском (перейти к просмотру).
Содержание
- Основные концепции и определения
- Установка Tmux на сервере Ubuntu
- Использование команд Tmux для управления сессиями
- Работа с окнами
- Работа с панелями
- Настройка 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

В верхней части созданного окна присутствует приглашение командной строки, а в нижней на зеленом фоне выведена строка состояния с информацией о текущей сессии с левой стороны ([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

Можно убедиться, что диапазон для внесения возможных корректировок достаточно широк. И это также одно из преимуществ программного средства перед своими конкурентами.
Подписывайтесь на наш телеграм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.
Смотрите наш канал Youtube на https://www.youtube.com/freehostua.
Мы в чем ошиблись, или что-то пропустили?
Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.
|
Дата: 31.07.2024 Автор: Александр Ровник
|
|


Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:
comments powered by Disqus