ABSTRACT: das "screen" programm wird vorgestellt. AUDIENCE: beginners SYSTEM: any unix SECTION: basic unix commands AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt screen ist ein ziemlich nuetzliches programm. es erlaubt in einem terminal/console fenster mehrere virtuelle terminals zu oeffnen, zwischen diesen umzuschalten oder diese in den hintergrund zu schicken, d.h. man bleibt eingelogt obwohl man gar nicht mehr eingelogt ist.. und kann die sitzung spaeter oder sogar von wo anders wieder dort fortsetzten wo man das letzte mal aufgehoert hat. screen startet einen neuen "screen" man bekommt einen kurzen begruessungsschirm und mit return oder space taste kommt man in eine ganz normale shell. beendet man die shell mit "exit" so beendet sich auch das screen wieder (es kommt die meldung [screen is terminating] und man ist wieder in der shell von der aus man screen aufgerufen hat..). wir beenden es jetzt aber nicht sondern starten irgend ein program. z.b. ls druecken wir jetzt: control-a c (control druecken, a druecken, a auslassen control auslassen, c druecken c auslassen) so bekommen wir eine neue shell. hier koennen wir wieder irgen etwas machen.. z.b. irc starten oder mutt oder pine. oder was auch immer.. mit control-a n koennen wir jetzt zwischen den beiden shells oder den darin gestarteten programmen umschalten. mit control-a c c wie "create" koennen wir beliebig viele weitere virtuellen terminals aufmachen und mit control-a n der reihe nach umschalten: control-a p schaltet auch auch um aber in umgekehrter reihenfolge n.. next p..previous das screen programm faengt also die control-a taste fuer uns ab und benutzt sie um interen funktionen zu steuern. was wenn wir aber in das programm ein control-a eingeben wollen? control-a a sagt dem screen programm das es ein normales control-a an das darunterliegende programm weiter schicken soll. (in der bash oder im joe bringt uns dieses control-a dann z.b. an den zeilenanfang.) schliessen wir das xterm in dem wir das screen aufgemacht haben oder wird die verbindung zu dem rechner auf dem wir das screen gestartet haben unterbrochen so laeuft das screen und alle darin gestarteten programme dennoch weiter. wir sagen das screen ist "detached". wir koennen uns auch absichtlich selbst "detachen": control-a d d... detach schickt das screen in den hintergrund. wir kommen zurueck in die shell von der aus wir screen das erste mal aufgerufen haben. das screen ist im hintergrund aber fuer uns nicht mehr aktiv (d.h control-a tut das was es immer schon tat: bring uns an den zeilenanfang in der bash) wir koennten jetzt ganz auslogen, ans andere ende der welt fliegen, von dort aus mit ssh auf unserem rechner wieder einlogen und dann: screen -r aufrufen (das -r steht fuer "reattacht"). nach dem reattach sind wir wieder im screen programm und koennen dort weitermachen wo wir das lezte mal aufgehoert haben. falls wir am enderen ende der welt vergessen haben dass wir dort zuerst detachen dann koennen wir das auch von hier aus machen: screen -d detachted ein screen das von woanders noch offen ist. falls noch eines offen ist. man kann das auch in einem machen: screen -d -r detached zuerst das andere screen von woanders und reattachtet es am terminal vor dem wir gerade sitzen. wichtig: nicht sinnlos viele screens auffenlassen die man nicht braucht. jede shell und jedes laufende programm benoetigen etwas resourcen. also screen nur dort verwenden wo man es sinnvoll brauchen kann... weitere nuetzliche features von screen: screen -x attached einen screen der bereits wo anders attached wird. damit kann man auf 2 seiten gleichzeitig arbeiten. man kann vom einen screen aus sehen was am anderen getippt wird (wenn man im selben virtuellen fenster ist) auch nuetzlich: control-a x "locket" den screen. man muss es mit angabe seines passwortes wieder entsperren. EXERCISES: * starte ein screen. mach einige virtuelle terminals auf. starte programme darinnen. schalte zwischen den terminals um. detache den screen. reattache ihn. log dich von woanders ein und detache den ersten von dort. reattache von dort. * angenommen du sitzt vor rechner A und hast dort ein screen laufen. in einem der virtuellen screen terminals machst du ein ssh auf einen anderen rechner namens B. dort reattachet du ein laufendes screen mit screen -d -r mit control-a n schlatest du die fenster im auesseren screen (auf A) um. frage: wie kannst du die fenster im inneren screen (auf B) umschalten? REFERENCES: man screen info screen screen --help