Tmux – терминальный мультиплексор

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

01

Как видно из скриншота, у нас несколько консольных панелей в одном окне. Очень удобно работать. Приступим к более подробному рассмотрению. Для установки tmux утилиты в Ubuntu достаточно выполнить команду:

sudo apt-install tmux

После установки программы можно приступать к использованию

Вводим команду:

tmux

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

02

По умолчанию создается одна панель на весь экран. Для того, чтобы добавить вертикальную панель необходимо воспользоваться сервисными клавишами «Ctrl+B»(система понимает, что вы вводите не консольную команду, а пользуетесь функцией терминального мультиплексера), далее нажимаете «Shift+%». Справа создается еще одна панель.

03

Теперь в рамках одного окна у вас есть две рабочие зоны.

Для переключения между панелями воспользуйтесь клавишами «Ctrl+B» далее стрелочками вправо или влево.

Для создания горизонтальной панели нажмите «Crtl+B» далее «Shift+”» (кавычка находится на русской букве «Э»)

04

Для изменения размера определенной панели есть следующая комбинация клавиш:

«Ctrl+B» затем зажимаем Alt и стрелочками изменяем размер.

05

Для изменения местоположения панели воспользуется комбинацией клавиш «Ctrl+B» затем «}».

06

Также есть возможность создать еще одно окно. Для этого предусмотрена команда «Ctrl+B» «c»

Для просмотра списка окон можно воспользоваться командой «Ctrl+B» «w»

07

Как видно из скриншота, у нас создалось второе окно. Для удобного распознавания нужного окна можно присвоить им имена:

tmux rename-window window_name

Также можно воспользоваться командной строкой терминала выполнив команду «Ctrl+B» «:»

И в командной строке набрать команду «remane-window masinc» (где «window_name» это новое имя)

Для переименования сессии применяется следующая команда: «tmux rename-session –t 0 session_name»

-t указывает на номер сессии, если этот параметр опустить будет переименована существующая сессия.

Для просмотра количества существующих сессий воспользуемся командой

tmux ls

Создадим еще одну сессию tmux, для этого выйдем из существующей сессии:

tmux detach (или Ctrl+B d)
tmux

Посмотрим список созданных сессий:

tmux ls
08

Для подключения к определенной сессиb воспользуемся командой:

tmux a –t session_name

Мы подключились к сесси «session_name».

Для закрытия сессии необходимо закрыть все панели командой «Ctrl+B» «x». Затем «у» для подтверждения.

Также для завершения сессии можно воспользоваться командой:

tmux kill-session

Для отключения от сессии с сохранением ее работоспособности есть несколько вариантов:

tmux detach
tmux d
«Ctrl+B» «d»

Также есть возможность управлять размером окон с помощью мышки. Для этого в конфигурационный файл /etc/tmux.conf следует добавить следующие строки:

set -g mouse-resize-pane on

Для применения настроек необходимо перечитать конфигурационный файл

tmux source-file /etc/tmux.conf

Если вы хотите переподключиться к другой сессии выполните команду:

tmux switch –t name

Или же можно воспользоватсья клавишами "Ctrl + B + S"

Для прокрутки страницы вверх используйте комбинацию клавиш «Ctrl+B»
«PgUp/PgDwn»

Также очень много удобных дополнительных функций можно добавить внеся необходимые изменения в конфигурационный файл. Воспользовавшись мануалом «man tmux» можно получить дополнительную информацию.

Название команды Горячие клавиши
“Убить” сессию Ctrl + b ,"d"
Создает новую вкладку Ctrl + b ,"b"
Переименовать файл Ctrl + b ,","
Выход из tmux Ctrl + b ,"d"
Разделить окно по вертикали Ctrl + b ,"%"
Разделить окно по горизонтали Ctrl + b ,"""
Переход между окнами Ctrl + b ,"→"
Открыть диспетчер задач htop

Задание

Выполните следующие действия:

  1. Откройте tmux
t1
  1. Создайте четыре окна и измените их размер, как показано на фотографии
t2
  1. Откройте в левом верхнем окне диспетчер задач, а в правом верхнем - время (в соответствии с фотографией)
t3
  1. Создайте скрипт (или воспользуйтесь скриптом из прошлой лабы), который по выбору пользователя с интервалом печатает цифры. Запустите скрипт в левом нижнем окне.
t4
  1. Используя знания о работе с процессами, запустите данный скрипт три раза в левом нижнем окне (при этом цифры, выводящиеся на экран, должны быть различными)
t5
  1. В правом нижнем окне отройте используемый скрипт в редакторе vim (на фотографии, конечно, не он)
t6