Die Pfade in /etc/pathsund /etc/paths.d/*werden normalerweise PATHvon path_helper hinzugefügt . path_helperwird von ausgeführt /etc/profile, wird also ausgeführt, wenn bash als interaktive Anmeldeshell aufgerufen wird, nicht jedoch, wenn bash als nicht angemeldete Shell oder nicht interaktive Shell aufgerufen wird.
/etc/pathsenthält /usr/local/binstandardmäßig am Ende und /etc/paths.d/ist standardmäßig leer.
Terminal und iTerm 2 öffnen standardmäßig neue Shells als Login-Shells, und die Shell, die beim SSH auf Ihrem Computer geöffnet wird, ist auch eine Login-Shell. Viele Terminalemulatoren auf anderen Plattformen tmuxund der Shell-Modus in Emacs öffnen jedoch neue Shells als Nicht-Login-Shells.
Ich habe diese Zeile hinzugefügt zu /etc/launchd.conf:
setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin
Es ändert den Wert des PATHRoot-Startprozesses. Der Wert wird von allen anderen Prozessen geerbt, einschließlich der pro Benutzer gestarteten Prozesse. Sie können Änderungen anwenden, /etc/launchd.confindem Sie neu starten oder launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confProzesse ausführen und neu starten.
Wird unter OS X ~/.profilenicht gelesen, wenn Sie sich grafisch anmelden. Wenn beides ~/.bash_profileund ~/.profileexistiert, liest bash auch nicht ~/.profile.
~/.MacOSX/environment.plist hat in 10.8 aufgehört zu arbeiten.
/etc/profilees sich um ein Skript handelt, das hauptsächlich von Bash verwendet wird? Ich habe keine Erfahrungen mit anderen Muscheln, aber ich gehe davon aus, dass sie einer anderen Struktur folgen.