Estoy buscando pautas sobre lo que uno debe y no debe incluir en los diversos archivos de inicio zsh
.
Entiendo el orden de abastecimiento de estos archivos y las condiciones bajo las cuales se obtienen, pero aún no me queda claro qué debe incluir cada uno.
Respuestas:
Aquí hay una lista no exclusiva de lo que cada archivo tiende a contener:
.zshenv
siempre se obtiene, a menudo contiene variables exportadas que deberían estar disponibles para otros programas. Por ejemplo,$PATH
,$EDITOR
, y$PAGER
se fijan a menudo en.zshenv
. Además, se puede establecer$ZDOTDIR
en.zshenv
para especificar una ubicación alternativa para el resto de la configuración zsh..zshrc
es para la configuración de shell interactivo. Establece opciones para el shell interactivo allí con los comandossetopt
yunsetopt
. También puede cargar módulos de shell, configurar sus opciones de historial, cambiar su solicitud, configurar zle y finalización, etc. También establece las variables que solo se utilizan en el shell interactivo (por ejemplo$LS_COLORS
)..zlogin
se origina en el inicio de un shell de inicio de sesión. Este archivo se usa a menudo para iniciar X usandostartx
. Algunos sistemas inician X en el arranque, por lo que este archivo no siempre es muy útil..zprofile
es básicamente lo mismo,.zlogin
excepto que se obtiene directamente antes de.zshrc
obtenerlo en lugar de hacerlo directamente después. De acuerdo con la documentación de zsh, ".zprofile
se entiende como una alternativa a '.zlogin' para los fanáticos de ksh; los dos no están diseñados para usarse juntos, aunque esto ciertamente podría hacerse si se desea"..zlogout
a veces se usa para borrar y restablecer el terminal.Debe revisar los archivos de configuración de los usuarios aleatorios de Github para tener una mejor idea de lo que debe contener cada archivo.
fuente
man zshall
para más detalles).$PATH
en.zshenv
, varios otros archivos todos son de origen después de este archivo que va a reemplazar este valor. Consulte zsh.org/mla/users/2003/msg00600.html .$LANG
y$LC_ALL
ir?.zshenv
→ [.zprofile
si inicio de sesión] → [.zshrc
si es interactivo] → [.zlogin
si inicio de sesión] → [a.zlogout
veces].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 :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:
.zshrc
[Leer cuando interactivo]
Puse aquí todo lo necesario solo para uso interactivo :
.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 .zloginPor 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
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout
fuente
No pongas
ssh-agent
llamadas.zshenv
.less
Hizo que mi comando ya no mostrara ningún archivo de texto, probablemente porque Prezto (export LESS='-F -g -i -M -R -S -w -X -z-4'
in.zprofile
) personalizó sus opciones .fuente