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?
- Caractéristiques (évidemment)
- 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.
- Courbe d'apprentissage
- Disponibilité sur différentes plateformes. Si j'apprends un outil, j'aimerais pouvoir l'utiliser sur un serveur FreeBSD, un bureau SuSE ou Ubuntu.
- Compatibilité avec d'autres programmes shell interactifs. Puis-je quand même utiliser
vim
etemacs -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?
la source
byobu
c'est juste une fourchette descreen
fonctionnalités supplémentaires, donc lagnu-screen
balise s'applique.Réponses:
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:
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.
la source
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
~/.screenrc
configurations. 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
la source
CTRL+` as escape. With
screen` ettmux
cela fonctionne comme un charme, mais pas avecbyobu
(Debian 7.1 Wheezy).screen
nouveau responsable a été créé et que le développement semble avoir pris de l'ampleur, les choses changent-elles?À partir d'un cas d'utilisation réel, la plus grande différence entre
screen
ettmux
est la façon dont ils traitent les fenêtres divisées.Une fenêtre dans
screen
est un pseudo-terminal unique. Une fois connecté à unescreen
session, vous pouvez fractionner votre terminal en plusieurs régions, chacune pouvant afficher unescreen
fenê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
tmux
consiste 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 foistmux
et que les volets ne peuvent pas être partagés entre plusieurs fenêtres.tmux
ne 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é parscreen
.la source
tmux
est la Deutsche Bahn . Montez dans un train rapide, essayez de travaillerssh
avec une connexion mobile et vous verrez rapidement que letmux
modè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. SCNRssh
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.
la source
tmux
a une notion de sessions "liées" avecnew-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.