Heim Betriebssystem Die PATH-Variable in UNIX

Die PATH-Variable in UNIX

2458 17/08/2021

Die PATH-Variable

Nachdem Sie dieses Dokument gelesen haben, sollten Sie wissen, was die PATH-Variable ist, wie sie eingestellt wird und wie Sie die Verzeichnisse anzeigen, die sich gerade darin befinden.

Motivation

Betrachten Sie die folgende UNIX-Terminalsitzung:

dbettis@rhino[~]$ ls...

Wenn Sie den Befehl eingeben

ls

, die Shell führt den Befehl pflichtbewusst aus und gibt Ihnen die Ergebnisse zurück. Im Laufe einer Terminalsitzung geben Sie weitere Befehle ein. Dazu gehören Dinge wie

Emacs

,

Firefox

, so weiter und sofort. Aber woher kommen diese Befehle? Offensichtlich sind sie bei der Installation des Betriebssystems wieder enthalten, aber wo sind sie?

Der UNIX-Befehl

was

wird Ihnen den vollständigen Pfad zu binary mitteilen, das ausgeführt werden soll. Zum Beispiel:

dbettis@rhino[~]$ was ls/bin/ls

Das bedeutet, dass die ausführbare Datei für den Befehl

ls

befindet sich in

/bin

. Alternativ zum Laufen

ls

, Sie können den vollständigen Pfad zum Befehl eingeben:

dbettis@rhino[~]$ /bin/ls...

Es scheint jedoch, als wäre hier ein bisschen Magie im Gange. Woher weiß das System das?

ls

ist drin

/bin

? Der Weg, den das System kennt, ist der

PFAD

Umgebungsvariable!

Umgebungsvariablen

Erstens, was ist eine Umgebungsvariable? Es ist eine Variable, die für die Dauer einer Terminalsitzung bestehen bleibt. Anwendungen, die in dieser Sitzung ausgeführt werden, greifen auf diese Variablen zu, wenn sie Informationen über den Benutzer benötigen. Führen Sie Folgendes aus, um eine Liste aller Umgebungsvariablen anzuzeigen:

dbettis@rhino[~]$ exportdeclare -x USER="dbettis"...

Der Name der Variablen ist

BENUTZER

und der Inhalt dieser Variablen ist

dbettis

. Eine andere Möglichkeit, den Inhalt einer Umgebungsvariablen anzuzeigen, besteht darin, Folgendes zu tun:

dbettis@rhino[~]$ echo $USERdbettis

Die Umgebungsvariable PATH

Die Umgebungsvariable PATH hat ein spezielles Format. Mal sehen, wie es aussieht:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.

Es ist im Wesentlichen ein

:

-separierte Liste von Verzeichnissen. Wenn Sie einen Befehl ausführen, wird die Shell

durchsucht jedes dieser Verzeichnisse nacheinander

, bis es ein Verzeichnis findet, in dem die ausführbare Datei existiert. Denken Sie daran, dass wir gefunden haben

ls

ein

/bin

, richtig?

/bin

ist das zweite Element in der PATH-Variablen. Entfernen wir also

/bin

von

PFAD

. Wir können dies tun, indem wir die verwenden

Ausstellung

rt

Befehl:

< p>dbettis@rhino[~]$ export PATH=/usr/local/bin:/usr/bin:/sbin:/usr/sbin:.

Stellen Sie sicher, dass die Variable richtig gesetzt ist:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/usr/bin:/sbin:/usr/sbin:.

Nun, wenn wir versuchen zu rennen

ls

, die Shell weiß nicht mehr hineinzuschauen

/bin

!

dbettis@rhino[~]$ ls-bash: ls: Befehl nicht gefunden

Wie erwartet,

ls

kann nicht mehr gefunden werden. Lassen Sie uns hinzufügen

/bin

zurück zu

PFAD

, als

ls

ist eine sehr nützliche Sache.

dbettis@rhino[~]$ export PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.

Hinzufügen zu PATH

Es gibt viele Situationen, in denen Sie ein Element anhängen möchten

PFAD

.Lassen Sie uns zuerst sehen, was der Strom ist

PFAD

ist:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.

Der Weg zu

hinzufügen

ein Verzeichnis ist wie folgt:

dbettis@rhino[~]$ export PATH=$PATH:/new/path

Dieser Befehl fügt hinzu

/neu/Pfad

an

PFAD

. Mal sehen, ob es aktualisiert wurde:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.:/new/path

Damit dies jedes Mal passiert, wenn Sie sich anmelden

Es gibt eine spezielle Datei in Ihrem Home-Verzeichnis namens

.bashrc

In UNIX ist es eine Konvention, dass Dateien mit beginnen

.

sind Konfigurationsdateien und sollten daher nicht sichtbar sein.

ls

listet nur Dateien auf, die mit a beginnen

.

wenn bestanden

-a

Flagge. z.B.

dbettis@rhino[~]$ ls -a

Auf jeden Fall enthält diese Datei (.bashrc) einfach eine Liste von Befehlen. Jeder dieser Befehle wird jedes Mal ausgeführt, wenn Sie eine Newshell erstellen.

dbettis@rhino[~]$ cat .bashrcexport PATH="$PATH:/p/firefox/bin"..

Jedes Mal, wenn eine Shell gestartet wird,

/p/firefox/bin

wird hinzugefügt

PFAD

. Wenn Sie möchten, dass bestimmte Verzeichnisse automatisch hinzugefügt werden

PFAD

, platzieren Sie diese Befehle einfach am Ende dieser Datei. Melden Sie sich ab und wieder an, um die Änderungen anzuzeigen. Alternativ können Sie den Inhalt dieser Datei in die aktuelle Sitzung laden:

dbettis@rhino[~]$ . .bashrc

Neueste: Norton 360 Platinum 2021 - Antivirus -Software für 20 Geräte mit automatischer Erneuerung - 3 Monate kostenlos - enthält VPN, PC Cloud Backup & Dark Web Monitoring [Download]
NÄCHSTE: So aktualisieren Sie USB -Treiber unter Windows 10 (automatisch und manuell)
Populäre Artikel/span>
Back to top