Kann mir jemand für absolute Laien erklären was mit einem Verzeichnis gemeint ist, bei Linux wenn man pwd eingibt?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

in Unix- und Linux-Betriebssystemen wird ein sogenannter Verzeichnisbaum aufgebaut. Dargestellt wird dieser "Baum" wie ein richtiger Baum, nur steht der auf dem Kopf.

Er beginnt mit einer Wurzel, verzweigt sich in dicke, weiter nach vorn in dünne Äste und endet bei den Blättern.
Bis auf den Namen "Wurzel" oder in englisch "root" (Zeichen / ) wird aber nicht mehr von Ästen und Blättern gesprochen.
Äste sind dann Verzeichnisse in englisch Directories oder auch Ordner.
Blätter sind dann Dateien bzw. Files.

Jedes Directory ist ähnlich aufgebaut wie eine Datei in dem dann die Namen untergeordneter Directories und Files wie in einer Datei aufgelistet sind. Zusätzlich kommen zu den Namen noch sogenannte Metadaten hinzu (wann erstellt, wer ist der Besitzer, welche Rechte ...).

Wenn man auf ein Verzeichnis oder eine Datei zugreifen will, muss eine "Wegbeschreibung" von der Wurzel bis zu dem Punkt vorliegen, wo sich das Directory bzw. der File befindet. So eine "Wegbeschreibung" wird Pfad (Path) genannt.

Ein Pfad beginnt immer mit / , gefolgt von allen notwendigen Verzeichnisnamen, die bis zum Ziel vorhanden sind.

Beispiel:

/home/Lucas/Dokumente/Zeugnisse/2020/

Wenn man das immer wieder eingeben sollte, wird man Blasen an die Fingern bekommen.
Unix und Linux haben für solche Namen Variablen, in die ein Teil dieser Namenskette automatisch eingetragen wird.

So z.B. die Variable HOME. Auf das Beispiel bezogen wird darin "/home/Lucas" stehen. Der Pfad muss dann nur noch mit
$HOME/Dokumente/Zeugnisse/2020/
angegeben werden. Eine selbst definierte Variable mit dem Inhalt
Z=$HOME/Dokumente/Zeugnisse/
verkürzt das Ganze dann auf $Z/2020

Nun gibt es den Befehl cd (change directory) der definiert selbst eine Variable, die immer den Namen PWD hat.

Würdest du mit cd /home/Lucas/Dokumente/Zeugnisse/2020/
dich in dieses Verzeichnis stellen , wird PWD genau diesen Inhalt erhalten.

Von dort aus kann man dann auf "kurzem Wege" in der Nähe liegende Verzeichnisse erreichen.
Das steht aber in vielen Büchern.

wird also

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Die Files auf der Festplatte sind in "Ordnern" organisiert. Das ist sinnvoll, denn wenn man alle Files zusammen in einer Liste speichern würde, wäre das extrem unübersichtlich. Um Klarheit zu schaffen, kann man z.B. alle Files, die zum Betriebssystem gehören, in einen bestimmten Ordner speichern und die Dateien, die nur dich dich persönlich nützlich sind, in einen anderen. Dabei sind Unterorder auch hilfreich, also Ordner, die in Ordnern liegen.

Unter Linux kann das z.B. so aussehen:

/home ist der Ordner, indem alle Benutzer des Computers einen eigenen Ordner haben. Wenn dein Loginname Lucas ist, gibt es dann den Unterorder \user\Lucas . Darin kannst du einen Ordner erstellen, in dem deine Fotos liegen und einen für Texte: /home/Lucas/Fotos und /home/Lucas/Texte usw.

Die Shell arbeite immer in einem bestimmten Order. Wenn du z.B. den Befehl ls eingibst, wird dir der Inhalt dieses aktiven Ordner angezeigt. pwd zeigt dagegen den Namen des aktiven Ordners an. Mit cd wechselst du den Order.

Um die die Liste mit all deinen Fotos an zu zeigen, würdest du z.B. so vorgehen:

cd /user/Lucas/Fotos
ls

Dann ist der aktive Order, den dir pwd anzeigt "\user\Lucas\Fotos". Um eine Hierarchie höher zu kommen, also in "\user\Lucas" kannst du das entweder "absolut" adressieren:

cd \user\Lucas

oder die Abkürzung .. verwenden:

cd .. 
Waldelb3  29.10.2021, 12:33

