Einsendeaufgabe zu Studienheft LIN 2

- Umgang mit dem Betriebssystem Linux 2 -

Frage 1

Markieren Sie von den nachfolgend aufgelisteten Dateinamen jene, die formal richtig sind; ggf. unter Verwendung von Anführungszeichen.

Dateiname\txt
1.1
a _ _ _ _ _ _ a.a_a
AbCdEfGh
a b c. abc
x y z.xyz/zxy
xyz,yxz
_._

Frage 2

Markieren Sie jene der nachfolgend aufgelisteten Befehle, die Linux grundsätzlich ausführen würde, d. h. jene Befehle, die formal richtig sind (ein Bezeichner datei kennzeichnet nachfolgend eine Datei)

linutest > cp datei_01 datei_01
linutest > mv datei_02 ~/linutest/jahr_3/abcd
linutest > cp datei_07.??? *.???
linutest > cp datei nummer.eins datei_nummer.zwei
linutest > rm *.c??

Frage 3

Ihre Aufgabenstellung verlangt es, von den vier Dateien

  1. loesch12.xyz
  2. loesch34.yzx
  3. loescl12.zxy
  4. loescl23.zyx

im aktuellen Directory die Dateien 1 und 3 zu löschen; weitere Dateien gibt es in diesem Directory nicht. Welcher der nachfolgend aufgelisteten Befehle bzw. welche Befehlsfolge erfüllt diese Aufgabe am einfachsten? Entscheiden Sie sich hier für nur eine Lösung! Markieren Sie Ihre Lösung.

rm loesch12.*
    rm loescl12.*
rm loesch12.???
    rm loescl12.???
rm loesc?12.*
rm ??????12.*
rm *12.*
rm *12.?
rm loesc???.*

Frage 4

Kopieren Sie die Datei „auto“ aus dem Unterverzeichnis „linutest“ in das noch nicht vorhandene Unterverzeichnis „ebeneB_1“; vgl. Sie hierzu Abb.E.1

Geben Sie der Datei im Ziel den Namen „auto.res“.

Formulieren Sie den Befehl (die Befehlsfolge) so einfach wie möglich und tragen Sie ihn (sie) auf der nächsten Seite unmittelbar in dieses Lösungsblatt ein.

Altuelles Directory ist „linutest“.

Abbildung 1 zu Aufgabe 4 aus Heft LIN 2

mkdir ebeneA_1/ebeneB_1
cp auto ebeneA_1/ebeneb_1/auto.res

Frage 5

Wie lautet der einfachste Befehl, der aus dem Unterverzeichnis linutest die Dateien „datei_25.ex1“ bis „datei_47.x2“ in das bereits existierende Unterverzeichnis „~/linutest/unter“ verschiebt? Aktuelles Verzeichnis ist „linutest“
Wir setzen voraus, dass Sie nur die Übungen in den Lernheften LIN01 und LIN02 durchgeführt haben, also keine sonstigen ähnlich lautenden Verzeichnisse oder Dateien in „linutest“ existieren.

Befehl:
mv d*.*x* unter

Frage 6

Legen Sie einen Soft Link der Datei „linutest/experi.exe“ im Unterverzeichnis „linutest/unter“ an; aktuelles Verzeichnis ist „kdk“

Befehl:
ln –s ~/linutest/experi.exe ~/linutest/unter

Frage 7

Wie müssen Sie den chmod-Befehl formulieren, damit er der Datei „experi.exe“ im Unterverzeichnis „linutest“ das Recht „Ausführen“ (nur dieses) für den Eigentümer wieder nimmt? Aktuelles Verzeichnis ist „linutest“.

Rechte vorher:       -rwxr--r--
Rechte nachher:    -rw-r--r--

Befehl:
chmod 644 experi.exe

Frage 8

Markieren Sie von den nachfolgend aufgelisteten Befehlen jene(n), welche(r) den Inhalt des vorhandenen Unterverzeichnisses „unt_1“ in gepackter Form in der Datei “zxy.tgz“ archiviert. Aktuelles Verzeichnis ist „linutest“.

tar cfz unt_1 zxy.tgz
tar cfz zxy.tgz unt_1
tar tfz zxy.tgz unt_1
tar xfz unt_1 zxy.tgz
tar ctf zxy.tgz
tar fcz zxy.tgz

Frage 9

