Aquí una lista de lo que cada archivo debe / no debe contener, en mi opinión:
.zshenv
[Leer cada vez]
Este archivo siempre tiene su origen, por lo que debe establecer variables de entorno que deben actualizarse con frecuencia . PATH (o su ruta de contraparte asociada ) es un buen ejemplo porque probablemente no desee reiniciar toda su sesión para que se actualice. Al configurarlo en ese archivo, reabrir un emulador de terminal iniciará una nueva instancia de Zsh con el valor PATH actualizado.
Pero tenga en cuenta que este archivo se lee incluso cuando se inicia Zsh para ejecutar un solo comando (con la opción -c ), incluso mediante otra herramienta como make
. Debe tener mucho cuidado de no modificar el comportamiento predeterminado de los comandos estándar, ya que puede romper algunas herramientas (estableciendo alias, por ejemplo).
.zprofile
[Leer al iniciar sesión]
Personalmente trato ese archivo como .zshenv
pero para comandos y variables que deben configurarse una vez o que no necesitan actualizarse con frecuencia :
- variables de entorno para configurar herramientas (marcas para compilación, ubicación de la carpeta de datos, etc.)
- configuración que ejecuta comandos (como
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
) ya que puede llevar un tiempo ejecutarlos.
Si modifica este archivo, puede aplicar las actualizaciones de configuración ejecutando un shell de inicio de sesión:
exec zsh --login
.zshrc
[Leer cuando interactivo]
Puse aquí todo lo necesario solo para uso interactivo :
- rápido,
- finalización del comando,
- corrección de comando,
- sugerencia de comando,
- resaltado de comandos,
- coloración de salida,
- alias,
- atajos de teclado,
- comandos de gestión del historial,
- otras herramientas interactivas diversas (auto_cd, manydots-magic) ...
.zlogin
[Leer al iniciar sesión]
Este archivo es similar .zprofile
, pero se lee después .zshrc
. Puede considerar que el shell esté completamente configurado en tiempo de ejecución .zlogin
Por lo tanto, lo uso para iniciar comandos externos que no modifican los comportamientos del shell (por ejemplo, un administrador de inicio de sesión).
.zlogout
[Leer al cerrar sesión] [Dentro del shell de inicio de sesión]
Aquí, puede borrar su terminal o cualquier otro recurso que se configuró al iniciar sesión.
Cómo elijo dónde poner una configuración
- si lo necesita un comando ejecutado de forma no interactiva :
.zshenv
- si debe actualizarse en cada nuevo shell :
.zshenv
- si ejecuta un comando que puede tardar un tiempo en completarse :
.zprofile
- si está relacionado con el uso interactivo :
.zshrc
- si es un comando que se ejecutará cuando el shell esté completamente configurado :
.zlogin
- si libera un recurso adquirido al iniciar sesión:
.zlogout