До сих пор я использовал Konsole для управления несколькими сеансами оболочки, но я не пробовал Byobu , GNU Screen и tmux , которые предлагают лучшую поддержку нескольких оболочек. Все они имеют одну общую особенность, которая позволяет отсоединять текущий сеанс, а затем подключать его к этому старому сеансу.
Чтобы помочь мне выбрать инструмент для обучения, я хотел бы знать: чем они отличаются в следующих отношениях?
- Особенности (очевидно)
- Срок реализации проекта. Я не хочу изучать инструмент, который слишком сильно меняется. Улучшения приветствуются, но я не люблю сюрпризы, такие как исчезновение функций.
- Кривая обучения
- Доступность на разных платформах. Если я изучу инструмент, я бы хотел использовать его на сервере FreeBSD, на настольном компьютере SuSE или в Ubuntu.
- Совместимость с другими интерактивными оболочками. Могу ли я использовать
vim
иemacs -nw
(не оконный режим или текстовый режим) так же, как я привык? Будут ли сочетания клавиш конфликтовать с другими инструментами?
Я только что попробовал их все, и Byobu выглядит как своего рода интерфейс для GNU Screen и tmux. Тогда почему кто-то создал Byobu вместо того, чтобы вносить свой вклад в экранный проект GNU и добавлять новые функции? Почему Byobu не является своего рода расширенным интерфейсом в GNU Screen? Если я использую Byobu в качестве своего ежедневного инструмента с экраном GNU в качестве бэкэнда, могу ли я передать эти знания для использования экрана GNU без Byobu, если на определенной машине установлен только экран GNU?
источник
byobu
это просто вилкаscreen
с дополнительными функциями, поэтомуgnu-screen
тег применяется.Ответы:
Для Tmux vs GNU Screen читайте
и несколько других сравнительных воплощений, которые можно найти в блогах и тому подобное.
Некоторые общие термины, которые часто повторяются:
Помимо этого, можно посмотреть на конкретные функции для той или иной альтернативы, и личные предпочтения будут доминировать в дискуссии. Лично я интенсивно использовал экран GNU - теперь я использую Tmux.
Я не нашел Byobu, чтобы иметь какие-либо "особенности убийцы" для меня. Это обеспечивает абстракцию, где я считаю, что ничего не нужно для моих вариантов использования.
Другой способ взглянуть на это - заметить, что Byobu может использовать либо GNU Screen, либо Tmux в качестве бэкэнда, что показывает, что отличия от пользовательского POV в основном поверхностны.
источник
Отличный вопрос! Для чего это стоит, я автор и сопровождающий Byobu .
Byobu - это слой конфигурации, изначально созданный для размещения поверх экрана GNU , но теперь также работающий поверх Tmux .
Я начал писать Byobu в декабре 2008 года , когда я встретился с группой пользователей Screen и Ubuntu Server в Googleplex и обнаружил, что все мы поддерживали нашу собственную кучу полезных / забавных / полезных хаков в наших
~/.screenrc
конфигурациях. И нам пришлось вручную перемещать их между десятками или сотнями серверов, которые мы использовали. Мы начали торговать советами и хитростями, и я начал собирать их в оригинальный проект GPLv3, который назывался «screen-profile». Около 6 месяцев спустя вокруг « экранных профилей » сформировалось целое сообщество, и проект превратился в нечто большее, чем просто экранные хаки - у нас были утилиты настройки, плагины статуса в реальном времени и привязки клавиш. Итак, мы переименовали проект «Byobu» - это японское слово, обозначающее эти элегантные, складывающиеся «экраны», и имеет дополнительное преимущество, заключающееся в том, что Google может более успешно использовать «Byobu $ FOO», чем «Screen $ FOO».Благодаря тому, что Byobu теперь используется в большинстве дистрибутивов Linux ( Ubuntu , Debian , Fedora , Arch ) и функционирует на большинстве Mac / BSD и других UNIX, он дает такие же удобные сочетания клавиш, динамическую информацию о состоянии системы на любом терминале, который вы можете нужен доступ.
Почему бы не внести свой вклад в проект GNU Screen? Пара причин ... Все, что Byobu работает так же, как и параметры конфигурации. Ничто из этого не должно быть включено в исходную базу экрана, чтобы быть функциональным. Некоторые вещи могут работать лучше или работать лучше, если Screen включит их по умолчанию, но многие изменения очень «самоуверенные», которые обычно трудно или невозможно внести в 25-летний проект. Кроме того, проект GNU Screen движется очень медленно, если вообще движется. Ей более 25 лет, и с августа 2008 года она не была официально выпущена . Каждый дистрибутив содержит огромные стопки патчей, чтобы ваш / usr / bin / screen работал и был безопасным. например, Ubuntu и Debian в настоящее время несут 19K строк кода в ~ 48патчи .
Я узнал о Tmux около 2 лет назад и действительно влюбился в исходный код, дизайн, интерфейс и активное сообщество! Мне было гораздо легче вносить исправления в основной выпуск Tmux и обсуждать темы в списке рассылки. И как пользователь Byobu, который использует его повсюду, я хотел, чтобы мои сеансы Tmux выглядели так же, как и в 4+ годах работы с Byobu. Поэтому я перенес весь код Byobu, чтобы он одинаково хорошо работал с Tmux в качестве бэкэнда, как с Screen. Начиная с выпуска Byobu 5.0 , Tmux теперь является бэкэндом по умолчанию, и Screen по-прежнему поддерживается в устаревшем режиме. Byobu теперь использует многие из современных функций Tmux over Screen, включая значительно улучшенную поддержку 256 цветов, символы UTF8 и разделение горизонтального и вертикального окон.
Если вы удовлетворены настройками по умолчанию в Screen или Tmux или хотите написать свои собственные файлы конфигурации с нуля, тогда Screen и Tmux - это фантастические утилиты, которые добавили многолетнюю эффективность в нашу жизнь. Если вам интересен набор конфигураций, которые действительно расширяют и расширяют возможности Screen и Tmux из коробки, взгляните на Byobu!
Ура, Дастин
источник
CTRL+` as escape. With
screen`, иtmux
это работает как шарм, но не сbyobu
(Debian 7.1 Wheezy).screen
когда появился новый сопровождающий, и разработка, кажется, набрала обороты, что-то меняется?От фактического случая использования, большая разница между
screen
иtmux
как они работают расщепленные окна.Окно в
screen
представляет собой один псевдо-терминал. При подключении кscreen
сеансу вы можете разделить свой терминал на несколько регионов, в каждом из которых может отображатьсяscreen
окно. Несколько регионов могут отображать одно и то же окно. Расколы не являются частью сеанса; если вы отсоединяетесь, ваши расколы исчезли.Окно
tmux
состоит из одного или нескольких псевдо-терминалов, по одному на панель. Это означает, что панели сохраняются, если вы отсоединяете их и присоединяете позже. Это также означает, что вы можете одновременно отображать только одно окноtmux
, и что панели не могут совместно использоваться несколькими окнами.tmux
это позволяет окно для совместного использования нескольких сеансов, однако.Я предпочитаю используемую модель
tmux
, но я не могу утверждать, что она лучше, чем используемая модельscreen
.источник
tmux
- это Deutsche Bahn . Поезжайте на скоростном поезде, попробуйте поработатьssh
с помощью мобильного соединения, и вы быстро увидите, чтоtmux
модель намного лучше, потому что после одного из частых разрывов соединения вам не нужно переупорядочивать все панели на вашем Jumphost после повторной регистрации. ГКНРssh
Для меня решающим фактором для tmux была реализация совместного использования сеансов.
В GNU Screen, если вы разрешаете другому пользователю подключаться к сеансу или просто подключаете сеанс к нескольким терминалам, они могут работать независимо (переключение экранов в сеансе A с терминала B не заставляет терминал A также переключать экраны в Сессия А).
Выше не относится к tmux (пока?), Или я пока не смог найти способ изменить поведение.
Если кто-то знает, как изменить это поведение в tmux или если tmux обновится, чтобы изменить это поведение или дать возможность изменить это поведение, оставьте комментарий.
источник
tmux
имеет понятие «связанных» сессий сnew-session -t shared
. Окна «общего доступа» появляются в новом сеансе, новые окна в одном появляются в другом, а закрытие окна в одном закрывает его в другом. Однако то, какое окно видит каждый клиент, зависит от конкретного сеанса, к которому он присоединяется.