Die Pfade in /etc/paths
und /etc/paths.d/*
werden normalerweise PATH
von path_helper hinzugefügt . path_helper
wird 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/paths
enthält /usr/local/bin
standardmäß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 tmux
und 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 PATH
Root-Startprozesses. Der Wert wird von allen anderen Prozessen geerbt, einschließlich der pro Benutzer gestarteten Prozesse. Sie können Änderungen anwenden, /etc/launchd.conf
indem Sie neu starten oder launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf
Prozesse ausführen und neu starten.
Wird unter OS X ~/.profile
nicht gelesen, wenn Sie sich grafisch anmelden. Wenn beides ~/.bash_profile
und ~/.profile
existiert, liest bash auch nicht ~/.profile
.
~/.MacOSX/environment.plist
hat in 10.8 aufgehört zu arbeiten.
/etc/profile
es 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.