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

MethodeDateiGültig für
TemporärKeineAktuelle Sitzung
Benutzer (Bash)~/.bashrcAktueller Benutzer
Benutzer (Zsh)~/.zshrcAktueller Benutzer
Systemweit/etc/profileAlle 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.