Unter Linux speichert die Umgebungsvariable PATH die Namen von Pfaden, die nach den ausführbaren Dateien aller in der Befehlszeile eingegebenen Befehle durchsucht werden. Der Wert der Umgebungsvariablen PATH ist eine Zeichenfolge, die eine Reihe von Pfadnamen enthält, die jeweils durch einen Doppelpunkt getrennt sind. Der Standard-PATH auf einem typischen System könnte beispielsweise so aussehen:
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Wenn Sie einen Befehl wie cat eingeben und die Eingabetaste drücken, durchsucht die Shell jedes dieser Verzeichnisse nach einer ausführbaren Datei namens cat. Die erste, die es findet, ist diejenige, die es ausführt.
Um den aktuellen Wert Ihrer PATH-Umgebungsvariable anzuzeigen, können Sie den echo-Befehl verwenden. Wie bei allen Variablen in der Shell müssen Sie beim Verweis auf den Wert ein Dollarzeichen vor den Variablennamen setzen:
echo $PATH
Im obigen Beispiel bringt Sie der aktuelle Wert von path zur Eingabeaufforderung zurück.
Festlegen von PATH für Ihre aktuelle Shell-Sitzung
Sie können den Wert von PATH wie jede andere Shell-Variable in der Form NAME=VALUE wie folgt festlegen:
PATH=/my/first/path:my/second/path
Das Problem mit diesem Befehl ist, dass er die Werte, die Sie zuvor hatten, vollständig überschreibt, was Sie wahrscheinlich nicht wollen. Wenn Sie zusätzlich zu den alten einen neuen Wert hinzufügen möchten. Sie können dies erreichen, indem Sie in der neuen Definition auf PATH verweisen, wie folgt:
PATH=$PATH:/my/new/path
Mit dem obigen Befehl wird Ihr neuer Pfad zum aktuellen Wert von PATH hinzugefügt. Da die Pfadnamen der Reihe nach durchsucht werden, möchten Sie wahrscheinlich Ihren neuen Pfad am Ende der Variablen hinzufügen, wie wir es hier getan haben. Stattdessen, wenn Sie Folgendes eingegeben haben:
PATH=/my/new/path:$PATH
Ihr neuer Pfad würde vor, nicht nach den Standardsystempfaden gesucht werden.
Verwenden von export zum Übergeben der PATH-Umgebungsvariable an untergeordnete Prozesse
Diese Art von PATH-Definition legt die Umgebungsvariable für Ihre aktuelle Shell-Sitzung fest, aber alle neuen Programme, die Sie ausführen, sehen möglicherweise nicht den neuen Pfad, den Sie hinzugefügt haben. Das liegt daran, dass Sie mit Ihrer Shell die Umgebung steuern können, indem Sie manuell deklarieren müssen, welche Umgebungsvariablen an andere Programme und Prozesse weitergegeben werden. Sie können dies mit dem Befehl export erreichen. Wenn du läufst:
export PATH
Alle Prozesse, die Sie ausführen, bis Sie sich abmelden, verwenden den aktuellen Wert von PATH.
Wenn Sie möchten, können Sie diese beiden Befehle der Einfachheit halber in einer einzigen Zeile kombinieren. Setzen Sie ein Semikolon dazwischen, damit die Shell weiß, dass es sich um separate Befehle handelt:
PATH=$PATH:/my/new/path:/my/other/new/path;export PATH
Wenn einer Ihrer Pfadnamen Leerzeichen enthält, schließen Sie die Variablendefinition sicherheitshalber in Anführungszeichen ein.
PATH="$PATH:/putting/spaces in pathnames:/makes/life very/inconvenient";export PATH
Setzen der PATH-Variablen für jede neue Shell-Sitzung
Die bisher verwendeten Methoden setzen nur die Umgebungsvariable für Ihre aktuelle Shell-Sitzung; Wenn Sie sich abmelden oder das Terminalfenster schließen, werden Ihre Änderungen vergessen. Wenn Sie PATH jedes Mal auf einen bestimmten Wert setzen möchten, wenn Sie sich anmelden oder eine neue Shell-Sitzung starten, fügen Sie ihn Ihrem Bash-Startskript hinzu. Jedes Mal, wenn Sie eine interaktive Shell-Sitzung starten, liest bash die folgenden Dateien der Reihe nach (falls vorhanden) und führt die darin enthaltenen Befehle aus:
/etc/profile ~/.bash_profile ~/.bash_login ~/.profile
Die erste Datei, /etc/profile, ist das Standard-Startskript für jeden Benutzer auf dem System. Eine oder mehrere der verbleibenden drei Dateien befinden sich im Home-Verzeichnis jedes Benutzers. Alle drei können verwendet werden, aber es ist wichtig zu wissen, dass sie in dieser Reihenfolge gesucht werden.
Sie können diese Dateien bearbeiten und alle Zeilen, die PATH=-Definitionen enthalten, manuell ändern. Seien Sie dabei vorsichtig, da dies die Verzeichnisse sind, die zum Auffinden wichtiger Betriebssystemdateien verwendet werden.
Wenn Sie einen Pfad nur für Ihren aktuellen Benutzer hinzufügen möchten, können Sie die anderen PATH=-Zeilen unberührt lassen. Fügen Sie am Ende der Datei eine Zeile wie diese hinzu:
PATH="$PATH:/new/path";export PATH
Wenn Sie dies am Ende der Datei .bash_profile in Ihrem Home-Verzeichnis hinzufügen, wird es jedes Mal wirksam, wenn Ihr Benutzer eine neue Shell-Sitzung startet. Wenn Sie dies zu /etc/profile hinzufügen, wird es für jeden Benutzer auf dem System wirksam. Beachten Sie, dass Sie Administratorrechte benötigen, wenn Sie /etc/profile bearbeiten möchten, also können Sie sudo verwenden (oder als root angemeldet sein), um dies zu tun.