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


Jusqu'à présent, j'ai utilisé Konsole gérer plusieurs sessions shell mais je n'ai pas essayé Byobu, Écran GNU, et tmux, qui offrent un meilleur support pour plusieurs coques. Ils partagent tous une caractéristique principale, à savoir détacher la session en cours et se reconnecter ultérieurement à cette ancienne session.

Pour m'aider à choisir un outil à apprendre, 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 plates-formes. Si j'apprends un outil, je voudrais pouvoir l'utiliser sur un serveur FreeBSD, un bureau SuSE ou Ubuntu.
  5. Compatibilité avec d'autres programmes shell interactifs. Puis-je encore utiliser vim et emacs -nw (mode non-fenêtre, ou mode texte) de la même manière que je suis habitué? Les raccourcis clavier seront-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 l'écran GNU comme backend, puis-je transférer cette connaissance pour utiliser GNU Screen sans Byobu si une machine donnée ne possède que l'écran GNU?


78
2018-05-11 12:32


origine


Commentant ma propre question. Après avoir posté, je viens de voir le nombre de fois où chaque tag a été utilisé dans StackExchange: gnu-screen: 199 fois tmux: 125 fois byobu: 18 fois Cela signifie-t-il que byobu n'est toujours pas populaire? Ou que Byobu est si intuitif que personne n’a de questions sur la façon de l’utiliser? - Keitai
Car byobu est juste une fourchette de screen avec des fonctionnalités supplémentaires, de sorte que le gnu-screen tag s'applique. - grawity
Selon la documentation (manpages.ubuntu.com/manpages/precise/fr/man1/byobu.1.html) la configuration par défaut de Byobu consiste à utiliser tmux comme backend par défaut. Si byobu est un fork de gnu screen, est-ce que cela signifie que tmux est meilleur que gnu screen? - Keitai
Intéressant, je ne savais pas qu'il supporte maintenant tmux, bien qu'il reste juste un script wrapper - pas même un fork apparemment. Mais oui, tmux est à certains égards mieux que Screen (au moins leur FAQ revendications donc). - grawity
Byobu n'est pas une fourchette de n'importe quoi! C'est une couche au dessus de Screen et de Tmux, similaire à Gnome / KDE qui est une couche au dessus de Xorg. - Dustin Kirkland


Réponses:


Pour Tmux vs GNU Screen, lisez

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

Quelques termes généraux qui se répètent souvent:

  • Tmux est plus récent. Cela signifie qu'il est un peu plus sophistiqué (division verticale simple, lignes vertes agréables) et un peu moins bien testé, par exemple compatibilité (dans une mesure négligeable selon ses promoteurs).
  • Tmux est plus léger sur les ressources.
  • GNU Screen se trouve partout et est probablement encore plus utilisé.

En dehors de cela, on peut examiner des fonctions spécifiques pour l’une ou l’autre alternative, et la préférence personnelle dominera la discussion. Personnellement, j'utilisais beaucoup GNU Screen - maintenant j'utilise Tmux.

Je n'ai pas trouvé Byobu avoir des "caractéristiques de tueur" 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 voir cela est de noter que Byobu peut utiliser soit GNU Screen, soit Tmux comme backend, ce qui montre que les différences avec un POV utilisateur sont essentiellement superficielles.


25
2018-05-11 13:07





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 Écran GNU, mais maintenant fonctionne aussi sur le dessus de Tmux.

J'ai commencé à écrire Byobu dans Décembre 2008, comme je me suis retrouvé avec un groupe d'utilisateurs de Screen et Ubuntu Server au Googleplex et a constaté que tout de nous a maintenu notre propre tas de hacks soignés / amusants / utiles dans notre ~/.screenrc configurations Et nous avons dû les déplacer manuellement 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 collecter dans l'original. GPLv3 projet appelé "profils-écran". Environ 6 mois plus tard, toute une communauté s'était développée autour de "profils d'écran"et le projet est devenu beaucoup plus que juste des hacks d'écran - nous avions des utilitaires de configuration, des plugins de statut en direct et des raccourcis clavier. renommé le projet "Byobu", qui est un mot japonais pour ces "écrans" élégants et pliables, et a l'avantage supplémentaire d'être en mesure de mieux réussir Google pour "Byobu $ FOO" que "Screen $ FOO".

Avec Byobu maintenant dans la plupart des distributions Linux (Ubuntu, Debian, Feutre, Cambre), et fonctionnel sur la plupart des Mac / BSD et autres systèmes UNIX, il offre les mêmes raccourcis clavier et les mêmes informations dynamiques sur l’état du système que vous pouvez avoir besoin d’accéder.

