¿Cuál es la diferencia entre .bash_profile y .bashrc?

171

Para hacer un alias para la Terminal en OS X, puede poner los alias en .bash_profile o .bashrc . ¿Cuál es la diferencia entre los dos y por qué elegiría poner alias en uno y no en el otro?

    
pregunta daviesgeek 10.05.2012 - 23:39

3 respuestas

182

.bash_profile se ejecuta para shells de inicio de sesión, mientras que .bashrc se ejecuta para shells interactivos sin inicio de sesión.

Cuando inicias sesión (escribe el nombre de usuario y la contraseña) a través de la consola, ya sea sentado en la máquina o de forma remota a través de ssh: .bash_profile se ejecuta para configurar tu shell antes del indicador de comandos inicial.

Pero, si ya ha iniciado sesión en su máquina y abre una nueva ventana de terminal (xterm), entonces se ejecuta .bashrc antes del indicador de comandos de la ventana. .bashrc también se ejecuta cuando inicia una nueva instancia de bash escribiendo /bin/bash en un terminal.

En OS X, Terminal ejecuta de forma predeterminada un shell de inicio de sesión cada vez, por lo que es un poco diferente a la mayoría de los otros sistemas, pero puede configurarlo en las preferencias.

    
respondido por el Alex 10.05.2012 - 23:46
34

X11 mirará tu .bashrc mientras que una Terminal "regular" mirará .bash_profile

Sin embargo, si agrega lo siguiente a su .bash_profile , puede mover todo a su archivo .bashrc para consolidar todo en un solo lugar en lugar de dos:

if [ -f $HOME/.bashrc ]; then
        source $HOME/.bashrc
fi
    
respondido por el Lurch 11.05.2012 - 00:53
15

Para macOS, el código que se pone en .bash_profile para consolidar todo en .bashrc es el siguiente:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Esto es más específico para el usuario de terminal Mac.

    
respondido por el frzhen 03.02.2017 - 04:00

Lea otras preguntas en las etiquetas