Schnelle Verzeichniswechsel auf der Konsole

Aus LinuxUser 10/2017

Schnelle Verzeichniswechsel auf der Konsole

© Oleksii Olkin, 123RF

Jump!

Autojump, Bd und Fasd verbessern den Workflow von Kommandozeilenarbeitern durch schnellere Navigation im Dateisystem.

Die Arbeit auf der Konsole lässt Sie mit einiger Übung die wahre Kraft spüren, die in Linux steckt. Allerdings geben sich die Standard-Tools nicht immer so komfortabel, wie es sich ambitionierte oder professionelle Anwender wünschen.

Wenn Sie viel auf der Konsole arbeiten, verwenden Sie vermutlich häufig den Befehl cd, was für “change directory” steht, also den Verzeichniswechsel. Wir stellen Ihnen ein paar Helferlein vor, die hier etwas mehr Komfort und Geschwindigkeit versprechen, besonders beim Verzeichniswechsel in tief verschachtelten Pfaden. Als Werkzeuge für verschiedene Shells treten Bd, Autojump und Fasd an.

Wenig Komfort

Die verschiedenen Shells unter Linux bieten von Hause aus bereits einige Hilfen an, um sich auf der Befehlszeile im Verzeichnisdschungel besser zurechtzufinden. Das beginnt mit der Orientierung, wo Sie sich gerade befinden. Hier hilft pwd, indem der Befehl das derzeitige Arbeitsverzeichnis angibt. Möchten Sie nun eine oder mehrere Ebenen nach oben springen, erledigen Sie das in der Regel via cd ... Die beiden Punkte symbolisieren jeweils einen Schritt nach oben in Richtung der Wurzel. Zwei Schritte nach oben springen Sie mit cd ../...

Bei häufigen Verzeichniswechseln steht hier aber viel Tipparbeit an, bei der schnell ein Fehler passiert. Müssen Sie häufig zwischen nur zwei Verzeichnissen wechseln, die sich an verschiedenen Stellen im Verzeichnisbaum befinden, so hilft der Befehl cd -, der Sie zum zuletzt besuchten Verzeichnis bringt.

Als weitere eingebaute Hilfe dient der Directory Stack: Mehrere Verzeichnisse lassen sich in einen Stapel packen. Die Bash bringt zur Navigation in diesem Stapel die Befehle pushd, popd und dirs mit [1]. Ersetzen Sie zum Verzeichniswechsel cd durch pushd, legt die Shell das zu betretende Verzeichnis immer oben auf einen Stapel. Den merkt sie sich und zeigt ihn nach dem Befehl auch an, sodass Sie sich das sparen können. Mit popd arbeiten Sie sich im Stapel wieder zurück.

Möchten Sie sich orientieren, zeigt der Befehl dirs -l -v den gesamten Stapel an. Um den Stapel zu erstellen, müssen Sie die Verzeichnisse also zunächst mit pushd ansteuern, um sie dem Stack hinzuzufügen. Das erweist sich als nützlich, wenn Sie in einer Arbeitssitzung etwa zwischen wenigen Verzeichnissen wechseln müssen, da das Werkzeug den Stapel durchnummeriert und Sie Ordner mit diesen Nummern anspringen.

Dass es auch komfortabler geht, zeigen die im Folgenden vorgestellten Werkzeuge, die alle gängigen Distributionen in ihren Repositories führen. Das Kommando Whohas, das Sie über Ihren Paketmanager installieren, gibt Aufschluss darüber, wo Sie diese finden. Mit whohas autojump erhalten Sie eine Liste, welche Distributionen das Paket führen, inklusive der Version und dem jeweiligen Zweig.

Auch das kleine Script Bd [2] richten Sie für viele Distributionen über den Paketmanager ein. Nach der Installation aus dem Paketmanager geben Sie die zwei Befehle aus Listing 1 ein, um die Ausführung von Bd zu vereinfachen. Steht Bd für das von Ihnen genutzte Linux-Derivat nicht zur Verfügung, nehmen Sie eine manuelle Installation anhand der Erläuterungen von der Github-Seite des Projekts vor.

Listing 1

$ echo alias bd='. bd -si' >> ~/.bashrc
$ source ~/.bashrc

Kurzer Rückweg

Stellen Sie sich vor, Sie haben sich per Cd ins Verzeichnis /home/fritz/foo/bar/bat/test/bd/ begeben und möchten nun zurück nach /home/fritz/foo/bar/. Sie würden üblicherweise cd ../../../ eingeben. Mit dem soeben installierten ersten Helferlein genügt dazu bereits ein bd bar: Da Bd die Autovervollständigung beherrscht, müssen Sie die Verzeichnisnamen nicht ausschreiben, meist genügen zwei oder drei Buchstaben.

