Найти тему

Терминальный мультиплексор или Tmux: замена друга, брата и жены для системного администратора

Оглавление

Когда-то в статье про Tabby один из подписчиков предложил рассказать про терминальный мультиплексор и его очевидные удобства для работы системного администратора. Прошло прилично так времени, я активно использую Tmux в работе (и не только), а статьи все не было. Пора исправляться. Далее расскажу, что такое Tmux и почему он заменит системному администратору друга, брата и жену. Это вводная статья, в последующих будем знакомиться с этим инструментом ближе.

Tabby - отличный эмулятор терминала для Linux, Windows и macOS

Что такое терминальный мультиплексор и для чего он нужен?

Это консольная утилита, которая позволяет запускать несколько сессии в рамках одного окна. Чтобы понимать написанное нужно просто представить себе две простые рабочие ситуации.

Первая рабочая ситуация: нам нужно подключиться к серверу и выполнить с ним параллельно несколько задач. Например, следить за логами базы данных, заливать резервную копию базы данных, полученную с другого сервера и следить за количеством существующих в базе таблиц. Чтобы ее решить без использования Tmux нужно будет открывать три окна терминала и запустить в них отдельно три сессии. Согласитесь, неудобно.

Вторая рабочая ситуация: вы работаете на сервере, запустили какое-либо действие и внезапно оборвалась связь или пропало электричество (если вы работаете через ПК). В таком случае заново придется подключаться заново и проделывать предыдущие действия.

Из этих двух ситуаций становится понятным, что Tmux поможет вам выполнять несколько задач на сервере в рамках одного подключения к нему, а если соединение разорвано будет, то можно будет после повторного подключения вернуться в сохраненные сессии и продолжить работу с того, на чем остановились. Кроме того, Tmux позволяет совместно с другими работать в терминале и отображает что делает каждый пользователь.

Установка Tmux

Инсталляция пакета как всегда проста, но тут стоит понимать один важный момент: чтобы плюсы, про которые говорилось в предыдущем пункте работали, Tmux нужно устанавливать не на ваш ПК, а не сервер и в нем запускать. Поэтому, вначале нужно узнать что за дистрибутив Линукс установлен на сервере. Для этого вводим команду

cat /etc/os-release

-2

«Выхлоп» покажет какой дистрибутив установлен. В большинстве своем это будут Debian, Ubuntu или CentOS. Поэтому команды для установки приведу для этих дистрибутивов:

  • CentOS

yum install epel-release

yum update

yum install tmux

  • Debian/Ubuntu

apt install tmux

-3

Конфигурационный файл Tmux

Существуют две категории конфигурационного файла tmux: глобальная и пользовательская. Первая начинает работать в том случае, если отсутствует вторая. Поэтому первую конфигурацию мы не трогаем, все изменения вносим в пользовательский конфигурационный файл, который расположен в домашней директории и называется .tmux.conf. По-умолчанию он не создан, поэтому давайте создадим его и откроем для редактирования в консольном текстовом редакторе (у меня это nano):

nano $HOME/.tmux.conf

-4

В созданный файл добавим пока что одну настройку, связанную с включением режима управления мышью:

set -g mouse on

Сохраняем (Ctrl + O) и выходим из консольного редактора nano (Ctrl + X).

-5

Первый запуск Tmux

Если в терминале ввести теперь команду tmux, то запуститься сессия по-умолчанию. Чтобы сразу дать ей имя нужно ввести tmux new -s <имя_сессии>

-6

Название сессии отображается слева внизу в квадратных скобках, затем идет перечисление имеющихся окон. Окно, в котором вы работаете сейчас, помечается звездочкой. После запуска tmux вы можете работать в нем также, как работаете в обычном терминале, только теперь каждую существующую задачу можно запускать в отдельном окне или сессии.

Терминальный мультиплексор имеет так называемый префикс. Это сочетание клавиш, нажатие которых открывает доступ к управлению с клавиатуры. По-умолчанию таким префиксом является сочетание Ctrl + b.

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

Чтобы создать новое окно нужно нажать префикс, а после клавишу C.

-7

Навигация по созданным окнам может осуществляться несколькими способами. Например после префикса можно нажать номер окна и переместиться туда. Обратите внимание, что окна нумеруются с 0 (это можно изменить в настройках), а не с единицы.

-8

Вторым способом навигации является использование клавиш n (next) и p (previous), которые нужно нажимать после префикса.

-9

Для закрытия окна используется префикс и клавиша x.

-10

По-умолчанию окна расположены в виде вкладок, по которым нужно переключаться. Можно использовать панели в рамках одного окна и расположить их горизонтально или вертикально относительно друг друга. Для горизонтального деления используйте префикс и клавишу “ (кавычки), для вертикального % (знак процента).

-11

Помните, что деление на панели происходит в рамках одного окна, но при этом поделить вы можете каждое окно в рамках одной сессии. Что еще больше расширит ваш функционал в плане выполнения параллельных задач.

Работа с сессиями

Чтобы отключиться (но не закрывать) сессию нужно использовать префикс и клавишу d. Перед подключением к уже имеющимся сессиям можно посмотреть их список командой tmux ls.

.
.

Команда tmux attach позволяет подключиться к сессии, которая является либо последней, либо единственной. Чтобы подключиться к конкретной сессии используйте tmux attach -t <имя_сессии>.

-13

Если вы хотите завершить все созданные сессии не подключаясь к ним, то используйте tmux kill-server, а команда tmux kill-session -t <имя_сессии>.

-14

Команды, указанные выше, позволят вам приступить к использованию Tmux в работе. Но его удобства раскрываются после настройки под себя. Об этом мы будем говорить в следующих постах на канале. На канале есть подборка с материалами для системных администраторов под названием 📚 Теория и практика Linux.

Поэтому, чтобы не пропустить новинки, нужно подписаться на канал, подписаться на обновления Просто Код в телеграме, поставить лайк этой и другим заметкам.