Byobu vs GNU Screen vs. tmux – utilité et transférabilité des compétences

Jusqu'à présent, j'ai utilisé Konsole pour gérer plusieurs sessions shell, mais je n'ai pas essayé Byobu , GNU Screen et tmux , qui offrent un meilleur support pour plusieurs shells. Ils partagent tous une caractéristique principale, c'est-à-dire permettre de détacher la session en cours et ensuite de la rattacher à cette ancienne session.

Pour m'aider à choisir un outil à apprendre, j'aimerais savoir: comment sont-ils différents dans les aspects suivants?

  1. Caractéristiques (évidemment)
  2. Échéance du projet. Je ne veux pas apprendre un outil qui change trop. Les améliorations sont les bienvenues, mais je n'aime pas les surprises telles que les fonctionnalités de disparition.
  3. Courbe d'apprentissage
  4. Disponibilité dans différentes plates-formes. Si j'apprends un outil, j'aimerais pouvoir l'utiliser sur un serveur FreeBSD, SuSE ou Ubuntu.
  5. Compatibilité avec d'autres programmes shell interactifs. Puis-je utiliser vim et emacs -nw (mode non-fenêtre, ou mode texte) de la même manière que je l'utilise? Les raccourcis clavier entreront en conflit avec ceux d'autres outils?

Je les ai tout simplement essayé et Byobu ressemble à une sorte de front end pour GNU Screen et tmux. Alors, pourquoi quelqu'un a-t-il créé Byobu au lieu de contribuer au projet d'écran GNU et d'ajouter de nouvelles fonctionnalités? Pourquoi Byobu n'est-il pas une sorte de mode d'interface avancé dans l'écran GNU? Si j'utilise Byobu comme outil quotidien avec l'écran GNU comme backend, puis-je transférer ces connaissances pour utiliser l'écran GNU sans Byobu si une certaine machine n'a que l'écran GNU?

Pour Tmux vs GNU Screen, lisez

  • Tmux vs screen [SU]
  • Tmux vs écran GNU [Unix.SX]

Et plusieurs autres incarnations de comparaison qui peuvent être trouvées sur les blogs et autres.

Certains termes généraux qui sont souvent répétés:

  • Tmux est plus récent. Cela signifie qu'il est un peu plus amical (simple fractionnement vertical, jolies lignes vertes) et un peu moins bien testé, par exemple pour la compatibilité (à un degré négligeable selon ses promoteurs).
  • Tmux est plus maigre sur les ressources.
  • L'écran GNU se trouve partout et est probablement encore plus utilisé.

En dehors de cela, on peut regarder des fonctions spécifiques pour l'une ou l'autre alternative, et la préférence personnelle dominera la discussion. J'ai personnellement utilisé l'écran GNU lourdement – maintenant, j'utilise Tmux.

Je n'ai pas trouvé Byobu pour avoir des "caractéristiques killer" pour moi. Il fournit une abstraction où je crois qu'aucun n'est nécessaire pour mes cas d'utilisation.


Une autre façon de l'examiner est de noter que Byobu peut utiliser soit l'écran GNU ou Tmux comme backend, ce qui montre que les différences par rapport à un POV utilisateur sont principalement superficielles.

Grande question! Pour ce qu'il vaut, je suis l'auteur et le responsable de Byobu .

Byobu est une couche de configuration, créée à l' origine pour s'asseoir sur l' écran GNU , mais fonctionne maintenant sur Tmux .

J'ai commencé à écrire Byobu en décembre 2008 , alors que j'ai rencontré un tas d'utilisateurs de Screen et Ubuntu Server sur Googleplex et que tous nous avons maintenu notre propre groupe de hacks ~/.screenrc / amusants / utiles dans nos configurations ~/.screenrc . Et nous avons dû déplacer manuellement entre les dizaines ou les centaines de serveurs que nous utilisions. Nous avons commencé à commercialiser des astuces et des astuces, et j'ai commencé à les rassembler dans le projet original GPLv3 appelé «screen-profiles». Environ 6 mois plus tard, une communauté entière s'est développée autour de « profils d'écran » et le projet est devenu beaucoup plus que des hacks d'écran – nous avions des utilitaires de configuration, des plugins d'état en direct et des liens de clé. Ainsi, nous avons renommé le projet "Byobu", qui est un mot japonais pour ces "écrans" élégants et pliants, et a l'avantage supplémentaire de pouvoir utiliser Google pour "Byobu $ FOO" avec plus de succès que "Screen $ FOO".