Bd agiert nur zurück, nicht vorwärts. Dafür lässt es sich aber auch mit anderen Befehlen wie beispielsweise Ls, Du, Zip oder Tar zusammen anwenden. So listet ls -l `bd ba` den Inhalt des Verzeichnisses /bar auf, obwohl Sie sich immer noch in /bd befinden. Der Aufruf du -cs `bd fr` zeigt die Größe von /fritz an (Abbildung 1).

Abbildung 1: Das kleine Skript Bd bringt Sie schnell zurück im Verzeichnisbaum und erlaubt auch das Einbinden weiterer Befehle.

Abbildung 1: Das kleine Skript Bd bringt Sie schnell zurück im Verzeichnisbaum und erlaubt auch das Einbinden weiterer Befehle.

Autojump

Das zweite Werkzeug dieses Artikels macht sich die Grundlagen des oben beschriebenen Directory Stack zunutze und baut diese weiter aus. Auch Autojump [3] erleichtert das Navigieren im Verzeichnisbaum, im Gegensatz zu Bd aber in beide Richtungen. Autojump lässt sich unter Linux, Mac OS und Windows mit den Shells Bash (ab Version 4.0), Zsh, Fish und experimentell auch mit Tcsh und Clink verwenden.

Die meisten Distributionen bieten Autojump in paketierter Form an. Unter Debian und dessen Ablegern integrieren Sie das Tool mit den Kommandos aus Listing 2 ins System. Autojump arbeitet mit einer Datenbank, die Sie zunächst füllen müssen, indem Sie noch eine Weile mit Cd weiterarbeiten. Alternativ springen Sie gezielt die Ordner an, die Sie häufig verwenden.

Listing 2

$ echo '. /usr/share/autojump/autojump.sh'  >> ~/.bashrc
$ source ~/.bashrc

Die Datenbank finden Sie unter ~/.local/share/autojump/autojump.txt. Den Bestand der Datenbank fragen Sie jederzeit mit j --stat ab. Der Aufruf j --purge entfernt nicht mehr existente Verzeichnisse aus der Datenbank.

Falls Sie Fasd [4], das dritte Helferlein dieses Artikels, ebenfalls testen wollen, so ergibt es Sinn, es jetzt zu installieren, denn es profitiert ebenfalls von den Aktionen zum Füllen der Datenbank. Um sie zu berücksichtigen, bedarf es nach der Installation noch der Eingaben aus Listing 3.

Listing 3

$ echo eval '$(fasd --init auto)'  >> ~/.bashrc
$ source ~/.bashrc

Datenbankbasiert

Verzeichnisse, die Autojump in seiner Datenbank vorhält, lassen sich einfach mit dem Wrapper j anspringen. So gelangen Sie mit j Dow in das Verzeichnis ~/Downloads. Genauso bringt Sie aber auch j loa dorthin. Die Tiefe der Verzeichnishierarchie spielt dabei keine Rolle, Hauptsache, das gewünschte Unterverzeichnis wurde ein Mal mit cd besucht.

Sollten Sie der besseren Übersicht wegen in Ihren Dateimanager wechseln wollen, so öffnet jo Dow das Verzeichnis bei Plasma in Dolphin oder bei Gnome in Nautilus (Abbildung 2). Geben Sie lediglich j ein, so springt der Befehl das am meisten besuchte Verzeichnis an. Dazu benutzt Autojump eine interne Gewichtung.

Abbildung 2: Fehlt in der Konsole der Überblick, öffnet Autojump das gewünschte Verzeichnis auch im Dateimanager.

Abbildung 2: Fehlt in der Konsole der Überblick, öffnet Autojump das gewünschte Verzeichnis auch im Dateimanager.

Wenn Sie mit j --stat den Inhalt der Datenbank aufrufen, so sehen Sie vor den jeweiligen Pfaden verschiedene Zahlen, beispielsweise 22.4: /home/devil/Downloads/piwik. Diese Ziffernfolge stellt die interne Gewichtung dar (Abbildung 3). Dazu ein Beispiel: In der Datenbank stehen die folgenden Verzeichnisse:

30 /home/user/mail/inbox
10 /home/user/work/inbox
Abbildung 3: Die Zahlen in der Datenbank dienen der internen Gewichtung und sagen aus, welche Verzeichnisse wie oft besucht wurden.

Abbildung 3: Die Zahlen in der Datenbank dienen der internen Gewichtung und sagen aus, welche Verzeichnisse wie oft besucht wurden.

In diesem Fall wechselt Autojump bei der Eingabe von j in wegen der höheren Gewichtung nach /home/user/mail/inbox/. Um in das geringer gewichtete Verzeichnis zu gelangen, wäre j w in der richtige Befehl. Über die Parameter --increase (-i) und --decrease (-d) können Sie die Gewichtungen verändern. Weitere Hinweise zur Syntax liefert j --help.

Alternativ lassen Sie sich beim Vorhandensein mehrerer ähnlicher Verzeichnisse mittels Autovervollständigung durch [Tab] die Einträge nummeriert anzeigen und wählen dann anhand der Zahl den entsprechenden Eintrag aus.

