Aclaración sobre: ​​archivos de inicio/apagado de ZSH

Aclaración sobre: ​​archivos de inicio/apagado de ZSH

Acabo de actualizar a macOS Catalina y el nuevo shell es ZSH. Entonces, dado que es un nuevo comienzo, estoy intentando configurar mi entorno de shell con alias, funciones, etc., como lo hice en bash. Estoy tratando de descubrir qué va y dónde, cuando me encontré con esto en eldocumentación

Luego se leen los comandos $ZDOTDIR/.zshenv. Si el shell es un shell de inicio de sesión, los comandos se leen desde /etc/zprofiley luego $ZDOTDIR/.zprofile. Luego, si el shell es interactivo, los comandos se leen desde /etc/zshrcy luego $ZDOTDIR/.zshrc. Finalmente, si el shell es un shell de inicio de sesión, /etc/zloginse $ZDOTDIR/.zloginleen.

Las partes confusas...

  • Si es un shell de inicio de sesión, lee /etc/zprofiley luego$ZDOTDIR/.zprofile
  • Finalmente, si el shell es un shell de inicio de sesión, /etc/zloginse $ZDOTDIR/.zloginleen.

Si hago SSH a mi Mac, es un shell de inicio de sesión. Entonces, dado que necesito configurar eso, ¿qué archivos necesito (o debería) modificar? Supongo que para ayudar a responder esa pregunta probablemente sería útil comprender la diferencia entre .zprofiley. .zloginEntonces, cualquier orientación aquí sería excelente.

Respuesta1

Los *profilearchivos y los *loginarchivos se leen en las mismas condiciones: si y sólo si el shell es un shell de inicio de sesión (y no se invoca con una opción como no_rcs). El manual los enumera por separado porque se invocan en un orden diferente en relación con los *rcarchivos.

El nombre *profileproviene de sh, elconcha de bourne(que ksh, bash, dash y otros son en su mayoría reimplementaciones con características adicionales). El nombre *loginproviene decsh. Zsh es más parecido a sh pero tiene características de ambos, así que supongo que por eso admite ambos nombres.

A menudo no importa si usas *profileo *login. Pero *profilelos archivos tienen la ventaja de que se leen antes *rc, por lo que si tiene *rccontenido que depende de la configuración de *profile(por ejemplo, si .zshrcllama a un programa que está en un directorio que .zprofilese agrega a $PATH), debe usar *profiley no *login.

Por lo tanto, coloque la configuración del momento de inicio de sesión (generalmente en su mayoría variables de entorno) en ~/.profiley la configuración interactiva (mensaje, finalización, combinaciones de teclas, alias,…) en ~/.zshrc. Rara vez necesitarás los otros archivos de inicio.

información relacionada