it-swarm-es.com

bashrc o bash_profile?

Sé la diferencia entre los dos scripts de inicio de sesión de bash:

.bashrc se ejecuta solo con shells "sin inicio de sesión".

.bash_profile (o .bash_login o .profile) se ejecuta mediante shells de "inicio de sesión".

¿Alguien tiene algunos buenos ejemplos de qué cosas son más adecuadas para la ejecución solo de inicio de sesión, de modo que solo las pondría en .bash_profile, pero realmente no tendrían sentido en .bashrc?

(Sé que la mayoría de nosotros buscamos .bashrc de .bash_profile, por lo que no parece tener mucho sentido la pregunta opuesta ...)

49
Don Faulkner

Como un .bashrc es para shells que no son de inicio de sesión, evito cualquier comando que haga eco en la pantalla. También me he encontrado con experiencias en las que las declaraciones echo en .bashrc harán que los comandos sftp y rsync fallen (y tal vez los comandos scp también).

# Print some information as we log in
# -s: OS Name -n: Node name -r: OS Release
uname -snr
uptime

Además, generalmente no ejecutará ssh-agent desde un Shell no interactivo. Entonces tengo esto en .bash_profile.

if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi
24
Stefan Lasiewski

Byobu es un gran ejemplo de algo que nunca deberías poner en un .bashrc.

De lo contrario, se ejecutará recursivamente en cada uno de sus 'terminales virtuales' ;-)

Sin embargo, puedes probarlo, es divertido.

Es por eso que lo pones en .profile, por lo que byobu (que realmente es una envoltura alrededor de la pantalla) solo se carga, una vez, al momento de iniciar sesión. Y byobu mismo puede comenzar nuevas sesiones interactivas de bash.

8
Ralf