Pourquoi ne pas contribuer au projet GNU Screen? Quelques raisons ... Tout ce que Byobu fonctionne aussi bien que les options de configuration. Rien de cela Besoins être inclus dans la base source de l'écran pour être fonctionnel. Certaines choses pourraient mieux fonctionner ou être plus performantes si Screen les incluait par défaut, mais la plupart des modifications sont très "controversées", ce qui est généralement difficile ou impossible à 25 ans projet en amont. De plus, le projet GNU Screen se déplace très lentement, voire pas du tout. Il a plus de 25 ans et n'a pas eu de sortie officielle depuis Août 2008. Chaque distribution transporte d'énormes piles de correctifs juste pour que votre / usr / bin / screen fonctionne et soit sécurisé. Par exemple, Ubuntu et Debian transportent actuellement 19K lignes de code dans ~ 48 des patchs.

J'ai appris l'existence de Tmux il y a environ 2 ans et je suis 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 des sujets de la liste de diffusion. Et en tant qu'utilisateur de Byobu qui l'utilise partout, je voulais le même aspect et la même convivialité pour mes sessions Tmux que ce que je savais depuis plus de 4 ans chez Byobu. Donc je porté tout le code Byobu pour fonctionner aussi bien avec Tmux que le backend, comme Screen. À partir du Version Byobu 5.0, Tmux est maintenant le backend par défaut, avec Screen toujours pris en charge dans un mode hérité. Byobu s'appuie désormais sur de nombreuses fonctionnalités modernes de Tmux over Screen, notamment une prise en charge 256 couleurs considérablement améliorée, des caractères UTF8 et le fractionnement horizontal / vertical des fenêtres.

Si vous êtes satisfait des paramètres par défaut dans Screen ou Tmux, ou si vous souhaitez écrire vos propres fichiers de configuration à partir de zéro, alors certainement, 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 s'étendent vraiment et étendent ce que fait Screen et Tmux, jetez un oeil à Byobu!

À votre santé, Dustin


236
2018-05-11 15:51



Bonne explication. Incroyable que cet écran soit si lourdement patché - a-t-il besoin d'un nouveau responsable ou de quelque chose? Et byobu est génial - merci. - nealmcb
J'aimerais pouvoir voter deux fois. J'utilise le byobu depuis des années et je viens tout juste d'apprendre la complexité qu'il me cache depuis tout ce temps. - Jamie Cook
J'utilise toujours CTRL+` as escape. With screen` et tmux cela fonctionne comme un charme, mais pas avec byobu(Debian 7.1 Wheezy). - Tino
Maintenant que screen a un nouveau responsable et le développement semble s’être accéléré, les choses changent-elles? - muru
Est-ce que ces défauts par définition ne pourraient pas en faire le projet tmux le plus jeune? Il semble que la réponse manque un paragraphe "Pourquoi ne pas contribuer au projet tmux?" xkcd.com/927 - user2707671


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

Une fenêtre dans screen est un pseudo-terminal unique. Lorsqu'il est attaché à un screen session, vous pouvez diviser votre terminal en plusieurs régions, chacune pouvant afficher screen fenêtre. Plusieurs régions peuvent afficher la même fenêtre. Les divisions ne font pas partie de la session; si vous vous détachez, vos divisions sont parties.

Une fenêtre dans tmux se compose d'un ou plusieurs pseudo-terminaux, un par volet. Cela signifie que les volets persistent si vous vous détachez et que vous les rattachez plus tard. Cela signifie également que vous ne pouvez afficher qu’une seule fenêtre à la fois dans tmux, et que les volets ne peuvent pas être partagés entre plusieurs fenêtres. tmux Est-ce que permettre une fenêtre à partager entre plusieurs sessions, cependant.

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


11
2018-05-11 15:38



L'argument pro tmux est le Deutsche Bahn. Montez un train rapide, essayez de travailler ssh en utilisant une connexion mobile et vous verrez rapidement que le tmux le modèle est de loin supérieur, car après une des fréquentes coupures de connexion, vous n'avez pas besoin de réorganiser tous les panneaux de votre jumphost après la reconnexion. SCNR - Tino
si vous faites face à des déconnexions fréquentes, je suggère de regarder mosh qui peut récupérer automatiquement du signal perdu, contrairement à ssh - Ciprian Tomoiagă


Pour moi, le deal-breaker pour tmux était l'implémentation du partage de session.

Dans GNU Screen, si vous laissez un autre utilisateur se connecter à une session, ou simplement que votre session soit connectée à plusieurs terminaux, ils peuvent fonctionner indépendamment (changer d’écran dans une session A du terminal B ne fait pas basculer les écrans session A).

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

Si quelqu'un connaît un moyen de modifier ce comportement dans tmux ou si tmux met à jour ce comportement ou donne la possibilité de modifier ce comportement, veuillez laisser un commentaire.


3
2018-06-19 18:38



tmux a une notion de sessions "liées" avec new-session -t shared. Les fenêtres de «partagé» apparaissent dans la nouvelle session, les nouvelles fenêtres apparaissent dans l’autre et la fermeture d’une fenêtre la ferme dans l’autre. Cependant, la fenêtre que chaque client voit est spécifique à la session en cours. - chepner