Linux & Co.

Linux-Terminal-Basics 2: Navigieren

Ordner und Laufwerke wechseln - die vielleicht erste Aufgabe im Terminal überhaupt.

Für blutige Anfänger ist schon das Navigieren in einen bestimmten Ordner eine Aufgabe mit Fragezeichen – und da gibt es zwei Wege, die Ihr kennen solltet. Einer ist super simpel, der andere nur super ;) Und für alle GUI-Fetischisten, die das schon wieder kompliziert finden: Auch Doppelklicks sind nicht intuitiv, das glaubt Ihr nur.

In unserer Serie zu Linux-Terminal-Basics zeigen wir Euch, wie Ihr einige der wichtigsten Aufgaben auf der Kommandozeile erledigen könnt – vom Navigieren, über Dateioperationen, bis hin zu komplexen Suchaufträgen. Als Terminal verwenden wir Bash und auch wenn Linux im Vordergrund steht, funktioniert fast alles auch unter Windows. Und nun noch die Links zur Einleitung und zur Übersicht aller Artikel.

Navigieren mit cd

Für das tagtägliche Verzeichniswechseln kommt das Tool cd zum Einsatz, das für “change directory” steht. Ihr könnt in Verzeichnisse nach Namen und Pfaden wechseln:

cd mein-ordner
cd /home/mirco/mein-ordner
cd ~/mein-ordner

Nicht ganz so selbstverständlich ist die Navigation eine Hierarchiestufe rauf – dafür stehen zwei Punkte:

mirco@ubuntu:~/ordner1/ordner2/ordner3$ cd ..
mirco@ubuntu:~/ordner1/ordner2$ cd ../..
mirco@ubuntu:~~/ordner1$

Und natürlich lässt sich das auch kombinieren:

mirco@ubuntu:~/ordner1/ordner2/ordner3$ cd ../foobar
mirco@ubuntu:~/ordner1/ordner2/foobar

Was aber fehlt ist ein echtes “Zurück”.

Hin und her mit pushd/popd

Wenn Ihr von einem Ordner in einen Ordner wechselt, der nicht in derselben Hierarchie oder schlicht weiter weg ist, ist es häufig schön, sagen zu können: “Gehe dorthin zurück, wo ich herkam.” Das geht mit den Befehlen pushd (push directory) und popd (pop directory). Einen ausführlichen Artikel dazu haben wir hier.

Das Konzept ist im Grunde simpel: pushd wechselt in ein Verzeichnis und legt dessen Pfad in einen sogenannten Stapel (stack) – einfach eine Liste der mittels pushd besuchten Pfade. Das aktuelle Verzeichnis liegt also ganz oben auf dem Stapel. popd wiederum wechselt zum vorigen Verzeichnis und löscht das eben verlassene Verzeichnis vom Stapel.

Den Stapel könnt Ihr Euch mit dem Befehl dirs auch anschauen. Allerdings kommt die dirs-Ausgabe nach jedem popd- oder pushd-Befehl automatisch.

Klingt kompliziert, ist in der Praxis aber trivial. Hier mal der Weg vom Home-Verzeichnis Schritt für Schritt über die Ordner ordner1/ordner2/ordner3 und wieder zurück:

mirco@cmkserver:~$ pushd ordner1/
~/ordner1 ~
mirco@cmkserver:~/ordner1$ pushd ordner2/
~/ordner1/ordner2 ~/ordner1 ~
mirco@cmkserver:~/ordner1/ordner2$ pushd ordner3/
~/ordner1/ordner2/ordner3 ~/ordner1/ordner2 ~/ordner1 ~
mirco@cmkserver:~/ordner1/ordner2/ordner3$ popd
~/ordner1/ordner2 ~/ordner1 ~
mirco@cmkserver:~/ordner1/ordner2$ popd
~/ordner1 ~
mirco@cmkserver:~/ordner1$ popd
~
mirco@cmkserver:~$

Der erste Stack in Zeile 2 lautet ~/ordner1 ~ und zeigt zwei Einträge: Unten (rechts) als Ausgangspunkt das Home-Verzeichnis und oben (links) das ordner1-Verzeichnis. Dann kommen ordner2 und ordner3 hinzu und mit popd geht es dann wieder zurück, bis der Stack wieder nur noch das Ausgangs-, hier also das Home-Verzeichnis (~) zeigt.

Zugegeben, in der Praxis nutzen das vermutlich eher die Wenigsten ;) Aber wie viel einfacher das sein kann, zeigt der Vergleich mit dem cd-zwei-Punkte-System. Jeweils von Ordner …/foo ../bar und zurück:

cd ~/mein/super/ordner/mit/vielen/hierarchien/foo
cd ~/ganz/andere/hierarchie/bar
cd ../../../../mein/super/ordner/mit/vielen/hierarchien/foo

pushd ~/mein/super/ordner/mit/vielen/hierarchien/foo
pushd ~/ganz/andere/hierarchie/bar
popd

Ihr könnt die zwei Punkte natürlich auch mit pushd verwenden! Aber Ihr seht hoffentlich, dass etwaiges Zurücknavigieren mit cd schnell unübersichtlich wird, fehleranfällig ist und auch schlicht mehr Tipparbeit verursacht.

Ein kleiner Hinweis für Windows: Ihr seid dort Pfade in der Form C:\mein\ordner gewohnt. In der Bash gilt es, die Linux-typische Schreibweise /c/mein/ordner zu nutzen.

Weitere Hilfen für die Kommandozeile liefert unsere hauseigene Linux-Hilfe cli.help direkt im Terminal.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.helpTestweise bei Mastodon

3 Kommentare

  1. In der Regel hüpft man ja meist zwischen 2 Ordnern hin und her. Da mache ich meist je ein CD mit mit der Pfadangabe. Diese Befehle sind dann in der Historie vorhanden.

    1. Für ein einfaches Zurück genügt das, man würde aber eben etwa von Ordner2 zurück nach Ordner1 zurück nach Ordner2 zurück nach Ordner1 und so weiter navigieren, also immer hin und her. Mit pushd/popd kannst Du alle besuchten Verzeichnisse zurück gehen, also etwa von Ordner3 nach Ordner2 nach Ordner1 etc.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"