Linux несколько терминалов в одном окне

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

Статья будет включать в себя обзор существующих проектов для мультиплексирования ввода/вывода терминала операционной системы Linux. Для тестов будем использовать Ubuntu Server 20.04.

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

screen

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

Документация описывает этот инструмент как полноценный менеджер окон. Кстати, окнами здесь называются терминалы, которые можно открывать дополнительно. Изначально функционал screen заключается в том, чтобы запустить любое приложение, достаточно просто перед командой открытия приложения добавить screen .

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

Инструмент предполагает, что будет использоваться только клавиатура, поэтому придется пользоваться сочетаниями клавиш. Но, чтобы не запоминать их все, можно просто запомнить ctrl+a ? . Это сочетание клавиш вызовет справку по назначенным сочетаниям клавиш. Попробуем поработать с этим инструментом.

Команда screen будет выглядеть вот так:

После показа информации с картинки будет создано окно, с которым можно взаимодействовать. Фактически screen без параметров просто открывает новый терминал. Справка будет выглядеть вот так:

Если набрать последовательность сочетания клавиш:

Будут созданы пустые области в терминале, их можно заполнить окнами ctrl-a c , перемещаться между окнами можно через сочетание ctrl-a tab . Результат будет выглядеть так:

Для дальнейшего управления удобно пользоваться последовательностью ctrl-a X . Эта команда будет закрывать области, которые используются для создания нового окна.

tmux

BSD версия screen, использует те же функции, также есть сессии и окна с которыми можно работать и запускать в них отдельные приложения.

tmux поставляется в установке Ubuntu Server 20.04, поэтому им можно пользоваться так же как и screen. Все взаимодействия с сессиями организуются через сокеты. Сокеты можно называть, а вот сессии — только нумеровать.

Список сессий можно получать через команду tmux ls . Кстати, по аналогии в screen тоже есть такая команда, но нужно писать вот так: ls -> -ls и получается screen -ls .

Читайте также:  Yandex repository astra linux

Созданные 2 сессии будут выглядеть вот так (команда ctrl-b w ):

На картинке представлен вывод списка сессий, которые запущены на сервере. Сверху списком сессии, а снизу их содержимое.

Как и в screen, можно разбивать терминал на области, в которых будут работать приложения. Для этих дейтствий есть 2 команды — для вертикального сплитинга ctrl-b % , для горизонтального ctrl-b » . Разбиение сразу содержит запущенный терминал. Пример:

Закрытие области или панели можно осуществить через команду ctrl-b x .

dvtm

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

Использование инструмента снова не сильно отличается от предыдущих, здесь для любого действия можно использовать сочетание клавиш ctrl-g и дополнение в виде отдельной буквы. Как всегда, для ознакомления с функциями инструмента можно использовать последовательность ctrl-g ? .

Здесь так же возможно разделение экрана, но, в отличии от screen и tmux, разделение происходит автоматически, однако можно использовать стандартные раскладки, которые скомпануют отдельные окна. Например, последовательность ctrl-g m выведет активное окно на весь экран. Переход между окнами осуществляется последовательность ctrl-g j . Закрытие окон аналогично предыдущим инструментам — ctrl-g x .

Разбивку окон можно производить вот так ctrl-g c :

Byobu

Оболочка для screen и tmux, может использовать их базовый функционал и предоставляет удобный интерфейс. Для запуска достаточно запустить byobu , кстати, пакет стоит по умолчанию на Ubuntu Server. Поэтому, чтобы его задействовать, достаточно просто запустить команду.

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

Если добавлять окно, его создание происходит по нажатию клавиши F2.

WezTerm

Единственный среди разобранных полноценный терминал. Согласно последним трендам в языках программирования написан на Rust. Он поддерживает из коробки мутиплексирование, работу табами и окнами, как это было в tmux и screen. Располагается проект тут. Кросплатформенность позволяет с ним работать на всех популярных платформах.

Главной особенностью wezterm является способ конфигурации — конфиг для этого терминала представлен скриптом на Lua.

Как установить терминал в систему можно найти здесь.

Вместо заключения

В статье были приведены способы кастомизации терминала операционной системы. Какой мультиплексор/терминал лучше, стоит выбирать под решаемую задачу. Например, для управления сервером может быть полезен screen и tmux, для управления Desktop машиной может подойти WezTerm.

Статья подготовлена экспертом Александром Колесниковым в преддверии старта курса «Administrator Linux. Professional».

Всех желающих приглашаем на бесплатный двухдневный интенсив «Простой роутер на Linux». Чем займемся на занятии:
— Настройка автоматической выдачи сетевых адресов (DHCP);
— Храним имена сайтов для быстрой загрузки (DNS);
— Подготовка периметра защиты от внешней сети (firewall);
— Настройка трансляции адресов на внешнем интерфейсе (NAT masquerade);
— Активация обмена пакетами с внешним миром (ip_forwarding).
Регистрация здесь.

Источник

Читайте также:  Nvidia linux x86 driver

Как пользоваться tmux для создания нескольких терминалов внутри одной консоли

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

Чтобы это делать в Linux дистрибутивах на основе GNOME и Cinnamon, вы можете установить инструмент под названием Terminator, которые предоставляет эффективный способ разделения одного окна консоли на несколько терминалов для различных задач.

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

В этой статье мы расскажем вам о tmux (сокращение для Terminal MUltipleXer), простой и современной альтернативе хорошо известной утилите GNU screen. Вы научитесь подключаться и контролировать ряд терминалов (или окон) из одного терминала. Этот инструмент будет работать как в окружении только с интерфейсом командной строки, так и внутри эмулятора терминала в дистрибутивах с графическим рабочим столом.

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

Как установить tmux (мультиплексер терминалов) в Linux

Для установки вы можете использовать вашу стандартную систему управления пакетами.

Установка в Debian, Linux Mint, Ubuntu, Kali Linux и производные:

sudo apt update && sudo apt install tmux

Установка в Arch Linux и производные:

Для CentOS/RHEL/Fedora (программа включена в базовый репозиторий):

yum update && yum install tmux

После того, как вы установили 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 набрав:
Читайте также:  Sublime text русификация linux

Всё сказанное выше продемонстрировано в видео по tmux:

Помните, когда в сессии tmux не остаётся больше панелей, эта сессия закрывается.

Изменение привязки кнопок терминала tmux

В tmux комбинации кнопок, используемые для выполнения определённых действий, называются привязанными клавишами (key bindings). По умолчанию сочетания клавиш состоят из комбинации кнопки Ctrl и другой (других) кнопки(кнопок) — примеры показаны выше.

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

1) на уровне пользователя (создав файл с именем .tmux.conf внутри домашней директории каждого пользователя — не пропустите начальную точку в имени файла), или

2) на уровне системы (посредством файла /etc/tmux.conf, который по умолчанию отсутствует).

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

Например, давайте предположим, что вы хотите использовать Alt+a вместо Ctrl+b, тогда нужно следующее содержимое в одном из упомянутых ранее файлах:

unbind C-b set -g prefix M-a

После сохранения изменений, перезапустите tmux. Вы сможете использовать соответственно Alt+a и «, а также Alt+a и t для разделения окна по горизонтали и показа текущего времени внутри активной панели.

Страница man пакета tmux имеет дополнительные подробности и предложения для привязки кнопок в соответствии с вашими предпочтениями.

Заключение

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

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

Источник

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