ZaLinux.ru

Лучшие терминальные мультиплексные инструменты

Фраза «терминальный мультиплексор» звучит непривычно и отдаёт жаргоном. Мультиплекс — это метод комбинирование множества потоков данных в один поток над общей средой. Это даёт намёк на функцию терминального мультиплексора. Это компьютерная программа, которая может быть использована для мультиплекса нескольких видео консолей. По-русски? Хорошо… она позволяет вам использовать несколько раздельных терминальных сессий внутри одного терминала. То есть одна терминальная сессия может действовать как много сессий.

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

Наиболее ценной особенностью терминального мультиплексора является устойчивость: способность отключаться и подключаться к сессиям из множества мест. Они незаменимы при удалённых работах. Другая ключевая особенность — это возможность создания мульти окон, позволяя разделам терминального окна быть разделённым по сессиям. Это даёт возможность пользователям запускать множество текстовых программ одновременно, также как предлагает возможности, которые позволяют пользователям переключаться между этими программами в процессе.

Вот мой выбор из лучших терминальных мультиплексоров. Каждое из этих приложений выпущено под лицензией open source.

tmux

Screenshot-tmux1

tmux — это «терминальный мультиплексор», даёт возможность создавать, иметь доступ и контролировать из единого окна ряд терминалов (или окон). Одной из наиболее мощной особенностью, которые предлагает tmux, является возможность разделить текущее окно на панели ("panes").

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

Любое количество клиентов может подсоединиться к сессии, или сервер может контролироваться посылом команд с tmux. Связь происходит через сокет, по умолчанию помещённый в /tmp.

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

Функции включают:

  • Использует чётко определённую модель клиент-сервер
  • Мощный, надёжный, хорошо документированный и простой скриптовый командный интерфейс
  • Окно может быть разделено горизонтально и вертикально на панели
  • Панели могут быть свободно перемещены, изменены в размерах, организованы в заданные макеты
  • Меню для интерактивной секции запущенных сессий, окон и клиентов
  • Поддерживает UTF-8 и 256-цветные терминалы
  • Копирование и вставка с множественными буферами
  • Интерактивные меню для выбора окон, сессий или клиентов
  • Изменяйте текущее окно поиском текста в цели
  • Окна могут быть привязаны к произвольному количеству сессий
  • Блокировка терминала вручную или после определённого времени
  • Мультибуфер для вставки
  • Выбор комбинаций клавиш vi или emacs
  • Поиск в окнах
  • Прост для скриптов
  • Опциональная строка статуса, которая отображается в нижней линии каждого терминала

Веб-сайт: tmux.sourceforge.net

Разработчик: Nicholas Marriott

Лицензия: BSD License

Номер версии: 1.9a

dynamic virtual terminal manager (dvtm)

Screenshot-dvtm

dynamic virtual terminal manager (dvtm) — это маленькая утилита с открытым кодом, которая приносит концепт плиточного оконного менеджмента, популяризованного в консоли менеджерами X11-window вроде dwm. Как и консольный оконный менеджер, он пробует сделать простой работу с множеством основанных на консоли программ. dvtm в комбинации с серверами abduco как полезная альтернатива tmux или GNU Screen.

dvtm пытается делать одну вещь, динамичное управление окнами на консоли, и делает это хорошо. Исходный код dvtm сравнительно мал (~4000 строк ANSI C), прост и, следовательно, прост для развития. dvtm использует некоторый код dwm.

Функции включают:

  • Поддерживаемые форматы:
  • Макеты — 4 доступны в конфигурации по умолчанию:

     

    • Вертикальное расположение плиток (по умолчанию) - левая половина экрана (основная область) используется для текущего окна, на котором установлен фокус, оставшиеся окна собраны в правой половине экрана
    • Нижнее расположение плиток — верхняя половина — основная часть, нижняя половина — это остальные окна
    • Сетка — каждому окну выделен равный размер доли экрана
    • Полный экран — только выбранное окно показано и занимает всё доступную область просмотра
  • Можно добавить и другие макеты

Веб-сайт: www.brain-dump.org/projects/dvtm

Разработчик: Marc André Tanner

Лицензия: MIT/X Consortium License

Номер версии: 0.13

GNU Screen

Screenshot-GNUScreen

GNU Screen — это терминальный мультиплексор, который запускает несколько раздельных «экранов» на одном физическом терминале, который может показывать только текст. Экран предотвращает отключении сессии по тайм ауту или отключению SSH соединений или эмуляторов локального терминала.

Каждый виртуальный терминал эмулирует DEC VT100 плюс несколько функций ANSI X3.64 и ISO 2022. Экранные сессии можно отсоединить и возобновить позже в другом терминале.

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

