Улучшаем работу в консоли с помощью tmux

.
Время чтения — 3 мин.
software awesomeware tmux

tmux - это терминальный мультиплексор (terminal multiplexer). Терминальный мультиплексор - это приложение, которое способно объединять несколько сессий в одном псевдо-графическом интерфейсе.

Главные возможности tmux:

Сохранность текущей сессии

По умолчанию, все интерактивные сессии посылают сигнал SIGHUP всем процессам запущенным в текущей сессии при отключении. Если произошёл обрыв связи, то все команды которые вы запускали завершатся раньше ожидаемого времени выполнения.

При первом запуске мультиплексор создаёт отдельную сессию, которая не привязана к вашему соединению. Например, вы можете отключиться от SSH, но сессия будет активна на сервере. Затем вы можете вернуться на сервер и вернуться в сессию с помощью команды:

tmux attach

или с указанием имени сессии:

tmux attach -t name

Установка tmux

CentOS, Fedora, RHEL, Oracle Linux

sudo yum install -y tmux

Ubuntu, Debian

sudo apt install tmux

ArchLinux

sudo pacman -S tmux

Как использовать

Создание сессии

tmux new -s name

tmux отобразит пустой терминал на подобие такого:

Стартовое окно tmux

Префикс для команд

Для использования команд нужно использовать комбинацию-префикс. По умолчанию, префикс - ctrl+b.

Например, чтобы создать новое окно, нажимаем ctrl+b, затем отпускаем и нажимаем c.

Создание нового окна

Комбинация: prefix, c.

Переключение между окнами

Вперёд: prefix, n

Назад: prefix, p

Переключение по номеру окна: prefix + N, где N - это номер окна.

Разделение окон и создание панелей

Комбинация: prefix, "

Например, можно разместить сверху вывод htop, а снизу vmstat:

Разделение окна на панели

Переключение между панелями

На верхнее: prefix, up

На нижнее: prefix, down

На то что слева: prefix, left

На то что справа: prefix, right

Изменение размеров текущей панели

Комбинация: prefix, ctrl + up\down

Поменять панели местами

Комбинация: prefix, { или prefix, }

Переключение между клиентами

Комбинации: prefix, ( и prefix, )

Справка по командам

Комбинация: prefix, ?

Конфигурирование tmux

Согласно man tmux, tmux загружает настройки из /etc/tmux.conf, а затем смотрит файл в домашней директории текущего пользователя ~/.tmux.conf.

После изменений в файлах конфигурации необходимо перечитать настройки:

tmux source-file /etc/tmux.conf

Как поменять комбинацию префикса

Кому-то может быть неудобной комбинация Ctrl + b, поэтому её можно поменять. Например, на Ctrl + a:

unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

Как поменять комбинацию для разделения экрана

По умолчанию, разделение экрана по горизонтали prefix, ", по вертикали - prefix, %.

Это не совсем интуитивные клавиши, проще использовать клавиши: - и |.

Как поменять комбинации:

bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

Переключаться между панелями без префикса

Переключение между панелями одна из самых частых операций в tmux. Переключаться с использованием префикса неудобно. Удобней использовать Alt + стрелка. Как это настроить:

bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D