Терминальный мультиплексор astra linux

5 способов разделить окно терминала в Linux

Оригинал: 5 ways to split your Linux terminal
Автор: Seth Kenlon (Red Hat)
Дата публикации: 8 мая 2020 г.
Перевод: В.Костромин
Дата перевода: 15 мая 2020 г.

Linux предлагает множество способов разделить ваш терминал, чтобы вы могли работать в многозадачном режиме.

Есть ли что-нибудь более привлекательное, чем тепло мерцающий терминал Linux?

Конечно есть: два тепло мерцающих терминала Linux. И даже так: чем больше терминалов, тем лучше.

Много лет назад терминалы были физическими устройствами, но в наше время они просто эмулируются какими-то приложениями на вашем компьютере. Если вы предпочитаете терминал в качестве интерфейса для работы с компьютером, вы, вероятно, знаете, что одного терминала обычно недостаточно. Вам неизбежно приходится открывать новый терминал или новую вкладку, чтобы вы могли работать в нем, пока ваш первый занят компиляцией, или конвертацией, или другой обработкой данных.

Если вы системный администратор, то вам понадобится как минимум четыре открытых окна, когда вы работаете в нескольких системах одновременно.

Терминальные приложения с вкладками уже давно существуют в Linux и завоевали популярность, так как эта особенность современного терминала востребована. И все же, иногда необходимость переключаться между вкладками отвлекает или просто неудобно прыгать то туда, то сюда.

Единственная альтернатива состоит в том, чтобы поделить экран так, чтобы два или больше терминальных окон отображались одновременно в одном окне приложения. И в Linux есть много инструментов, которые помогут вам сделать это.

Оболочки, терминалы, консоли

Прежде чем вы начнете делить экран на кусочки, вы должны понять разницу между терминалом, оболочкой и «консолью». Чтобы представить себе полную картину, прочитайте предыдущую заметку в моем блоге (или ее перевод).

  • Оболочка — это самый низкий уровень взаимодействия пользователя с компьютером. Оболочка предоставляет пользователю строку ввода-вывода с приглашением ввести команду. Оболочка всегда работает где-то под вашим рабочим столом POSIX, даже если вы ее не видите (потому что именно этот экземпляр оболочки запускает вашу пользовательскую сессию).
  • Терминал — это приложение с загруженной в него оболочкой, работающее на графическом сервере (например, X11 или Wayland). Терминал работает только тогда, когда у вас запущено окно терминала. Терминал — это «дверь» для доступа к вашей оболочке.
  • Термин «консоль» или «виртуальная консоль» обычно используется для оболочки, запущенной вне вашего графического окружения. Вы можете перейти к виртуальной консоли, нажав комбинацию клавиш Alt-Ctrl-F2 (обычно доступны комбинации с клавишами от F1 до F7, где F1 или F7 представляют ваш рабочий стол, в зависимости от вашего дистрибутива).

Некоторые приложения позволяют вам разделить вашу оболочку или консоль, в то время как другие позволяют разделить ваш терминал.

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

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

Если вы используете tmux в первую очередь для разделения экрана, то единственные команды, которые вам действительно нужны, это:

  • Ctrl-B % для разделения экрана по вертикали (одна оболочка слева, одна — справа)
  • Ctrl-B» для разбиения по горизонтали (одна оболочка вверху, другая — ниже)
  • Ctrl-B O для активации другой оболочки
  • Ctrl-B ? для получения помощи
  • Ctrl-B d для отключения от Tmux, оставив его работать в фоновом режиме (используйте команду tmux attach для повторного входа)

У tmux много преимуществ, в том числе возможность запуска сеанса tmux на одном компьютере, а затем удаленное присоединение к тому же сеансу с другого компьютера.

Например, если tmux запущен на Pi, я могу постоянно оставаться залогиненным в IRC — я запускаю tmux на Pi, а затем захожу с любого компьютера, на котором я оказался. Когда я выхожу из системы, tmux продолжает работать, терпеливо ожидая, когда я подключусь к сеансу с другого компьютера.

GNU Screen

Так же, как tmux, GNU Screen является мультиплексором оболочки. Вы можете отсоединиться и снова подключиться к запущенному сеансу, а также разделить экран по горизонтали и вертикали.

Читайте также:  Codec supported by windows media player

Screen немного более неуклюж, по сравнению с tmux. По умолчанию для клавиатурных команд в нем используется комбинация клавиш Ctrl-A с еще какой-то клавишей, но Ctrl-A уже используется в оболочке Bash для того, чтобы перейти в начало строки. Поэтому, если у вас запущен Screen, вы вынуждены нажимать Ctrl-A дважды, чтобы перейти в начало строки. Лично я переопределил эту комбинацию на Ctrl-J с помощью следующей строки в файле $HOME/.screenrc:

Функция разделения экрана в Screen работает хорошо, но в ней отсутствуют некоторые приятные мелочи, которые есть в tmux. Например, когда вы разделяете свою окно оболочки, новая оболочка не запускается на вновь созданной панели. Вы должны перейти в новое пространство с помощью Ctrl-A Tab (или Ctrl-J, если вы переопределите комбинацию клавиш, как я) и вызвать новый экземпляр оболочки вручную с помощью Ctrl-A C.

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

Тем не менее, Screen — это надежное и гибкое приложение, которое вы можете использовать, если обнаружите, что tmux почему-либо недоступен для вас.

