GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Navigationstipps für die Linux-Befehlszeile:Die Grundlagen der Befehle pushd und popd

Im ersten Teil dieser Serie haben wir uns auf den Aspekt der Befehlszeilennavigation in Linux konzentriert, indem wir die Verwendung von cd - besprochen haben Befehl. Einige andere verwandte Punkte/Konzepte wurden ebenfalls diskutiert. Um die Diskussion weiterzuführen, werden wir in diesem Artikel diskutieren, wie Sie mit den Befehlen pushd und popd eine schnellere Navigation auf der Linux-Befehlszeile erreichen können.

Bevor wir fortfahren, sollten Sie mitteilen, dass alle nachstehend erwähnten Anweisungen und Befehle auf Ubuntu 14.04 und der Bash-Shell (Version 4.3.11) getestet wurden.

Die Grundlagen der pushd- und popd-Befehle

Um besser zu verstehen, was genau pushd- und popd-Befehle tun, wollen wir zuerst das Konzept von Stack besprechen. Stellen Sie sich einen leeren Bereich auf Ihrer Küchenplatte vor und stellen Sie sich nun eine Reihe von Tellern vor, die Sie dort aufbewahren möchten. Was wirst du tun? Einfach, halten Sie sie übereinander.

Am Ende des gesamten Prozesses ist also die erste Platte, die Sie auf der Platte behalten haben, die letzte Platte im Stapel, und die letzte Platte, die Sie in der Hand hatten, ist die erste Platte im Stapel. Wenn Sie jetzt einen Teller benötigen, wählen Sie den zuoberst auf dem Stapel aus, verwenden ihn und wählen dann bei Bedarf den nächsten aus.

Ähnlich ist das Konzept der pushd- und popd-Befehle. Auf Ihrem Linux-System gibt es einen Verzeichnisstapel, in dem Sie Verzeichnispfade für die zukünftige Verwendung stapeln können. Mit den dirs können Sie den Inhalt des Stacks jederzeit schnell einsehen Befehl.

Hier ist ein Beispiel, das die Ausgabe des Befehls dirs auf meinem System unmittelbar nach dem Start des Befehlszeilenterminals zeigt:

$ dirs
~

Die Tilde (~) in der Ausgabe bedeutet, dass der Verzeichnisstapel derzeit nur das Home-Verzeichnis des Benutzers enthält.

Im Folgenden wird das Speichern und Entfernen eines Verzeichnispfads mit den Befehlen pushd und popd ausgeführt. Die Verwendung von pushd ist sehr einfach – übergeben Sie einfach den Pfad, den Sie im Verzeichnisstapel speichern möchten, als Argument an diesen Befehl. Hier ist ein Beispiel:

pushd /home/himanshu/Downloads/

Der obige Befehl ändert Ihr aktuelles Arbeitsverzeichnis in das Verzeichnis, das Sie als Argument übergeben haben, und fügt auch den Pfad zum Verzeichnisstapel hinzu. Um es dem Nutzer bequemer zu machen, erzeugt der Befehl pushd den Inhalt des Verzeichnisstapels in seiner Ausgabe. Wenn also der obige Befehl ausgeführt wurde, wurde die folgende Ausgabe erzeugt:

~/Downloads ~

Die Ausgabe zeigt, dass jetzt zwei Verzeichnispfade im Stack vorhanden sind:Einer ist das Home-Verzeichnis des Benutzers und der andere das Download-Verzeichnis des Benutzers. Die Reihenfolge, in der sie aufbewahrt werden, ist:Das Home-Verzeichnis befindet sich unten und das neu hinzugefügte Downloads-Verzeichnis befindet sich darüber.

Um zu überprüfen, ob das, was pushd in seiner Ausgabe sagt, wahr ist, können Sie auch den dirs-Befehl verwenden:

$ dirs
~/Downloads ~

Sie können also sehen, dass auch der dirs-Befehl die gleiche Ausgabe erzeugt hat.

Lassen Sie uns ein paar weitere pushd-Befehle ausgeben:

$ pushd /usr/lib/; pushd /home/himanshu/Desktop/
/usr/lib ~/Downloads ~
~/Desktop /usr/lib ~/Downloads ~

Der Verzeichnisstapel enthält also nun insgesamt vier Verzeichnispfade, wobei das Home-Verzeichnis (~) ganz unten und das Desktop-Verzeichnis des Benutzers ganz oben liegt.

Denken Sie immer daran, dass der Kopf des Stapels das Verzeichnis ist, in dem Sie sich gerade befinden. Das bedeutet, dass unser aktuelles Arbeitsverzeichnis jetzt ~/Desktop ist.

Nehmen wir nun an, Sie wollen zurück in das /usr/lib-Verzeichnis, also brauchen Sie nur den popd-Befehl auszuführen:

$ popd
/usr/lib ~/Downloads ~

Der Befehl popd wechselt nicht nur Ihr aktuelles Verzeichnis zu /usr/lib, er entfernt auch ~/Desktop aus dem Verzeichnisstapel – wie aus der Ausgabe des Befehls hervorgeht. Auf diese Weise können Sie mit dem Befehl popd in umgekehrter Reihenfolge durch diese Verzeichnisse navigieren.

Einige fortgeschrittene Punkte