Avec Byobu maintenant dans la plupart des distributions Linux ( Ubuntu , Debian , Fedora , Arch ) et fonctionnel sur la plupart des Mac / BSD et d'autres UNIX, il donne le même look-and-feel, les liaisons pratiques, les informations d'état du système dynamique sur n'importe quel terminal que vous pourriez Doivent accéder.

Pourquoi ne pas contribuer au projet d'écran GNU? Quelques raisons … Tout ce que Byobu fonctionne aussi bien que les options de configuration. Aucun de ces éléments ne doit être inclus dans la base source de l'écran pour fonctionner. Certaines choses pourraient fonctionner mieux ou s'améliorer si l'écran les inclut par défaut, mais bon nombre des changements sont très «choqués», qui sont généralement difficiles ou impossibles à contribuer à un projet en amont de 25 ans . En outre, le projet de l'écran GNU se déplace très lentement, sinon le cas échéant. Il a plus de 25 ans et n'a pas eu de version officielle depuis août 2008 . Chaque distribution porte de grandes piles de correctifs juste pour que votre / usr / bin / screen fonctionne et sécurisé. Par exemple, Ubuntu et Debian transportent actuellement des lignes de code 19K dans ~ 48 correctifs .

J'ai appris Tmux il y a environ 2 ans et je suis vraiment tombé amoureux du code source, du design, de l'interface et de la communauté active! J'ai eu un temps beaucoup plus facile à apporter des corrections à Tmux en amont et à discuter de sujets sur la liste de diffusion. Et en tant qu'utilisateur de Byobu qui l'utilise partout, je voulais le même aspect et ressentir mes séances de Tmux que ce que j'avais vécu en 4 ans et plus de Byobu. J'ai donc porté tout le code Byobu pour fonctionner aussi bien avec Tmux que le backend, en tant qu'écran. À partir de la version Byobu 5.0 , Tmux est maintenant le backend par défaut, avec l'écran toujours pris en charge dans un mode hérité. Byobu exploite maintenant une grande partie des fonctionnalités modernes de Tmux sur écran, y compris un support de 256 couleurs considérablement amélioré, des caractères UTF8 et un partage de fenêtres horizontale / verticale.

Si vous êtes satisfait des paramètres par défaut dans Screen ou Tmux, ou souhaitez écrire vos propres fichiers de configuration à partir de zéro, alors, par tous les moyens, Screen et Tmux sont des utilitaires fantastiques qui ont ajouté de nombreuses années d'efficacité à nos vies. Si vous êtes intéressé par un ensemble de configurations qui étirent vraiment et étendent ce que Screen and Tmux fait hors de la boîte, regardez Byobu!

Cordialement, Dustin

À partir d'un cas d'utilisation réelle, la plus grande différence entre l' screen et le tmux est la façon dont ils gèrent les fenêtres divisées.

Une fenêtre à l' screen est un seul pseudo-terminal. Lorsqu'il est attaché à une session d' screen , vous pouvez diviser votre terminal en plusieurs régions, dont chacune peut afficher une fenêtre d' screen . Plusieurs régions peuvent afficher la même fenêtre. Les scissions ne font pas partie de la session; Si vous vous détachez, vos scissions sont disparues.

Une fenêtre dans tmux compose d'un ou plusieurs pseudo-terminaux, un par fenêtre. Cela signifie que les panneaux persistent si vous vous détachez et rebranchez plus tard. Cela signifie également que vous ne pouvez afficher qu'une seule fenêtre à la fois dans tmux , et que les panneaux ne peuvent pas être partagés entre plusieurs fenêtres. tmux permet cependant de tmux une fenêtre entre plusieurs sessions.

Je préfère le modèle utilisé par tmux , mais je ne pourrais pas affirmer que c'est mieux que le modèle utilisé par l' screen .

Pour moi, le deal-breaker pour tmux était la mise en œuvre du partage de session.

Dans l'écran GNU, si vous laissez un autre utilisateur se connecter à une session ou simplement que votre session est connectée à plus d'un terminal, elle peut fonctionner indépendamment (les écrans de commutation dans une session A du terminal B ne font pas que la borne A change également d'écran dans Session A).

Ce qui précède n'est pas le cas avec tmux (encore?) Ou je n'ai pas encore trouvé de moyen de modifier le comportement.

Si quelqu'un connaît un moyen de modifier ce comportement dans tmux ou si tmux se met à jour pour modifier ce comportement ou donner l'option de modifier ce comportement, laissez un commentaire.