Кратко: tmux в Linux
В данной статье речь пойдет об утилите tmux. Кратко написано как ставить и пользоваться.
Скажу сразу, в tmux может быть много окон, а так же в каждом окне много панелей, в описании так и будет указано «создать окно» или закрыть «панель» чтобы случайно, при попытке закрыть одну панельку вы не закрыли все окно.
yum install tmux
apt-get install tmux
tmux
tmux new
Запуск tmux с указанием названия сессии:
tmux new -s server123
… будет создана сессия с названием server123 (само название будет отображаться внизу, в статус-баре.
Создаем новое окно в tmux:
Ctrl+B -> c
Переключиться к следующему окну:
Ctrl+B -> n
Переключиться к предыдущему окну tmux:
Ctrl+B -> p
Переключиться к нужному окну указав его номер:
Ctrl+B -> 0. 9
Посмотреть список открытых окон, в котором можно выбрать нужное окно из этого списка:
Ctrl+B -> w
Перейти в предыдущее активное окно (из которого вы переключались в текущее):
Ctrl+B -> l
Деление окна горизонтально (создаем горизонтальную панельку):
Ctrl+B -> "
Деление окна вертикально (создаем вертикальную панельку):
Ctrl+B -> %
Переключение между панелями стрелками:
Ctrl+B -> →←↑↓
Ctrl+B -> x
Ctrl+B -> &
Отключение от сессии tmux оставив окна работающими (читай: свернуть):
Ctrl+B -> b
Показать список открытых сессий:
tmux ls
Подключиться к последней созданной сессии (если их несколько):
tmux attach
Подключиться к определенной сессии:
tmux attach -t session0
Завершение определенной сессии:
tmux kill-session -t session0
Завершение всех сессий:
tmux kill-server
По умолчанию скроллинг в окнах становится непривычным. Чтобы сделать его более привычным достаточно перейти в режим копирования в котором можно скроллить мышкой:
Ctrl+B -> PgUp
Выйти из этого режима можно кнопкой q.
Еще есть более верный вариант, а именно создать конфигурационный файл и включить этот режим именно там.
Файл можно создать как глобальный (в директории /etc/), так и для пользователя:
~/.tmux.conf # для пользователя /etc/tmux.conf #системный
Если у вас версия tmux 2.1 или выше, то достаточно в этот файл добавить эту строчку:
set -g mouse on
Если версия ниже 2.1, то нужно добавить немного больше строчек:
set -g mouse-resize-pane on set -g mouse-select-pane on set -g mouse-select-window on set -g mode-mouse on
Таким образом, как вы проскролите вверх, то включится режим копирования, а скролл вниз (до самого конца) выключит его.
Так же, тем кому бесит главный префикс Ctrl+b — его можно сменить, например на Ctrl+a, добавив в конфиг вот эту строчку:
set -g prefix C-a unbind C-b bind C-a send-prefix
На самом деле в конфиге tmux много чего можно сделать, но это тема совсем не этой статьи.
Источники:
- http://xgu.ru/wiki/tmux
- https://github.com/tmux/tmux/wiki
- https://hackernoon.com/a-gentle-introduction-to-tmux-8d784c404340
- https://habr.com/post/327630/
- https://habr.com/post/126996/
- https://habr.com/post/165437/
- http://fliplinux.com/tmux-conf.html
Подключение и отключение от сессии в tmux
Tmux (Terminal Multiplexer) — свободное и открытое программное обеспечение, которое позволяет вам открыть несколько окон терминала в одной консоли. Это позволяет пользователям одновременно запускать несколько команд в различных окнах терминала в рамках одной сессии, а также свободно перемещаться между окнами и настраивать их размеры и расположение. Tmux позволяет работать с терминалом более эффективно, делая его более гибким и удобным в использовании.
Что такое сессия tmux?
Tmux имеет такие функции, как сохранение состояния сессий между перезапусками, разделение окон на несколько панелей, управление историей команд, поддержку мыши и клавиатурных комбинаций, настройку тем и многие другие.
Он может быть использован как в локальной сети, так и через удаленный доступ, позволяя администраторам sysadmin’ам управлять сетью и серверами более эффективно и безопасно. Tmux доступен для многих Unix-подобных операционных систем, включая Linux, macOS и FreeBSD.
Сессия в tmux — логическая группировка открытых окон терминала. Каждая сессия может содержать несколько окон и панелей, которые можно свободно перемещать и изменять их размеры, не зависимо друг от друга. Когда вы создаете новую сессию tmux, она запускается в терминале и позволяет вам многозадачность, т.е. одновременно запускать несколько команд и отображать результаты их выполнения в разных окнах.
Tmux сохраняет состояние каждой сессии, даже если вы закрываете терминал, отключаетесь от сервера или перезагружаете систему. Это позволяет вам продолжать работу там, где остановились ранее, даже после перезагрузки сессии. Кроме того, tmux позволяет вам переключаться между сессиями, создавать новые окна в рамках текущей сессии, управлять окнами, панелями, назначать горячие клавиши и многое другое. В целом, использование сессий в tmux существенно упрощает работу с терминалом и повышает эффективность труда.
Как подключиться к сессии?
Для подключения к уже запущенной сессии tmux, вам необходимо выполнить следующую команду в терминале:
где « — это имя сессии, к которой вы хотите подключиться.
Как отключиться от сессии?
Чтобы отключиться от сессии tmux и оставить ее запущенной в фоновом режиме, выполните следующую комбинацию клавиш:
Эта команда переместит вас из сессии tmux в оболочку, а tmux останется запущенным в фоновом режиме.
Если же вы хотите завершить сессию tmux полностью, нажмите `CTRL + b` затем введите команду `:kill-session`. Таким образом, вы завершите все окна и панели, связанные с этой сессией Tmux.
Базовая настройка и работа с tmux
tmux — свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux , находящемуся в фоне.
Установка на Ubuntu
sudo apt-get install tmux
Конфигурация tmux
Для настройки tmux создаем файл конфигурации в домашней директории:
nano ~/.tmux.conf
Добавим в созданный файл опцию для поддержки мышки:
# Make mouse useful set -g mouse on
Начиная с версии 2.1, данная опция включит режим мышки, который позволит использовать скролл, менять размеры панелей перетаскиванием и выбирать панели с помощью мышки.
Основные параметры и комбинации клавиш
Управлять tmux можно как командами, так и комбинациями клавиш в уже открытом окне tmux . Для того, чтобы использовать комбинации клавиш, необходимо сначала выполнить префикс:
CTRL + b
И затем нажать нужную клавишу.
Список поддерживаемых команд
tmux list-commands
Дополнительная информация
man tmux
Запуск tmux с параметрами по умолчанию
tmux
Запуск с заданными параметрами
tmux new-session -d -s -n
где — название новой сессии, а — название окна.
Вывод списка сессий
tmux ls
Параметр -d создает detach -сессию, к которой можно присоединиться следующим образом:
CTRL + b > s
tmux attach-session -t
Отключение от сессии
CTRL + b > d
tmux detach
Завершение сессии
tmux kill-session -t
Далее рассмотрим, как в рамках сессии можно создавать несколько окон, а в рамках окон — несколько панелей.
Создание нового окна
CTRL + b > c
tmux new-window -t : -n
где — индекс нового окна
Работа с окнами
Список окон: CTRL + b > w
Следующее окно: CTRL + b > n
Предыдущее окно: CTRL + b > p
Переключение на окно с определенным индексом: CTRL + b >
Переименование окна: CTRL + b > ,
Закрытие окна: CTRL + b > x или exit
Создание панели
Панели создаются посредством разделения окна на участки заданного размера. Размер панели можно регулировать как комбинацией клавиш, так и перетаскиванием границы мышью, т.к. мы включили ее поддержку в настройках.
CTRL + b > "
tmux split-window -h
или с использованием alias :
tmux splitw -h
CTRL + b > %
tmux split-window -v
или с использованием alias :
tmux splitw -v
Также эти команды поддерживают параметр -p , который позволяет указать разбиение в процентах.
Переключаться между панелями можно мышью или же следующим образом:
CTRL + b > Arrow key CTRL + b > ALT + Arrow key
tmux selectp -t
Зум панелей
Т.к. панель занимает часть окна, то не всегда удобно ее использовать для чтения большого количества информации. Также при многострочном селекте текст выделяется и на соседней панели. В этих двух случаях нам поможет зум панели до размера окна и обратно с помощью клавиш:
CTRL + b > z
Автоматизация работы
Каждый раз набирать команды или сочетания клавиш неудобно. Поэтому можно написать простой скрипт, который будет создавать сессию с новым окном, а в этом новом окне создавать 4 панели и в двух нижних панелях запускать команды на исполнение:
#!/bin/bash SESSION="work" WINDOW_NAME="main" # Start tmux tmux start-server # Create a new tmux session tmux new-session -d -s $SESSION -n $WINDOW_NAME # Create 4 panels tmux selectp -t 0 tmux splitw -h -p 50 tmux selectp -t 0 tmux splitw -v -p 50 tmux selectp -t 2 tmux splitw -v -p 50 # Exec command in panel #1 tmux selectp -t 1 tmux send-keys "who" C-m # Exec command in panel #3 tmux selectp -t 3 tmux send-keys "htop" C-m # Attach to created session tmux attach-session -t $SESSION
Мы рассмотрели базовые команды для работы с tmux , а также пример автоматизации для подготовки окон к работе.
Краткая шпаргалка по tmux (менеджеру терминалов)
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen , только лучше (в первую очередь потому, что использует модель клиент—сервер).
Вашему вниманию предлагается минималистическая шпаргалка, позволяющая быстро начать использовать tmux , а уж тонкую настройку, продвинутые команды и бесконечные хот-кеи желающие найдут, набрав man tmux .
Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)
В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0. 9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).
В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b « — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).
Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».