Übungen zu ``Shellprogrammierung''


Sommersemester 97

Blatt 3 vom: 5.5.97
letzter Abgabetermin: 12.5.97 (vor 10.00 Uhr)

Aufgabe 1 (2 Punkte)

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?

Aufgabe 2 (1 Punkt)

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?

Aufgabe 3 (2 Punkte)

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.

Aufgabe 4 (1 Punkt)

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?

Aufgabe 5 (2 Punkte)

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?

Aufgabe 6 (2 Punkte)

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