Bei Linux sind die Schrägstriche aber andersrum. Also cd user/Lucas/Fotos

Und "user" wäre normalerweise eher "home".

2
mjutu  29.10.2021, 13:17
@Waldelb3

Danke. Eventeull hilft das dem FS weiter. Wie man den Ordner für die User-Daten nennt, spielt keine Rolle. Kleine Ergänzung: "/user/Lucas/Fotos" - der Separator am Anfang ist wichtig, sonst wird das als relativ zum aktuellen Pfad interpretiert.

0
Waldelb3  29.10.2021, 13:34
@mjutu

/ am Anfang habe ich absichtlich weg gelassen, weil /user normalerweise kein valider Pfad ist. Das wäre wie gesagt /home

1
mjutu  29.10.2021, 15:10
@Waldelb3

Ein sinnvolles Argument ist das nicht: Natürlich ist /user/X/Y ein valider Pfadnamen, denn es spielt für die Frage keine Rolle, ob "home" der übliche Name ist.

Den \ habe ich in der Antwort in / verbessert.

0
Waldelb3  29.10.2021, 15:59
@mjutu

Das war auch kein Argument. Nur eine Erklärung für das, was ich vorher geschrieben habe.

0

Verzeichnis = Ordner (im Dateisystem). Das Dateisystem organisiert Dateien in einer Baumstruktur von Verzeichnissen.

In der Kommandozeile (Shell) bist du automatisch in einem "Arbeitsverzeichnis". Anfangs (wenn du dich in eine Shell begibst) ist das dein User-Home, wo sich deine "eigenen" Dateien befinden. Du kannst aber (mit dem Kommando "cd" = change directory) das Verzeichnis wechseln. In welchem du gerade "bist" zeigt eben "pwd" an.

Pfadangaben können relativ zum aktuellen Verzeichnis (ohne / am Anfang) sein oder absolut (mit / am Anfang). Relative Pfadangaben sind logischerweise bequemer, weil man nicht immer den vollen Pfad hinschreiben muss.

Das aktuelle Verzeichnis ist über die Abkürzung "." (Punkt) angebbar. Das übergeordnete durch zwei Punkte "..". Pfadtrenner is der Slash "/" (anders als bei Windows der Backslash).

Das Kommando

cd ../../xyz

bedeutet demnach "gehe in das übergeordnete Verzeichnis, von dort nochmal in das übergeordnete, und von dort in das Verzeichnis "xyz".

Das ist vergleichbar mit Telefonnummern und Vorwahlen: Im Ortsnetz muss du nicht keine Vorwahl eingeben, wenn du jemandem im selben Ort anrufen willst. Wenn du iom anderen Ort anrufen willst wählst du die 0 vor "raus aus meinem Ortsnetz" und danach die Ortsvorwahl ("rein in den Ort XY"). Und genauso mit Ländern: 00 ("raus aus dem Ort, raus aus dem Land") und dann die Ländervorwahl (49 für DE) und wieder die Ortsvorwahl.

Du solltest dich mal ein bisschen mit der Shell befassen, denn abstrakt ist das etwas schwer verständlich...

In computing, the working directory of a process is a directory of a hierarchical file system dynamically associated with each process. It is sometimes called the current working directory (CWD).

Ein Aufruf von pwd nennt dir den Pfad hin zum current working directory (ausgehend von der Wurzel / des Filesystems).

Mehr dazu hier: https://en.wikipedia.org/wiki/Working_directory

Mit cd (change directory) kannst Du in jedes gewünschte Verzeichnis wechseln.

Mit pwd kannst Du prüfen in welchem Verzeichnis Du Dich aktuell befindest.

|

Die folgenden Worte stehen für ein und dasselbe:

Verzeichnis = Dateiverzeichnis = Ordner = directory.

Verzeichnis = Ordner

In einem Ordner können andere Ordner, oder Dateien sein.

Nehmen wir an, du hast einen Ordner "Bilder" und da drin den Ordner "Urlaubsbilder" und "Vorlesungsfotos", in dem sich die Datei "Vorlesung_Informatik_1_Foto_2.jpg" befindet.

Alle deine Dateien befinden sich normalerweise in /home/lucas.

Dann wäre ein Dateipfad /home/lucas/Bilder/Urlaubsbilder und ein anderer /home/lucas/Bilder/Vorlesungsfotos/Vorlesung_Informatik_1_Foto_2.jpg.

Woher ich das weiß:Studium / Ausbildung – Informatik