Einige Linux-Befehle sind uns so vertraut, dass wir nicht einmal bemerken, dass wir sie verwenden. Der cd-Befehl zum Wechseln von Verzeichnissen ist einer davon. Es gibt einige Tricks, die Ihnen helfen können, mit CD effizienter zu werden – oder Sie können ganz darauf verzichten.
Inhaltsverzeichnis
Ein Befehl, an den Sie selten denken
Sie blinzeln den ganzen Tag, jeden Tag, aber meistens sind Sie sich dessen nicht bewusst. Wenn dir nicht etwas ins Auge gerät, denkst du selten an diese kleine, regelmäßige Bewegung. Einige Linux-Befehle sind so. Sie schweben an der Peripherie deines Bewusstseins. Obwohl Sie sie täglich verwenden, fallen sie nicht auf, weil sie so klein und einfach sind.
Innerhalb der ersten Stunde nach der Verwendung eines Linux-Computers lernen Sie, wie Sie den Befehl cd verwenden, der in Bash und anderen Shells enthalten ist. Vielleicht hatten Sie bereits Erfahrung mit der Verwendung auf einem anderen Betriebssystem und brauchten keine Erklärung. Es ändert das aktuelle Arbeitsverzeichnis, oder? Was gibt es sonst noch zu wissen?
Nun, mehr als Sie denken. Hier sind ein paar Hinweise und Tipps, die Ihre Effizienz verbessern können.
Die Standard-CD-Operationen
Der Vollständigkeit halber gehen wir kurz die Standardanwendungen von cd durch.
Wenn wir uns im Home-Verzeichnis befinden, aber zu einem unter /usr/lib/firefox/browser wechseln und dann zum Home-Verzeichnis zurückkehren möchten, können wir die folgenden Befehle verwenden:
cd /usr/lib/firefox/browser/
cd /home/dave
Sie müssen nicht den gesamten Verzeichnispfad eingeben; Sie können die automatische Vervollständigung verwenden. Drücken Sie für jeden Teil eines Pfads, nachdem Sie genügend Buchstaben eingegeben haben, um den Namen des Verzeichnisses von den anderen zu unterscheiden, die Tabulatortaste, um den Verzeichnisnamen automatisch zu vervollständigen.
Geben Sie beispielsweise Folgendes in die Befehlszeile ein:
cd /usr/lib/fire
Drücken Sie nun die Tabulatortaste und die Shell füllt den Rest des „firefox“ -Verzeichnisses für Sie aus. Wenn Sie dem Pfad „/b“ hinzufügen und erneut die Tabulatortaste drücken, wird das Verzeichnis „browser“ zum Befehl hinzugefügt.
Die Shell fügt einen nachgestellten Schrägstrich hinzu, damit Sie den Tab-Vervollständigungsprozess wiederholen können. Aus diesem Grund gibt es beim ersten Befehl auch einen nachgestellten Schrägstrich. Auf der zweiten ist keine, weil diese getippt wurde.
Sie können die Tilde (~) als Kurzform verwenden, um von überall im Dateisystem schnell zum Home-Verzeichnis zurückzukehren; Geben Sie einfach Folgendes ein:
cd ~
Dies sind Beispiele für absolute Pfade, bei denen Sie den gesamten Pfad vom Root des Dateisystems bis zum Zielverzeichnis zu cd angeben.
Relative Pfade werden aus dem aktuellen Arbeitsverzeichnis referenziert. Im Home-Verzeichnis gibt es ein Verzeichnis namens work . Sie können den Baumbefehl verwenden, um siehe Verzeichnisbaum im Arbeitsverzeichnis – geben Sie einfach Folgendes ein:
tree
Das Arbeitsverzeichnis enthält ein Verzeichnis namens dev . Es gibt auch ein Verzeichnis namens dev im Stammverzeichnis des Dateisystems. Sie können ls mit -d (Verzeichnis) verwenden, um sich diese anzusehen. Die Option -hl (für Menschen lesbare, lange Auflistung) weist ls an, leicht lesbare Einheiten für die Verzeichnisgrößen und die Auflistung im langen Format zu verwenden.
Wenn Sie dev eingeben, nimmt die Shell an, dass Sie das „dev“ im aktuellen Verzeichnis meinen. Um zu erzwingen, dass das „dev“ im Root-Verzeichnis angezeigt wird, fügen Sie einfach einen führenden Schrägstrich hinzu, um das Root des Dateisystems darzustellen, wie unten gezeigt:
ls -d dev -hl
ls -d /dev -hl
Der Befehl cd verhält sich in dieser Hinsicht wie ls. Wenn Sie das Verzeichnis wie unten gezeigt als dev referenzieren, wird davon ausgegangen, dass Sie das Verzeichnis im Arbeitsverzeichnis meinen:
cd dev
Ohne führenden Schrägstrich wird davon ausgegangen, dass auch längere Pfade vom aktuellen Arbeitsverzeichnis aus beginnen, wie unten gezeigt:
cd dev/mobile/android
Ändern des Verzeichnisses mit Double Dot
Der Doppelpunkt-Identifikator repräsentiert das übergeordnete Verzeichnis des aktuellen Arbeitsverzeichnisses. Wenn Sie sich in einem tief verschachtelten Unterverzeichnis befinden, können Sie .. mit cd verwenden, um in das übergeordnete Verzeichnis des Verzeichnisses zu wechseln, in dem Sie sich befinden.
Dadurch werden Sie im Verzeichnisbaum zwei Verzeichnisse nach oben verschoben. Wenn Sie dem Befehl mehr .. hinzufügen, können Sie im Verzeichnisbaum eine beliebige Anzahl von Ebenen nach oben verschieben.
Geben Sie Folgendes ein:
cd ..
cd ../..
Sie können auch eine Reihe von Aliasnamen erstellen, um diese Manöver für Sie auszuführen, indem Sie Folgendes eingeben:
alias .2="cd ../.."
alias .3="cd ../../.."
Sie können diese wie die Befehle selbst verwenden.
Um die Aliase bei Neustarts Ihres Computers konsistent zu machen, müssen Sie sie zu Ihrer .bashrc- oder .bash_aliases-Datei hinzufügen.
Einfach zwischen zwei Verzeichnissen wechseln
Der Bindestrich (-) ist ein weiteres Symbol mit besonderer Funktion. Es ändert Ihr Verzeichnis wieder in dasjenige, aus dem Sie gerade gekommen sind.
Nehmen wir für dieses Beispiel an, Sie befinden sich im Verzeichnis „c“. Mit cd können Sie in das Verzeichnis „forth“ wechseln. Dann können Sie mit cd – zwischen den beiden Verzeichnissen hin- und herspringen.
Dazu geben Sie Folgendes ein:
cd ../her
CD –
CD –
Der Name des Verzeichnisses, in das Sie verschieben, wird angezeigt, bevor Sie dorthin wechseln.
Eine andere Art von Verwandten
Die Shell verwendet das aktuelle Arbeitsverzeichnis als „Root“- oder Basisverzeichnis für relative Pfade. Sie können die Umgebungsvariable CDPATH verwenden, um einen anderen Speicherort als Basisverzeichnis für relative Pfade festzulegen. Wenn Sie die meiste Zeit in einem bestimmten Abschnitt des Dateisystembaums verbringen, kann Ihnen dies jeden Tag viele Tastenanschläge (und Zeit) ersparen.
Geben wir Folgendes ein, um work/dev/projects zum Basisverzeichnis für relative Pfade zu machen:
export CDPATH=/home/dave/work/dev/projects
Jetzt wird jedes Mal, wenn Sie den Befehl dc verwenden, zuerst die Position in der Umgebungsvariablen CDPATH auf übereinstimmende Verzeichnisnamen überprüft. Wenn eines davon mit dem Ziel übereinstimmt, das Sie im cd-Befehl angegeben haben, werden Sie in dieses Verzeichnis übertragen.
Unabhängig davon, wo Sie sich im Dateisystem befinden, prüft die Shell jetzt, wenn Sie den Befehl cd verwenden, ob sich das Zielverzeichnis im Basisverzeichnis befindet. Wenn dies der Fall ist, werden Sie in dieses Zielverzeichnis verschoben.
Wenn Ihr Zielverzeichnis mit einem führenden Schrägstrich (/) beginnt, was es zu einem absoluten Pfad macht, wird es von der Umgebungsvariablen CDPATH nicht beeinflusst.
Um dies zu demonstrieren, geben wir Folgendes ein:
cd c
cd prolog
cd /usr
cd forth
Die Umgebungsvariable CDPATH ist wirklich ein Pfad, genau wie die Umgebungsvariable PATH. Wenn Sie einen Befehl eingeben, durchsucht die Shell die Speicherorte im PATH nach einer Übereinstimmung. Wenn Sie CDPATH verwenden, durchsucht die Shell die Speicherorte in der Umgebungsvariablen CDPATH nach einer Übereinstimmung. Ebenso wie PATH kann CDPATH mehrere Speicherorte enthalten.
Damit die Shell das aktuelle Verzeichnis vor anderen Orten in der CDPATH-Umgebungsvariablen durchsucht, fügen Sie einfach einen Punkt ( . ) am Anfang des Pfads wie folgt hinzu:
export CDPATH=.:/home/dave/work/dev/projects
Um Ihre Einstellungen dauerhaft zu machen, müssen Sie sie zu einer Konfigurationsdatei hinzufügen, z. B. .bashrc.
Beachten Sie Folgendes: Wenn Sie ein Basisverzeichnis festlegen, wirkt sich dies auch auf Verzeichnisänderungen innerhalb von Skripten aus. Um dies zu vermeiden, können Sie bei der Angabe Ihres CDPATH absolute Pfade in Ihren Skripten oder einen Test in Ihrer .bashrc-Datei verwenden, wie unten gezeigt:
if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi
Dies führt einen Test durch, um zu sehen, ob die Befehlszeilen-Prompt-Variable $PS1 gesetzt wurde. Die Umgebungsvariable CDPATH wird nur gesetzt, wenn der Test erfolgreich ist.
Shopt mit CD verwenden
Mit dem shopt-Befehl, können Sie bestimmte Optionen für die Shell festlegen. Einige davon können Ihre CD-Nutzung verbessern. Um sie zu setzen, verwenden Sie die Option -s (enable) mit shopt, um ihr einen Optionsnamen zu übergeben.
Die Option cdspell überprüft Ihre Verzeichnisnamen und korrigiert einige häufige Tippfehler, darunter vertauschte oder fehlende Zeichen oder Namen mit zu vielen Zeichen. Wenn ein Verzeichnis gefunden wird, das mit einer der Korrekturen übereinstimmt, wird der korrigierte Pfad ausgegeben und die CD-Aktion wird ausgeführt.
Als Beispiel geben wir Folgendes ein, um die cdspell-Option festzulegen, und schreiben „Desktop“ falsch, um zu sehen, ob die Shell dies für uns korrigiert:
shopt -s cdspell
cd Desktpo
Die Shell hat den Fehler erkannt, korrigiert und in das Verzeichnis „Desktop“ gewechselt.
Eine weitere Shopt-Option, die Sie mit CD verwenden können, ist autocd. Es macht das Eintippen von cd überflüssig. Alles, was Sie eingeben, bei dem es sich nicht um einen Befehl, kein Skript oder eine andere ausführbare Datei (z. B. ein Alias) handelt, wird als Zielverzeichnis verwendet. Wenn Sie in dieses Verzeichnis übertragen können, wird es im Terminalfenster gedruckt und Sie werden in dieses Verzeichnis geändert.
Als Beispiel geben wir Folgendes ein:
shopt -s autocd
/usr/local/games
/etc
~
Sehen! Sie können über das gesamte Dateisystem springen, ohne auch nur eine CD zu verwenden!
Die Einstellungen, die Sie mit shopt ändern, wirken sich nur auf interaktive Shells aus, nicht auf Skripte.
Die CD-Sammlung
All dies werden Sie wahrscheinlich nicht übernehmen. Es ist jedoch wahrscheinlich, dass Sie hier etwas Interessantes oder Vorteilhaftes gefunden haben. Schließlich ist alles gut, was Ihre Befehlszeilennavigation beschleunigt oder vereinfacht!