Обзор терминальных мультиплексоров: tmux и dvtm
Терминал принадлежит к числу наиболее часто используемых инструментов администратора. Нередко во время работы приходится одновременно держать открытыми несколько вкладок терминала: одну — для управления веб-сервером, другую — для управления базой данных, третью — для копирования файлов и т.п. Когда открытых вкладок очень много, отслеживать одновременно все процессы становится трудно, и это существенно усложняет работу. Существуют специальные программы, c помощью которых можно решить проблему множественных терминалов. Они называются терминальными мультиплексорами.
Терминальные мультиплексоры позволяют одновременно работать с несколькими терминальными сессиями в одном окне. Принцип их работы заключается в следующем: терминал с множественными вкладками создается на удаленной машине; на локальной машине окно терминала делится на несколько частей, и в каждой из них могут быть запущены любые приложения и процессы. От удаленной машины можно отключиться (текущая сессия будет сохранена), а затем снова подключиться к ней и продолжать работу.
Самым известным и распространенным терминальным мультиплексором является, конечно же, GNU Screen. При всех своих преимуществах он отличается некоторым неудобством в работе. Неудачно реализована, например, операция разделения экрана на части: при отключении от текущей сессии и последующем ее возобновлении порядок расположения частей не сохраняется.
В последнее время широкое распространение получили и другие терминальные мультиплексоры, более наглядные и удобные в работе — например, tmux и dvtm, которым и посвящена эта статья.
Tmux работает под Linux и под MacOS; он включен в официальные репозитории большинства современных Linux-систем и может быть установлен при помощи стандартного менеджера пакетов.
Запустим tmux при помощи следующей команды:
В нижней части экрана появится строка состояния:

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

Каждую из получившихся вкладок можно также разделить на две части горизонтальной чертой при помощи комбинации клавиш Ctrl+B+” (сначала нажимаем Ctrl+B, а затем — “).
Разделить окно на две части можно также при помощи команд:
(разделить на две части горизонтально)
(разделить на две части вертикально)
Чтобы перейти из одной части окна в другую, нажимаем сначала 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. Чтобы возобновить прерванную сессию, нужно ввести команду:
Прерванная сессия будет восстановлена; при этом все данные и процессы будут сохранены.
Эту команду можно ввести и в сокращенном виде:
Чтобы вывести на экран список сессий, нужно выполнить следующую команду:
Завершение открытой сессии осуществляется при помощи команды:
Чтобы завершить все открытые сессии одновременно, нужно ввести команду:
Рекомендации по настройке
Отображение строки состояния в нижней части экрана можно отключить. Для этого введем следующую команду:
А чтобы отключенная строка состояния отображалась снова — команду:
Можно изменить положение строки состояния и сделать так, чтобы она находилась не в нижней, а в верхней части экрана:
Цвет строки состояния изменяется при помощи следующей команды:
Dvtm (dynamic virtual terminal manager) представляет собой терминальный мультиплексор, по функциональности во многом близкий к tmux.
Он также включен в официальные репозитории большинства современных Linux-систем и устанавливается при помощи стандартного менеджера пакетов.
После запуска dvtm в верхней части экрана будет отображена строка состояния:

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

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

- вертикальное (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 нужно явно указывать сокет, с помощью которого идентифицируется сессия. Доступ к сессии целиком и полностью определяется доступом к сокету.
Чтобы покинуть dtach, нужно нажать комбинацию Ctrl+\. Подключение к существующей сессии осуществляется при помощи команды:
Более подробная информация о 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+A 0. 9 | 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 W | — |
| Увеличить ширину окна | — | 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 дистрибутивах на основе GNOME и Cinnamon, вы можете установить инструмент под названием Terminator, которые предоставляет эффективный способ разделения одного окна консоли на несколько терминалов для различных задач.
Тем не менее имеются другие варианты, которые вам стоит рассмотреть. Особенно если перед вами сервер только с интерфейсом командной строки, или рабочий стол с системой окон X не может запуститься на вашем дистрибутиве.
В этой статье мы расскажем вам о tmux (сокращение для Terminal MUltipleXer), простой и современной альтернативе хорошо известной утилите GNU screen. Вы научитесь подключаться и контролировать ряд терминалов (или окон) из одного терминала. Этот инструмент будет работать как в окружении только с интерфейсом командной строки, так и внутри эмулятора терминала в дистрибутивах с графическим рабочим столом.
Дополнительно, умение создавать несколько сессий tmux может помочь вам организовать вашу работу в различных частях терминала для улучшения вашей продуктивности.
Как установить tmux (мультиплексер терминалов) в Linux
Для установки вы можете использовать вашу стандартную систему управления пакетами.
Установка в Debian, Linux Mint, Ubuntu, Kali Linux и производные:
Установка в Arch Linux и производные:
Для CentOS/RHEL/Fedora (программа включена в базовый репозиторий):
После того, как вы установили tmux, давайте взглянем, что у него есть предложить нам.
Основы работы с tmux
Для старта новой сессии tmux (контейнера для индивидуальных консолей, которые будут управляться в tmux) с именем dev, запустите:
Внизу экрана вы увидите индикатор сессии, в которой вы находитесь в данный момент:
Далее вы можете:
- разделить терминал на столько панелей, сколько вы хотите, для этого нажмите Ctrl+b, а затем нажмите " (Shift+') — это разделит по горизонтали, а сочетание клавиш Ctrl+b, затем % (Shift+5) делит по вертикале. Каждая панель представляет отдельную консоль.
- перемещаться из одной консоли в другую кнопками Ctrl+b, после которых нужно нажать одну из курсорных клавиш ←↑→↓ для перемещения в соответствующем направлении.
- изменить размер панели, для этого удерживайте Ctrl+b во время нажатия стрелок ←↑→↓ в направлении, в котором вы хотите передвинуть границы активной панели.
- показать текущее время внутри активной панели, нажав Ctrl+b, а затем t.
- закрыть панель, поместив курсор внутри панели, которые вы хотите удалить, и нажав Ctrl+b, а затем x. Вам будет задан запрос на подтверждение этой операции.
- отсоединить от текущей сессии (это вернёт в обычный терминал) для этого нажмите Ctrl+b, а затем d.
- создать новую сессию с именем, допустим, admin:
- отсоединиться от сессии с именем admin
- повторно подсоединиться к сессии dev набрав:
- опять переключиться на admin командой:
Всё сказанное выше продемонстрировано в видео по tmux:
Помните, когда в сессии tmux не остаётся больше панелей, эта сессия закрывается.
Изменение привязки кнопок терминала tmux
В tmux комбинации кнопок, используемые для выполнения определённых действий, называются привязанными клавишами (key bindings). По умолчанию сочетания клавиш состоят из комбинации кнопки Ctrl и другой (других) кнопки(кнопок) — примеры показаны выше.
Если в предшествующих примерах сочетания кнопок по умолчанию показались вам неудобными, вы можете изменить их и настроить либо:
1) на уровне пользователя (создав файл с именем .tmux.conf внутри домашней директории каждого пользователя — не пропустите начальную точку в имени файла), или
2) на уровне системы (посредством файла /etc/tmux.conf, который по умолчанию отсутствует).
В обоих используемых методах, конфигурация на уровни системы перезаписывается настройками каждого пользователя.
Например, давайте предположим, что вы хотите использовать Alt+a вместо Ctrl+b, тогда нужно следующее содержимое в одном из упомянутых ранее файлах:
После сохранения изменений, перезапустите tmux. Вы сможете использовать соответственно Alt+a и ", а также Alt+a и t для разделения окна по горизонтали и показа текущего времени внутри активной панели.
Страница man пакета tmux имеет дополнительные подробности и предложения для привязки кнопок в соответствии с вашими предпочтениями.
Заключение
В этой статье мы объяснили, как использовать tmux для разделения терминала или окна консоли на несколько панелей, которые вы можете использовать для различных целей.
Надеюсь, вы этот инструмент окажется для вас полезным. Если у вас есть свои подсказки по самым востребованным операциям и действиям в tmux, поделитесь ими в комментариях.
How to effectively deal with bots on your site? The best protection against click fraud.
С той же проблемой сталкиваются и системные администраторы, и администраторы баз данных, потому что им нужно как минимум пять окон терминала для выполнения соответствующей работы.
В терминале есть вкладки, но они не делают работу более удобной, поэтому вводятся некоторые терминальные мультиплексоры. Эти мультиплексоры помогают разделить окно терминала как по горизонтали, так и по вертикали. Итак, в этой статье мы рассмотрим некоторые мультиплексоры, которые помогут вам разделить ваш терминал Linux.
1. tmux
tmux, возможно, является одним из наиболее часто используемых мультиплексоров. Это довольно надежный разделитель экрана, который помогает разделить окно терминала Linux и настроить его размер. Это мультиплексор, ориентированный на клавиатуру. Это означает, что все функции и настройки можно выполнять прямо с клавиатуры.

