3670
Kommentar: verbessere die Darstellung des screen-Skripts (Raute leitet einen oinmoin-Kommentar ein)
|
← Revision 15 vom 2022-11-20 10:48:48 ⇥
0
ins neue Wiki verschoben und aktualisiert
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
= Spass mit Screen = ''screen'' ist ein hilfreiches Programm, mit dem du innerhalb einer Terminal-Sitzung mehrere virtuelle Terminals nutzen kannst. Beispielsweise musst du also nur eine ''ssh''-Sitzung eröffnen und kannst trotzdem entfernte Programme auf mehreren Konsolen gleichzeitig ausführen. Besonders angenehm ist es auch, in einer ''screen''-Sitzung auf einem entfernten Rechner ein langwieriges Programm zu starten (z.B. einen schönen neuen Kernel kompilieren), da du zwischenzeitlich die ''screen''-Konsole abhängen und die Netzwerkverbindung trennnen kannst. Später kannst du dich einfach wieder in die alte Sitzung einhängen. == es geht los == {{{ screen}}} einmalig starten, dann ist man in der Matrix, ansonsten geht auch: {{{ screen vi DATEI}}} dies öffnet einen ''vi'' innerhalb der neuen Matrix Falls dich der Start-Info-Bildschirm stört, dann kannst du ihn per Option ''startup_message'' in der ''/etc/screenrc'' unterdrücken. Um der Sitzung einen Namen zu geben, kann der Parameter ''-S sitzungsname'' verwendet werden. Dies gilt sowohl für die Erzeugung, als auch für einen späteren Zugriff auf die Sitzung. == Tastenkombinationen == "Ctrl-a" gibt dir die Macht über die Konsolen ... C-a ?:: zeigt wichtige Kürzel C-a c:: öffnet ein neues Fenster C-a w:: zeigt alle offenen Fenster C-a 0:: springt zum ersten Fenster, 1 zum zweiten usw. C-a space:: schaltet die Fenster einzeln durch C-a A:: benennt das aktuelle Fenster um C-a a:: schaltet zwischen zwei Fenstern hin und her C-a h:: schreibt den aktuellen Bildschirminhalt in ''hardcopy.N'' C-a H:: beginnt/beendet das Protokollieren in die Datei ''screenlog.N'' C-a C-k:: schließt das aktuelle Fenster == Ausklinken aus einer screen-Sitzung == C-a d:: detach, trennt dich von der Matrix (sie läuft im Hintergrund weiter) C-d:: (EOF - gleichbedeutend mit ''exit'') - die aktuelle Shell wird geschlossen und damit auch das aktuelle Fenster - mit dem Schließen des letzten Fensters wird ''screen'' beendet == Einhängen in eine alte Sitzung == screen -r:: klappt, falls du dich per ''detach'' freiwillig aus der Sitzung ausgehängt hast screen -x:: damit hängst du dich in eine laufende Sitzung (falls die Netzwerkverbindung zwischendurch unterbrochen wurde oder du gleichzeitig mit anderen Menschen im selben Fenster arbeiten willst) screen -d -r:: trennt eine ''screen''-Sitzung von ihrer ursprünglichen Konsole und verbindet sie anschließend mit der aktuellen Konsole == Einschleusen von Tastatureingaben == screen [-S screenname] -X readbuf [DATEI]:: liest den Inhalt von DATEI (Standard: ''/tmp/screen-exchange'') in den internen Zwischenspeicher der screen-Sitzung screen [-S screenname] -X paste \.:: sendet den Inhalt dieses Zwischenspeichers in das aktuelle Fenster der screen-Sitzung (eigentlich ist es nur ''paste .'', allerdings führt die bash ohne backslash eine Substitution durch) Beispielskript:: das folgende Skript sendet seine Parameter als Zeichen in das screen-Sitzung (diese kann mit ''-S screenname'' gewählt werden){{{ #!/bin/sh TMP_FILE=/tmp/screen-exchange-$$ [ "$1" = "-S" ] && shift && SC_OPTS="$SC_OPTS -S $1" && shift echo -en "$@" > "$TMP_FILE" screen $SC_OPTS -X readbuf "$TMP_FILE" screen $SC_OPTS -X paste \. rm "$TMP_FILE"}}} == Automatisiertes Öffnen mehrerer Programme == Folgende Datei ist ausführbar und startet mehrere Fenster mit verschiedenen Programmen: {{{ #!/usr/bin/screen -c setenv FOO "bar" # Teile den Bildschirm horizontal in zwei Bereiche split screen -t "dmesg" 0 bash focus down screen -t "top" 1 top focus up }}} |