Bisher habe ich Konsole verwendet , um mehrere Shell-Sitzungen zu verwalten, aber ich habe nicht Byobu , GNU Screen und tmux ausprobiert , die eine bessere Unterstützung für mehrere Shells bieten. Sie alle haben eine Hauptfunktion gemeinsam: Sie können die aktuelle Sitzung trennen und später wieder mit der alten Sitzung verbinden.
Um mir bei der Auswahl eines Tools zu helfen, möchte ich wissen: Wie unterscheiden sie sich in den folgenden Punkten?
- Merkmale (offensichtlich)
- Projektreife. Ich möchte kein Werkzeug lernen, das sich zu sehr verändert. Verbesserungen sind willkommen, aber ich mag keine Überraschungen wie das Verschwinden von Funktionen.
- Lernkurve
- Verfügbarkeit in verschiedenen Plattformen. Wenn ich ein Tool lerne, möchte ich es auf einem FreeBSD-Server, einem SuSE-Desktop oder Ubuntu verwenden können.
- Kompatibilität mit anderen interaktiven Shell-Programmen. Kann ich
vim
undemacs -nw
(Nicht-Fenstermodus oder Textmodus) immer noch so verwenden, wie ich es gewohnt bin? Widersprechen die Tastaturkürzel denen anderer Tools?
Ich habe gerade alle ausprobiert und Byobu sieht aus wie eine Art Frontend für GNU Screen und tmux. Warum hat dann jemand Byobu erstellt, anstatt zum GNU-Bildschirmprojekt beizutragen und neue Funktionen hinzuzufügen? Warum ist Byobu kein erweiterter Schnittstellenmodus in GNU Screen? Kann ich dieses Wissen auf die Verwendung von GNU Screen ohne Byobu übertragen, wenn ich Byobu als mein tägliches Tool mit GNU Screen als Backend verwende, wenn eine bestimmte Maschine nur über GNU Screen verfügt?
quelle
byobu
es sich nur um eine Abzweigungscreen
mit zusätzlichen Funktionen handelt,gnu-screen
gilt das Tag.Antworten:
Lesen Sie für Tmux vs GNU Screen
und einige andere Vergleichsinkarnationen, die auf Blogs und so weiter zu finden sind.
Einige allgemeine Begriffe, die oft wiederholt werden:
Abgesehen davon kann man bestimmte Funktionen für die eine oder andere Alternative betrachten, und persönliche Vorlieben werden die Diskussion dominieren. Ich persönlich habe GNU Screen oft benutzt - jetzt benutze ich Tmux.
Ich habe nicht gefunden, dass Byobu irgendwelche "Killer-Features" für mich hat. Es bietet eine Abstraktion, bei der meines Erachtens keine für meine Anwendungsfälle benötigt wird.
Eine andere Sichtweise ist, dass Byobu entweder GNU Screen oder Tmux als Backend verwenden kann, was zeigt, dass die Unterschiede zu einem Benutzer-POV größtenteils oberflächlich sind.
quelle
Gute Frage! Für das, was es wert ist, bin ich der Autor und Betreuer von Byobu .
Byobu ist eine Konfigurationsebene, die ursprünglich auf GNU Screen geschrieben wurde, jetzt aber auch auf Tmux funktioniert .
Ich habe bereits im Dezember 2008 angefangen, Byobu zu schreiben , als ich eine Reihe von Benutzern von Screen und Ubuntu Server beim Googleplex traf und feststellte, dass wir alle unsere eigenen ordentlichen, spaßigen und nützlichen Hacks in unseren
~/.screenrc
Konfigurationen beibehalten haben . Und wir mussten diese manuell zwischen den Dutzenden oder Hunderten von Servern verschieben, die wir verwendeten. Wir begannen, Tipps und Tricks zu tauschen, und ich begann, diese in dem ursprünglichen GPLv3- Projekt namens "Bildschirmprofile" zu sammeln . Ungefähr 6 Monate später hatte sich eine ganze Community um " Bildschirmprofile " entwickelt und das Projekt wurde viel mehr als nur Bildschirmhacks - wir hatten Konfigurationsdienstprogramme, Live-Status-Plugins und Tastenkombinationen. Also haben wir das Projekt umbenannt "Byobu" ist ein japanisches Wort für diese eleganten, zusammenklappbaren "Bildschirme" und bietet den zusätzlichen Vorteil, dass Google erfolgreicher nach "Byobu $ FOO" als nach "Screen $ FOO" suchen kann.Mit Byobu, das jetzt in den meisten Linux-Distributionen ( Ubuntu , Debian , Fedora , Arch ) enthalten ist und auf den meisten Macs / BSDs und anderen UNIX-Betriebssystemen funktioniert, bietet es an jedem beliebigen Terminal das gleiche Erscheinungsbild, bequeme Tastenkombinationen und dynamische Systemstatusinformationen müssen zugreifen.
Warum nicht einen Beitrag zum GNU Screen-Projekt leisten? Ein paar Gründe ... All das, was Byobu funktioniert, sowie Konfigurationsoptionen. Nichts davon muss in der Basis der Bildschirmquelle enthalten sein, um funktionsfähig zu sein. Einige Dinge könnten besser funktionieren oder eine bessere Leistung erbringen, wenn Screen sie standardmäßig einbezieht, aber viele der Änderungen sind sehr "eigenwillig", was normalerweise schwierig oder unmöglich ist, zu einem 25 Jahre alten vorgelagerten Projekt beizutragen . Außerdem bewegt sich das GNU Screen-Projekt, wenn überhaupt, sehr langsam. Es ist mehr als 25 Jahre alt und hat seit August 2008 keine offizielle Veröffentlichung mehr . Jede Distribution enthält riesige Stapel von Patches, damit Ihr / usr / bin / screen funktioniert und sicher ist. Beispielsweise führen Ubuntu und Debian derzeit 19.000 Codezeilen in ~ 48Flecken .
Ich habe vor ungefähr 2 Jahren von Tmux erfahren und mich wirklich in den Quellcode, das Design, die Benutzeroberfläche und die aktive Community verliebt! Ich hatte es viel einfacher, Korrekturen an Upstream-Tmux beizutragen und Themen auf der Mailing-Liste zu diskutieren. Und als Byobu-Benutzer, der es überall benutzt, wollte ich, dass meine Tmux-Sitzungen so aussehen und sich so anfühlen, wie ich es in über 4 Jahren Byobu erlebt habe. Also habe ich den gesamten Byobu-Code portiert , um mit Tmux genauso gut zu funktionieren wie mit dem Backend als Screen. Ab der Byobu 5.0-Version ist Tmux nun das Standard-Backend, wobei Screen in einem Legacy-Modus weiterhin unterstützt wird. Byobu nutzt jetzt viele der modernen Funktionen von Tmux over Screen, einschließlich der erheblich verbesserten 256-Farben-Unterstützung, UTF8-Zeichen und der horizontalen / vertikalen Fensteraufteilung.
Wenn Sie mit den Standardeinstellungen in Screen oder Tmux zufrieden sind oder Ihre eigenen Konfigurationsdateien von Grund auf neu schreiben möchten, sind Screen und Tmux auf jeden Fall fantastische Dienstprogramme, die unser Leben über viele Jahre hinweg effizienter gemacht haben. Wenn Sie an einer Reihe von Konfigurationen interessiert sind, die die Funktionen von Screen und Tmux direkt erweitern und erweitern, sehen Sie sich Byobu an!
Prost, Dustin
quelle
CTRL+` as escape. With
screen` undtmux
das funktioniert wie ein Zauber, aber nicht mitbyobu
(Debian 7.1 Wheezy).screen
es einen neuen Betreuer gibt und die Entwicklung anscheinend Fahrt aufgenommen hat, ändern sich die Dinge?Ausgehend von einem tatsächlichen Anwendungsfall besteht der größte Unterschied zwischen
screen
undtmux
darin, wie sie mit geteilten Fenstern umgehen.Ein Fenster in
screen
ist ein einzelnes Pseudoterminal. Wenn Sie an einescreen
Sitzung angehängt sind , können Sie Ihr Terminal in mehrere Regionen aufteilen, von denen jede einscreen
Fenster anzeigen kann . Mehrere Regionen können dasselbe Fenster anzeigen. Die Aufteilungen sind nicht Teil der Sitzung. Wenn Sie sich lösen, sind Ihre Brüche verschwunden.Ein Fenster
tmux
besteht aus einem oder mehreren Pseudoterminals, einem pro Fenster. Dies bedeutet, dass die Fenster weiterhin angezeigt werden, wenn Sie sie später trennen und wieder anbringen. Dies bedeutet auch, dass Sie immer nur ein Fenster gleichzeitig anzeigen könnentmux
und dass Fenster nicht von mehreren Fenstern gemeinsam genutzt werden können.tmux
Ermöglicht es jedoch , ein Fenster für mehrere Sitzungen freizugeben.Ich bevorzuge das von verwendete Modell
tmux
, aber ich könnte nicht behaupten, dass es besser ist als das von verwendete Modellscreen
.quelle
tmux
ist die Deutsche Bahn . Fahren Sie mit einem Schnellzug, versuchen Sie, überssh
eine mobile Verbindung zu arbeiten, und Sie werden schnell feststellen, dass dastmux
Modell weit überlegen ist, da Sie nach einer der häufigen Verbindungsunterbrechungen nach dem erneuten Anmelden nicht alle Fenster auf Ihrem Jumphost neu anordnen müssen. SCNRssh
Der Dealbreaker für tmux war für mich die Implementierung von Session Sharing.
Wenn Sie in GNU Screen einem anderen Benutzer erlauben, eine Verbindung zu einer Sitzung herzustellen, oder Ihre Sitzung einfach mit mehr als einem Terminal verbunden haben, können diese unabhängig voneinander arbeiten (das Umschalten von Bildschirmen in einer Sitzung A von Terminal B bewirkt nicht, dass Terminal A auch Bildschirme einschaltet Sitzung A).
Das obige ist bei tmux (noch?) Nicht der Fall, oder ich habe noch keine Möglichkeit gefunden, das Verhalten zu ändern.
Wenn jemand eine Möglichkeit kennt, dieses Verhalten in tmux zu ändern, oder wenn tmux aktualisiert, um dieses Verhalten zu ändern, oder die Option gibt, dieses Verhalten jetzt zu ändern, hinterlassen Sie bitte einen Kommentar.
quelle
tmux
hat eine Vorstellung von "verknüpften" Sitzungen mitnew-session -t shared
. Fenster aus "freigegeben" werden in der neuen Sitzung angezeigt, neue Fenster in einem werden in dem anderen angezeigt und das Schließen eines Fensters in einem schließt es in dem anderen. Welches Fenster jedoch jeder Client sieht, hängt von der tatsächlichen Sitzung ab, die er anfügt.