Заметка

Терминальный мультиплексор — tmux

Tmux (терминальный мультиплексор) позволяет работать с несколькими сессиями в 1 окне. Вместо нескольких окон терминала к серверу — вы можете использовать одно. Позволяет подключаться/отключаться к текущему состоянию сессии. Запущенные программы и процессы продолжают работать. (Можно использовать вместо nohup, dtach).

Например, на работе правим файлы в Vim. Окно терминала с открытыми файлами, процессами. Отключаемся от сессии. Далее подключаемся к этой сессии из дома и получаем те же окна с открытыми файлами в Vim, процессами и т.д. Можно продолжить работу с того же момента, на котором остановились. Также удобно при разрыве связи. Дополнительно можно работать совместно с другими в терминале, если подключены к одной сессии. Каждый видит, что делает другой.

Терминальный мультиплексор - tmux

1. Установка

CentOS (нужен подключенный репо EPEL)

$ yum install tmux

Fedora

$ dnf install tmux

Ubuntu\/Debian

$ apt-get install tmux

2. Конфигурационные файлы

(пользователя, системный):

~/.tmux.conf
/etc/tmux.conf

С версии 2.1 для включения режима мыши (скролл, изменение размера панели, выбор панели и др.) нужно добавить в tmux.conf:

set -g mouse on

До версии 2.1

set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
set -g mode-mouse on

3. Работа с Tmux

Старт
# tmux //без параметров будет создана сессия 0
# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке (если вы не изменили уже отображение на кастомное). Далее идет перечисление окон. Текущее окно помечается звездочкой.

Префикс (с него начинаются команды)
<C-b> (CTRL+b)

Окна

Новое окно (нажать CTRL+b, затем нажать с)
<C-b c>

Новое окно с указанием программы, которую нужно запустить (нажать CTRL+b, затем нажать «:» двоеточие)
<C-b :> — после чего нужно ввести neww название программы (новое окно пробел название программы). Обратите внимание, что в конце две буквы ww. Например, для запуска htop в отдельном окне нужно <C-b :> neww htop и нажать Enter.

Список окон
<C-b w> // переключиться курсором вверх-вниз

Переключение
<C-b n> // следующее окно
<C-b p> // предыдущее окно
<C-b 0> // переключиться на номер окна

Закрытие окон
<C-b x> // нужно подтвердить y
либо
# exit

Панели

Окна можно делить на панели (Panes), как в тайловых (мозаичных) оконных менеджерах.
Деление окна горизонтально
<C-b ">
либо команда
# tmux split-window -h
либо
<C-b :> — после чего нужно ввести split-window -h -f и нажать Enter.

Деление окна вертикально
<C-b %>
либо команда
# tmux split-window -v
либо
<C-b :> — после чего нужно ввести split-window -v -f и нажать Enter.

Переход между панелей
<C-b стрелки курсора> // либо режим мыши

Посмотреть номера панелей с возможностью перехода
<C-b q> // и если быстро нажать на номер, то произойдет переход на указанную панель

Цикличный переход между панелей
<C-b o> // либо режим мыши

Изменение размеров панелей
<C-b c-стрелки> // либо режим мыши

Временный zoom панелей — раскрыть панель на все пространство
<C-b z> // так же вернуть в прежний размер

Предопределенные схемы окна
<C-b space> // перейти к следующей схеме расположения панелей
<C-b Alt - 1-5> // сразу использовать конкретную схему

Схемы:

  1. even-horizontal
  2. even-vertical
  3. main-horizontal
  4. main-vertical
  5. tiled

Сессии

Отключение от сессии
<C-b d>
либо
# tmux detach

Список сессий
# tmux ls

Подключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной
# tmux attach -t session1 // подключение к сессии session1

Выбрать сессию
<C-b s>

Завершение сессии
# tmux kill-session -t session1

Завершить все сессии
# tmux kill-server

Дополнительно

Список поддерживаемых команд
# tmux list-commands

Дополнительная информация
# man tmux

4. Делаем tmux красивым

В домашней директории выполняем:

$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .

Подстраиваем ~/.tmux.conf.local под себя. Так же, если нужно комментируем или наоборот раскомментируем строки с настройками и биндами. В данном наборе дополнительно установлен стартовый бинд на <C-a> (STRL+a).

5. Перезагрузка настроек

Чтобы можно было перегружать настройки, нам нужно добавить для этого горячую клавишу. Открываем файл с настройками:

nano ~/.tmux.conf

и добавляем в него бинд горячей клавиши:

bind r source-file ~/.tmux.conf \; display "Reloaded!"

Как это работает? Bind обозначает нажатии основной клавиши, с которой как правило начинается указание, какое действие мы хотим сделать (если вы ещё не перенастроили). Изначально это Ctrl+B. После нажатия основного бинда нажимаем r. Если вы это делаете сразу после установки и уже запустили хотя бы одно сессию, то выполните в консоли команду:

tmux source-file ~/.tmux.conf

и вернувшись в сессию сможете перегружать настройки.

🕸 Официальный сайт
🕸 Другой известный мультиплексор Screen


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
8180login-checkТерминальный мультиплексор — tmux

Добавить комментарий