GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la lectura del archivo Conf entre el Shell de inicio de sesión y el de no inicio de sesión?

Encontré que esos son .bash_profile , .bashrc , .bash_login , .profile .

¿Cuál es la secuencia de lectura entre ellos?

Respuesta aceptada:

Básicamente, si es un shell de inicio de sesión, obtiene /etc/profile luego .bash_profile . Si no es un shell de inicio de sesión, pero está en una terminal, obtiene /etc/bash.bashrc luego .bashrc .

Pero en realidad es mucho más complicado.

La forma en que leo la página del manual:

if bash_mode; then
    if login_shell; then
        if test -e /etc/profile; then source /etc/profile; fi
        if test -e .bash_profile; then source .bash_profile
        elif test -e .bash_login; then source .bash_login
        elif test -e .profile; then source .profile; fi
    elif interactive_shell || remote_shell; then
        if test -e /etc/bash.bashrc; then source /etc/bash.bashrc
        if test -e .bashrc; then source .bashrc; fi
    elif test -n "$BASH_ENV"; then
        source "$BASH_ENV"
    fi
elif sh_mode; then
    if login_shell; then
        if test -e /etc/profile; then source /etc/profile; fi
        if test -e .profile; then source .profile; fi
    elif interactive_shell; then
         if test -n "$ENV"; then
             source "$ENV"
         fi
    fi
fi

Es un shell de inicio de sesión cada vez que se ejecuta el shell como -bash (tenga en cuenta el signo menos) o con -l opción. Esto suele suceder cuando inicia sesión con el login (las consolas virtuales de Linux hacen esto), a través de ssh, o si su emulador de terminal tiene habilitada la opción "iniciar sesión".

Es un shell interactivo cada vez que la entrada estándar es una terminal, o bash se inició con -i opción. Tenga en cuenta que si el shell también es un shell de inicio de sesión, bash no comprueba si el shell es interactivo. Por este motivo, .bash_profile generalmente contiene código para fuente .bashrc , para que pueda compartir la misma configuración entre shells interactivos y de inicio de sesión.


Linux
  1. ¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

  2. ¿La diferencia en el uso entre las variables de shell y las variables de entorno?

  3. ¿Cuál es la diferencia entre Sudo Su y Sudo Su?

  4. ¿La diferencia entre "du -sh *" y "du -sh ./*"?

  5. ¿La diferencia entre .exrc y .vimrc?

La diferencia entre más, menos y la mayoría de los comandos

¿Cuál es la diferencia entre Shell de inicio de sesión y sin inicio de sesión?

¿Cuál es la diferencia entre una consola, una terminal y un shell?

¿Cuál es la diferencia entre nohup y ampersand?

¿Cuál es la diferencia entre fsync y syncfs?

¿Cuál es la diferencia entre &> y >&en bash?