Tengo una comprensión básica de cómo se puede establecer $ PATH, pero ¿hay una documentación que describa completamente dónde Mac OS obtiene todas las rutas que se agregan a $ PATH? Soy consciente de cosas como /etc/profile, /etc/pathsy /etc/profile.d, pero ¿hay otros scripts que finalmente afectan el valor de $ PATH? Tampoco estoy muy familiarizado entre el no inicio de sesión y los shells de inicio de sesión ( .bashrc, .bash_profile), pero soy consciente de las diferencias básicas.

/etc/profilees un script utilizado principalmente por bash? No tengo experiencias con otros proyectiles, pero supongo que siguen una estructura diferente./etc/profilees utilizado por la mayoría (¿todo? No está 100% seguro). Es por eso que es una buena opción poner las cosas que desea en todas partes, como PATHs. Bash lee.bash_archivos mientras que Zsh, por ejemplo, lee.zshrcademás de otros. Depende de la cáscara.path_helperes que no pidió conchas interactivo de no ingreso (ni conchas no interactivas). Se llama para shells de inicio de sesión interactivos, de/etc/profilehecho.Las rutas
/etc/pathsy/etc/paths.d/*típicamente son agregadasPATHpor path_helper .path_helperse ejecuta desde/etc/profile, por lo que se ejecuta cuando se invoca bash como un shell de inicio de sesión interactivo, pero no cuando se invoca bash como un shell sin inicio de sesión o un shell no interactivo./etc/pathscontiene/usr/local/binal final de forma predeterminada y/etc/paths.d/está vacío de forma predeterminada.Terminal e iTerm 2 abren nuevos shells como shells de inicio de sesión por defecto, y el shell abierto cuando ssh a su computadora también es un shell de inicio de sesión. Sin
tmuxembargo, muchos emuladores de terminal en otras plataformas y el modo de shell en Emacs abren nuevos shells como shells sin inicio de sesión.He agregado esta línea a
/etc/launchd.conf:setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbinCambia el valor del
PATHproceso de lanzamiento raíz. El valor es heredado por todos los demás procesos, incluidos los procesos lanzados por usuario. Puede aplicar cambios/etc/launchd.confreiniciando o ejecutandolaunchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.confy relanzando procesos.En OS X,
~/.profileno se lee cuando inicia sesión gráficamente. Si ambos~/.bash_profiley~/.profileexisten, bash tampoco lee~/.profile.~/.MacOSX/environment.plistdejó de funcionar en 10.8.fuente