27.10.2013 Aufrufe

PDF-Version - freiesMagazin

PDF-Version - freiesMagazin

PDF-Version - freiesMagazin

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!