PDF-Version - freiesMagazin
PDF-Version - freiesMagazin
PDF-Version - freiesMagazin
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Umleitung in den „Mülleimer“ von Unix mittels &><br />
/dev/null [15].<br />
exec<br />
Dateideskriptoren kann man mit exec [16] dauerhaft<br />
umhängen oder neu erstellen. Dabei sollten<br />
sie nicht größer als 9 sein, da sie dann mit Dateideskriptoren,<br />
die die Shell intern nutzt, in Konflikt<br />
geraten könnten. Mittels<br />
$ exec 5>logfile<br />
öffnet man logfile über Kanal 5 als Datensenke<br />
und kann anschließend beliebig viele Ausgaben<br />
mit >&5 oder speziell Fehlermeldungen mit<br />
2>&5 an diese leiten. Erst mit<br />
$ exec 5>&-<br />
wird der Schreibvorgang abgeschlossen und die<br />
Datei würde bei Wiederholung dieser Befehlsabfolge<br />
überschrieben werden.<br />
Ganz ähnlich gestaltet sich die Verwendung einer<br />
Datei als Datenquelle, und sogar beides ist<br />
möglich: Eine Datei, die zumindest ein paar Textzeilen<br />
enthalten sollte, wird per<br />
$ exec 6rwfile<br />
zum Lesen und Schreiben geöffnet. Nun könnte<br />
man mit<br />
$ head -n 2 &6<br />
zunächst die ersten beiden Zeilen auslesen und<br />
anschließend etwas in die Datei schreiben. Mit<br />
diesen und ähnlichen Kommandos wird ersichtlich,<br />
dass der Deskriptor immer eine bestimmte<br />
Position im Datenstrom hat, die stets an das<br />
Ende der zuletzt berührten Zeichenkette gesetzt<br />
wird und dort auch mit neuen Lese- oder Schreibvorgängen<br />
beginnt; bei letzteren wird byteweise<br />
überschrieben. Es ist egal, mit welchem der Befehle<br />
$ exec 6>&-<br />
$ exec 6logfile würde leider<br />
der Deskriptor verloren gehen, daher muss<br />
er vorher gesichert werden:<br />
$ exec 6>&1<br />
$ exec >logfile<br />
Zunächst zeigt Kanal 6 auf 1, also auf das Terminal,<br />
die zweite Zeile leitet 1 in eine Datei.<br />
$ ls # und diverse andere Befehle<br />
Die Konsole gibt dann nur noch eventuelle Fehlermeldungen<br />
aus. Ein abschließendes<br />
$ exec 1>&6 6>&-<br />
TERMINAL<br />
stellt den Ursprung wieder her: 1 zeigt auf 6, also<br />
auf das Terminal, 6 wird geschlossen. Ganz analog<br />
kann man so die Standardeingabe an eine<br />
Datei binden.<br />
Mit diesem Beispiel sieht man auch, dass exec<br />
nicht mit Verknüpfungen arbeitet, sondern echte<br />
Kopien erstellt – nur so ist es möglich, Sicherheitskopien<br />
derart zu verwalten. Für Kanal 1 bzw.<br />
für die Konsole bietet aber auch das Betriebssystem<br />
eine solche Sicherheitskopie, das Terminal<br />
versteckt sich nämlich in der Datei /dev/tty.<br />
Obige Befehlsfolge entspricht daher:<br />
$ exec >logfile<br />
$ ls # und anderes<br />
$ exec >/dev/tty<br />
Die Logdatei kann man sich jeweils anzeigen lassen:<br />
$ more logfile<br />
Versteckte Informationen für die GUI<br />
Wie bereits erläutert stellen viele proprietäre Programme<br />
von Haus aus eine grafische Benutzeroberfläche<br />
bereit, die nicht nur schmückendes<br />
Beiwerk ist, sondern sich ohne Weiteres<br />
weder austauschen noch überhaupt entfernen<br />
lässt und den Benutzer in seinen Möglichkeiten<br />
einschränkt. Die Verschmelzung von GUI<br />
und Programmfunktionalität dient in erster Linie<br />
der einfachen Bedienbarkeit, was natürlich nichts<br />
Schlechtes ist, denn so können die verschiedenen<br />
Teilmodule besser aufeinander abgestimmt<br />
werden. Unter Umständen ist es eben sehr prak-<br />
© <strong>freiesMagazin</strong> CC-BY-SA 3.0 Ausgabe 03/2011 12