Im Unterverzeichnis „~/linutest“ soll sich die Datei „da1“ befinden, im bereits existierenden Unterverzeichnis „~/linutest/unt_1“ die Datei „da2“. Schreiben Sie das Shell-Skript „tausch“, das die Datei „da1“ unter dem Namen „da2“ ins Unterverzeichnis „unt_1“ überträgt, und die Datei „da2“ unter dem Namen „da1“ in das Unterverzeichnis „linutest“:

vorhernachher
da1 da1 = Inhalt von da2
das da2 = Inhalt von da1

Die Inhalte der beiden Dateien werden also ausgetauscht. D. h., anschließend steht jener Text, der zuvor in der Datei „da1“ im Unterverzeichnis „linutest“ gespeichert war, unter dem Namen „da2“ im Unterverzeichnis „unt_1“. Der Text der Datei „da2“. die sich im Unterverzeichnis „unt_1“ befindet, steht danach in der Datei „da1“ im Unterverzeichnis „linutest“. Wenn Sie das Shell-Skript „tausch“ ein zweites Mal starten, wird der Tausch wieder rückgängig gemacht.

Die Dateien enthalten in der ursprünglichen Fassung folgende Texte:

- „da1“: Text der Datei da1
- „da2“: Text der Datei da2

Das Shell-Skript soll höchstens aus zwei cp-Befehlen, einem rm-Befehl und einem mv-Befehl bestehen, also aus insgesamt vier Befehlen.

Es ist jedoch auch eine kürzere Lösung unter Einhaltung der Aufgabenstellung und der nachfolgenden Randbedingung zulässig.

Randbedingung: (unbedingt einhalten, sonst ist Ihre Lösung falsch!)

Das Shell-Skript muss auch dann funktionsfähig sein, wenn Sie es von einem beliebigen anderen Verzeichnis aus aufrufen; z. B. mit

~/linutest/kdk/jahr_1/nation_a > ~/linutest/tausch

Am besten versuchen Sie zunächst, den geforderten Tausch durch einzelne Befehle zu erzielen. Notieren Sie die Befehle und schreiben Sie sie anschließend als Text in die Datei „tausch“.

Beachten Sie bei Ihrer Lösung bitte insbesondere die Randbedingung, nach der das Shell-Skript immer funktionsfähig sein muss, und zwar unabhängig davon, von woher es (unter Angabe des Pfades) aufgerufen wird. Testen Sie das am besten aus, indem Sie in ein Unterverzeichnis „hinabsteigen“, z. B. nach „kunde_a“, das Shell-Skript darin speichern und es von „nation_a“ aus starten.

Zur Wiederholung: Ein Shell-Skript enthält Linux-Befehle, die automatisch ausgeführt werden. Sie können alle Befehle auch einzeln aufrufen. Funktionieren die einzelnen Befehle (unter Beachtung der Randbedingung), dann funktioniert auch das Shell-Skript.

cp ~/linutest/da1 ~/linutest/unt_1/da1.tmp
mv -f ~/linutest/unt_1/da2 ~/linutest/da1
cp -f ~/linutest/unt_1/da1.tmp ~/linutest/unt_1/da2
  rm -f ~/linutest/unt_1/da1.tmp
Frage 10

Schreiben Sie ein Shell-Skript mit dem Namen „tau_te“ (Tausch_Test), welches die Inhalte der in Aufgabe 9 zu tauschenden Dateien kontrolliert. Das Shell-Skript soll folgende Texte auf den Schirm schreiben:

Aufruf: (Vor dem Tausch der Dateiinhalte)
Inhalt von da1:   Text der Datei da1
Inhalt von da2:   Text der Datei da2

Aufruf: (Nach dem Tausch der Dateiinhalte)
Inhalt von da1:   Text der Datei da2
Inhalt von da2:   Text der Datei da1

Der erste und der sechste Befehl in diesem Shell-Skript soll jeweils „echo“ lauten.

Wir schlagen Ihnen vor, dieses Shell-Skript vor dem zu Aufgabe 9 zu erstellen, weil Sie dann auf einfache Weise die Funktionsfähigkeit Ihres Shell-Skripts zu Aufgabe 9 prüfen können.

echo   
echo -e "Vor dem Tausch:\nInhalt von da1: `cat ~/linutest/da1`\nInhalt von da2`cat ~/linutest/unt_1/da2`\n"
./tausch
echo -e "Nach den Tausch:\nInhalt von da1: `cat ~/linutest/da1`\nInhalt von da2`cat ~/linutest/unt_1/da2`"
echo