Über mich
UNIX/Linux
Programmierung |
screen
Haben Sie sich schon oft darüber geärgert, dass Sie zwischen vielen Terminals hin- und herschalten mussten, weil Sie mehrere Anwendungen gleichzeitig im Vordergrund laufen lassen wollten? Oder waren Sie sauer, weil ein Prozess, den Sie auf einem Rechner am Arbeitsplatz starten mussten, nicht rechtzeitig zu Feierabend fertig war, Sie aber die Ausgabe des Programms kontrollieren wollten? screen ist ein äußerst mächtiges Tool, das Ihnen viele Aufgaben erleichtern kann. Mit screen können Sie bis zu zehn virtuelle Fenster in einem einzigen Xterm (oder auf der Konsole) simulieren. In all diesen Fenstern können Sie nun Programme laufen lassen -- jedes der virtuellen Fenster ist dabei von den übrigen unabhängig. Tippen Sie einfach mal screen -- nach einem kurzen Begrüßungstext gibt es den Hinweis, wie es weitergeht: [Press Space or Return to end.]Mit der Leertaste treten Sie also ein ins Reich der unendlichen Terminal-Weiten. Es stehen Ihnen eine Reihe von Kommandos zur Verfügung, die alle mit [Strg-a] beginnen: Halten Sie dazu die [Strg]- oder auf englischen Tastaturen die [Ctrl]-Taste gedrückt und tippen Sie [a]. Jetzt wartet das Programm auf die weiteren Befehlseingaben: [Strg-a] [?] gibt beispielsweise eine komplette Übersicht der Tastenbelegung (s. Tabelle 1).
Out of the blue -- screen!Neben den ganzen Steuerungskommandos innerhalb der Fenster kann man das Programm natürlich auch mit verschiedenen Parametern beim Start versehen. Für den Fall, dass Sie screen mehrmals gestartet haben und nicht mehr wissen, wieviele und ob diese gerade aktiv sind, gibt es die Option -ls (steht für: -list): user@asteroid:~$ screen -list There are screens on: 1200.pts-10.asteroid (Attached) 1203.pts-14.asteroid (Detached) Hier sehen Sie einmal die Prozess-ID (pid), dann das virtuelle Terminal (tty), in dem der screen gestartet wurde, den Host (asteroid) und als letzte Information, ob er gerade aktiv ("attached") ist oder schlafen gelegt wurde ("detached"). Inaktive screens können mit screen -r [pid.tty.host] wiederbelebt werden. Die Angabe der Prozessnummer und des Terminals sind nur erforderlich, wenn mehrere screens inaktiv sind. Sie können sich die Sache wesentlich erleichtern, wenn Sie der Session direkt am Anfang einen Namen geben: screen -S petronella tauft Ihren screen auf den Namen "petronella". In der Übersicht heißt dieser dann: 1364.petronella -- der Name ersetzt also Terminal und Host. Übrigens: Hat sich ein screen-Prozess einmal aufgehängt, können Sie diesen in der Übersicht am Statusflag "dead" erkennen. Sie werden ihn mit dem Parameter screen -wipe elegant los. Wenn Sie einen schlafengelegten screen wiederbeleben, möchten Sie von Zeit zu Zeit zurückscrollen können, um die letzten Ausgaben laufender Programme zu betrachten. Standard für den Puffer sind 100 Zeilen. Dieses kann man mit Hilfe der Option -h zeilenanzahl ändern. Bei einem screen -h 1000 können Sie nun also 1000 Zeilen zurückgehen. Um sich in diesem Puffer zu bewegen, gibt es eine Reihe von Tastaturkommandos. Dazu begeben Sie sich zunächst in den Copy/Scrollback-Modus (s. Tabelle 1, [Strg-a] [Esc]). Wenn Sie den Editor vi bereits kennen und nutzen, sind Ihnen die Kommandos zur Cursor-Bewegung sicher vertraut. Andernfalls finden Sie in Tabelle 2 eine Kurzreferenz über die Befehle. Text kopieren auf der Konsole - mit screen geht's!
Mit screen, Charme und MeloneSie können in Ihrem Home-Verzeichnis eine Datei .screenrc anlegen, in die Sie bestimmte Wünsche zum Programmverhalten eintragen. Tragen Sie zum Beispiel startup_message offein, dann entfällt die Begrüßung beim Programmstart. Praktisch ist auch die Möglichkeit, sich eigene Kommandos zu definieren. Schreibt man in die .screenrc z. B. hardstatus alwayslastline " [in'screen] %c | %d.%m.%Y | %w"Damit wird in der untersten Zeile eine Statusleiste eingeblendet: [in'screen] 13:40 | 26.06.2002 | 0 bash .... Sehr nützlich! Alternativ zu 'inscreen' empfielt sich der Rechnername bindkey ^f screen ssh marvin.cologne.de(und nicht wie in der Man-Page beschrieben bind xy!), wird, wenn im screen-Fenster [Strg-f] gedrückt wird, automatisch ein neuer Screen mit einer ssh-Verbindung zum Rechner marvin.cologne.de aufgemacht. Auf diese Weise können Sie eine Menge nützlicher Aliase definieren. Möchten Sie als Standard-Puffer mehr als die 100 Zeilen haben, können Sie durch einen Eintrag defscrollback 1000eine eigene Puffer-Größe festlegen. Ein nettes Feature ist auch die sogenannte vbell_msg. Dazu muss als erstes definiert werden: vbell on, danach die gewünschte Meldung, die erscheinen soll, wenn ein Fenster einen "beep" ([Strg-g]) empfängt, z. B. vbell_msg "Hallo! Hier piept's!"Es gibt noch eine ganze Reihe von Tipps und Tricks zu diesem Thema in der sehr ausführlichen Man-Page. Es lohnt sich darüber hinaus, einen Blick in die Default-Konfigurationsdatei /etc/screenrc zu werfen. Wenn Sie noch mehr zum Thema lesen möchten, gibt es bei den meisten Distributionen ein sehr gut geschriebenes README und eine FAQ. Das Verzeichnis, in dem sich diese Dateien befinden, hängt von der Distribution ab. Für Red Hat ist es /usr/share/doc/screen-3.9.5/, für Debian /usr/doc/screen/ und für Mandrake /usr/doc/screen-3.9.5/. (Tipp: Sie können diese Dateien, wenn sie die Endung .gz haben, also gzip-komprimiert sind, mit dem Programm zless lesen -- dies ist z. B. bei Debian Linux der Fall.) Ansonsten gilt: Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to screen@uni-erlangen.de(hge)
|