Benutzer-Werkzeuge

Webseiten-Werkzeuge


tmux
  • Terminalmultiplexer ähnlich screen
  • kann ein Terminal in mehrere Bereiche aufteilen
  • Sessions verwalten
    • man kann sich von einer Session disconnecten und später wieder verbinden
      • alle Prozesse laufen die ganze Zeit weiter
      • die Aufteilung des Fensters bleibt erhalten
    • mehrere Terminals können mit einer Session gleichzeitig verbunden sein
      • es ist also möglich zum Beispiel von mehreren Computern gleichzeitig im gleichen Terminal zu tippen
  • frei im Terminalbuffer scrollen und kopieren
  • der erste tmux-Prozess startet den tmux-Daemon
    • deswegen werden Änderungen an der Konfiguration auch nicht geladen wenn man erneut tmux öffnet

Terminologie/Organisation

  • Session
    • läuft unabhängig davon ob ein Terminal mit ihr Verbunden ist oder nicht
      • läuft auch weiter wenn man sich detached
    • kann mehrere Fenster enthalten
    • Fenster - der Bereich den man zu einem Zeitpunkt sieht
      • kann mehrere Panels enthalten
      • Panels - Unterbereiche in denen eigenständige Shells laufen

Konfiguration

  • liegt (für Benutzer) in ~/.tmux

Prefix-Key

  • die meisten Kommandos werden als Key-Chord ausgeführt
    • Ctrl + Zeichen Zeichen
      • Ctrl + b : → geht in den Kommandomodus; Ctrl + B wäre der Prefix-Key und muss zusammengedrückt werden, danach wird „:“ einzeln gedrückt

Kann geändert werden durch:

set -g prefix C-a
bind C-a send-prefix
  • in diesem Fall auf Ctrl+a
  • C steht für Ctrl
  • man kann im Puffer des Terminals navigieren (gemeint ist hier nicht die Command-History)
    • Copy-Mode
  • per Default kommt man per Prefix + [ in diesen Modus und kann ihn per Prefix + [ verlassen
  • per Default sind die Key-Bindings in diesem Modus Emacs-Bindings
  • letzteres lässt sich ändern durch:
set-window-option -g mode-keys vi

Kopieren vom Terminal-Puffer in X-Clipboard

  • kann genutzt werden wenn man im Copy-Mode ist um Text an die X-Server-Zwischenablage zu senden
    • per Default wird versucht das über eine Terminal-Befehlssequenz zu machen, aber nicht alle Terminals können das → diese Sektion beschreibt wie es mit alles funktionieren sollte
    • funktioniert nur auf Systemen wo ein X-Server läuft (bei Wayland müsste man andere Befehle nutzen)

Foglendes funktioniert wenn vi-Keybindings aktiviert sind (standarmäßig sind emacs-Keybindings aktiviert) - vim wird per:

 
set-window-option -g mode-keys vi
gesetzt.

# Deaktiviert die Terminal-Command-Sequenz-Methode 
set-option -s set-clipboard off
# Drücken von v aktiviert den Visual-Mode zum kopieren
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X rectangle-toggle
# Enfernen des Bindings (falls es schon belegt sein sollte) für Enter
unbind -T copy-mode-vi Enter
# Enter sendet den kopierten Text an xclip (-se -> an welche "selection" -> c = clipboard; -i -> In -> sende es an, nicht lese von)
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'xclip -se c -i'
# Das gleiche noch mal für die Maus
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip -se c -i'
# Binde (außerhalb des Copy-Mode) P (groß P) an Einfügen des Puffers
bind P paste-buffer

  • wenn man dann Prefix-Key + [ drückt → Copy-Mode kann man im Terminal-Puffer sich frei bewegen
  • per „v“ kommt man in den Visual-Mode wie man ihn von vim kennt
  • drückt man Enter verlässt man den Copy-Mode und der markierte Inhalt wird an xclip/das X-Clipboard gesendet und kann von allen Programmen genutzt werden
  • per Prefix-Key + P kann man einfügen
    • allerdings funktioniert das nicht vom Clipboard (also nicht von anderen Andwendungen) ins Terminal, sondern nur mit Inhalt der bereits im Terminal kopiert wurde
tmux.txt · Zuletzt geändert: 2023/06/11 14:10 von root