Übungen zu ``Shellprogrammierung''
Sommersemester 97
Blatt 3 vom: 5.5.97
letzter Abgabetermin: 12.5.97 (vor 10.00 Uhr)
Machen Sie sich mit dem man-Kommando vertraut. Wie ist der allgemeine Aufbau einer Manual-Seite?
Wozu dienen die Shell-Variablen PATH und MANPATH? Wie sind die einzelnen man-Kataloge strukturiert?
Skizzieren Sie einen Algorithmus, der sich hinter dem man-Kommando verbergen könnte. Der nachfolgende Auszug aus einer Shell-Sitzung soll Ihnen bei der Darstellung der Seiten helfen.
lyra bernd 28 cd /usr/man/man1 lyra man1 29 nroff -man ls.1 | less
Wozu dient das Kommando apropos? Wie könnte der Algorithmus dieses Kommandos aussehen?
Machen Sie sich mit dem kill-Kommando vertraut, und erklären Sie Ihrem Tutor die Benutzung. Verwenden Sie Begriffe wie Signal und Prozeß.
Der inetd-Dämon reinitialisiert sich, wenn das Signal SIGHUP bei ihm eintrifft. Wie würden Sie dem Prozeß dieses Signal schicken? Dürfen Sie das?
Machen Sie sich mit den Dateien aus /home/sp/Blatt/Blatt3/Src vertraut, und erklären Sie die Ausgabe des ls -l-Kommandos:
lyra Src 73 pwd /home/sp/Blatt/Blatt3/Src lyra Src 74 ls -l total 74 drwxr-xr-t 2 bernd inform 512 Apr 29 18:51 dir prw-r--r-- 1 bernd inform 0 Apr 29 17:53 fifo -rw-r--r-- 1 bernd inform 15 Apr 29 17:58 fileA lrwxrwxrwx 1 bernd inform 5 Apr 29 17:54 fileB -> fileA -r--r--r-- 1 bernd inform 5437 Apr 29 17:18 ls.1 -rwxr-xr-x 1 bernd inform 32048 Apr 29 17:56 u_g_id -rwsr-sr-x 1 bernd inform 32048 Apr 30 12:17 u_g_id+s -rw-r--r-- 1 bernd inform 220 Apr 29 17:56 u_g_id.c
In der Ausgabe des ls -l-Kommandos können als erstes Zeichen neben d, p und l noch weitere Buchstaben auftreten. Welche? Zeigen Sie Ihrem Tutor die zugehörigen Dateien.
Führen Sie in /home/sp/Blatt/Blatt3/Src die Kommandos u_g_id und u_g_id+s aus, und erklären Sie Ihrem Tutor die Ausgabe. Zu welchem Zweck wurde diese Technologie entwickelt?
Wozu wird das Kommando ln verwendet?
Skizzieren Sie graphisch den Aufbau der Platte nach jedem Aufruf von ln und rm in dem folgenden Beispiel:
lyra bernd 16 mkdir tmp lyra bernd 17 cd tmp lyra tmp 18 echo this is fileA > fileA lyra tmp 19 ln fileA fileB lyra tmp 20 mkdir dir lyra tmp 21 ln fileB dir/fileC lyra tmp 22 ll -a * -rw-r--r-- 3 bernd inform 14 Apr 30 09:48 fileA -rw-r--r-- 3 bernd inform 14 Apr 30 09:48 fileB dir: total 3 drwxr-xr-x 2 bernd inform 512 Apr 30 09:49 . drwxr-xr-x 3 bernd inform 512 Apr 30 09:49 .. -rw-r--r-- 3 bernd inform 14 Apr 30 09:48 fileC lyra tmp 23 rm fileA lyra tmp 24 rm fileB lyra tmp 25 cat dir/fileC this is fileA isolde tmp 141
Was bedeuten die Zahlen zwei bzw. drei vor dem Text bernd in der Ausgabe von ls?
Was ist der Unterschied zwischen einem harten und einem symbolischen Link? Inwieweit ist die Benutzung der harten Links eingeschränkt?
Wieso ist in dem folgenden Beispiel die Datei fileB fünf Zeichen groß:
isolde tmp 145 echo -n 12345 > fileA isolde tmp 146 ln -s fileA fileB isolde tmp 147 ll fileB lrwxrwxrwx 1 bernd inform 5 Apr 29 18:35 fileB -> fileA
Welches Problem ergibt sich aus dem nächsten Beispiel? Mit welcher Ausgabe beim letzten cat-Aufruf rechnen Sie?
isolde tmp 150 date > fileA isolde tmp 153 ln -s fileA fileB isolde tmp 154 ln -s fileB fileC isolde tmp 155 cat fileC Tue Apr 29 18:37:20 MET DST 1997 isolde tmp 158 rm fileA isolde tmp 159 ln -s fileC fileA isolde tmp 160 cat fileB