====== Verzeichnisse ====== ===== Grundlagen ===== Öffne ein Terminal und gib folgendes ein: pwd Als Ausgabe am Bildschirm erhältst du beispielsweise: /srv/samba/schools/default-school/teachers/sbel Das ist dein "HOME Verzeichnis". Man sieht, dass das Verzeichnistrennzeichen eines Pfades unter Linux/Unix der Schrägstrich (englisch Slash) / (und nicht wie unter Microsoft Windows der Backslash \) ist. Dadurch können wir auch einen neuen Begriff definieren: Ein **Pfad** ist eine Zeichenkette, bei der eine beliebige Anzahl von Verzeichnissen jeweils durch einen Schrägstrich getrennt sind. Eine weitere Unterschied gegenüber Microsoft Windows ist, dass es keine Laufwerke (C:, D: usw.) gibt. Unter Unix bzw. Linux gibt es nur ein sogenanntes "root Verzeichnis" — im Deutschen auch mit **Wurzelverzeichnis** übersetzt. Die Bezeichnung Laufwerk wird unter Unix nicht verwendet. Man spricht immer von Partitionen, Medien und Mountpunkten. Unter Unix/linux wird, im Gegensatz zu Microsoft Windows, auch zwischen Groß– und Kleinschreibung unterschieden. /HOME/laptop und /home/laptop bezeichnen also zwei völlig verschiedene Verzeichnisse. Eine Trennung nach Dateierweiterungen wie unter Microsoft Windows (z.B. *.exe oder *.doc ist unter Unix in manchen Gebieten zwar üblich (z.B. *.tex für LaTex Dokumente oder *.odt für LibreOffice Text-Dokumente) aber keineswegs zwingend — so haben ausführbare Dateien meist gar keine Endung (z.B. lautet der Programmname der meistverwendeten Shell einfach ''bash'', der Programmname des Firefox-Browsers einfach ''firefox''). ===== Autocomplete mit TAB ===== Bei der bash (und einigen anderen Shells) ist eine Autocomplete-Funktion. Wenn du einen Befehl oder einen Dateinamen unvollst ändig angibst und dann die TAB Taste drückst, wird der Name vervollständigt, falls er eindeutig ist, d.h. wenn es nur eine Möglichkeit zur Vervollständigung gibt. Gibt es mehrere Möglichkeiten, kannst du zweimal die TAB Taste drücken. Nun listet die bash sämtliche Möglichkeiten auf (ab einem voreingestellten Wert wird abgefragt, ob du wirklich alle Möglichkeiten sehen willst, weil die Liste dann teileweise sehr lang ist). ===== Arbeiten mit Verzeichnissen ===== Nach dem Einloggen befindest du dich in deinem HOME-Verzeichnis. Gib Folgendes ein: pwd Der Befehl pwd (print working directory) zeigt dir an, in welchem Verzeichnis du dich sich gerade befindest. Du erhältst jetzt eine Antwort, die die Ausgabe des Befehls zeigt, zum Beispiel: /home/c102/c102mr Wie auch unter Microsoft Windows dient zum Wechseln des Verzeichnisses der Befehl ''cd''. cd Dokumente Nun gibst du wieder ''pwd'' ein. Die Ausgabe sollte in etwa wie folgt aussehen: /srv/samba/schools/default-school/teachers/sbel/Dokumente Nun wollen wir noch einmal ein ''cd'' ausführen. Gib ein cd /etc Wenn du jetzt ''pwd'' ausführst, lautet das Ergebnis: /etc Achte auf den feinen Unterschied zwischen den beiden Eingaben von cd. Beim zweiten Mal steht vor dem etc ein ''/''. Du hast bereits das Trennzeichen ''/'' für Verzeichnisse kennengelernt - und genau das ist es hier. Was wir hier lernen, ist der vielleicht bereits aus Microsoft Windows bekannte Unterschied zwischen absoluten und relativen Dateiangaben. Der erste Befehl wechselt in das Verzeichnis "Dokumente" - und zwar abhängig vom aktuellen Verzeichnis. Da wir uns im HOME-Verzeichnis befinden, wechselt er dort in das Verzeichnis "Dokumente", falls es vorhanden ist. Wären wir beispielsweise in ''/usr'', würde der Befehl versuchen dort in das "bin"-Verzeichnis zu wechseln (also nach ''/usr/Dokumente''), was nicht klappen würde, weil es dieses Verzeichnis nicht gibt. Das nennt man **relative** Dateiangaben oder relative Pfadangaben. Der zweite Befehl wechselt in das Verzeichnis ''/etc''. Das ist ein **absoluter** Verzeichnisname (oder ein "absoluter Pfad"). Unabhängig davon, wo wir uns gerade befinden, wechselt dieser Befehl nach ''/etc''. Absolute Dateiangaben listen immer sämtliche Verzeichnisse im Pfad vom Root-Verzeichnis ausgehend bis zum Zielverzeichnis oder zur Zieldatei auf. Wollten wir in das "Dokumente"-Verzeichnis in unserem HOME-Verzeichnis wechseln, so müssten wir (entsprechend angepasst) eingeben: cd /srv/samba/schools/default-school/teachers/sbel/Dokumente Hier ist die Tab-Taste wieder dein Freund, denn das alles einzutippen macht wenig Freude. Wechsle jetzt ins Root-Verzeichnis. Gib einfach ein: cd / Jetzt möchten wir versuchen, wieder in dein HOME-Verzeichnis zu kommen. Du könntest jetzt eingeben: ''cd/srv/samba/schools/default-school/...''. Aber das ist ziemlich lang. Hier gibt es eine einfache Lösung. Du verwendest dazu das Tilde-Zeichen ''~''. Das steht immer für dein HOME-Verzeichnis. Du gibst also ein: cd ~ Oben sind wir im ''bin''-Verzeichnis in deinem HOME-Verzeichnis gelandet - das war etwas kompliziert, wie wir jetzt wissen. Es wäre viel einfacher gegangen: cd ~/Dokumente Eine Parallele zu Microsoft Windows ist die Verwendung von ''..'', um das übergeordnete Verzeichnis zu bezeichnen. Du befindest dich jetzt im ''Dokumente''-Verzeichnis in deinem HOME-Verzeichnis, wenn du die oben beschriebenen Schritte befolgt hast. Falls ein Verzeichnis namens "Desktop" existiert, kannst du dorthin wechseln, indem du Folgendes eingibst: cd ../Desktop Im Gegensatz dazu wird das aktuelle Verzeichnis mit ''.'' bezeichnet. Wenn sich in deinem Verzeichnis ein Programm namens ''test'' befindet, könntest du es durch die folgende Zeile ausführen: ./test Jetzt weißt du also bereits, wie du von Verzeichnis zu Verzeichnis wechseln kannst. ===== Verzeichnisse erstellen ===== Der Befehl zum Erstellen von Verzeichnissen ist "mkdir" (make directory). Wenn du also in deinem HOME-Verzeichnis ein Verzeichnis namens "junk" erstellen möchtest, gib einfach ein: mkdir ~/junk Zum Entfernen von Verzeichnissen wird "rmdir" verwendet. Allerdings muss das Verzeichnis leer sein, damit du es entfernen kannst. Lass uns zuerst ein neues Verzeichnis erstellen: mkdir ~/test Dieses Verzeichnis benötigen wir jetzt nicht mehr. Wir entfernen es daher mit dem Befehl "rmdir" (remove directory): rmdir ~/test Du kannst das "junk"-Verzeichnis, wenn du möchtest, behalten. Es ist oft eines der Verzeichnisse, die in den meisten HOME-Verzeichnissen vorhanden sind (junk bedeutet auf Englisch so viel wie "Trödel" oder "Plunder"). Es wird in der Regel für Tests von Software und ähnlichem verwendet. Zum Verschieben von Verzeichnissen kannst du den Befehl "mv" (move) verwenden. Erstelle also das "test"-Verzeichnis erneut und verschiebe es nach "Bloedsinn": mkdir ~/test mv ~/test ~/Bloedsinn Wie wir später sehen werden, wird der "mv"-Befehl auf die gleiche Weise auch bei normalen Dateien verwendet.