An welchen Stellen können Shell-Variablen gesetzt werden?
Meine PATH Variable sieht nicht so aus, wie sie aussehen sollte. An welchen Stellen (z.B. .bashrc) können Variablen gesetzt werden?
2 Antworten
eigentlich in all den Dateien, die beim Login oder Start einer Anwendung gelesen und ausgeführt werden.
Hier nur einige:
/etc/profile ; /etc/profile.local
/etc/profile.d/* ; das sollte von der benutzten Shell abhängen
/etc/bash.bashrc
~/.bashrc ; direkt in dieser Datei oder in dort ausgeführten anderen , z.B. ~/.alias
Nicht alle Dateien sind sinnvoll, man muss das auch pflegen können.
Die Dokumentation behandelt das Thema ausführlich, auch welche Dateien unter welchen Umständen gesourced werden.
Aus der manpage:
FILES
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
Je nach Distribution ist das aber deutlich 'komplexer' weil das System-Profile weitere Dateien sourced o.ä. .
Du mußt Dich also im Zweifelsfall durch deutlich mehr wühlen und ggf. sogar die Prozesshierachie rückwärts durchlaufen, wenn profile nur den Pfad ergänzt.