Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.
Киллер фича ти-макса — сохранение состояний подключений и процессов. После разрыва соединения с сервером вы подключаетесь, и все запущенные программы и процессы продолжают работать. Дополнительно можно работать совместно с другими в терминале, если все подключены к одной сессии.
Установка и настройка Tmux
Устанавливается Tmux из стандартных репозиториев Linux:
apt-get install tmux
После установки рекомендуем сразу отредактировать конфигурационный файл ти-макса (/etc/tmux.conf) и внести следующие изменения:
set -g mouse on
Эта строчка кода позволит свободно перемещать границы разделения окон с помощью курсора мышки.
Работа с Tmux
Для работы с ти-миксом используется широкий набор горячих клавиш, состоящих из базового сочетания Ctrl + b и отдельных целевых клавиш (n,p,w,b и т.д.).
Работа с сессиями в Tmux
Для создания рабочей сессии без идентификатора — достаточно ввести tmux в терминале. Будет создана сессия 0:
Идентификатор сессии отображается внизу слева в квадратных скобках. Для создания именной сессии достаточно ввести следующую команду:
tmux new -s название сессии
Поскольку ти-макс завершает соединение с сохранением состояния сессии, правильным способом возобновить работу ти-макса будет его запуск командой:
tmux attach || tmux new
Команда запускает проверку уже созданных сессий и если активных подключений нет — создается новое подключение.
Просмотреть список созданных сессий можно командой:
tmux ls
Команда вернёт список следующего вида:
0: 1 windows (created Mon Aug 30 13:02:31 2021) (attached)
Если в списке одна сессия, то командой tmux attach она будет автоматически восстановлена, а если в списке несколько сессий — необходимо ввести следующую команду:
tmux attach -t наименование сессии
В нашем случае сессия называется 0.
Сменить сессию можно также, находясь в другой сессии. Для этого нужно воспользоваться сочетанием клавиш Ctrl + b, s.
Выйти из сессии можно с помощью сочетания клавиш Ctrl + b, d. А завершить сессию командой:
tmux kill-session -t название сессии
Закрыть все сессии можно командой:
tmux kill-server
Создание окон и переключение между ними
Чтобы создать окно — применяется сочетание клавиш: CTRL + b, а затем c. Просмотреть список окон можно сочетанием — CTRL + b, а затем w. Выбор конкретного окна из списка осуществляется стрелками ↑ и ↓.
Переключиться между окнами можно с помощью следующих сочетаний клавиш:
- Ctrl + b, n — следующее окно
- Ctrl + b, p — предыдущее окно
- Ctrl + b, w — следующее окно
- Ctrl + b, номер окна (цифрой ) — переключиться на нужное окно
Горизонтальное и вертикальное деление окон
Сессионные окна ти-макс можно разделять вертикально и горизонтально. Для горизонтального разделения окна используется сочетание клавиш Ctrl + b, “ (Shift + ‘(э)).
Чтобы разделить окно вертикально на две равные панели — воспользуйтесь сочетанием клавиш Ctrl + b, %.
Перемещаться между панелями можно с помощью сочетаний клавиш Ctrl + b и стрелок.
Панели тоже можно разделять. Например, если нужно получить 3 панели, сначала окно делится горизонтально (Ctrl + b, “), затем осуществляется переход на нужную панель (Ctrl + b, ↑ или ↓) и она делится вертикально (Ctrl + b, %). Получаем следующую рабочую зону:
Закрыть панель (часть окна) можно с помощью сочетания клавиш Ctrl + b, x или командой exit.
Команд и хоткейсов Tmux немало, но при ежедневной практике они довольно быстро выучиваются, однако новички поначалу путаются в них, поэтому мы составили список часто используемых команд и хоткейсов Tmux, и положили их в одно место.
Список часто используемых команд и хоткейсов Tmux
Команды для управления сессиями:
- tmux new [имя_сеанса] — начать новый сеанс. Имя_сеанса опционально;
- tmux attach -t [имя_сеанса] - подключиться к уже существующей сессии. Если имя заранее не было задано, тогда команда будет выглядить так: tmux attach -t 0;
- tmux ls — список открытых сессий Tmux;
- kill-server — остановить все запущенные сессии;
- kill-session -t [имя_сеанса] — завершить сессию;
- list-clients -t [имя_сеанса] — посмотреть клиентов, подключенных к сессии;
- list-sessions — вывести список всех запущенных сессий.
Хоткейсы для управления окнами:
- Ctrl + b, c — создать новое окно;
- Ctrl + b, w — просмотреть список окон;
- Ctrl + b, n — следующее окно;
- Ctrl + b, p — предыдущее окно;
- Ctrl + b, w — следующее окно;
- Ctrl + b, номер окна (цифрой) — переключиться на нужное окно;
- Ctrl + b, “ — горизонтальное разделение окна;
- Ctrl + b, % — вертикальное разделение окна.
С уверенностью можно сказать, что ти-макс — это простая и мощная консольная утилита, позволяющая полностью настроить под себя рабочие пространство в терминале. Сила ти-макса в его гибкости и сочетании с другими консольными утилитами, например: VIM, Htop, Tree.