TIPP

Hin und wieder kommt es bei Autojump vor, dass die Datenbank sich plötzlich leert. Das ist extrem ärgerlich, weil man dann mit der Indexierung von vorne beginnen muss. Sichern Sie also besser vorsichtshalber die Datenbank ab und zu manuell.

Turbo

Die dritte Software im Bunde nennt sich Fasd [4], dessen Entwickler sich von Autojump inspirieren ließ. Dabei geht die Software aber über das Vorbild hinaus, indem es die Möglichkeiten nicht mehr auf die Navigation im Verzeichnisbaum beschränkt, sondern auch Dateien indiziert. Fasd funktioniert mit den Shells Ash, Bash, Zsh, Mksh, Pdksh, Dash und Busybox unter Linux sowie /bin/sh in FreeBSD 9 und OpenBSD.

Mit Fasd lassen sich Dateien mit der Eingabe nur weniger Zeichen in Vim oder einem von Ihnen definierten Editor öffnen, PDFs anschauen sowie Filme und Musik mit Mplayer oder Ihrem Lieblingsplayer abspielen. Die Buchstaben des Akronyms Fasd stehen für vordefinierte Aliase, die verschiedene Arten von Daten verarbeiten.

Geben Sie fein, zeigt Ihnen das Tool die besuchten Dateien mitsamt deren Gewichtung. Die Eingabe von d liefert dasselbe für Verzeichnisse, während a beides auflistet. Mit zz gelangen Sie zu einer Ansicht, in der Sie über die vorangestellte Nummer einen Eintrag wählen (Abbildung 4).

Abbildung 4: Bei Fasd w&auml;hlen Sie mit <code>z</code> und wenigen Zeichen das gew&uuml;nschte Verzeichnis. Mit <code>zz</code> w&auml;hlen Sie aus der Datenbank.

Abbildung 4: Bei Fasd wählen Sie mit z und wenigen Zeichen das gewünschte Verzeichnis. Mit zz wählen Sie aus der Datenbank.

Durch Definition weiterer Aliase lassen sich verschiedenste Dateien öffnen, wie etwa PDFs (Abbildung 5). Dazu legen Sie wiederum in der .bashrc den folgenden Stellvertreter an:

alias o='a -e xdg-open'

Nun sourcen Sie die Datei, wie bereits in Listing 2 und Listing 3 gezeigt. Auch hier gilt: Fasd erkennt nur Objekte, die wie unter Autojump bereits indexiert wurden.

Abbildung 5: Durch die Definition weiterer Aliase erweitern Sie Fasd, wie hier um die Anzeige von PDF und anderen Formaten.

Abbildung 5: Durch die Definition weiterer Aliase erweitern Sie Fasd, wie hier um die Anzeige von PDF und anderen Formaten.

Auch Filme oder Musik lassen sich mit wenigen Tastenanschlägen starten. Damit das funktioniert, tragen Sie alias m='f -e mplayer' in die .bashrc ein. Alternativ verwenden Sie einen anderen Player oder ändern den Aufrufschalter m in einen anderen. Dann starten Sie Filme oder Musik einfach mit mTeil des Titels.

Wie Autojump erlaubt auch Fasd das Verwenden von Buchstaben aus der Mitte des Namens. Der Aufbau der Aliase ist einfach. Das -e steht für “execute”, also ausführen. Für Dateien wählen Sie f, für Verzeichnisse d. Soll der Alias beides umfassen, wie der für Xdg-open [5], dann wählen Sie a. Auf Github zeigt das Projekt einen Überblick über viele weitere Optionen des Tools.

Fazit

Alle drei vorgestellten Werkzeugen haben eines gemeinsam: Sie laufen nicht in Dropdown-Terminals wie Yakuake oder Guake, sondern nur in Konsole oder Terminal. Allerdings steht das nirgends geschrieben, sodass der Autor während des Tests zeitweise an seinen Fähigkeiten zweifelte. Alle drei Helfer haben ihre Daseinsberechtigung und bauen quasi aufeinander auf.

Wenn Sie nicht ständig auf der Kommandozeile arbeiten, erleichtert Ihnen Bd das Navigieren, ohne dass Sie viel dazulernen müssen. Autojump bietet schon einiges mehr und springt in den Verzeichnissen in beliebige Richtungen. Das passt zum Workflow eines Anwenders, der sich viel auf Servern bewegt und auch sonst seine Administration gerne im Terminal erledigt. Hier spart Autojump nach der Einarbeitungsphase einiges an Zeit.

Fasd erweitert das Spektrum nochmals, da es auch Dateien indexiert und somit für alle Dateien auf dem Rechner zuständig zeichnet. Zudem bietet es professionelle Optionen, um die Arbeit damit noch weiter an die eigenen Bedürfnisse anzupassen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2017 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben