In unserem letzten Artikel in der Serie Terminal Guide ging es um das Starten des Terminals und wozu wir es überhaupt benutzen können. Heute wollen wir uns damit beschäftigen, wie wir es benutzen. Wir schauen uns die wichtigsten Befehle zur Navigation im Dateisystem an. Weiter geht’s dann mit den Befehlen zum Kopieren, Verschieben, Löschen und Anzeigen von Dateien.
Zum weiteren Verständnis solltet ihr wissen, wie das Dateisystem von Unix-Systemen generell aufgebaut ist. Google oder Wikipedia sind sehr hilfreich.
Dateien anzeigen
localhost:~ user$ ls
Desktop Downloads Movies Pictures Sites
Documents Library Music Public workspace
localhost:~ user$ ls -l
drwx------+ 13 user staff 442 23 Mär 15:39 Desktop
drwx------+ 22 user staff 748 23 Feb 17:42 Documents
drwx------+ 25 user staff 850 23 Mär 15:39 Downloads
drwx------+ 52 user staff 1768 20 Mär 12:39 Library
drwx------+ 16 user staff 544 22 Mär 17:19 Movies
drwx------+ 7 user staff 238 10 Feb 15:33 Music
drwx------+ 37 user staff 1258 22 Mär 18:53 Pictures
drwxr-xr-x+ 6 user staff 204 24 Apr 2008 Public
drwxr-xr-x+ 5 user staff 170 14 Apr 2008 Sites
drwxr-xr-x 3 user staff 102 16 Apr 2008 workspace
localhost:~ user$ ls -la
drwxr-xr-x+ 37 user staff 1258 23 Mär 16:01 .
drwxr-xr-x 5 root admin 170 14 Apr 2008 ..
-rw------- 1 user staff 3 14 Apr 2008 .CFUserTextEncoding
-rw-r--r--@ 1 user staff 15364 23 Mär 15:39 .DS_Store
drwx------ 3 user staff 102 23 Mär 09:44 .Trash
-rw------- 1 user staff 0 19 Feb 18:05 .Xauthority
drwxr-xr-x 2 user staff 68 10 Mai 2008 .Xcode
drwxr-xr-x 3 user staff 102 15 Jun 2008 .alice
...
Mit ls lassen wir uns den Inhalt des aktuellen Verzeichnisses ausgeben. In der Ausgabe werden Dateien und Ordner in unterschiedlichen Farben dargestellt. Mit einem ls wie in Zeile 1 erhalten wir eine sehr spartanische Ausgabe. Wir sehen lediglich die Ordner und Dateien. Mit ls -l, wie in Zeile 5, erhalten wir zu den einzelen Zeilen noch Angaben wie die Dateirechte, den Benutzer, dem die Datei gehört, und das Erstellungsdatum. Fügen wir in Zeile 5 noch ein a hinzu wie in Zeile 17, werden auch die versteckten Dateien ausgegeben. Diese sind an einem Punkt vor dem Dateinamen zu erkennen (Zeile 20 ff.).
Beispiele zu cd
localhost:~ user$ cd Documents/
localhost:Documents user$ cd ../Pictures
localhost:Documents user$ cd
localhost:~ user$ cd /Library/Developer
localhost:Library/Developer user$ cd
localhost:~ user$ pwd
/Users/user
Die Syntax von cd ist sehr einfach. In Zeile 1 wechseln wir aus unserem Home-Verzeichnis (siehe Terminal Guide 1) in das Verzeichnis Documents. In der zweiten Zeilen sehen wir einen Verzeichniswechsel mit einem relativen Pfad. ../ bedeutet hier das übergeordnete Verzeichnis. Verwenden wir den Befehl ohne Parameter wie in Zeile 3, wechseln wir automatisch in unser Home-Verzeichnis. In Zeile 6 wird mit dem Befehl pwd das aktuelle Verzeichnis ausgegeben, das Ergebnis seht ihr in Zeile 7. Diese relativen und absoluten Pfadangaben können auch bei allen anderen Befehlen benutzt werden.
Beispiele zu cp
localhost:~ user$ cp test.txt Desktop/
localhost:~ user$ cp test.txt Desktop/test1.txt
localhost:~ user$ cp -r testorder Desktop/
cp benutzt als Parameter immer die zu kopierende Datei und das Ziel. in Zeile 1 wird eine Datei auf den Desktop (den Schreibtisch) kopiert. Sie landet dort mit dem gleichen Namen wie die Ursprungsdatei. In Zeile 2 hingegen kopieren wir diese Datei auf den Desktop, diesmal mit dem Namen test1.txt. Was macht nun aber dieses -r in Zeile 3? Wollen wir ganze Verzeichnisse kopieren, brauchen wir diesen Schalter: -r steht hier für „rekursiv“, wir steigen also in der Verzeichnistruktur rekursiv ab und kopieren alles ab diesem Punkt. Will man also komplette Ordner kopieren, immer den Schalter -r verwenden.
Vorsicht bei rm!
localhost:~ user$ rm test.txt
localhost:~ user$ rm testordner (Fehler!)
localhost:~ user$ rm -r testordner
Bei dem Befehl rm ist höchste Vorsicht geboten. rm löscht Dateien direkt ohne Nachfrage. Sie landen auch nicht im Papierkorb, nur über die Time Machine könnt ihr gelöschte Dateien wiederherstellen. In der ersten Zeile wird eine Datei gelöscht. In der zweiten Zeile versuchen wir es dann mit einem Ordner und erhalten einen Fehler. Ah ja, das war doch was mit rekursivem Abstieg. Nun können wir auch eine komplette Ordnerstruktur löschen (Zeile 3).
Dateien und Ordner erstellen
localhost:~ user$ touch test.txt
localhost:~ user$ mkdir testordner
Die Befehle touch und mkdir dienen zum Erstellen von Dateien bzw. Ordnern. Hier ist eigentlich nichts weiter zu beachten. Wie immer könnt ihr relative und absolute Pfade verwenden.
Beispiele zu mv
localhost:~ user$ mv test.txt testumbenannt.txt
localhost:~ user$ mv test.txt Desktop/
localhost:~ user$ mv testordner/ Desktop/
mv ist der Befehl zum Verschieben und Umbenennen. In Zeile 1 wird die Datei test.txt in testumbenannt.txt umbenannt. Geben wir wie in Zeile 2 einen Ordner als Ziel an, wird die Datei in diesen Ordner verschoben. In Zeile 3 wird ein Ordner an eine andere Stelle verschoben. Wie, kein -r? Richtig erkannt. Hier sei nur kurz das Stichwort inodes erwähnt. Dazu mehr in späteren Artikeln.
Bernd
#1
Mac OS X unterscheidet Groß/Kleinschreibung ist nur bedingt eine richtige Aussage. Mac OS X ist UNIX und UNIX setzt diese voraus. Es ist also nicht eine OS X Sache an sich.
Touch ist da um den Zeitstempel auf „JETZT“ zu setzen. Zwar KANN touch auch Dateien erzeugen, jedoch würde ich touch nicht wirklich dafür verwenden. Hierfür würde ich immer ed oder ähnlichen empfehlen.
Ansonsten: Nette Reihe. Danke sehr!
Bernd
#2
Hi Bernd,
alles richtig was du schreibst. Da ich jedoch die Reihe für Einsteiger schreibe, muss ich immer abwägen was ich ausführe und was nicht. Denke das das konnte ich verschweigen 🙂
Und natürlich verwenden wir bald vi zum erstellen von Textdateien!
Danke für die Anmerkungen
2 Kommentare