Nachdem wir nun die Grundlagen der Befehle pushd und popd besprochen haben, wollen wir zu einigen anderen Details übergehen, die sich auf diese Befehle beziehen. Zunächst einmal können Sie mit diesen Befehlen auch den Verzeichnisstapel bearbeiten. Angenommen, Ihr Verzeichnisstapel sieht beispielsweise so aus:

$ dirs
~/Desktop /usr/lib ~ ~/Downloads

Angenommen, die Anforderung besteht darin, die Reihenfolge der Verzeichnispfade im Stapel so zu ändern, dass das oberste Element (~/Desktop) ganz unten kommt und alle anderen jeweils um eine Stelle nach oben rücken. Dies kann mit dem folgenden Befehl erreicht werden:

pushd +1

Und hier ist, was der obige Befehl mit dem Verzeichnisstapel macht:

$ dirs
/usr/lib ~ ~/Downloads ~/Desktop

Wir sehen also, dass die Reihenfolge der Elemente im Verzeichnisstapel geändert wurde und jetzt so ist, wie wir es wollten. Natürlich können Sie die Verzeichnisstapelelemente beliebig oft verschieben. Mit dem folgenden Befehl werden sie beispielsweise zweimal nach oben verschoben:

$ pushd +2
~/Downloads ~/Desktop /usr/lib ~

Sie können auch negative Indizes verwenden:

$ pushd -1
/usr/lib ~ ~/Downloads ~/Desktop

In ähnlicher Weise können Sie diese Technik mit dem Befehl popd verwenden, um jeden Eintrag aus dem Verzeichnisstapel zu entfernen, ohne Ihr aktuelles Arbeitsverzeichnis zu verlassen. Wenn Sie beispielsweise den dritten Eintrag von oben (derzeit ~/Downloads) mit popd entfernen möchten, können Sie den folgenden Befehl ausführen:

popd +2

Denken Sie daran, dass der Stapelindex mit 0 beginnt, also haben wir 2 verwendet, um auf den dritten Eintrag zuzugreifen.

Der Verzeichnisstapel enthält also jetzt:

$ dirs
/usr/lib ~ ~/Desktop

Bestätigen, dass der Eintrag entfernt wurde.

Wenn Sie aus irgendeinem Grund Schwierigkeiten haben, sich an die Reihenfolge zu erinnern, in der Elemente im Verzeichnisstapel positioniert sind, sowie an die Indizes, die sie enthalten, können Sie die Befehlszeilenoption -v mit dem Befehl dirs verwenden. Hier ist ein Beispiel:

$ dirs -v
0 /usr/lib
1 ~
2 ~/Desktop

Wie Sie wahrscheinlich bemerkt haben, sind die Zahlen auf der linken Seite Indizes, und was ihnen folgt, ist der Verzeichnispfad, der an diesem Index positioniert ist.

Hinweis :Verwenden Sie die Befehlszeilenoption -c mit dem Befehl dirs, um den Verzeichnisstapel zu löschen.

Lassen Sie uns nun kurz die praktische Verwendung der Befehle popd und pushd besprechen. Auch wenn ihre Verwendung auf den ersten Blick etwas kompliziert erscheinen mag, sind diese Befehle beim Schreiben von Shell-Skripten praktisch - Sie müssen sich nicht daran erinnern, woher Sie kommen; machen Sie einfach ein popd und Sie sind zurück in dem Verzeichnis, aus dem Sie gekommen sind.

Erfahrene Skriptautoren verwenden diese Befehle normalerweise folgendermaßen:

popd >/dev/null 2>&1

Der oben genannte Befehl stellt sicher, dass popd stumm bleibt (keine Ausgabe erzeugt). In ähnlicher Weise können Sie pushd auch stumm schalten.

Die Befehle pushd und popd werden auch von Linux-Serveradministratoren verwendet, die normalerweise ständig zwischen einer Handvoll derselben Verzeichnisse wechseln. Einige andere wirklich informative Anwendungsfälle werden hier erklärt.

Schlussfolgerung

Zugegeben, das Konzept von pushd und popd ist nicht sehr geradlinig. Aber alles, was es braucht, ist ein bisschen Übung – ja, Sie müssen sich die Hände schmutzig machen. Verbringen Sie einige Zeit mit diesen Befehlen und Sie werden anfangen, sie zu mögen, besonders wenn es einen Anwendungsfall gibt, in dem sie Ihnen das Leben leichter machen.


Linux
  1. Überwachen Sie Befehle und Aufgaben mit dem Linux-Überwachungsbefehl

  2. 8 Tipps für die Linux-Kommandozeile

  3. Verwenden Sie „pushd“ und „popd“ für eine effiziente Dateisystemnavigation unter Linux

  4. Tipps/Tricks zur Linux-Kommandozeilennavigation 3 - die CDPATH-Umgebungsvariable

  5. Grundlagen der Linux-Befehlszeile – Ausführen von Befehlen über die Befehlszeile

So verwenden Sie die Befehle Pushd, Popd und Dirs für eine schnellere CLI-Navigation

Grundlagen der Linux-Befehlszeile:sudo

5 Befehle zum Anzeigen des Inhalts einer Datei in der Linux-Befehlszeile

Die größten Dateien und Ordner in der Linux-Befehlszeile finden

19 Nützliche Tipps und Tricks für die Linux-Befehlszeile

Grundlagen der Linux-Befehlszeile – Arbeiten mit Dateien und Verzeichnissen