Установить tmux
$ судо apt-get install tmux
Чтобы запустить tmux
$ tmux новый -s разработчик
Горячие клавиши:
- CTRL + B +%: Вертикальный разрез.
- CTRL + B + «: Горизонтальное разделение.
- CTRL + B + O: Сделайте активным другую оболочку.
- CTRL + B + D: Отключить от tmux.
- CTRL + B +?: Помощь.
2. Konsole
Konsole — это терминал по умолчанию, который поставляется с предустановленным KDE Plasma Desktop, и это мощный и настраиваемый терминал. Это многофункциональный терминал, который можно разделить как по горизонтали, так и по вертикали.

Вы найдете его очень похожим на tmux, но вам придется разделить его с помощью мыши. Параметры разделения доступны в Вид меню. Как и tmux, вы можете отсоединять или повторно прикреплять окна терминала в консоли.
Чтобы установить Konsole
$ судо apt-get update -у
$ судо apt-get install -у консоль
3. Экран
Экран представляет собой мультиплексор оболочки от GNU. Это достаточно надежный и способный мультиплексор оболочки. Вы можете разделить экран как по вертикали, так и по горизонтали, а также отсоединить и повторно прикрепить экран к текущему сеансу.

Установить экран
$ судо apt-get update
$ судо apt-get install экран
На начальный экран
Горячие клавиши
- CTRL + A + | : Вертикальное разделение
- CTRL + A + S: Горизонтальное разделение
- CTRL + A + TAB: Чтобы активировать другую оболочку
- CTRL + A + D: Отключить от экрана
- CTRL + A +?: Помощь
4. Терминатор
Terminator — это эмулятор терминала для Linux и его дистрибутивов. Он во многом похож на Терминал по умолчанию в Ubuntu. Но у него также есть некоторые собственные функции, которых вы не найдете в Терминале по умолчанию.

Эти функции позволяют гибко настраивать рабочее пространство в соответствии с вашими требованиями.
Чтобы установить Терминатор
$ судо add-apt-репозиторий ppa: gnome-terminator
$ судо apt-get update
$ судо apt-get install терминатор
Вы можете запустить / запустить терминал из панели инструментов Unity или из меню приложения.
Горячие клавиши
- CTRL + SHIFT + O: Разделить терминал по горизонтали.
- CTRL + SHIFT + E: Разделить терминал по вертикали.
- CTRL + SHIFT + W: Закройте текущую панель.
- CTRL + SHIFT + T: Откройте новую вкладку.
5 Тиликс
Tilix, ранее известный как Terminix, представляет собой эмулятор терминала на основе GTK + 3 для Linux и его дистрибутивов. Это многофункциональный терминал, который предлагает функции для разделения терминала по горизонтали и вертикали.

В режиме разделенного экрана вы найдете этот эмулятор терминала очень полезным.
Чтобы установить Tilix
$ судо репозиторий надстройки ppa: webupd8team / Термикс
$ судо apt-get update
$ судо apt-get install тиликс
Вы найдете отдельные вкладки для разделения окна по горизонтали и вертикали в верхней части окна эмулятора tilix. Здесь у вас нет сочетаний клавиш для разделения окна, но этот эмулятор терминала достаточно надежный и мощный.
Итак, это наилучшие возможные и надежные способы разделения терминала Linux. Есть вопросы или предложения? Не стесняйтесь связаться с нами по @linuxhint и @SwapTirthakar .
How can I split the standard Ubuntu terminal?
I would like to have several terminals in the same window. I know I can have tabs, but with them we can’t see two terminals at a time.
I know Terminator is another terminal able to do this, but I really like the standard terminal.
![]()
![]()
6 Answers 6
Not with the standard terminal. There are, however, a number of applications that you can install that will extend your terminal to allow for it, called multiplexers. Tmux and Screen are two of the most common.
![]()
Use terminator / termssh
apt-get install terminator # for GNOME but works fine on KDE.
wrote this to automate server connections either through autodiscovery or text file 4 -8 windows per tab
![]()
Like Shauna suggests, GNU Screen among other tools will let you do this. It also comes with a host of other features which can be very useful (like keeping your programs running on a remote shell even after you have disconnected, so that you can re-connect to the session later).
If you decide to try any of these tools out, I suggest you look a little bit further than your initial needs requires you too, as the rewards will be immense.