Byobu vs. GNU Screen vs. tmux - корисність і переносимість навичок [закрито]


95

Поки що я використовував Konsole для управління кількома сеансами оболонки, але я не пробував Byobu , GNU Screen і tmux , які пропонують кращу підтримку для декількох оболонок. Всі вони мають одну головну особливість - дозволити від'єднання поточного сеансу та подальше приєднання до цього старого сеансу.

Щоб допомогти мені вибрати інструмент для навчання, я хотів би знати: чим вони відрізняються в наступних аспектах?

  1. Особливості (очевидно)
  2. Зрілість проекту. Я не хочу вивчати інструмент, який занадто сильно змінюється. Вдосконалення вітаються, але мені не подобаються сюрпризи, такі як зникаючі функції.
  3. Крива навчання
  4. Наявність на різних платформах. Якщо я вивчу інструмент, я хотів би мати можливість використовувати його на сервері FreeBSD, настільному ПК SuSE або Ubuntu.
  5. Сумісність з іншими інтерактивними програмами оболонок. Чи можу я все-таки використовувати vimта emacs -nw(безвіконний або текстовий режим) так само, як я звик? Чи будуть конфлікти на клавіатурі конфліктувати з іншими інструментами?

Я просто спробував їх усіх, і Byobu виглядає як свого роду передній край для GNU Screen і tmux. Тоді чому хтось створив Byobu замість того, щоб сприяти проекту GNU Screen і додавати нові функції? Чому Byobu - це не якийсь розширений режим інтерфейсу на екрані GNU? Якщо я використовую Byobu як свій щоденний інструмент із екраном GNU як резервний, чи можу я передати ці знання для використання GNU Screen без Byobu, якщо на певній машині є лише екран GNU?


1
Коментуючи власне запитання. Після публікації я побачив, скільки разів кожен тег використовувався в StackExchange: gnu-screen: 199 разів tmux: 125 разів bybubu: 18 разів Це означає, що byobu все ще не популярний? Або той byobu настільки інтуїтивний, що ні в кого не виникає питання, як ним користуватися?
Кейтай

1
Тому що byobuце лише роздрібнення screenз додатковими функціями, тому gnu-screenтег застосовується.
grawity

2
Відповідно до документації ( manpages.ubuntu.com/manpages/precise/en/man1/byobu.1.html ) конфігурація Byobu за замовчуванням полягає в тому, щоб використовувати tmux як сервер за замовчуванням. Якщо byobu - це вилка екрана gnu, чи означає це tmux кращий, ніж gnu screen?
Кейтай

1
Цікаво, що я не знав, що він підтримує tmux зараз, хоча він залишається просто обгортковим сценарієм - мабуть, навіть не виделкою. Але так, tmux в чомусь кращий, ніж Screen (принаймні, їхні запитання та відповіді так).
grawity

22
Byobu - це не виделка нічого! Це шар поверх екрана та Tmux, подібний до того, що Gnome / KDE є шаром поверх Xorg.
Дастін Кіркланд

Відповіді:


32

Про екран Tmux vs GNU читайте

та кілька інших втілень порівняння, які можна знайти в блогах тощо.

Деякі загальні терміни, які часто повторюються:

  • Tmux новіший. Це означає, що це трохи фантазії (просте вертикальне розщеплення, приємні зелені лінії) і трохи менш добре перевірені, наприклад, на сумісність (в незначній мірі відповідно до прихильників).
  • Tmux лежить на ресурсах.
  • Екран GNU є скрізь і, швидше за все, все ще використовується.

Крім цього, можна переглянути конкретні функції для тієї чи іншої альтернативи, і особисті переваги будуть домінувати в дискусії. Я особисто часто використовував GNU Screen - зараз використовую Tmux.

Я не знайшов, щоб Бьобу мав для мене якісь «вбивчі риси». Це дає абстракцію, де я вважаю, що для моїх випадків використання нічого не потрібно.


Ще один спосіб поглянути на це - зазначити, що Byobu може використовувати будь-який з GNU Screen або Tmux як бекенд, який показує, що відмінності від POV користувача в основному поверхневі.


268

Чудове запитання! Для чого це варто, я є автором і підтримувачем Byobu .

Byobu - це конфігураційний шар, спочатку написаний для того, щоб сидіти на екрані GNU , але тепер також працює над Tmux .

Я почав писати Byobu ще в грудні 2008 року , коли познайомився з купою користувачів екрана та Ubuntu Server в Googleplex і виявив, що всі ми підтримували в наших ~/.screenrcконфігураціях власну купу акуратних / забавних / корисних хак . І нам довелося вручну переміщувати ці навколо між десятками або сотнями використовуваних нами серверів. Ми почали торгувати порадами та підказками, і я почав збирати їх у оригінальний проект GPLv3 під назвою "екранні профілі". Приблизно через 6 місяців ціла спільнота склалася навколо " екранів-профілів ", і проект став набагато більше, ніж просто хакерські екрани - у нас були утиліти конфігурації, плагіни статусу та прив'язки клавіш. Тож ми перейменували проект "Byobu", що є японським словом для цих елегантних, складних "екранів", і має додаткову перевагу в тому, що може бути більш успішним Google для "Byobu $ FOO", ніж "Screen $ FOO".