Вот основные команды разделения панели, использующие сочетания клавиш по умолчанию:

  • Ctrl-A | для разделения по вертикали (одна оболочка слева, одна оболочка справа)
  • Ctrl-A S для разделения по горизонтали (одна оболочка вверху, вторая ниже)
  • Ctrl-A Tab активация оболочки в другой панели
  • Ctrl-A ? вызов подсказки
  • Ctrl-A d выход из Screen, оставив его работать в фоновом режиме (для повторного входа используйте команду screen -r)

Konsole

Konsole — это программа эмуляции терминала, поставляемая в комплекте с рабочим столом KDE Plasma. Как и сам KDE, Konsole славится тем, что обладает широкими возможностями настройки.

Среди его многочисленных функций — возможности разделения окон, аналогичные имеющимся как в tmux, так и в GNU Screen. Поскольку Konsole — это графический терминал, вы можете управлять его функцией разделения экрана с помощью мыши, а не клавиатуры.

Функция разделения экрана находится в меню View Konsole. Вы можете разбить окно как по вертикали, так и по горизонтали. Чтобы активировать панель, достаточно щелкнуть по ней мышкой. Каждая панель представляет собой уникальный терминал, поэтому она может иметь собственную тему и вкладки.

В отличие от tmux и GNU Screen, вы не можете выйти из Konsole, оставив его работать в фоновом режиме, чтобы потом подключиться к нему снова. Как и большинство графических приложений, вы можете использовать Konsole только находясь перед ним физически, и теряете доступ к нему, когда находитесь где-то далеко (если вы не используете программное обеспечение удаленного рабочего стола).

Emacs

Emacs, конечно, не является терминальным мультиплексором, но его интерфейс поддерживает разделение и изменение размера окон, и он имеет встроенный терминал.

Если вы так или иначе работаете в Emacs ежедневно, то возможность разделить окно между разными по существу приложениями означает, что вам никогда не придется отказываться от своих привычек и конфорта работы в вашем любимом текстовом редакторе. Более того, поскольку модуль eshell в Emacs реализован на eLISP, вы можете взаимодействовать с ним, используя те же команды, которые вы используете в самом Emacs, что упрощает копирование и вставку длинных путей к файлам или вывод команд.

Если вы используете Emacs в графическом окне, вы можете выполнить некоторые действия с помощью мыши. Это быстрее чем использовать сочетания клавиш, причем некоторые из этих действий более или менее необходимы. Например, вы можете изменить то, какая панель является активной, щелкнув по ней, и вы можете изменить размеры панелей вашего разделенного экрана с помощью мыши.

Но все же приведем некоторые важные клавиатурные команды:

  • Ctrl-X 3 для разделения панели по вертикали (одна оболочка слева, вторая справа)
  • Ctrl-X 2 для разделения по горизонтали (одна оболочка вверху, вторая ниже)
  • Ctrl-X O активация оболочки в другой панели (вы можете сделать это и с помощью мыши)
  • Ctrl-X 0 (это ноль) закрыть текущую панель

Как и в случае с tmux и GNU Screen, вы можете отключаться от Emacs и снова входить в него до тех пор, пока запущен emacs-client.

Читайте также:  Ssd совместимость с windows

Window manager

Если вас удивляет то, что текстовый редактор Emacs может разделить экран и загрузить терминал, представьте, что ваш рабочий стол может делать то же самое. Некоторые рабочие столы, например, Ratpoison, Herbsluftwm, i3, Awesome даже KDE Plasma, если задействовать специальные настройки, могут запускать каждое приложение в отдельном окне, размещая эти окна одно рядом с другим на вашем экране.

Окна в этом случае не «плавают» над вашим рабочим столом, а располагаются каждое в определенной позиции, позволяя вам лекго переключаться от одного из них к другому. Вы можете открыть любое количество терминалов в этих окнах, эмулируя терминальный мультиплексор. Фактически, вы даже можете загрузить терминальный мультиплексор в мультиплексор вашего рабочего стола.

И ничто не мешает вам загрузить Emacs с разделенными буферами внутрь одного из окон. Никто не знает, что произойдет, если вы продолжите в том же духе, и большинство пользователей Linux соглашаются, что лучше не узнавать.

В отличие от tmux и GNU Screen, вы не можете отключать и повторно подключать свой рабочий стол, если не используете программное обеспечение удаленного рабочего стола.

Другие варианты

Хотите верьте, хотите нет, но здесь перечислены не все варианты разделения экрана в Linux. Существуют и другие эмуляторы терминала, в первую очередь среди них можно назвать Tilix и Terminator, которые тоже позволяют разбить экран на части, и приложения со встроенными терминальными компонентами. Вы можете поделиться своим мнением о наиболее удобных способах разделения вашего рабочего пространства в комментариях к этой статье (имеется в виду, конечно, оригинальная статья).

Об авторе

Seth Kenlon независимый мультимедиа-дизайнер, сторонник свободной культуры и специалист по UNIX. Он работал в кино и компьютерной индустрии, часто одновременно. Он является одним из разработчиков проекта по созданию мультимедиа на базе Slackware http://slackermedia.info

Источник

Обзор терминальных мультиплексоров: 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).
Читайте также:  Do all windows computers have movie maker

Текущую сессию 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.

Источник

Оцените статью