Функции включают:

  • Настраиваемая трансляция ввода и вывода
  • Поддержка последовательного порта
  • Настраиваемая запись событий
  • Поддержка мультипользователей — окно может быть отображено на более чем одном подсоединённом дисплее
  • Поддержка альтскрина (Altscreen)
  • Поддержка разделения экрана
  • Эмуляция хардстатуса (Hardstatus)
  • Поддержка 256 цветов
  • Поддержка кодировки utf8
  • Отслеживание мыши X11
  • Трансляция ввода
  • Огромное число командной
  • Опциональная поддержка шрифта Брайля

Веб-сайт: www.gnu.org/software/screen

Разработчик: GNU Project

Лицензия: GNU GPL v2

Номер версии: 4.2.1

Byobu

Screenshot-Byobu1

Byobu — основанный на тексте оконный менеджер и терминальный мультиплексор с открытым исходным кодом, который первоначально основывался на утилите GNU Screen. Его цель обеспечить лучшее удобство пользователей для терминальный сессий, когда происходит соединение с удалёнными серверами. Используя Byobu, пользователи могут быстро создать и у переместиться между различными окнами поверх одного SSH соединения или TTY терминала, мониторить много важной статистики об их системе, отсоединяться или заново соединяться к сессиям позже, в то время как программы продолжают работать в фоне.

Byobu включает усовершенствованные профили, удобные сочетания клавиш, конфигурационные утилиты и переключаемые уведомления о состоянии системы для tmux и GNU Screen.

Функции включают:

  • Линия заголовка — показывает открытые окна и подсвечивает то, на котором установлен фокус и, опционально, отображает имя пользователя, имя хоста, IP адрес и ссылку на Меню
  • Жёсткая строка состояния — зашифрованный цветом вывод и символы с настраиваемыми и динамически обновляемыми фактами, статистикой и информацией о локальной системе.
  • Много различных уведомлений состояния с описанием каждого из них, в том числе:

     

    • apport — указывает отложенные отчёты о сбоях
    • arch — системная архитектура
    • battery — информация о батарее, показывает разрядку, зарядку, полный заряд, цветовые индикаторы
    • cpu_count - количество cpu или ядер в системе
    • cpu_freq — текущая частота cpu в GHz
    • cpu_temp - температура cpu в Цельсиях (по умолчанию) или в Фаренгейтах
    • custom — пользователь задал свой скрипт
    • date — системная дата в формате YYYY-MM-DD
    • disk — общее доступное дисковое пространство и используемое
    • disk_io — скорость чтения/записи в KB/s или MB/s за последние 3 секунды
    • ec2_cost - estimation of the cost of the current boot of the system in terms of the Amazon EC2 billing model
    • entropy - количество текущей энтропии системы в байтах
    • raid — очень заметный индикатор, появляется если обнаружен сбой в RAID, выглядит как мерцающий красный текст на белом фоне
    • rcs_cost - оценка стоимости текущей загрузки системы с точки зрения биллинга модели Rackspace Cloud Server
    • fan_speed — скорость вентилятора по lm-сенсору
    • hostname
    • ip_address
    • ip_address4
    • ip_address6
    • load_average — средняя загрузка системы за последнюю минуту
    • logo
    • mail
    • memory — общая доступная память и используемая в настоящее время
    • network — текущая скорость выгрузки/загрузки в [GMk]bps за последние 3 секунды
    • notify_osd
    • processes — общее число процессов, запущенных в системе
    • reboot_required — символ появляется, если необходима перезагрузка
    • release
    • services — настроить список сервисов для мониторинга
    • swap — общий размер подкачки и общее использование в процентах об общей доступной
    • time
    • time_binary
    • time_utc
    • updates_available
    • uptime — общее время работы системы после загрузки
    • users
    • whoami
    • wifi_quality — уровень соединения и качества сигнала wifi соединения
  • Сочетания клавиш
  • Запуск по умолчанию на каждой текстовых вход (логирование)

Веб-сайт: launchpad.net/byobu/

Разработчик: Dustin Kirkland, Nick Barcet, Raphaël Pinson, Derek Carter

Лицензия: GNU GPL v3

Номер версии: 5.87

Tmuxinator

Screenshot-Tmuxinator

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

Он использует дефолтный редактор шелл для открытия файлов.

Эта программа разработана на языке программирования Ruby.

Функции включают:

  • Загружает сессию tmux из конфига
  • Поддерживает формат YAML
  • Поддержка сокращений для панелей, в которых одна команда
  • Визуальные инструменты настроек ввода
  • Интуитивно понятный и настраиваемый автоматический режим синхронизации
  • Полностью готовый для скриптов через Automation module

Веб-сайт: github.com/tmuxinator/tmuxinator

Разработчик: Allen Bargi, Christopher Chow

Лицензия: 3-clause BSD or ISC licenses

Номер версии: 3.2.1

Рекомендуемые статьи:

Оставить комментарий

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