Основы работы в Tmux, конфигурация, кастомизация
Tmux - мультиплексор, позволяющий запускать несколько терминалов в одном окне, доступен для всех unix-подобный систем (Linux, macOS, BSD).
Установка
# Ubuntu, Debian
$ sudo apt-get install tmux
# CentOS, Fedore
$ yum install tmux
# macOS
$ brew install tmux
Интерфейс
После запуска tmux, снизу появляется статус бар, а так же при разделении окон появляется рамки вокруг панели. В этом и все особености при работе в tmux.

Из статус бара можно узнать можно узнать имя текущей сесси в квадратных скобках [0], так же мы видим что сейчас открыты два окна под номерами 0 и 1, звездочка показывает текущее окно. Так же видно имя компьютера и время с датой. Так же стоит упомянуть что перед всеми командами в tmux необходимо ставить префикс, для этого просто необходимо использовать сочетание клавиш Ctrl + b, префикс можно изменить.
Сессии
При каждом запуске tmux запускается новая сессия, или же мы подключимся к ранее созданным сессиям. После выхода из сессии мы можем обратно к ней подключиться и продолжить работу.
# Запуск tmux, по умолчанию создастся сессия с именем 0
$ tmux
# Создать новую сессию с именем 'test'
$ tmux new-session -s test
$ tmux new -s test
# Подключиться к последней розданной сессии
$ tmux attach
$ tmux at
$ tmux a
# Подключиться к сессии с именем 'test'
$ tmux attach -t test
$ tmux at -t test
$ tmux a -t test
# Отключиться от текущей сессии
$ tmux detach
# Просмотреть все сессии
$ tmux ls
# Закрыть сессию с именем 'test'
$ tmux kill-session -t test
# Закрыть все сессии
$ tmux kill-server
# Закрыть окно, панель или сессию
$ exit
Так же существуют команды сессий:
d - отключиться от текущей сессии
s - список всех сессий, можно подключиться к нужной
( - перейти к предыдущей сессии
) - перейти к следующей сессии
$ - переименовать сессию
Окна (табы)
В tmux возможно создание новых окон и переключение между ними, окна отображаются в статус баре. Каждое окно нумеруется от 0.
c - создать новое окно
w - список окон, можно переключаться
n - переключиться на следующее окно
p - переключиться на предыдущее окно
[num] - переключиться на нужный номер окна
x - закрыть окно (только если одна панель, иначе закроется панель)
f - поиск окна
, - переименовать окно
& - закрыть окно
Панели
Главная фишка tmux это работа с панелями мы можем разбивать окно на несколько панелей. Основные команды для работы с панелями:
" - разбить окно по горизонтали
% - разбить окно по вертикали
↑ → ↓ ← - перемещение между панелями
Ctrl + b + ↑ → ↓ ← - изменение размеров панели
x - закрыть панель
o - переключение между всеми панелями по очереди
; - перейти к последней используемой панели
q - показать номера панелей
Space - переключение режимов отображения
} - переместить текущую панель вправо
{ - переместить текущую панель влево
z - развернуть текущую панель на весь экран
Дополнительные команды:
: - открыть командную строку в статус баре
? - список всех комбинаций клавиш
t - вывод часов на всю панель\
Режим копирования
Вы можете переключиться в режим копирования для этого необходимо выполнить команду: Ctrl + b [, что бы вставить нужно выполнить команду Ctrl + b ] По умолчанию терминал работает в режиме emacs, можно работать в режиме vi.
Основные команды для vi:
Space - начать выделение текста
Esc - очистить выделение текста
Enter - скопировать выделенную область
h j k l - перемещение курсора
^ - переместиться в начало строки
$ - переместиться в конец строки
Основные команды для emacs:
Ctrl + Space - начать выделение текста
Ctrl + g - очистить выделение текста
Alt + w - скопировать выделенную область
↑ → ↓ ← - перемещение курсора
Alt + m - переместиться в начало строки
Ctrl + e - переместиться в конец строки
Конфигурация
Tmux имеет глобальный /etc/tmux.conf и пользовательский файл конфигурации ~/.tmux.conf Работать мы будем с пользовательским файлом конфигурации.
# Изменение префикса на Ctrl + a
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Нумерация окон с единицы
set -g base-index 1
# Переключение режима копирования в vi
setw -g mode-keys vi
# Включение режима мыши (скроллинг, перемещение, размеры)
set -g mouse on
# Увеличить историю скролла до 5000 строк
set -g history-limit 5000
# Центрировать список окон в статус баре
set -g status-justify centre
# Перебиндиваем стандартные команды на vi-подобные
# Разделение окон
bind-key v split-window -h
bind-key s split-window -v
# Перемещение между окнами
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
Кастомизация
Tmux можно кастомизировать, изменения в основном применяются к статус бару, и цветовой палитре. Вот несколько репозиториев с разными темами: .tmux, nord-tmux, tmux-themepack.
Видео
Вы так же можете посмотреть моё видео по tmux на youtube ссылка