Durchsuchen von Fragen, die ich zu tmux gefunden habe (normalerweise habe ich GNU Screen verwendet). Meine Frage ist, was für Vor- und Nachteile von jedem von ihnen sind. Vor allem konnte ich nicht viel über tmux erfahren.
Durchsuchen von Fragen, die ich zu tmux gefunden habe (normalerweise habe ich GNU Screen verwendet). Meine Frage ist, was für Vor- und Nachteile von jedem von ihnen sind. Vor allem konnte ich nicht viel über tmux erfahren.
Antworten:
Von ihrer Website :
- Wie unterscheidet sich tmux vom GNU-Bildschirm? Was bietet es sonst noch?
tmux bietet gegenüber dem Bildschirm mehrere Vorteile:
- ein klar definiertes Client-Server-Modell: Fenster sind unabhängige Einheiten, die gleichzeitig an mehrere Sitzungen angehängt und von mehreren Clients (Terminals) aus angezeigt sowie zwischen Sitzungen innerhalb desselben tmux-Servers frei 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 aus der Shell skriptfähig;
- mehrere Pastenpuffer;
- Wahl der Tastaturbelegung für vi oder emacs;
- eine Option zum Begrenzen der Fenstergröße;
- eine benutzerfreundlichere Statuszeilensyntax mit der Möglichkeit, die erste Ausgabezeile eines bestimmten Befehls anzuzeigen;
- Eine saubere, moderne, einfach zu erweiterende, BSD-lizenzierte Codebasis.
Es gibt noch ein paar Features, die der tmux-Bildschirm weglässt:
- eingebaute serielle und Telnet-Unterstützung; Dies ist aufgedunsen und es ist unwahrscheinlich, dass es zu tmux hinzugefügt wird.
- Erweiterte Plattformunterstützung, z. B. für IRIX und HP-UX sowie für ungerade Terminals.
<C-Left>
in vim
in beheben tmux
.
Ein Unterschied besteht darin, wie die beiden sich verhalten, wenn mehrere Terminals an eine Sitzung angeschlossen sind.
Mit screen ist die Ansicht jedes angeschlossenen Terminals unabhängig von den anderen. Bei tmux sehen alle angeschlossenen Terminals dasselbe.
Angenommen, Sie haben zwei Terminals an eine einzige tmux-Sitzung angeschlossen. Wenn Sie ^B1 in ein Terminal eingeben, wechselt das andere Terminal ebenfalls zu Fenster 1.
Wenn an eine Bildschirmsitzung zwei Terminals angeschlossen sind und Sie ^A1 in eines eingeben, hat dies keine Auswirkungen auf das andere Terminal.
Dies basiert auf meinen Erfahrungen mit tmux 1.2; Ich sehe, 1.3 ist raus, aber ich habe im Changelog nichts über dieses Verhalten bemerkt.
Wenn Ihre ursprüngliche tmux-Sitzung aufgerufen wird 0
(Standardeinstellung), können Sie tmux new-session -t 0
eine neue unabhängige Sitzung starten, die mit demselben Satz von Fenstern verbunden ist und dann eine eigene Ansicht haben kann.
tmux new -t 0
.
tmux ist im Vergleich zum GNU-Bildschirm ziemlich neu. Vor- / Nachteile sind eine schwierige Frage, da beide Programme ungefähr dasselbe Problem lösen. tmux ist BSD-lizensiert, während screen GNU GPL ist. Dies ist für manche Menschen von Bedeutung.
screen ist momentan (unter Linux) stärker vertreten, das heißt, es ist wahrscheinlicher, dass Sie es auf einer bestimmten Linux-Box finden als auf tmux. tmux ist jedoch stärker auf OpenBSD vertreten, da es im Rahmen der Basisinstallation enthalten ist.
Beide Programme ermöglichen es Ihnen, dasselbe zu tun, obwohl der Zustand 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 einer der beiden Poweruser sind, werden Sie wahrscheinlich einige Frustrationen beim Umschalten auf den anderen feststellen.
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 wem Sie gut spielen.
Weitere Informationen zu tmux finden Sie unter https://tmux.github.io/
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 die vertikale Teilung ihren Weg in den Bildschirm findet .
Abgesehen davon geht es um flache Dinge.
Ich dachte, ich würde nur den byobu
Wrapper erwähnen, der für den Bildschirm verfügbar ist und ihn sofort viel besser macht. Ich weiß nicht, ob so etwas für tmux verfügbar ist, habe aber byobu
für mein .screenrc nur eine Handvoll Zeilen erstellt. Lesen Sie diesen kurzen Artikel über Byobu und Screenshots. Die Projektseite für byobu beschreibt den Namen eines japanischen Begriffs für dekorative, mehrteilige Trennwände, die als Raumteiler dienen. Außerdem schadet es Ihren Bildschirmeinstellungen nicht, wenn Sie es nur ausführen, sodass Sie es sicher ausprobieren können. Sobald Sie die Sitzung mit gestartet haben byobu
, können Sie eine freie Verbindung mit herstellen, screen
ohne die von vorgenommenen Anpassungen zu verlieren byobu
(verwenden Sie sie also nur für den ersten Aufruf). Die zwei Hauptvorteile sind:
Ich benutze den Tastaturbelegungsteil nicht, finde aber die Statusleisten auf jeden Fall nützlich.
Auch finden Sie möglicherweise Bildschirm Vs tmux Link nützlich. Ich denke, das meiste davon wird bereits in den vorhandenen Antworten erwähnt.
byobu
, wie diese Antworten mit ihrer Liste von Funktionen.
byobu
, aber es ist so einfach wie das Ausführen des Befehls und das Finden für sich selbst (es ist menügesteuert), da es Ihre vorhandenen Bildschirmeinstellungen nicht durcheinander bringt. Und ich habe meine Antwort zu einem Community-Wiki gemacht. Sie können es also jederzeit bearbeiten.
Drench wirft einen interessanten Punkt auf: Das Standardverhalten, zweimal eine Verbindung zu derselben Sitzung herzustellen, ist in tmux unterschiedlich. Wenn Sie jedoch zweimal eine Verbindung herstellen 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 aus der bereits vorhandenen Sitzung angehängt. Wenn Sie Ihre erste Sitzung nicht benannt haben, können Sie eine mit "Sitzung umbenennen" hinzufügen.
Ein großer Nachteil screen
ist, dass es nicht aktiv entwickelt wird. Die Bugseiten enthalten fast 200 nicht zugewiesene Elemente, die über einen Zeitraum von 5 Jahren zurückliegen.
tmux
hat auch einige offene Fragen, aber weit weniger, und wird aktiver unterstützt.
tmux ist neuer und verfügt über einige weitere Funktionen.
Ich habe festgestellt, dass eine gute Verwendung von einem guten Setup abhängt.
Ich benutze vi (vim) zum Editieren (Ruby on Rails) und es gibt ein paar Setup-Dinge, die dafür sorgen, dass 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"
Ich werde mir erlauben, einen Unterschied hinzuzufügen:
tmux basiert auf ncurses, während screen keine zusätzlichen Elemente zeichnet. Wenn jemand einen Terminal-Emulator verwendet, der das Scrollen unterstützt, wird er zwar mit dem Bildschirm gescrollt, aber nicht mit tmux (zumindest in der Standardkonfiguration). Das Gleiche gilt für die Suche und ähnliche Funktionen.