Byobu vs GNU Screen vs tmux - utilité et transférabilité des compétences [fermé]

95

Jusqu'ici, j'ai utilisé Konsole pour gérer plusieurs sessions de shell, mais je n'ai pas encore essayé Byobu , GNU Screen et tmux , qui offrent une meilleure prise en charge de plusieurs shells. Ils partagent tous une fonctionnalité principale, qui consiste à permettre de détacher la session en cours et de se reconnecter ultérieurement à cette ancienne session.

Pour m'aider à choisir un outil d'apprentissage, j'aimerais savoir: en quoi diffèrent-ils sur les points suivants?

  1. Caractéristiques (évidemment)
  2. Maturité 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 la disparition de fonctionnalités.
  3. Courbe d'apprentissage
  4. Disponibilité sur différentes plateformes. Si j'apprends un outil, j'aimerais pouvoir l'utiliser sur un serveur FreeBSD, un bureau SuSE ou Ubuntu.
  5. Compatibilité avec d'autres programmes shell interactifs. Puis-je quand même utiliser vimet emacs -nw(en mode non-fenêtre ou en mode texte) de la même façon que je suis habitué? Les raccourcis clavier entreront-ils en conflit avec ceux d'autres outils?

Je viens de les essayer tous 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 GNU Screen? Si j'utilise Byobu comme outil quotidien avec GNU Screen comme back-end, puis-je transférer cette connaissance pour utiliser GNU Screen sans Byobu si une machine donnée ne dispose que de GNU Screen?

Keitai
la source
1
Commenter ma propre question. Après avoir posté, je viens de voir le nombre de fois où chaque balise a été utilisée dans StackExchange: gnu-screen: 199 fois tmux: 125 fois byobu: 18 fois Est-ce que cela signifie que byobu n'est toujours pas populaire? Ou que Byobu est tellement intuitif que personne ne se demande comment l'utiliser?
Keitai
1
Parce que byobuc'est juste une fourchette de screenfonctionnalités supplémentaires, donc la gnu-screenbalise s'applique.
Grawity
2
Selon la documentation ( manpages.ubuntu.com/manpages/precise/en/man1/byobu.1.html ), la configuration par défaut de Byobu consiste à utiliser tmux comme moteur par défaut. Si Byobu est un fork de gnu screen, cela signifie-t-il que tmux est meilleur que gnu screen?
Keitai
1
Intéressant, je ne savais pas qu'il prenait en charge tmux maintenant, bien qu'il reste simplement un script wrapper - pas même une fork apparemment. Mais oui, tmux est à certains égards meilleur que Screen (du moins leur FAQ le dit- il).
Grawity
22
Byobu n'est pas une fourchette de rien! C'est une couche au dessus de Screen et Tmux, similaire à Gnome / KDE qui est une couche au dessus de Xorg.
Dustin Kirkland

Réponses:

32

Pour l’écran Tmux vs GNU, lisez

et plusieurs autres incarnations de comparaison que l'on peut trouver sur des blogs et autres.

Quelques termes généraux souvent répétés:

  • Tmux est plus récent. Cela signifie qu'il est un peu plus sophistiqué (simple division verticale, belles lignes vertes) et un peu moins bien testé pour la compatibilité, par exemple (dans une mesure négligeable selon ses partisans).
  • Tmux est maigre sur les ressources.
  • GNU Screen est présent 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. Personnellement, j’avais l’habitude d’utiliser beaucoup GNU Screen - maintenant j’utilise Tmux.

Je n'ai pas trouvé que Byobu ait des "fonctionnalités mortelles" pour moi. Il fournit une abstraction où je pense qu'aucun n'est nécessaire pour mes cas d'utilisation.


Une autre façon de voir les choses est de noter que Byobu peut utiliser GNU Screen ou Tmux comme back-end, ce qui montre que les différences par rapport au POV d'un utilisateur sont pour la plupart superficielles.

Daniel Andersson
la source
268

Bonne question! Pour ce que ça vaut, je suis l'auteur et le mainteneur de Byobu .

Byobu est une couche de configuration, écrite à l'origine pour s'asseoir sur le dessus de GNU Screen , mais fonctionne également maintenant sur le dessus de Tmux .

J'ai commencé à écrire à Byobu en décembre 2008 , après avoir rencontré de nombreux utilisateurs de Screen et d'Ubuntu Server sur le Googleplex, et constaté que chacun d'entre nous maintenait notre propre groupe de hacks soignés / amusants / utiles dans nos ~/.screenrcconfigurations. Et nous avons dû déplacer manuellement ceux-ci entre les dizaines ou les centaines de serveurs que nous avons utilisés. Nous avons commencé à échanger des trucs et astuces, et j'ai commencé à les rassembler dans le projet original GPLv3 appelé "profils d'écran". Environ 6 mois plus tard, toute une communauté s'était développée autour de " profils d'écran " et le projet devenait beaucoup plus que de simples piratages d'écran: nous avions des utilitaires de configuration, des plugins d'état en direct et des raccourcis clavier. Nous avons donc renommé le projet "Byobu", qui est un mot japonais pour ces élégants "écrans" repliables, et qui présente l'avantage supplémentaire de pouvoir utiliser Google avec plus de succès pour "Byobu $ FOO" 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 autres UNIX, il offre la même apparence, des raccourcis clavier pratiques et des informations dynamiques sur l'état du système, quel que soit le terminal utilisé. besoin d'accéder.

