¿Hay algo en Zsh como .bash_profile?

84

Cada vez que abro la terminal, tengo que buscar .bash_profilepara habilitar la $JAVA_HOMEu otras variables.

i3wangyi
fuente
1
sí, ¿se obtiene automáticamente cada vez que se abre la terminal?
i3wangyi

Respuestas:

104

Sí, se llama ~/.zshenv.

Así es como me $JAVA_HOMEinstalé ~/.zshenv:

export JAVA_HOME="$(/usr/libexec/java_home)"

Sin embargo, tenga en cuenta que zsh no es bash, por lo que el hecho de que tenga que obtener su fuente .bash_profilecada vez que abra una terminal no significa que tenga que hacer eso con zsh. Con zsh, solo tengo que volver a obtener mi ~/.zshenv cuando le hago cambios , y luego solo para los terminales que ya están abiertos : los nuevos terminales ya deberían haber obtenido mi nuevo y mejorado ~/.zshenv.

NOTA

A menudo lo encuentro útil cuando trato de determinar en cuál de mis archivos de inicio de zsh debo colocar cosas para consultar los archivos de inicio de zsh .

Alexej Magura
fuente
17
En realidad, .zprofiletiene un significado más cercano .bash_profile, ya que ambos solo provienen de sus respectivos shells para los shells de inicio de sesión. .zshenvse ejecuta para todas las instancias de zsh, sean o no shells de inicio de sesión.
chepner
6
@chepner .zshenves donde se deben definir todas las variables de entorno. Vea aquí
Alexej Magura
3
Convenido; .bash_profiletiene que hacer para bashlo que .zshenvy .zprofile/.zloginjuntos hacemos zsh. Ese enlace proporciona buena información sobre qué debería ir y dónde.
chepner
31

Sé que esta es una pregunta antigua, pero recientemente actualicé MacOs a Catalina, lo que cambió el shell predeterminado de bash a zsh.

Terminé haciendo esto:

 echo source ~/.bash_profile > ~/.zshenv && source ~/.zshenv

Para tener la fuente zsh de mi .bash_profile original.

Zack
fuente
11
Use el comando como este para asegurarse de que el archivo se cree en el directorio de inicio de los usuarios:echo source ~/.bash_profile > ~/.zshenv
Smair
¿Es echoimportante el uso de aquí? ¿Qué hace eso?
QA Sam
3
@QASam, el eco es imprescindible aquí, X > Ysolo pasa lo que X produjo. Sin eco, no se emite nada.
James LoveLady
3

Recientemente, con la actualización a Catalina OS desde Mac, por defecto cambia para ejecutar Z shell que usa el archivo zshrc como recurso Z-shell, usualmente teníamos bash_profile dentro del directorio de inicio del usuario, la solución es simplemente

  1. copie el contenido de bash_profile abriendo> vim ~ / .bash_profile
  2. crear zshrc por> vim ~ / .zshrc
  3. copiar el contenido de bash_profile en zsrc

Abra una nueva ventana de terminal y ejecute su alias / script anterior debería funcionar sin problemas

Pravin
fuente
2

Otra alternativa simple para continuar usando su .bash_profile es agregar este archivo a su archivo .zshrc:

  1. Abra su archivo .zhsrc> vim ~ / .zshrc
  2. Agregue esta línea a su archivo .zshrc> fuente ~ / .bash_profile

con esta sencilla solución puedes seguir agregando tu .bash_prifile si te gusta zhs.

Añadiendo .bash_profile

portero
fuente
¿Podría haber algunas diferencias entre bash y zsh que hicieran que bash_profile no se iniciara correctamente? ver zsh.sourceforge.net/FAQ/zshfaq02.html#l14
framontb
0

En Mac Catalina, la terminal usa zsh. En lugar de tener .bash_profile, es bueno tener .zshenv y escribir su script allí.

Cuando abre el terminal la próxima vez, se ejecutan los scripts dentro de .zshenv.

Rajeev Jayaswal
fuente