tl; versión dr: use ~/.zshrc
Y lea la página del manual para comprender las diferencias entre:
~/.zshrc
, ~/.zshenv
Y ~/.zprofile
.
Respecto 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
puede 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, "Compatibilidad" ].
El 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
Este implys que /etc/profile
está siempre lea por zsh
al iniciar la sesión - No tengo ninguna experiencia con el proyecto Arch Linux; la wiki puede ser correcta para esa distribución, pero generalmente no es correcta. La información es incorrecta en comparación con las páginas del manual de zsh, y no parece aplicarse a zsh en OS X (las rutas $PATH
establecidas en /etc/profile
no llegan 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?
En general, me gustaría exportar mi $PATH
a partir ~/.zshrc
, pero vale la pena tener una lectura de la zshall página del manual, en concreto la sección de "inicio / apagado ARCHIVOS" - ~/.zshrc
se lee para interactivos conchas, que pueden o no pueden satisfacer sus necesidades - si desea que el $PATH
de cada zsh
shell invocado por usted (ambos interactive
y no, ambos login
y no, etc.), entonces ~/.zshenv
es una mejor opción.
¿Hay algún 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 las man
páginas vinculadas ), y hay una razón para eso: cada archivo tiene su lugar particular (configuraciones para cada usuario, configuraciones para usuarios específicos, configuraciones para shell de inicio de sesión, configuraciones para cada shell, etc).
No se preocupe por ~/.zshenv
no existir: si lo necesita, hágalo y se leerá.
.bashrc
y no.bash_profile
son leídos por , a menos que los obtenga explícitamente de o similar; entre la sintaxis y es que no siempre son compatibles. Ambos y están diseñados para configuraciones, no configuraciones.zsh
~/.zshrc
bash
zsh
.bashrc
.bash_profile
bash
zsh
.bashrc
y.bash_profile
no son leídos porzsh
lo que actualmente tengo mirvm
además de$PATH
en.bashrc
, y mipython
adición en.bash_profile
, y ambos se están agregando bien. En cualquier caso, voy a mover todas mis$PATH
exportaciones a,~/.zshrc
ya que todas las demászsh
configuraciones están alojadas allí. Debo admitir que no estoy muy familiarizado con los diferentes tipos de conchas. Al leer los enlaces que publicaste, supongo que uso un shell interactivo, pero seguiré leyendo para estar seguro ... ¡Gracias de nuevo!Aquí están los documentos de las páginas de manual de zsh en la sección ARCHIVOS DE INICIO / APAGADO.
A partir de esto, podemos ver que el orden de lectura de los archivos es:
Puede obtener más información aquí .
fuente
Tuve un problema similar (en bash, el comando de terminal funcionaba correctamente, pero zsh mostró el error de comando no encontrado)
Solución:
simplemente pegue lo que estaba pegando anteriormente en ~ / .bashrc para:
fuente