screen und tmux steuern

Das Problem hatte ich schon häufig und immer wieder vergesse ich Lösung zum Steuern von screen und tmux von außen.

screen und tmux sind beides Terminal Multiplexer. Sie erlauben es, Shell sessions über die Dauer einer SSH Session hinaus zu nutzen und zu erhalten. Dieser Post soll mich daran Erinnern, wie man den Inhalt einer solchen Session auch im Nachhinein modifizieren kann.

screen

1
screen -dmS test

Startet eine screen session mit dem Namen test. Zu dieser Session, kann man sich danach mit

1
screen -xS test

verbinden. Die Kombination für Kommandos ist bei screen im default CTRL-a.

Um einer screen Session von außen, zum Beispiel, durch ein Script, einen Befehl zu geben, ist das Kommando:

1
screen -S test -X stuff "$HOME/bin/start_irc.sh^M"

Dies sendet die Eingabe innerhalb der “ an die in screen gerade aktive Shell, der Session test. Das ^M ist die Darstellung der Shell von newline. Um dies als Eingabe zu erhalten, sind die Tasten CTRL-v ENTER zu drücken. Ähnlich verhällt es sich, wenn CTRL-c als Eingabe gesendet werden soll. Dann ist muss erst CTRL-v und im Anschluss CTRL-c gedrückt werden.

tmux

tmux -L test

Startet eine tmux session mit dem Namen test. Zu dieser Session, kann man sich danach mit

1
tmux -L test attach

verbinden. Die Kombination für Kommandos ist bei tmux im default CTRL-b.

tmux hat eine Reihe von Möglichkeiten zur Steuerung einer Session.

Kommando Beschreibung
new-window Erstellt ein neues Fenster
next-window Wechselt zum nächsten Fenster
select-window -t 99 Wechselt zu Fenster 99
send-keys “echo a^M” Sendet die Eingabe “echo a” an das gerade aktive Fenster

Auch hier ist das ^M für das Senden von newline.