Kapitel 2. Die Kommandozeile

Inhaltsverzeichnis
2.1. Programme zur Dateimanipulation
2.1.1. mkdir, touch: Leere Verzeichnisse und Dateien erstellen
2.1.2. rm: Dateien oder Verzeichnisse löschen
2.1.3. mv: Dateien verschieben oder umbenennen
2.1.4. cp: kopiert Dateien und Verzeichnisse
2.2. Umgang mit Dateiattributen
2.2.1. chown, chgrp: ändere Besitzer und/oder Gruppe von Dateien
2.2.2. chmod: verändert Berechtigungen an Dateien und Verzeichnissen
2.3. Suchmuster und Reguläre Ausdrücke
2.4. Ein- und Ausgabeumleitung
2.4.1. Etwas mehr über Prozesse
2.4.2. Umleitungen
2.4.3. Röhren
2.5. Komplettierung
2.5.1. Beispiel
2.5.2. Generell
2.6. Hintergrund-Prozesse starten und verwalten: Job-Steuerung  
2.7. Zum Schluss

Im Kapitel ,,Grundlegende Unix Konzepte`` haben Sie gesehen, wie Sie eine Shell aufrufen. Auf diesen Seiten sehen Sie, wie sie funktioniert.

Die wahre Macht der Shell liegt in der Anzahl der vorhandenen Programme. Es gibt Tausende, und jedes dient einem bestimmten Zweck. Sie werden hier natürlich nur einige wenige in Aktion erleben können. Eine der Haupstärken von Unix ist es, diese Programme kombinieren zu können, wie Sie später noch sehen werden.

2.1. Programme zur Dateimanipulation

Dateimanipulation meint hier das Kopieren, Verschieben und Löschen von Dateien. Später geht es dann um die Änderung ihrer Attribute (Besitzer, Berechtigungen).

2.1.1. mkdir, touch: Leere Verzeichnisse und Dateien erstellen

mkdir (MaKe DIRectory, engl. für ,,erstelle Verzeichnis``) erstellt neue Verzeichnisse. Die Syntax ist einfach:

mkdir [Optionen] Verzeichnis [Verzeichnis ...]

Nur eine option ist wirklich erwähnenswert: die option -p. Ist sie gesetzt, erstellt mkdir noch nicht existierende Elternverzeichnisse gleich mit. Ansonsten gibt mkdir eine Fehlermeldung aus, wenn Sie versuchen, ein Verzeichnis mit nicht existierenden Überverzeichnissen zu erstellen. Beispiele:

  • mkdir bla: erstellt ein Verzeichnis bla im aktuellen Verzeichnis;

  • mkdir -p images/div docs: erstellt ein Verzeichnis div im Ver­zeichnis images. Sollte images noch nicht existieren, wird es erstellt. Außerdem wird ein Verzeichnis docs im aktuellen Verzeichnis erstellt.

Eigentlich ist das Kommando touch nicht zur Erstellung neuer Dateien gedacht, sondern um die Zeitstempel existierender Dateien zu aktualisieren.[1] Wie dem auch sei, eines seiner Seiteneffekte ist es, Dateien zu erstellen. Die Syntax ist:

touch [Optionen] Datei [Datei ...]

Dieses Kommando:

touch datei1 images/datei2

wird also eine Datei namens datei1 im aktuellen Verzeichnis und eine Datei namens datei2 im Verzeichnis images erstellen.

2.1.2. rm: Dateien oder Verzeichnisse löschen

Das Kommando rm (ReMove engl. für ,,entfernen``) stellt das Unix-Pendant zu den DOS-Kommandos del und deltree dar. Es kann aber natürlich noch mehr :-). Syntax:

rm [Optionen] <Datei|Verzeichnis> [<Datei|Verzeichnis> ...]

Optionen sind u.a.:

  • -r, oder -R: Rekursives Löschen. Diese option ist zwingend, wenn ein Verzeichnis gelöscht werden soll, sei es nun leer oder nicht. Leere Verzeichnisse können auch mit dem Befehl rmdir gelöscht werden.

  • -i: Interaktiver Modus. Das heißt vor jedem Löschen werden Sie gefragt, ob Sie die eintsprechende Datei wirklich löschen wollen.

  • -f: Das Gegenteil zu -i. Erzwingt das Löschen von Dateien oder Verzeichnissen, selbst wenn der Benutzer keine Schreibberechtigung für die Datei hat.[2]

