126 votes

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

Jusqu'à présent, j'ai utilisé Konsole pour gérer plusieurs Shell sessions mais je n'ai pas essayé Byobu , Écran GNU y tmux qui offrent une meilleure prise en charge des coquilles multiples. Ils partagent tous une caractéristique principale, qui est de permettre de détacher la session actuelle et de se rattacher 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 évolue trop vite. 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 les autres programmes interactifs Shell. Puis-je encore utiliser vim y emacs -nw (mode non fenêtre, ou mode texte) de la même manière que celle à laquelle 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 GNU Screen 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 mon outil quotidien avec GNU Screen comme backend, puis-je transférer ces connaissances pour utiliser GNU Screen sans Byobu si une certaine machine n'a que GNU Screen ?

317voto

3x5 Points 445

Excellente 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 se situer au dessus de Écran GNU mais il fonctionne désormais également au-dessus de Tmux .

J'ai commencé à écrire Byobu en Décembre 2008 J'ai rencontré un groupe d'utilisateurs de Screen et d'Ubuntu Server à l'occasion de la conférence de l'Union européenne. Googleplex et a constaté que tous chacun d'entre nous a conservé son propre tas de trucs utiles dans sa vie quotidienne. ~/.screenrc configurations. Et nous devions les déplacer manuellement entre les dizaines ou centaines de serveurs que nous utilisions. Nous avons commencé à échanger des conseils et des astuces, et j'ai commencé à les rassembler dans le document original GPLv3 projet appelé "screen-profiles". Environ 6 mois plus tard, une communauté entière s'était développée autour de " profils d'écran "et le projet est devenu bien plus que de simples bidouillages d'écran - nous avions des utilitaires de configuration, des plugins d'état en direct et des raccourcis clavier. Donc nous avons renommé le projet "Byobu", qui est un mot japonais désignant ces élégants "écrans" pliables, et qui présente l'avantage supplémentaire de pouvoir être plus facilement recherché sur Google par "Byobu $FOO" que par "Screen $FOO".

Avec Byobu maintenant dans la plupart des distributions Linux ( Ubuntu , Debian , Fedora , Arch ), et fonctionnel sur la plupart des Macs/BSD et autres UNIX, il offre la même apparence, des raccourcis clavier pratiques, des informations dynamiques sur l'état du système sur n'importe quel terminal auquel vous pouvez avoir besoin d'accéder.

Pourquoi ne pas contribuer en retour au projet GNU Screen ? Pour plusieurs raisons... Tout ce que fait Byobu fonctionne aussi bien que les options de configuration. Rien de tout cela besoins doivent être inclus dans la base de sources de l'écran pour être fonctionnels. Certaines choses pourraient fonctionner mieux ou être plus performantes si Screen les incluait par défaut, mais de nombreuses modifications sont très "subjectives", et il est généralement difficile, voire impossible, de contribuer à un code source de Screen. 25 ans projet en amont. De plus, le projet GNU Screen évolue très lentement, voire pas du tout. Il a plus de 25 ans, et n'a pas eu de version 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 correctifs .

J'ai découvert 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 Contribuer aux corrections à Tmux en amont et à discuter des sujets sur la liste de diffusion. Et en tant qu'utilisateur de Byobu qui l'utilise partout, je voulais que mes sessions Tmux aient le même aspect et la même convivialité que ce que j'avais appris à apprécier pendant plus de 4 ans avec Byobu. J'ai donc Portée tout le code de Byobu pour fonctionner aussi bien avec Tmux comme backend, comme Screen. A partir du Sortie de Byobu 5.0 Avec l'arrivée de Tmux, Tmux est maintenant le backend par défaut, Screen étant toujours supporté en mode "legacy". Byobu exploite maintenant de nombreuses fonctionnalités modernes de Tmux par rapport à Screen, y compris un support 256 couleurs largement amélioré, les caractères UTF8, et le fractionnement horizontal/vertical des fenêtres.

Si vous êtes satisfait des paramètres par défaut de Screen ou Tmux, ou si vous voulez écrire vos propres fichiers de configuration à partir de zéro, alors, de toute façon, 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 étendent vraiment ce que Screen et Tmux font par défaut, jetez un oeil à Byobu !

A la vôtre, Dustin

44voto

Daniel Andersson Points 22765

Pour Tmux vs GNU Screen, lire

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

Quelques termes généraux qui reviennent souvent :

  • Tmux est plus récent. Cela signifie qu'il est un peu plus fantaisiste (simple division verticale, jolies lignes vertes) et un peu moins bien testé, notamment en matière de compatibilité (dans une mesure négligeable selon ses partisans).
  • Tmux est plus pauvre en ressources.
  • GNU Screen est présent partout et est très probablement encore plus utilisé.

En dehors de cela, on peut examiner les fonctions spécifiques de 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é que Byobu avait des "caractéristiques qui tuent" pour moi. Il fournit une abstraction là où je pense qu'elle n'est pas nécessaire pour mes cas d'utilisation.


Une autre façon de voir les choses est de noter que Byobu peut utiliser soit GNU Screen soit Tmux comme backend, ce qui montre que les différences du point de vue de l'utilisateur sont surtout superficielles.

15voto

chepner Points 6381

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

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

Une fenêtre dans tmux consiste en un ou plusieurs pseudo-terminaux, un par volet. Cela signifie que les volets persistent si vous les détachez et les rattachez ultérieurement. Cela signifie également que vous ne pouvez afficher qu'une seule fenêtre à la fois dans l'application tmux et que les volets ne peuvent pas être partagés entre plusieurs fenêtres. tmux fait permettre une fenêtre à partager entre plusieurs sessions, cependant.

Je préfère le modèle utilisé par tmux mais je ne peux pas dire qu'il est meilleur que le modèle utilisé par la Commission européenne. screen .

7voto

csnate Points 111

Pour moi, le problème de tmux était l'implémentation du partage de session.

Dans GNU Screen, si vous laissez un autre utilisateur se connecter à une session, ou si vous avez simplement votre session connectée à plus d'un terminal, ils peuvent fonctionner indépendamment (le fait de changer d'écran dans une session A à partir du terminal B n'oblige pas le terminal A à changer également d'écran dans la session A).

Ce qui précède n'est pas le cas avec tmux (encore ?) ou je n'ai pas encore pu trouver un 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 changer maintenant ce comportement, veuillez laisser un commentaire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X