Unterschiede zwischen den Revisionen 1 und 5 (über 4 Versionen hinweg)
Revision 1 vom 2004-12-16 23:45:39
Größe: 591
Autor: anonym
Kommentar: missing edit-log entry for this revision
Revision 5 vom 2005-03-05 17:09:52
Größe: 3301
Autor: lars
Kommentar: Zeichen in eine Sitzung injizieren
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 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"}}}

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 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"

Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.