591
Kommentar: missing edit-log entry for this revision
|
3416
link entfernt, steht am Ende
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
== Spass mit Screen == | = Spass mit Screen = |
Zeile 3: | Zeile 3: |
---> $screen einmalig starten, dann ist man in der matrix === "Ctrl-a" gibt dir die macht ueber die screens === |
''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. |
Zeile 6: | Zeile 5: |
;"C-a ?" zeigt wichtige kuerzel | 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. |
Zeile 8: | Zeile 7: |
;"C-a w" zeigt alle offenen fenster | == es geht los == {{{ screen}}} einmalig starten, dann ist man in der Matrix, ansonsten geht auch: {{{ screen vi arsch}}} dies öffnet einen ''vi'' innerhalb der neuen Matrix |
Zeile 10: | Zeile 14: |
;"C-a 0" springt zum ersten fenster, 1 zum zweiten usw. | Falls dich der Start-Info-Bildschirm stört, dann kannst du ihn per Option ''startup_message'' in der ''/etc/screenrc'' unterdrücken. |
Zeile 12: | Zeile 16: |
;"C-a space" schaltet die fenster einzeln durch ;"screen vi arsch" oeffnet einen vi innerhalb der matrix ;"C-a A" benennt das aktuelle fenster um --> "C-a d" detach, trennt dich von der matrix |
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. |
Zeile 21: | Zeile 19: |
---> $screen -r reisse offene screens an dich $screen -d -r trennt die vorige shell vom screen |
== Tastenkombinationen == "Ctrl-a" gibt dir die Macht über die Konsolen ... |
Zeile 24: | Zeile 22: |
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"}}} == Hinweise == * [http://www.heise.de/ix/artikel/2007/02/134/ iX-Artikel] |
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 arsch
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)
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"
Hinweise
[http://www.heise.de/ix/artikel/2007/02/134/ iX-Artikel]