Tmux терминальный оконный менеджер при использовании дает возможность при обрыве связи с сервером по ssh не терять информацию о выполняемых действиях. Работает в любом дистрибутиве Linux. Одна из любимых утилит администраторов Linux.
Очень быстро при работе с серверами по ssh я стал ощущать два неудобства:
- Из за обрыва связи я терял информацию о ходе выполняемых действий на сервере,
- Для выполнения нескольких действий мне приходилось создавать несколько подключений по ssh.
Мои неудобства решаются с помощью терминального оконного менеджера. Работать с ним оказалось удобно и не вызывает сложностей. Присутствуют некоторые нюансы в работе в отличии от работы в простой консолью.
Вам будет не важно где вы находитесь и с какого компьютера подключаетесь к необходимому серверу так как будете попадать именно туда где закончили свои последние действия. Вы можете сказать название сессии коллеге и он сможет подключится в среду в которой вы работайте.
Содержание[Скрыть]
Установка Tmux
Пакет присутствует во всех популярных системах и устанавливается с помощью команды:
1 2 3 4 5 6 7 8 |
#CentOS 7 yum install tmux #Debian apt install tmux #Calculate Linux emerge -av tmux |
При настройке под себя необходимо знать какая версия используется для указания правильных параметров в файле настройки.
Вывод информации об установленной версии:
1 2 3 |
tmux -V = вывод команды = tmux 1.8 |
Более подробно про программу можно почитать на Wikipedia или на странице разработки.
Работа с Tmux
Вся работа заключается в создании сессий которые живут до перезагрузки системы.
Оптимальный вариант для работы с Tmux это запускать его на удаленном сервере. Только так вы не будете получать проблем при обрыве связи или вашей миграции от компьютера к компьютеру.
Для более детального изучения можно ознакомится с документацией выполнив команду:
1 |
man tmux |
Управление сессиями
Вывод информации обо всех возможных командах:
1 |
tmux list-commands |
Рассмотрим основные команды используемые в работе с Tmux при действиях в консоли сервера.
Создание сессии:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
= Создание сессии Tmux = tmux = Создание сессии с названием sevo44 = tmux new -s sevo44 = Информация о работающих сессиях Tmux = tmux ls = вывод команды = 0: 1 windows (created Mon Dec 10 10:48:09 2018) [150x33] sevo44: 1 windows (created Mon Dec 10 10:48:23 2018) [150x33] = Переименование сессии 0 в sevo44-2 = tmux rename-session -t 0 sevo44-2 |
Подключение к сессии:
1 2 3 4 5 |
= Подключение к последней сессии = tmux a = Подключение к сессии использую имя или номер = tmux attach -t sevo44 |
Удаление сессии:
1 2 3 4 5 |
= Удаление сессии по номеру или имени = tmux kill-session -t sevo44 = Удаление все сессий = tmux kill-server |
Работа в сессии
При работе в сессии Tmux существует понятие «Префикс» это то что переводит его в командный режим.
По умолчанию префикс «CTRL + b».
Основные команды:
Функция | Команда |
Вывести справку по всем командам | ? |
Выйти из сесиии | d |
Закрыть сессию | x |
Скролинг | [ для выхода из режима q |
Команды для работы с панелями:
Функция | Команда |
Разделить текущую панель на две, по вертикали | % |
Разделить текущую панель на две, по горизонтали | « |
Переход между панелями | →←↑↓ |
Изменить размеры панели | Alt + →←↑↓ |
Закрыть панель | x (или набрать exit) |
Команды для даботы с закладками (окнами):
Команды для даботы с закладками (окнами):
Функция | Команда |
Создание закладки | с |
Переименование закладки | , |
Вывод всех закладок для перехода | w |
Закладка вперед | n |
Закладка назад | p |
Удалить закладку | x |
Настройка Tmux под себя
Вся настройка сводится к тому что в своей домашней папке необходимо создать файл .tmux.conf в который добавить необходимые настройки.
При настройках надо знать версию и понимать необходимость изменяемых параметров. Множество советов что вы найдете в интернете попросту не будут у вас работать.
Например параметры для смены префикса с «CTRL + b» на «CTRL + а» для версии 1.8 будут выглядеть так:
1 2 3 4 5 6 |
vim ~/.tmux.conf = необходимые параметры = # Смена Contrl+b на +a set-option -g prefix C-a unbind-key C-b bind-key C-a send-prefix |
Вывод
Мною указаны лишь основные моменты по работе с Tmux которых мне вполне достаточно. Функционал большом и при желании можно настроить многие параметры под свои требования. Некоторые моменты в работе могут показаться неудобными в сравнении с работой в простой консоли, но это мелочи. Иметь возможность работы с сервером не привязываясь с рабочему месту стоит того чтобы иметь маленькие неудобства.
В завершении небольшой cheatsheet
Комманды:
tmux |
Запускает tmux или создает новую сессию |
tmux new -s <имя_сессии> |
Создает новую сессию с указанным именем |
tmux attach -t <имя_сессии> |
Присоединяется к существующей сессии |
tmux detach |
Отсоединяется от текущей сессии |
tmux list-sessions |
Список всех сессий |
tmux new-window |
Создает новую вкладку в текущей сессии |
tmux select-window |
Выбирает указанную вкладку |
tmux list-windows |
Список всех вкладок в текущей сессии |
tmux kill-session -t <имя_сессии> |
Завершает сессию и удаляет все связанные вкладки |
tmux split-window [-h/-v] [command] |
Разделяет текущую вкладку на две части (горизонтально или вертикально) |
tmux resize-pane [-t window_id] [rows] [columns] |
Изменяет размер текущей вкладки |
tmux select-layout -t <window_id> [-t window_id] [layout] |
Изменяет размещение вкладок |
tmux rename-window -t <window_id> <имя_вкладки> |
Переименовывает вкладку |
tmux capture-pane [-t window_id] [-p] |
Захватывает изображение текущей вкладки |
Хоткеи:
Команда | Описание |
---|---|
Ctrl + b |
Предварительное указание для большинства команд tmux |
Ctrl + b q |
Выход из tmux в сессию |
Ctrl + b c |
Создание новой сессии |
Ctrl + b d |
Отсоединение от текущей сессии |
Ctrl + b e |
Возвращение к текущей сессии |
Ctrl + b n |
Переход к следующей вкладке |
Ctrl + b p |
Переход к предыдущей вкладке |
Ctrl + b [ |
Переход к предыдущей вкладке в текущем окне |
Ctrl + b ] |
Переход к следующей вкладке в текущем окне |
Ctrl + b x |
Закрытие текущей вкладку |
Ctrl + b < |
Переход к предыдущей вкладке в окне слева |
Ctrl + b > |
Переход к следующей вкладке в окне справа |
Ctrl + b { |
Переход к предыдущей вкладке в окне сверху |
Ctrl + b } |
Переход к следующей вкладке в окне снизу |
Ctrl + b - |
Уменьшение размера текущего окна |
Ctrl + b |
Расширение размера текущего окна |
Ctrl + b o |
Переключение между горизонтальными окнами |
Ctrl + b |
|
Ctrl + b |
Переключение между всеми окнами в текущей сессии |
Ctrl + b [ |
Выделение текущей вкладки в окне слева |
Ctrl + b ] |
Выделение текущей вкладки в окне справа |
Ctrl + b { |
Выделение текущей вкладки в окне сверху |
Ctrl + b } |
Выделение текущей вкладки в окне снизу |
Ctrl + b |
Выделение текущей вкладки в текущем окне |
Это основные горячие клавиши tmux. Вы можете настроить свои собственные горячие клавиши, используя команду bind-key
в tmux.
Ваш комментарий будет первым