Ich bin ein großer Fan von Multiplexern wie GNU Screen und Tmux , aber selbst wenn ich Screen seit Jahren benutze , erkenne ich immer noch, dass es viele Dinge gibt, die ich nicht weiß (und ich benutze Tmux nur für ein paar Monate, also ist es schlimmer ).
Welche Konfigurationen und Tipps und Tricks verwenden Sie für diese Software (beide oder für jede, egal)?
Ich benutze dies als meine Bildschirmkonfiguration (ich glaube, ich habe dies von Ubuntus Standard angepasst screenrc
):
shell -$SHELL
startup_message off
defscrollback 1000
hardstatus alwayslastline '%{= wk}%?%-Lw%?%{r}(%{k}%n*%f%t%?(%u)%?%{r})%{k}%?%+Lw%?%?%= %m/%d %C%A'
activity ''
termcapinfo xterm* 'hs:ts=\\E]2;:fs=\\007:ds=\\E]2;screen\\007'
Es ist eine einfache Konfiguration, die Statusleiste mit einigen Farben anzuzeigen, aber ich bin mir sicher, dass ich mit Bildschirm und Tmux noch mehr Dinge tun kann und würde es gerne wissen.
gnu-screen
tmux
Core-Dump
quelle
quelle
zombie qr
hält das Fenster offen, auch wenn der Prozess tot ist, und ermöglichtq
es, es zu schließen oderr
den Prozess wiederzubeleben. Nützlich für die Softwareüberprüfung.Antworten:
Dies mag für diese Menge etwas einfach sein, aber ich fand es nützlich, dies am Ende von .profile hinzuzufügen, damit ich, wenn ich mich über ssh remote anmelde, die MOTD lesen und dann zum Bildschirm wechseln kann.
quelle
Ich habe das in meinem .bashrc. Wenn Sie keinen Bildschirm ausführen, wird diese Funktion
ssh
bei der Ausführung wie gewohnt aufgerufen. Wenn Sie im Bildschirm ausgeführt werden (und die Standardeinstellung nicht geändert haben$TERM
), wird zuerst der Fenstername auf den Remote-Host festgelegt (zusammen mit allen optionalen Parametern). Es ist sehr praktisch, den Überblick über Remoteverbindungen zu behalten, wenn viele offen sind, was meiner Meinung nach in unserer Branche häufig vorkommt.Ich benutze auch
bind ^A windowlist -b
für den einfachen Zugriff auf die Fensterliste (tippe einfach zweimal auf Strg-A).Einfache Unterstützung für SSH-Agenten für alle Fenster:
Dann führen Sie in jedem Fenster nur einmal ssh-add aus, wenn Sie eine neue Sitzung starten.
Wenn Sie eine Verbindung zu einer Remote-Bildschirmsitzung innerhalb einer anderen Bildschirmsitzung herstellen, können Sie
screen -x -e ^Vv
die Steuersequenz (z. B.) auf STRG-V setzen. Dadurch wird vermieden, dass STRG-As verkettet werden muss, um die Remote-Sitzung zu steuern.quelle
Sie sollten erwägen byobu , die im Wesentlichen eine Sammlung von Hunderten von Tipps ist, Tricks, Konfigurationen, keybindings, Status - Skripte und Best Practices orientiert sich an
screen
undtmux
.quelle
Obwohl ich angefangen habe, tmux für Fenster zu verwenden, verwende ich immer noch den Bildschirm, um die darin enthaltenen Fenster zu multiplexen. tmux hat angeblich diese Funktionalität, aber das Vertauschen von Fenstern von einem Fenster in ein anderes ist für mich weder intuitiv, noch können zwei angeschlossene tmux-Viewer unterschiedliche Fenster innerhalb desselben Daemons anzeigen (screen -x-Verhalten), daher die screen-in-tmux-Lösung. Dies sind zwei tmux.conf-Bindungen, für deren Ermittlung ich am längsten gebraucht habe und die ich jeden Tag verwende.
Die erste Option, M binden (Strg-B-Umschalt-M), schaltet tmux zwischen Mausfensterauswahl und Maushervorhebung / -kopie um. Sie können weiterhin im Pane-Pick-Modus kopieren / einfügen, aber Sie müssen die Umschalttaste gedrückt halten (und wenn Sie sich daran gewöhnen, macht das Kopieren / Einfügen in einer anderen Anwendung Sie ein bisschen elend, lassen Sie es mich sagen). Das Makro macht auch visuell deutlich, welcher Modus gerade ausgewählt ist.
Die zweite Option, CL binden (Strg-B Strg-L), nimmt ein beliebiges Layout von 4 Fenstern und verwandelt es in mein bevorzugtes Layout. Oft stelle ich fest, dass ich in einem Bereich, von dem ich dachte, dass er sich im Bildschirm befindet, Strg-D gedrückt habe, um ihn zu schließen. Stattdessen gab es keine Bildschirmsitzung und der Bereich wurde geschlossen. Da mein Layout V-Split, H-Split, V-Split und einige Größenänderungen ist, wird es zum Problem (kein Wortspiel beabsichtigt), Zwischenfenster zwischen dem Fenster, das ich neu erstellen muss, zu schließen, wenn ich versehentlich nur das letzte Fenster geschlossen habe und die letzte, erstellen Sie die Fenster neu und ändern Sie die Größe. Fügen Sie schließlich alle Bildschirmsitzungen wieder hinzu, die ich möglicherweise beim Beenden von Fenstern trennen musste. Mit diesem Makro kann ich ein neues Fenster erstellen, Strg-B {(die Standardbindung für Swap-Fenster -U), bis es wieder in der richtigen Reihenfolge ist, dann das Makro drücken und alles wieder normal ist. Mein bevorzugtes Layout ist wahrscheinlich nicht das gleiche wie deins.
list-windows
Befehl, um eine Layoutzeichenfolge wie die folgende zu erhalten.Wenn das für Ihren Geschmack zu naiv ist, gibt es immer einen Tmuxinator für die Scheibenverwaltung.
quelle