====== Шпаргалка по использованию tmux ======
Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.\\
Как побочный эффект, при работе через SSH, использование 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 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, % — вертикальное разделение окна.