it-swarm.com.de

tmux vs. GNU Bildschirm

Durchsuchen von Fragen Ich habe über tmux gefunden (ich habe normalerweise GNU Screen) verwendet. Meine Frage ist, was Vor- und Nachteile von jedem von ihnen sind. Insbesondere konnte ich nicht finden viel über tmux.

196

Von ihrer Website :

  • Wie unterscheidet sich tmux von GNU screen? Was bietet es noch?

tmux bietet gegenüber dem Bildschirm mehrere Vorteile:

  • ein klar definiertes Client-Server-Modell: Fenster sind unabhängige Entitäten, die gleichzeitig an mehrere Sitzungen angehängt und von mehreren Clients (Terminals) angezeigt werden können und frei zwischen Sitzungen innerhalb desselben tmux-Servers verschoben werden können.
  • eine konsistente, gut dokumentierte Befehlsschnittstelle mit derselben Syntax, unabhängig davon, ob sie interaktiv, als Schlüsselbindung oder über die Shell verwendet wird;
  • leicht skriptfähig über die Shell;
  • mehrere Pastenpuffer;
  • auswahl an vi oder emacs Key Layouts;
  • eine Option zum Begrenzen der Fenstergröße;
  • eine benutzerfreundlichere Statuszeilensyntax mit der Möglichkeit, die erste Ausgabezeile eines bestimmten Befehls anzuzeigen;
  • eine sauberere, moderne, einfach zu erweiternde, BSD-lizenzierte Codebasis.

Es gibt noch einige Funktionen, die tmux auslässt:

  • integrierte serielle und Telnet-Unterstützung; Dies ist aufgebläht und wird wahrscheinlich nicht zu tmux hinzugefügt.
  • breitere Plattformunterstützung, zum Beispiel IRIX und HP-UX, und für ungerade Terminals.
124
nisc

Ein Unterschied besteht darin, wie sich die beiden verhalten, wenn mehrere Terminals an eine einzelne Sitzung angeschlossen sind.

Mit dem Bildschirm ist die Ansicht jedes angeschlossenen Terminals unabhängig von den anderen. Mit tmux sehen alle angeschlossenen Terminals dasselbe.

Angenommen, Sie haben zwei Terminals an eine einzelne tmux-Sitzung angeschlossen. Wenn Sie tippen ^B 1 in ein Terminal, das andere Terminal wechselt ebenfalls zu Fenster 1.

Wenn Sie zwei Terminals an eine einzelne Bildschirmsitzung angeschlossen haben und eingeben ^A 1 in eins hat es keine Auswirkung auf das andere Terminal.

Dies basiert auf meinen Erfahrungen mit tmux 1.2; Ich sehe, dass 1.3 nicht verfügbar ist, aber ich habe im Änderungsprotokoll nichts über diese Verhaltensänderung bemerkt.

Wenn Ihnen das Bildschirmverhalten gefällt und Sie es in tmux möchten:

Wenn Ihre ursprüngliche tmux-Sitzung 0 (Standardeinstellung) heißt, können Sie mit tmux new-session -t 0) Eine neue unabhängige Sitzung starten, die mit demselben Fenstersatz verbunden ist und dann eine eigene haben kann Aussicht.

45
drench

tmux ist im Vergleich zum Bildschirm GNU ziemlich neu. Vor- und Nachteile sind eine schwierige Frage, da beide Programme ungefähr das gleiche Problem lösen. tmux ist BSD-lizenziert, während der Bildschirm GNU GPL ist. Dies ist für manche Menschen wichtig.

der Bildschirm ist momentan (unter Linux) stärker vertreten, das heißt, Sie finden ihn eher auf einer bestimmten Linux-Box als auf tmux. tmux ist jedoch in OpenBSD stärker vertreten, da es Teil der Basisinstallation ist.

Mit beiden Programmen können Sie ungefähr dasselbe tun, obwohl der Stand der Dinge etwas komplexer ist. Das Umschalten zwischen den beiden ist nicht allzu kompliziert, da viele Bildschirmfunktionen auch in tmux Eingang gefunden haben. Wenn Sie jedoch ein Power-User von beiden sind, werden Sie wahrscheinlich einige Frustrationen finden, wenn Sie zum anderen wechseln.

Wie bei jedem Programm hängt es wirklich von Ihren Bedürfnissen ab und mit welchen Sie sich wohler fühlen. Probieren Sie beide aus und sehen Sie, mit welchen Sie gut spielen.

Weitere Informationen zu tmux finden Sie unter https://tmux.github.io/

25
gabe.

Ich dachte, ich würde nur den byobu Wrapper erwähnen, der für den Bildschirm verfügbar ist und der es sofort so viel besser macht. Ich weiß nicht, ob so etwas für tmux verfügbar ist, aber byobu hat meine .screenrc nur zu einer Handvoll Zeilen gemacht. Schauen Sie sich das an kurzer Artikel über Byobu und Screenshots. Die Projektseite für byob beschreibt den Namen, der aus einem japanischen Begriff für dekorative, mehrteilige Bildschirme stammt, die als faltbare Raumteiler dienen. Wenn Sie es nur ausführen, werden Ihre Bildschirmeinstellungen nicht beeinträchtigt, sodass Sie es sicher ausprobieren können. Sobald Sie die Sitzung mit byobu gestartet haben, können Sie sich mit screen frei wieder mit ihr verbinden und verlieren dennoch keine Anpassungen, die von byobu vorgenommen wurden (verwenden Sie sie also nur für den ersten Aufruf). Die zwei Hauptvorteile davon sind:

  • Startet den Bildschirm mit einigen Statusleisten mit nützlichen Informationen
  • Bietet viele Tastenkombinationen, um den Zugriff auf die Bildschirmfunktionen zu vereinfachen

