Tmux - это терминальный мультиплексор или иными словами, вы можете в одном терминале запустить несколько терминальных сессий и переключаться между ними или даже разместить их в одном окне, а также отключиться от сессии оставив её работать в фоне, а затем вернуться и посмотреть результат, это может быть очень удобно при работе по SSH. Если вы раньше пользовались утилитой screen, то tmux - это её аналог, который имеет намного больше функций.
Эта статья - небольшая шпаргалка по Tmux, в которой мы разберем установку программы, основные её возможности и команды, а также некоторые приемы использования. После прочтения статьи вы сможете полноценно пользоваться утилитой.
Установка
Ubuntu/Debian
|
|
Синтаксис и опции команды Tmux
Синтаксис команды предельно простой, для создания новой сессии достаточно запустить утилиту без параметров. Для подключения к уже существующей придется использовать дополнительные опции. Вот основной синтаксис:
tmux команда опции
Что касается опций, то в большинстве вам придется использовать только две - это -t (target) - которая указывает цель, к которой будет применяться команда, например, идентификатор сессии или подключенного клиента, а также -s (session) - который обычно используется для обозначения источника, над которым будет выполняться действие.
Команды tmux для управления сессиями, которые вы можете использовать:
- attach-session (attach) - подключиться к уже существующей сессии. В параметре необходимо передать опцию -t и идентификатор сессии;
- detach-session (detach) - отключить всех клиентов (или переданного с помощью опции -t) от сессии, переданной в опции -s;
- has-session - проверить существует ли сессия, аналогично, надо передать идентификатор сессии;
- kill-server - остановить все запущенные сессии;
- kill-session - завершить сессию переданную в параметре -t;
- list-clients - посмотреть клиентов, подключенных к сессии -t;
- list-sessions (ls) - вывести список всех запущенных сессий;
- new-session - создать новую сессию, можно передать имя сессии в опции -s и стартовую директорию в опции -c;
- rename-session - переименовать сессию, нужно передать идентификатор сессии и новое имя;
Конечно, у tmux намного больше команд, но мы не будем рассматривать их в этой статье. В основном, команды будут использоваться для подключения и отключения от сессий, все остальные действия выполняются с помощью горячих клавиш и их тут тоже достаточно.
По умолчанию для активации сочетания клавиш нужно нажать Ctrl+B, отпустить, а потом нажать нужную клавишу. Вот основные сочетания клавиш tmux, которые вам понадобятся:
- Ctrl+b c - создать новое окно;
- Ctrl+b w - выбрать окно из списка;
- Ctrl+b 0-9 - открыть окно по его номеру;
- Ctrl+b , - переименовать текущее окно;
- Ctrl+b % - разделить текущую панель по горизонтали;
- Ctrl+b “ - разделить текущую панель по вертикали;
- Ctrl+b стрелка - перейти на панель, находящуюся в стороне, куда указывает стрелка;
- Ctrl+b Ctrl+стрелка - изменить размер текущей панели;
- Ctrl+b o - перейти на следующую панель;
- Ctrl+b ; - переключаться между текущей и предыдущей панелью;
- Ctrl+b x - закрыть текущую панель;
- Ctrl+b [ - войти в режим копирования (подробнее ниже);
- Ctrl+b ] - вставить из внутреннего буфера обмена tmux;
- Ctrl+b d - отключится от текущей сессии;
- Ctrl+b : - открыть командную строку.
Для начала работы этих горячих клавиш будет достаточно. Шпаргалка tmux завершена, теперь перейдем к примерам работы с программой.
Как пользоваться tmux
1. Создание сессии
Чтобы создать новую сессию достаточно выполнить команду без параметров:
|
|
Также можно создать сессию командой new-session и задать ей удобное имя:
|
|
2. Разделение окна на панели
Окно сессии можно разделить на несколько панелей. Чтобы выполнить разделение по горизонтали нажмите Ctrl+b отпустите, а затем нажмите Shift+”:
Аналогично можно разделить панель по вертикали, нажав Ctrl+b, а затем Shift+%:
Размер активной панели можно менять нажав Ctrl+b, а потом Ctrl и стрелка:
А для переключения между панелями используйте клавиши Ctrl+b и стрелка. Сначала не привычно, но потом удобно.
3. Поддержка мышки
По умолчанию поддержка мышки отключена, но если вы работаете в графическом окружении, вы можете её включить. Это даст несколько преимуществ: вы сможете выбирать активную панель мышкой, копировать текст во внутренний буфер обмена, менять размер панелей, использовать прокрутку для просмотра истории вывода и так далее. Для этого откройте файл ~/.tmux.conf и добавьте туда следующие строки:
|
|
|
|
Сохраните изменения, нажмите Ctrl+b :, а потом выполните такую команду чтобы перезагрузить tmux:
|
|
Настройка tmux завершена, теперь мышь будет работать.
4. Копирование и вставка
Одна из достаточно важных операций при работе с терминалом - это возможность что-то скопировать и куда-то перенести. После активации поддержки мышки вы можете просто выделить участок текста мышкой и он автоматически скопируется во внутренний буфер tmux.
Если вы хотите иметь возможность скопировать в системный буфер обмена, перед тем как выполнять действия мышкой зажмите Shift:
Кроме того, в tmux есть управление копированием и вставкой с помощью клавиш. Для перехода в режим копирования нажмите Ctrl+B [, затем переместите курсор к нужному месту с помощью стрелок. Кстати, этот режим можно использовать также для прокрутки. Потом нажмите Ctrl+пробел для начала выделения, выделите нужный фрагмент стрелками и нажмите Ctrl+w для копирования.
Чтобы вставить текст из внутреннего буфера обмена нужно нажать сочетание клавиш Ctrl+b ]. Для выхода из режима копирования используйте q или Esc.
5. Окна tmux
Кроме панелей в tmux можно открывать окна. Это аналог рабочих столов в Linux. Каждое окно привязано к определенной цифровой кнопке и имеет свой набор панелей. Для создания нового окна нажмите Ctrl+b c:
Список окон выводится внизу окна терминала. Для переключения на нужное окно нажмите Ctrl+b и номер окна.
6. Отключение от сессии
Чтобы отключиться от текущей сессии достаточно нажать сочетание клавиш Ctrl+b d.
После отключения все запущенные в сессии программы продолжат работать и вы всегда сможете снова подключиться и посмотреть их вывод. Это удобно при подключении по SSH, которое всегда может разорваться.
7. Подключение к сессии
Посмотреть список сессий можно командой ls:
|
|
А для подключения используйте attach:
|
|
Ещё можно посмотреть список клиентов, подключенных к сессии:
|
|