Что такое tmux
Перейти к содержимому

Что такое tmux

  • автор:

Шпаргалка по tmux

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

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

Установка Tmux

Здесь все просто. Для установки программы в Ubuntu выполните следующую команду:

sudo apt install tmux

А для установки в CentOS:

sudo yum install tmux

Синтаксис и опции команды 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 и задать ей удобное имя:

tmux new-session -s losst

2. Разделение окна на панели

Окно сессии можно разделить на несколько панелей. Чтобы выполнить разделение по горизонтали нажмите Ctrl+b отпустите, а затем нажмите Shift+»:

Аналогично можно разделить панель по вертикали, нажав Ctrl+b, а затем Shift+%:

Размер активной панели можно менять нажав Ctrl+b, а потом Ctrl и стрелка:

А для переключения между панелями используйте клавиши Ctrl+b и стрелка. Сначала не привычно, но потом удобно.

3. Поддержка мышки

По умолчанию поддержка мышки отключена, но если вы работаете в графическом окружении, вы можете её включить. Это даст несколько преимуществ: вы сможете выбирать активную панель мышкой, копировать текст во внутренний буфер обмена, менять размер панелей, использовать прокрутку для просмотра истории вывода и так далее. Для этого откройте файл ~/.tmux.conf и добавьте туда следующие строки:

set-option -g -q mouse on
bind-key -T root WheelUpPane if-shell -F -t = «#» «send-keys -M» «select-pane -t =; copy-mode -e; send-keys -M»
bind-key -T root WheelDownPane if-shell -F -t = «#» «send-keys -M» «select-pane -t =; send-keys -M»

Сохраните изменения, нажмите 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:

tmux attach -t losst

Ещё можно посмотреть список клиентов, подключенных к сессии:

Выводы

В этой статье мы разобрали основные команды tmux, а также как пользоваться этой утилитой. Я для себя открыл tmux не давно. Слышал о программе довольно давно, но никак не доходили руки попробовать, а потом попробовал и уже не могу без неё обойтись.

Краткая шпаргалка по tmux (менеджеру терминалов)

tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen , только лучше (в первую очередь потому, что использует модель клиент—сервер).

image

Вашему вниманию предлагается минималистическая шпаргалка, позволяющая быстро начать использовать 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 — выход из «режима копирования».

Обзор терминальных мультиплексоров: Tmux и Dvtm

Терминал принадлежит к числу наиболее часто используемых инструментов администратора. Нередко во время работы приходится одновременно держать открытыми несколько вкладок терминала: одну — для управления веб-сервером, другую — для управления базой данных, третью — для копирования файлов и т.п. Когда открытых вкладок очень много, отслеживать одновременно все процессы становится трудно, и это существенно усложняет работу. Существуют специальные программы, c помощью которых можно решить проблему множественных терминалов. Они называются терминальными мультиплексорами.

Изображение записи

Терминал принадлежит к числу наиболее часто используемых инструментов администратора. Нередко во время работы приходится одновременно держать открытыми несколько вкладок терминала: одну — для управления веб-сервером, другую — для управления базой данных, третью — для копирования файлов и т.п. Когда открытых вкладок очень много, отслеживать одновременно все процессы становится трудно, и это существенно усложняет работу. Существуют специальные программы, c помощью которых можно решить проблему множественных терминалов. Они называются терминальными мультиплексорами.

Терминальные мультиплексоры позволяют одновременно работать с несколькими терминальными сессиями в одном окне. Принцип их работы заключается в следующем: терминал с множественными вкладками создается на удаленной машине; на локальной машине окно терминала делится на несколько частей, и в каждой из них могут быть запущены любые приложения и процессы. От удаленной машины можно отключиться (текущая сессия будет сохранена), а затем снова подключиться к ней и продолжать работу.

Самым известным и распространенным терминальным мультиплексором является, конечно же, GNU Screen. При всех своих преимуществах он отличается некоторым неудобством в работе. Неудачно реализована, например, операция разделения экрана на части: при отключении от текущей сессии и последующем ее возобновлении порядок расположения частей не сохраняется.

В последнее время широкое распространение получили и другие терминальные мультиплексоры, более наглядные и удобные в работе — например, tmux и dvtm, которым и посвящена эта статья.

Tmux

Tmux работает под Linux и под MacOS; он включен в официальные репозитории большинства современных Linux-систем и может быть установлен при помощи стандартного менеджера пакетов.

Запустим tmux при помощи следующей команды:

$ tmux

В нижней части экрана появится строка состояния:

tmux