Pourquoi ne pas contribuer au projet GNU Screen? Quelques raisons ... Tout ce qui fait fonctionner Byobu ainsi que les options de configuration. Aucun de ces éléments n’a besoin d’être inclus dans la base source Screen pour être fonctionnel. Certaines choses pourraient fonctionner mieux ou être plus performantes si Screen les incluait par défaut, mais bon nombre des modifications sont très "d'opinions" et sont généralement difficiles ou impossibles à contribuer à un projet en amont de 25 ans . De plus, le projet GNU Screen avance très lentement, voire pas du tout. Il a plus de 25 ans et n'a pas été officiellement publié depuis août 2008 . Chaque distribution contient d’énormes piles de correctifs pour que votre / usr / bin / screen reste opérationnel et sécurisé. Par exemple, Ubuntu et Debian portent actuellement 19 000 lignes de code dans ~ 48des patchs .

J'ai appris l'existence de 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 beaucoup plus de facilité à apporter des correctifs à Tmux en amont et à discuter de sujets figurant sur la liste de diffusion. Et en tant qu'utilisateur de Byobu qui l'utilise partout, je souhaitais que mes sessions Tmux soient identiques à celles que j'avais appréciées depuis plus de 4 ans à Byobu. Donc, j'ai porté tout le code Byobu pour qu'il fonctionne aussi bien avec Tmux que le backend, comme Screen. Depuis la version 5.0 de Byobu , Tmux est maintenant le moteur par défaut, avec Screen toujours pris en charge dans un mode hérité. Byobu exploite maintenant nombre des fonctionnalités modernes de Tmux over Screen, notamment la prise en charge considérablement améliorée de 256 couleurs, les caractères UTF8 et la division de la fenêtre horizontale / verticale.

Si vous êtes satisfait des paramètres par défaut dans Screen ou Tmux, ou si vous voulez écrire vos propres fichiers de configuration à partir de rien, alors 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 étend vraiment ce que Screen et Tmux font de la boîte, jetez un œil à Byobu!

A bientôt, Dustin

Dustin Kirkland
la source
16
Bonne explication. Étonnamment, cet écran est si lourdement corrigé - faut-il un nouveau responsable ou quelque chose du genre? Et byobu est génial - merci.
nealmcb
10
J'aimerais pouvoir voter à deux reprises. J'utilise byobu depuis des années et je viens tout juste d'apprendre la complexité que cela me cache depuis tout ce temps.
Jamie Cook
2
J'utilise toujours CTRL+` as escape. With screen` et tmuxcela fonctionne comme un charme, mais pas avec byobu(Debian 7.1 Wheezy).
Tino
1
Maintenant que le screennouveau responsable a été créé et que le développement semble avoir pris de l'ampleur, les choses changent-elles?
Muru
Ces valeurs par défaut ne pourraient-elles pas en faire le plus jeune projet tmux? Il semble qu'il manque un paragraphe à la réponse "Pourquoi ne pas contribuer au projet tmux?" xkcd.com/927
user2707671
12

À partir d'un cas d'utilisation réel, la plus grande différence entre screenet tmuxest la façon dont ils traitent les fenêtres divisées.

Une fenêtre dans screenest un pseudo-terminal unique. Une fois connecté à une screensession, vous pouvez fractionner votre terminal en plusieurs régions, chacune pouvant afficher une screenfenêtre. 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 parties.

Une fenêtre dans tmuxconsiste en un ou plusieurs pseudo-terminaux, un par volet. Cela signifie que les vitres persistent si vous vous détachez et vous attachez plus tard. Cela signifie également que vous ne pouvez afficher qu'une fenêtre à la fois tmuxet que les volets ne peuvent pas être partagés entre plusieurs fenêtres. tmuxne permet une fenêtre à partager entre plusieurs sessions, cependant.

Je préfère le modèle utilisé par tmux, mais je ne peux pas dire que c'est meilleur que le modèle utilisé par screen.

Chepner
la source
3
L'argument pro tmuxest la Deutsche Bahn . Montez dans un train rapide, essayez de travailler sshavec une connexion mobile et vous verrez rapidement que le tmuxmodèle est de loin supérieur, car après l'une des ruptures de connexion fréquentes, vous n'avez pas besoin de réorganiser tous les volets de votre nom d'utilisateur après la reconnexion. SCNR
Tino
3
si vous faites face à de fréquentes déconnexions, je vous suggère de vous pencher sur mosh, qui peut se rétablir automatiquement après la perte du signal, contrairement à ce qui se passessh
Ciprian Tomoiagă
4

Pour moi, le facteur décisif pour tmux était la mise en œuvre du partage de session.

Dans GNU Screen, si vous laissez un autre utilisateur se connecter à une session ou simplement connecter votre session à plusieurs terminaux, ils peuvent opérer indépendamment (changer d'écran dans une session A depuis le terminal B ne permet pas au terminal A de changer d'écran session A).

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

Si quelqu'un connaît un moyen de changer ce comportement dans tmux ou si tmux se met à jour pour changer ce comportement ou donner l'option de le changer maintenant, veuillez laisser un commentaire.

therealklanni
la source
6
tmuxa une notion de sessions "liées" avec new-session -t shared. Les fenêtres «partagées» apparaissent dans la nouvelle session, les nouvelles fenêtres dans l’une apparaissent dans l’autre et la fermeture d’une fenêtre dans l’une la ferme dans l’autre. Cependant, la fenêtre que chaque client voit est spécifique à la session réelle qu’il attache.
Chepner