vorige Präsentation: Kommandozeile | zurück zum Buch-Kapitel [esc] | Nächste Präsentation Shellscript
Ich tippe in eine Kommandozeile createdb hoteldb ein, und erwarte, dass ein bestimmtes Programm gestartet wird. In diesem Beispiel gehört das Programm createdb zur Datenbank Postgres, und ich verwende es um eine neue Datenbank namens hoteldb zu erstellen.
Statt dessen erhalte ich eine Fehlermeldung:

Wie geht die Kommandozeile vor, wenn sie ein Programm createdb starten soll?
Dazu wird die Umgebungsvariable PATH gelesen und analysiert. Diese Variable enthält einen langen String, hier ein paar Beispiele:
/Users/bjelline/.composer/vendor/bin/:/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/share/dotnet:/Users/bjelline/.cargo/bin:/Applications/iTerm.app/Contents/Resources/utilities:/Users/bjelline/bin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin/
Dieses Beispiel stammt von einem Mac und enthält viele Pfad-Angaben. Auf Mac und Linux wird der Doppelpunkt als Trennzeichen verwendet.
C:\Windows\system32;C:\Windows;C:\Program Files\Git\cmd;C:\Program Files\dotnet\;C:\ProgramData\chocolatey\bin;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files\php;C:\Users\bjelline\AppData\Local\Programs\Microsoft VS Code\bin
Dieses Beispiel stammt von einem Windows Computer und enthält viele Pfad-Angaben. Auf Windows wird das Semikolon als Trennzeichen verwendet.
Auf beiden Systemen geht die Kommandozeile auf der Suche nach dem Programm createdb gleich vor: sie sucht im ersten angegebenen Ordner nach ausführbaren Dateien mit den Namen createdb (auf Windows auch nach createdb.exe oder createdb.bat). Falls sie im ersten Ordner nichts findet geht die Suche im 2.Ordner weiter.
Das erste passendes Programm, das gefunden wird, wird es gestartet.
Falls keines gefunden wird, wird eine Fehlermeldung ausgegeben.
Hinweis: Wenn ich zwei verschiedene Programm-Versionen installiert habe entscheidet die Reihenfolge im PATH welches Programm gestartet wird!
Hier ein Beispiel auf Windows 11:

createdb.exe im Ordner bin gefunden.bin herausfinden. Dazu klicke ich in die Adresszeile, dann wird der Pfad angezeigt. Mit STRG-C kopiere ich den PfadPath klicken und dann auf den bearbeitet-Buttoncreatedb nun funktionierenDazu muss man wissen welche Shell man benutzt. das findet man mit dem Befehl ps heraus, da werden die laufenden Prozesse angezeigt. Auf Mac ist die Shell wahrscheinlich bash oder zsh, auf linux gibt es noch mehr gängige Optionen.
Jede Shell hat eine eigene Datei mit erstem Buchstaben . und letzten Buchstaben rc. Also z.B. .bashrc oder .zshrc u.s.w.
Die Datei wird beim Start der Shell ausgeführt. Hier fügt man einen Befehl ein um den Path zu ändern.
.zshrc ein: export PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin/:$PATH"| Windows | macOS / Linux | |
|---|---|---|
| Trennzeichen | Semikolon ; |
Doppelpunkt : |
| Variable aufrufen | %PATH% |
$PATH |
| Variable setzen (permanent) | Systemeigenschaften / GUI | Shell-Konfigurationsdatei (z.B. .zshrc) |
| Variable setzen (temporär) | set PATH=... |
export PATH=... |
Die Variable PATH ist nur ein Beispiel für eine Umgebungsvariable. Diese Variablen kann ich global oder für ein einzelne Session setzen, sie stehen dann den Programmen dich dort gestartet werden zur Verfügung.
Beispiele für Umgebungsvariablen:
.COM;.EXE;.BAT;.CMDDu wirst Umgebungsvariablen und PATH in vielen Anwendungfällen brauchen, nicht nur wie hier im Beispiel beim verwenden einer Datenbank. Zwei Beispiele:
vorige Präsentation: Kommandozeile | zurück zum Buch-Kapitel [esc] | Nächste Präsentation Shellscript
/
#