Tip

Es ist sehr empfehlenswert, für die Kommandos rm, cp und mv ein interaktives alias zu erstellen.

Einige Beispiele:

  • rm -i images/*.jpg datei1: Löscht alle Dateien mit der Endung .jpg im Verzeichnis images, sowie die Datei datei1 aus dem aktuellen Verzeichnis. Vor dem Löschen wird für jede Datei eine Bestätigung verlangt, die Sie mit j geben, oder mit n verweigern können.

  • rm -Rf images/misc/ datei*: Löscht ohne Rückfrage das ge­samte Verzeichnis misc samt Unterverzeichnissen, sowie alle Datei­en im aktuellen Verzeichnis, deren Name mit datei anfängt.

Warnung

Eine Datei, die mit rm gelöscht wurde, ist unwiederbringlich verloren. Nun ja, es gibt unter Umständen Möglichkeiten zur Wiederherstellung, doch diese sind so kompliziert, dass Sie besser die Umständlichkeit der -i option in Kauf nehmen sollten...

2.1.3. mv: Dateien verschieben oder umbenennen

Die Syntax von mv (MoVe engl. für ,,bewegen``) ist wie folgt:

mv [Optionen] <Datei|Verzeichnis> [<Datei|Verzeichnis> ...] Ziel

Einige Optionen:

  • -f: Erzwingt das Verschieben einer Datei. Keine Warnung beim Überschreiben einer anderen, gleichnamigen Datei im Zielverzeich­nis.

  • -i: Das Gegenteil: fragt den Benutzer vor dem Überschreiben einer Datei.

  • -v: Ausführlicher Modus, berichtet alle Änderungen.

Einige Beispiele:

  • mv -i /tmp/pics/*.png .: Kopiert alle Dateien mit der Endung .png aus dem Verzeichnis /tmp/pics in das aktuelle Verzeichnis. Fragt vor Überschreiben.

  • mv bla blub: Benennt Datei bla zu blub um.

  • mv -vf file* images/ trash/: Verschiebt – ohne Nachfrage – alle mit file beginnenden Dateien aus dem aktuellen Verzeichnis sowie das Verzeichnis images/ in das Verzeichnis trash/, zeigt jede Operation an.

2.1.4. cp: kopiert Dateien und Verzeichnisse

cp (CoPy, engl. für ,,kopieren``) entspricht der gesammelten Funktionalität der DOS-Befehle copy, xcopy und anderer. Seine Syntax sieht so aus:

cp [Optionen] <Datei|Verzeichnis> [<Datei|Verzeichnis> ...] Ziel

Es hat eine ganze Reihe von Optionen. Dies sind die gebräuchlichsten:

  • -R: Rekursives Kopieren. Zwingend bei Verzeichnissen, auch wenn sie leer sind.

  • -i: Rückfrage vor Überschreiben.

  • -f :Das Gegenteil von -i. Überschreiben ohne Rückfrage.

  • -v: Ausführlicher Modus, listet alle Aktionen auf.

Einige Beispiele:

  • cp -i /tmp/images/* images/: Kopiert alle Dateien aus dem Verzeichnis /tmp/images in das Verzeichnis images/ im aktuellen Verzeichnis. Bevor existierende Dateien überschieben werden, müs­sen Sie bestätigen, dass das Ihre Absicht war.

  • cp -vR docs/ /shared/mp3s/* meinkram/: Kopiert das komplette Verzeichnis docs (und eventuell vorhandene Unterverzeichnisse) sowie alle Dateien aus dem Verzeichnis /shared/mp3s in das Verzeichnis meinkram im aktuellen Verzeichnis. Jeder Vorgang wird angezeigt.

  • cp bla blub: Legt im aktuellen Verzeichnis eine Kopie der Datei bla unter dem Namen blub an.

Fußnoten

[1]

Es gibt drei verschiedene Zeitstempel in Unix: das Datum des letzten Zugriffs (atime), d.h. der letzte Lese-/Schreibzugriff; das Datum der letzten Änderung an den Inoden-Attributen (mtime) und schließlich das Datum der letzten Inhaltsänderung (ctime).

[2]

Der Benutzer muss lediglich schreibberechtigt für das Verzeichnis sein, um daraus Dateien löschen zu können.


Tux on Star from MandrakeSoft Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/