Ich verwende nicht den Teil mit den Tastenkombinationen, finde aber die Statusleisten auf jeden Fall nützlich.

Vielleicht finden Sie auch Screen Vs tmux Link nützlich. Ich denke, das meiste davon wird bereits in bestehenden Antworten erwähnt.

18
haridsv

Der größte Unterschied bei meiner Verwendung war, dass Sie in Gnu Screen Frames nur horizontal teilen können, während Sie in Tmux sowohl horizontal als auch vertikal teilen können. Dies ist eine Art sich bewegendes Ziel, obwohl ich hier sage, dass vertikale Aufteilung macht den Weg in den Bildschirm .

Ansonsten geht es um Flat.

17
Eli Frey

Ein großer Nachteil für screen ist, dass es nicht aktiv entwickelt wird. Die Bug-Seiten haben fast 200 nicht zugewiesene Elemente, die über 5 Jahre zurückreichen.

tmux hat auch einige offene Probleme, aber weit weniger, und wird aktiver unterstützt.

12
Harold

Drench wirft einen interessanten Punkt auf: Das Standardverhalten, zweimal eine Verbindung zu derselben Sitzung herzustellen, unterscheidet sich in tmux. Wenn Sie jedoch zweimal anhängen möchten und eine unabhängige Ansicht der Fenster in dieser Sitzung haben möchten, starten Sie tmux mit

tmux new-session -t <session name>

Dadurch wird eine neue Sitzung für Sie erstellt und die Fenster der bereits vorhandenen Sitzung angehängt. Wenn Sie Ihre erste Sitzung nicht benannt haben, können Sie eine mit 'Sitzung umbenennen' hinzufügen.

12
Rikard Anglerud

tmux ist neuer und bietet mehrere weitere Funktionen.

Ich habe festgestellt, dass eine gute Verwendung von einem guten Setup abhängt.

Ich benutze vi (vim) zum Bearbeiten (Ruby on Rails) und es gibt ein paar Setup-Dinge, damit das gut funktioniert.

Hier ist meine ~/.tmux.conf-Datei mit vielen hilfreichen Einstellungen:

bind r source-file ~/.tmux.conf \; display "Reloaded!"  # Reload with ctrl-r
set -g prefix C-a         # prefix from ctrl-b to ctrl-a
unbind C-b                # allow ctrl-b for other things
set -sg escape-time 1     # quicker responses
bind C-a send-prefix      # Pass on ctrl-a for other apps
set -g base-index 1        # Numbering of windows
setw -g pane-base-index 1  # Numbering of Panes
bind \ split-window -h    # Split panes horizontal
bind - split-window -v    # Split panes vertically
bind h select-pane -L     # Switch to Pane Left
bind j select-pane -D     # Switch to Pane Down
bind k select-pane -U     # Switch to Pane Up
bind l select-pane -R     # Switch to Pane Right
bind -r C-h select-window -t :-  # Quick Pane Selection
bind -r C-l select-window -t :+  # Quick Pane Selection
bind -r H resize-pane -L 5       # Switch to Pane Left
bind -r J resize-pane -D 5       # Switch to Pane Down
bind -r K resize-pane -U 5       # Switch to Pane Up
bind -r L resize-pane -R 5       # Switch to Pane Right
setw -g mode-mouse off           # Mouse Off
set -g mouse-select-pane off     # Mouse Off  
set -g mouse-resize-pane off     # Mouse Off
set -g mouse-select-window off   # Mouse Off
setw -g monitor-activity on      # Activity Alerts
set -g visual-activity on
set -g status-fg white           # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan    # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white     # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green      # Pane colors
set -g pane-border-bg black 
set -g pane-active-border-fg white 
set -g pane-active-border-bg yellow
set -g message-fg white          # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40     # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on            # Status Line, right side
set -g status-right "-------"
set -g status-interval 60        # frequency of status line updates
set -g status-justify centre     # center window list
setw -g mode-keys vi             # vi keys to move 
unbind v                         # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up                        # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
8
Michael Durrant

Ich werde mir erlauben, einen Unterschied hinzuzufügen:

tmux basiert auf ncurses, während der Bildschirm keine zusätzlichen Elemente zeichnet. Wenn jemand einen Terminalemulator verwendet, der das Scrollen unterstützt, wird er mit dem Bildschirm scrollen, jedoch nicht mit tmux (zumindest in der Standardkonfiguration). Gleiches gilt für die Suche und ähnliche Funktionen.

8

Ich hatte Probleme, den Bildschirm dazu zu bringen, utf-8 und 256 Farben zu unterstützen, aber tmux funktionierte sofort.

6
zvolkov