Управление всеми терминальными мультиплексорами осуществляется так: сначала нажимается так называемая префиксная комбинация клавиш, а после нее — клавиша, управляющая той или иной функцией. В tmux по умолчанию в качестве префиксной установлена комбинация Ctrl+B. Чтобы разделить экран терминала на две половины вертикальной чертой, нужно сначала нажать Ctrl+B, а затем — % (т.е. Shift+5):

tmux 1

Каждую из получившихся вкладок можно также разделить на две части горизонтальной чертой при помощи комбинации клавиш Ctrl+B ” (сначала нажимаем Ctrl+B, а затем — “).

Разделить окно на две части можно также при помощи команд:

$ tmux split-window -h

(разделить на две части горизонтально)

$ tmux split-window -v

(разделить на две части вертикально)

Чтобы перейти из одной части окна в другую, нажимаем сначала Ctrl+B, а затем — клавиши ←, ↑, → и ↓.

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

  • Ctrl+B+ 0…9 — перейти в указанное окно;
  • Ctrl+B P — перейти в предыдущее окно;
  • Ctrl+B N — перейти в следующее окно;
  • Ctrl+B L — перейти в предыдущее активное окно (т.е. в то, из которого ранее был осуществлен переход в текущее окно);
  • Ctrl+B X — закрыть окно (это можно также сделать при помощи команды exit).

Текущую сессию tmux можно прервать, нажав комбинацию клавиш Ctrl+B+D. Чтобы возобновить прерванную сессию, нужно ввести команду:

$ tmux attach

Прерванная сессия будет восстановлена; при этом все данные и процессы будут сохранены.
Эту команду можно ввести и в сокращенном виде:

$ tmux -a

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

$ tmux ls

Завершение открытой сессии осуществляется при помощи команды:

$ tmux kill-session -t [имя сессии]

Чтобы завершить все открытые сессии одновременно, нужно ввести команду:

$ tmux kill-server

Рекомендации по настройке

Отображение строки состояния в нижней части экрана можно отключить. Для этого введем следующую команду:

$ tmux set -g status off

А чтобы отключенная строка состояния отображалась снова — команду:

$ tmux set -g status on

Можно изменить положение строки состояния и сделать так, чтобы она находилась не в нижней, а в верхней части экрана:

$ set -g status-position top

Цвет строки состояния изменяется при помощи следующей команды:

tmux set -g status-bg blue

Dvtm

Dvtm (dynamic virtual terminal manager) представляет собой терминальный мультиплексор, по функциональности во многом близкий к tmux.
Он также включен в официальные репозитории большинства современных Linux-систем и устанавливается при помощи стандартного менеджера пакетов.
После запуска dvtm в верхней части экрана будет отображена строка состояния:

dvtm

Управление dvtm организовано по тому же принципу, что и управление tmux. В качестве префиксной используется комбинация клавиш Ctrl+G. Понятие окна в dvtm интерпретируется совершенно иначе по сравнению с tmux. Для создания нового окна используется комбинация клавиш Ctrl+G C. При нажатии этой комбинации экран будет разделен на две части; при этом каждая из них является отдельным окном:

dvtm

При помощи той же самой комбинации клавиш можно создавать дополнительные окна:

dvtm

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

  • вертикальное (Ctrl+G T) — текущее окно расположено в левой половине экрана; все остальные окна расположены в правой половине;
  • горизонтальное (Ctrl+G B) — основное рабочее окно занимает верхнюю половину экрана, все остальные окна располагаются внизу;
  • режим сетки (Ctrl+G G) — экран делится на части одинакового размера по количество созданных окон;
  • полноэкранный режим (Ctrl+G M) — текущее окно занимает весь экран.

Переходить от одного режима расположения окон к другому можно, нажимая омбинацию Ctrl+G+пробел.

Для управления окнами используются следующие клавиатурные комбинации:

  • Ctrl+G X — закрыть текущее окно;
  • Ctrl+G J — перейти в следующее окно;
  • Ctrl+G K — перейти в предыдущее окно;
  • Ctrl+G 0…9 — перейти в указанное окно (цифры обозначают номер окна);
  • Ctrl+G L — увеличить ширину текущего окна;
  • Ctrl+G H — уменьшить ширину текущего окна;
  • Ctrl+G Q — закрыть все окна и выйти из dvtm.

В dvtm имеется одна интересная функция, которой больше нет ни в одном из известных нам терминальных мультиплексоров: нажатие клавиш в текущем окне могут автоматически воспроизводиться во всех остальных открытых окнах. Нажмем комбинацию клавиш Ctrl+G+A. Если после этого нажать на какую-нибудь клавишу, нажатие сработает во всех окнах сразу.(UPD. Наши читатели сообщают, что аналогичная функция имеется и в tmux: tmux set synchronize-panes on).

