Как управлять и восстанавливать сессии Tmux в Linux

Изображение Tmux

Tmux — это мультиплексор терминала, который предлагает широкий спектр полезных функций и поддерживается удивительным количеством плагинов, созданных сообществом. Мультиплексоры терминала, такие как tmux и Screen, придают вашему терминальному окну суперпродуктивные возможности, позволяя открывать несколько сессий в вкладках и разделенных экранах. В сочетании с несколькими инструментами терминала и сохранением сессий вы также можете восстанавливать сессии Tmux после жесткой перезагрузки.

Также читайте: Как поделиться сессией терминала с друзьями

Установка tmux

Подготовить и запустить tmux на вашей системе относительно просто, если вы используете дистрибутив Linux.

Для Ubuntu это означает вызов apt из вашего терминала и установку пакета из официального репозитория дистрибутива. Для других дистрибутивов используйте ваш встроенный менеджер пакетов для выполнения установки. (tmux доступен на большинстве дистрибутивов.)

sudo apt-get install tmux

Установка Tmux

Поняли? Отлично! Теперь давайте разделим наш экран.

Создание окон и панелей

В tmux используются два термина для описания основных типов конфигураций макета, которые мы можем создать. “Окна” — это термин tmux для вкладок. Создание нового окна создаст вкладку, к которой вы сможете переключиться с помощью простой команды.

“Панели”, с другой стороны, — это разделения в текущем “Окне” или вкладке, к которым также можно переключаться с помощью команды.

Прежде чем мы начнем создавать их, важно отметить, что tmux является модальным по своей функции. Это означает, что взаимодействия с вашей сессией терминала и с tmux происходят в отдельных “режимах”. Это полезно, так как вы можете использовать каждую отдельную сессию терминала, которую вы открываете, не активируя случайно команду tmux.

Чтобы получить доступ к tmux и начать вводить команды, сначала мы начнем нашу новую сессию tmux и назовем ее:

tmux new -s babytmux

Сессия Tmux

Не стесняйтесь менять имя (“babytmux”), конечно!

Tmux должен открыться немедленно, и для вас должна запуститься новая сессия оболочки. Но мы хотим больше одной, помните?

Чтобы войти в режим команд tmux, нам нужно использовать префикс. Обычно это Ctrl и b, нажимаемые одновременно. В одиночку вы не заметите никаких изменений, нажав префикс, но мы можем вводить команды, введя : сразу после. Чтобы выйти из режима команд, либо завершите команду, нажав Enter, либо нажмите клавишу ESC, чтобы выйти без внесения изменений.

Совет: Получите нашу шпаргалку по горячим клавишам Tmux для полного обзора основных сочетаний клавиш.

Мы используем сочетание клавиш для создания горизонтального разделения: нажмите Ctrl и b, затем “

Горизонтальное разделение Tmux

Круто! Теперь мы можем перемещаться между двумя с помощью следующего: Ctrl и b, затем o.

Переключение панелей Tmux

Каждая сессия независима от другой, поэтому мы можем открывать отдельные программы в каждой. Давайте разделим наш экран на четыре части вертикальными разделениями и попробуем: Ctrl и b, затем %

Откройте что угодно в каждой панели, и оно будет продолжать работать, пока вы получаете доступ к другим.

Четверное разделение Tmux

Чтобы создать окно, используйте следующее: Ctrl и b, затем c

Вы можете вернуться к предыдущему окну или перейти к следующему окну с:

Ctrl и b, затем p

или

Ctrl и b, затем n

Переключение окон Tmux

Строка состояния внизу экрана показывает вам процесс, который выполняется в каждом окне, и в каком окне вы находитесь (с “*”) для справки.

Чтобы выйти из этой сессии tmux, используйте следующее: Ctrl и b, затем введите :detach-client

Отключение Tmux

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

tmux a -t babytmux

Чтобы создать по-настоящему бессмертные сессии tmux, которые могут вернуться после перезагрузки, нам нужно установить один или два плагина.

Установка плагинов

Использовать плагины в tmux относительно просто. Однако есть менеджер плагинов, который мы можем установить, чтобы упростить последующие установки плагинов.

Менеджер плагинов

Чтобы установить менеджер плагинов Tmux, мы склонируем его файлы с Github с помощью следующего кода:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Затем добавьте следующий код в “ .tmux.conf “ в вашей домашней папке:

# Список плагинов  
set-g @plugin 'tmux-plugins/tpm'  
set-g @plugin 'tmux-plugins/tmux-sensible'  
  
# Другие примеры:  
# set -g @plugin 'github_username/plugin_name'  
# set -g @plugin '[email protected]/user/plugin'  
# set -g @plugin '[email protected]/user/plugin'  
  
# Инициализировать менеджер плагинов TMUX (сохраните эту строку в самом низу tmux.conf)  
run -b '~/.tmux/plugins/tpm/tpm'

Менеджер плагинов Tmux

Как вы можете видеть выше, нам нужно будет добавить имя пользователя github и имя плагина (найденное в URL плагина на github) для каждого плагина, который мы хотим установить с этого момента. Менеджер плагинов позаботится об остальном. Используйте этот код, чтобы запустить менеджер плагинов:

tmux source ~/.tmux.conf

Теперь, для плагина, который нам нужен для восстановления сессий после перезагрузки, продолжайте читать.

Восстановление

Tmux Resurrect делает именно то, что подразумевает его название, и возвращает вашу сохраненную сессию к жизни с помощью простой команды.

Этот плагин можно установить, добавив следующее в ваш файл .tmux.conf:

set-g @plugin 'tmux-plugins/tmux-resurrect'

Tmux Восстановление

Теперь позвольте менеджеру плагинов Tmux установить его, используя следующую команду в tmux: Ctrl и b, затем I (это “i” в ЗАГЛАВНЫХ буквах.)

Установка плагина Tmux

После установки мы можем начать сессию и сохранить ее с помощью следующего: Ctrl и b, затем Ctrl + s

Чтобы восстановить нашу сессию, мы можем использовать Ctrl и b, затем Ctrl + r

Восстановление сессии Tmux

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