Оскільки Byobu зараз у більшості дистрибутивів Linux ( Ubuntu , Debian , Fedora , Arch ) та функціональний на більшості Macs / BSD та інших UNIXes, він дає ті самі вигляд, зручні вкладення клавіш, динамічну інформацію про стан системи на будь-якому терміналі необхідність доступу.

Чому б не сприяти поверненню проекту GNU Screen? Пара причин ... Все те, що Byobu працює так само добре, як і параметри конфігурації. Жодне з них не повинно бути включеним у базу джерела екрана, щоб бути функціональною. Деякі речі можуть спрацювати краще чи приємніше, якщо Екран включив їх за замовчуванням, але багато змін є дуже «впевненими», які, як правило, важко або неможливо зробити внеском у 25-річний проект вгору. Також проект GNU Screen рухається дуже повільно, якщо він взагалі є. Це 25 років, і він не мав офіційного релізу з серпня 2008 року . Кожен дистрибутив містить величезну кількість патчів лише для того, щоб ваш / usr / bin / екран працював і захищений. наприклад, 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!

Ура, Дастіне


16
Гарне пояснення. Дивовижно, що екран настільки сильно зафіксований - чи потрібен йому новий сервіс або щось таке? І Bybu чудово - дякую.
nealmcb

10
Я хотів би, щоб я міг проголосувати двічі. Я використовую byobu вже багато років і лише нещодавно дізнався про складність, яку він ховає від мене весь цей час.
Джеймі Кук

2
Я завжди використовую CTRL+` as escape. With екран`, і tmuxце працює як шарм, але не з byobu(Debian 7.1 Wheezy).
Тіно

1
Тепер, screenколи з'явився новий технічний супровід, і розвиток, схоже, набрав пар, чи все зміниться?
муру

Чи не могли б ці налаштовані за замовчуванням зробити його молодшим проектом tmux? Здається, у відповіді відсутній абзац "Чому б не внести свій внесок у проект tmux?" xkcd.com/927
user2707671

12

Від фактичного випадку використання найбільша відмінність screenі tmuxте, як вони обробляють розділені вікна.

Вікно в screen- це один псевдотермінал. Приєднавшись до screenсеансу, ви можете розділити свій термінал на кілька регіонів, кожен з яких може відображати screenвікно. Кілька регіонів можуть відображати одне вікно. Розщеплення не є частиною сеансу; якщо ти від'єднаєшся, твої розколи зникнуть.

Вікно в tmuxскладається з одного або декількох псевдотерміналів, по одному на панель. Це означає, що панелі зберігаються, якщо пізніше від'єднати та повторно приєднати. Це також означає, що ви можете одночасно відображати лише одне вікно tmux, а панелі не можна ділити між кількома вікнами. tmuxце дозволяє вікно для спільного використання декількох сеансів, однако.

Я віддаю перевагу використаної моделі tmux, але не можу стверджувати, що вона краще, ніж модель, якою користувалася screen.


3
Аргументом pro tmuxє Deutsche Bahn . Їдьте швидким поїздом, спробуйте розібратися за sshдопомогою мобільного зв'язку, і ви швидко побачите, що tmuxмодель набагато перевершує, адже після одного з частих розривів зв’язку вам не потрібно переставляти всі панелі на вашому стрибку після перегляду. SCNR
Тіно

3
якщо ви ssh
стикаєтеся

4

Для мене виправдачем угоди для tmux стала реалізація сеансу спільного доступу.

На екрані GNU, якщо ви дозволите іншому користувачеві підключитися до сеансу або просто підключити ваш сеанс до більш ніж одного терміналу, він може працювати незалежно (перемикання екранів у сеансі A з терміналу B не робить термінал A також перемикання екранів у сесія А).

Сказане вище не стосується tmux (ще?), Або я ще не зміг знайти спосіб змінити поведінку.

Якщо хтось знає про спосіб змінити цю поведінку в tmux або якщо tmux оновиться, щоб змінити цю поведінку або дати можливість змінити цю поведінку, будь ласка, залиште коментар.


6
tmuxмає поняття "пов'язані" сесії з new-session -t shared. У новому сеансі з'являються вікна із "спільного доступу", нові вікна в одному з’являються в іншому, а закриття вікна в одному закриває його в іншому. Однак, яке вікно бачить кожен клієнт, характерне для фактичного сеансу, який він додає.
чепнер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.