Если ввести в текущем окне какую-либо команду, она также будет одновременно выполнена во всех открытых окнах. С помощью этой функции можно, например, осуществлять одновременную настройку нескольких удаленных серверов по одинаковой схеме.

В отличие от tmux, dvtm не поддерживает сохранения и возобновления сессий. Для этого используется dtach — вспомогательная утилита, которая обеспечивает возможность отключения от текущей сессии и последующего подключения к ней для любых консольных приложений. Устанавливается при помощи стандартного менеджера пакетов.

Чтобы получить возможность отключать сессии и снова подключаться к ним, нужно запустить dvtm под dtach:

$ dtach -c /tmp/dvtm-session -r winch dvtm

При работе с dtach нужно явно указывать сокет, с помощью которого идентифицируется сессия. Доступ к сессии целиком и полностью определяется доступом к сокету.

Чтобы покинуть dtach, нужно нажать комбинацию Ctrl+\. Подключение к существующей сессии осуществляется при помощи команды:

$ dtach -a /tmp/dvtm-session -r winch

Более подробная информация о dtach представлена на официальной man-странице .

В заключение приведем небольшую шпаргалку — таблицу основных команд и клавиатурных комбинаций, используемых в screen, tmux и dvtm.

Сравнительная таблица команд и клавиатурных комбинаций

Управление сессиями
Операция screen tmux dvtm
Запустить новую сессию screen tmux
tmux new-session
tmux new-session -s [имя сессии]
Возможность сохранения и возобновления сессий не поддерживается — для этого нужно устанавливать утилиту dtach, реализующую такую возможность для всех консольных приложений. Запуск dvtm под dtach осуществляется при помощи команды:
dtach -c /tmp/dvtm-session -r winch dvtm
Подключиться к уже созданной сессии screen -r tmux attach
tmux attach-session -s [имя сессии]
tmux -a
dtach -a /tmp/dvtm-session -r winch
Отсоединиться от текущей сессии Ctrl+A D tmux detach ИЛИ Ctrl+B D Ctrl+\
Просмотреть список активных сессий screen -ls tmux ls ps aux | grep dtach
Удалить сессию screen -r [имя сессии] -X quit tmux kill-session -t [имя сессии]
Удалить все сессии Ctrl+A \ tmux kill-server
Управление окнами
Операция screen tmux dvtm
Cоздать новое окно Ctrl+A C Ctrl+B C Ctrl+G C
Перейти в указанное окно Ctrl+B 0….9 Ctrl+G 0….9
Перейти в предыдущее окно Ctrl+A P Ctrl+B P Ctrl+G J
Перейти в следующее окно Ctrl+A N Ctrl+B N Ctrl+G K
Перейти в последнее активное окно Ctrl+A L Ctrl+B L
Показать список всех открытых окон Ctrl+A «
Увеличить ширину окна Ctrl+B+Ctrl N→ или Ctrl+B Alt → (увеличивает с большим шагом) Ctrl+G L
Уменьшить ширину окна Ctrl+B Ctrl+← Ctrl+G H
Воспроизводить нажатия клавиш во всех открытых окнах tmux set synchronize-panes on Ctrl+G A
Закрыть текущее окно Ctrl+A X Ctrl+B X Ctrl+G X

Что такое tmux в Linux и как установить

Tmux (Terminal Multiplexer) — утилита командной строки для управления несколькими терминалами в рамках одного окна. Он позволяет пользователям запустить несколько программ в одном терминале, разделять окно терминала на несколько панелей и группировать несколько панелей в одном окне. Более того, tmux позволяет пользователю сохранять сессии работы с терминалом и возобновлять их в любое время. Tmux очень полезен для управления удаленными серверами и для создания более эффективных многозадачных сред в ОС Linux.

Как устанавливается

Для установки Tmux на большинстве дистрибутивов используется стандартный менеджер пакетов системы. Например, для установки Tmux на Ubuntu/Debian можно использовать следующую команду в терминале:

Для установки на CentOS/RHEL/Fedora можно использовать команду:

После установки, можно запустить Tmux командой tmux в терминале.

Если нужна более актуальная версия Tmux, можно собрать и установить ее самостоятельно из исходного кода. Для этого нужно сначала установить необходимые зависимости (как минимум, пакеты с заголовочными файлами) и затем скомпилировать и установить пакет. Команда для скачивания исходного кода Tmux:

Затем нужно распаковать архив и перейти в директорию с исходным кодом Tmux:

Далее, следуйте инструкциям в файле README для компиляции и установки Tmux. Обычно это:

После установки, можно запустить Tmux командой tmux в терминале.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *