tl; versión dr: use ~/.zshrc
Y leer la página del manual para comprender las diferencias entre:
~/.zshrc
,~/.zshenv
y~/.zprofile
.
En cuanto a mi comentario
En mi comentario adjunto a la respuesta que dio kev, dije:
Esto parece ser incorrecto: / etc / profile no aparece en ninguna documentación de zsh que pueda encontrar.
Esto resulta ser parcialmente incorrecto: /etc/profile
mayo ser obtenido por zsh
. Sin embargo, esto solo ocurre si zsh
se invoca como sh
o ksh
«; en estos modos de compatibilidad:
Los scripts habituales de inicio / apagado de zsh no se ejecutan. Inicio de sesión shells source / etc / profile seguido de $ HOME / .profile. Si la variable de entorno ENV se establece en la invocación, $ ENV se obtiene después de los scripts de perfil. El valor de ENV está sujeto a expansión de parámetros, sustitución de comandos y expansión aritmética antes de ser interpretado como un nombre de ruta. [man zshall, «Compatibility»].
los Enlace ArchWiki ZSH dice:
Al iniciar sesión, Zsh obtiene los siguientes archivos en este orden:
/ etc / profile
Este archivo proviene de todos los shells compatibles con Bourne al iniciar sesión
Esto implica que /etc/profile
es leer siempre por zsh
al iniciar sesión: no tengo ninguna experiencia con el proyecto Arch Linux; la wiki puede ser correcta para esa distribución, pero es no generalmente correcto. La información es incorrecto en comparación con las páginas del manual de zsh, y no parece aplicarse a zsh en OS X (rutas en $PATH
establecer en /etc/profile
no llego a mis sesiones de zsh).
Para abordar la pregunta:
¿Dónde exactamente debería colocar mis adiciones de rvm, python, nodo, etc.a mi $ PATH?
Generalmente, exportaría mi $PATH
de ~/.zshrc
, pero vale la pena leer el zshall página de manual, específicamente la sección «ARCHIVOS DE INICIO / APAGADO» – ~/.zshrc
se lee para interactivo conchas, que pueden o no adaptarse a sus necesidades, si desea $PATH
para cada zsh
shell invocado por usted (ambos interactive
y no ambos login
y no, etc), entonces ~/.zshenv
es una mejor opción.
¿Hay un archivo específico que deba usar (es decir, .zshenv que no existe actualmente en mi instalación), uno de los que estoy usando actualmente, o incluso importa?
Hay un montón de archivos leídos al inicio (verifique el enlace man
páginas), y hay una razón para eso: cada archivo tiene su lugar particular (configuraciones para cada usuario, configuraciones para usuarios específicos, configuraciones para shells de inicio de sesión, configuraciones para cada shell, etc.).
No te preocupes por ~/.zshenv
no existe: si lo necesita, hágalo y se leerá.
.bashrc
y .bash_profile
están no Leído por zsh
, a menos que los obtenga explícitamente de ~/.zshrc
o similar; la sintaxis entre bash
y zsh
es no siempre compatible. Ambos .bashrc
y .bash_profile
están diseñados para bash
ajustes, no zsh
ajustes.