Die Umgebungsvariable $PATH bestimmt, wo die Shell nach ausführbaren Programmen sucht. Wenn du ein Programm ohne vollständigen Pfad aufrufst, durchsucht die Shell die in $PATH gelisteten Verzeichnisse der Reihe nach.
Den aktuellen PATH anzeigen
Zeige den Inhalt deiner PATH-Variable an:
echo $PATH
Die Ausgabe ist eine durch Doppelpunkte getrennte Liste von Verzeichnissen:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Die Reihenfolge ist wichtig: Existieren zwei Programme mit gleichem Namen in verschiedenen Verzeichnissen, wird das zuerst gefundene ausgeführt.
Temporär ein Verzeichnis hinzufügen
Füge ein Verzeichnis für die aktuelle Shell-Sitzung hinzu:
export PATH="$HOME/bin:$PATH"
Dieser Befehl stellt $HOME/bin an den Anfang des PATH. Skripte in diesem Verzeichnis haben dadurch Vorrang vor gleichnamigen Programmen in anderen Verzeichnissen.
Die Änderung gilt nur für die aktuelle Sitzung. Nach dem Schließen des Terminals ist sie weg.
Dauerhaft ein Verzeichnis hinzufügen
Für eine dauerhafte Änderung trägst du den export-Befehl in die Konfigurationsdatei deiner Shell ein.
Für Bash
Öffne ~/.bashrc:
nano ~/.bashrc
Füge am Ende der Datei hinzu:
export PATH="$HOME/bin:$PATH"
Lade die Änderung in die aktuelle Sitzung:
source ~/.bashrc
Für Zsh
Bei Zsh ist die Datei ~/.zshrc:
nano ~/.zshrc
export PATH="$HOME/bin:$PATH"
source ~/.zshrc
Systemweite Änderung
Soll das Verzeichnis für alle Benutzer gelten, trage es in /etc/environment oder /etc/profile ein. Dafür brauchst du Root-Rechte.
sudo nano /etc/profile
Füge die Zeile am Ende hinzu:
export PATH="$PATH:/opt/meinprogramm/bin"
Hier wird das Verzeichnis ans Ende gestellt, sodass Systemprogramme Vorrang behalten.
Änderung überprüfen
Prüfe, ob das Verzeichnis im PATH enthalten ist:
echo $PATH
Teste, ob ein Programm aus dem neuen Verzeichnis gefunden wird:
which mein-skript
Zusammenfassung
| Methode | Datei | Gültig für |
|---|---|---|
| Temporär | Keine | Aktuelle Sitzung |
| Benutzer (Bash) | ~/.bashrc | Aktueller Benutzer |
| Benutzer (Zsh) | ~/.zshrc | Aktueller Benutzer |
| Systemweit | /etc/profile | Alle Benutzer |
Füge eigene Verzeichnisse an den Anfang des PATH, wenn sie Vorrang haben sollen. Systemverzeichnisse gehören ans Ende, um versehentliches Überschreiben von Systembefehlen zu vermeiden.