
Wenn Sie einen Befehl in die Befehlszeile eingeben, sagen Sie der Shell im Grunde, dass sie eine ausführbare Datei mit dem angegebenen Namen ausführen soll. Unter Linux sind diese ausführbaren Programme wie ls
, find
, file
und andere befinden sich normalerweise in mehreren verschiedenen Verzeichnissen auf Ihrem System. Jede Datei mit ausführbaren Berechtigungen, die in diesen Verzeichnissen gespeichert ist, kann von jedem Ort aus ausgeführt werden. Die häufigsten Verzeichnisse für ausführbare Programme sind /bin
, /sbin
, /usr/sbin
, /usr/local/bin
und /usr/local/sbin
.
Aber woher weiß die Shell, welche Verzeichnisse nach ausführbaren Programmen zu durchsuchen sind? Durchsucht die Shell das gesamte Dateisystem?
Die Antwort ist einfach. Wenn Sie einen Befehl eingeben, durchsucht die Shell alle Verzeichnisse, die im Benutzer $PATH
angegeben sind Variable für eine ausführbare Datei dieses Namens.
Dieser Artikel zeigt, wie Sie Ihrem $PATH
Verzeichnisse hinzufügen in Linux-Systemen.
Was ist $PATH
unter Linux #
Der $PATH
Umgebungsvariable ist eine durch Doppelpunkte getrennte Liste von Verzeichnissen, die der Shell mitteilt, in welchen Verzeichnissen nach ausführbaren Dateien gesucht werden soll.
Um zu überprüfen, welche Verzeichnisse sich in Ihrem $PATH
befinden , können Sie entweder den printenv
verwenden oder echo
Befehl:
echo $PATH
Die Ausgabe sieht in etwa so aus:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Wenn Sie zwei ausführbare Dateien mit demselben Namen in zwei verschiedenen Verzeichnissen haben, führt die Shell die Datei aus, die sich in dem Verzeichnis befindet, das in $PATH
an erster Stelle steht .
Hinzufügen eines Verzeichnisses zu Ihrem $PATH
#
Es gibt Situationen, in denen Sie andere Verzeichnisse zum $PATH
hinzufügen möchten Variable. Beispielsweise können einige Programme an verschiedenen Orten installiert sein, oder Sie möchten vielleicht ein dediziertes Verzeichnis für Ihre persönlichen Skripte haben, diese aber ausführen können, ohne den absoluten Pfad zu den ausführbaren Dateien anzugeben. Dazu müssen Sie lediglich das Verzeichnis zu Ihrem $PATH
hinzufügen .
Nehmen wir an, Sie haben ein Verzeichnis namens bin
befindet sich in Ihrem Home-Verzeichnis, in dem Sie Ihre Shell-Skripte aufbewahren. Um das Verzeichnis zu Ihrem $PATH
hinzuzufügen Geben Sie ein:
export PATH="$HOME/bin:$PATH"
Der export
Der Befehl exportiert die geänderte Variable in die Umgebungen der untergeordneten Shell-Prozesse.
Sie können Ihre Skripte jetzt ausführen, indem Sie den Namen des ausführbaren Skripts eingeben, ohne den vollständigen Pfad zur Datei angeben zu müssen.
Diese Änderung ist jedoch nur temporär und nur in der aktuellen Shell-Sitzung gültig.
Um die Änderung dauerhaft zu machen, müssen Sie den $PATH
definieren Variable in den Shell-Konfigurationsdateien. In den meisten Linux-Distributionen werden beim Starten einer neuen Sitzung Umgebungsvariablen aus den folgenden Dateien gelesen:
-
Globale Shell-spezifische Konfigurationsdateien wie
/etc/environment
und/etc/profile
. Verwenden Sie diese Datei, wenn Sie möchten, dass das neue Verzeichnis allen Systembenutzern$PATH
hinzugefügt wird . -
Shell-spezifische Konfigurationsdateien pro Benutzer. Wenn Sie beispielsweise Bash verwenden, können Sie den
$PATH
festlegen Variable in~/.bashrc
Datei. Wenn Sie Zsh verwenden, lautet der Dateiname~/.zshrc
.
In diesem Beispiel setzen wir die Variable in ~/.bashrc
Datei. Öffnen Sie die Datei mit Ihrem Texteditor und fügen Sie am Ende die folgende Zeile hinzu:
nano ~/.bashrc
~/.bashrcexport PATH="$HOME/bin:$PATH"
Speichern Sie die Datei und laden Sie den neuen $PATH
in die aktuelle Shell-Session unter Verwendung von source
Befehl:
source ~/.bashrc
Um zu bestätigen, dass das Verzeichnis erfolgreich hinzugefügt wurde, geben Sie den Wert Ihres $PATH
aus indem Sie Folgendes eingeben:
echo $PATH
Schlussfolgerung #
Hinzufügen neuer Verzeichnisse zu Ihrem Benutzer oder globalen $PATH
Variable ist ziemlich einfach. Dadurch können Sie Befehle und Skripte ausführen, die an nicht standardmäßigen Speicherorten gespeichert sind, ohne den vollständigen Pfad zur ausführbaren Datei eingeben zu müssen.
Dieselben Anweisungen gelten für alle Linux-Distributionen, einschließlich Ubuntu, CentOS, RHEL, Debian und Linux Mint.
Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.