¿Cuál es la diferencia entre un bash shell 'Login' y un 'Interactive'? He citado Wikipedia a continuación, pero ¿alguien puede dar una mejor respuesta?
EDITAR: Esta es una wiki comunitaria, por lo que quizás, en lugar de votar para cerrar, podría proporcionar ejemplos de qué situaciones requieren qué tipo de $ SHELL
Guiones de inicio
Cuando se inicia Bash, ejecuta los comandos en una variedad de scripts diferentes.
Cuando se invoca Bash como un shell de inicio de sesión interactivo, primero lee y ejecuta comandos del archivo / etc / profile, si ese archivo existe. Después de leer ese archivo, busca ~ / .bash_profile, ~ / .bash_login y ~ / .profile, en ese orden, y lee y ejecuta comandos del primero que existe y es legible.
Cuando sale un shell de inicio de sesión, Bash lee y ejecuta comandos del archivo ~ / .bash_logout, si existe.
Cuando se inicia un shell interactivo que no es un shell de inicio de sesión, Bash lee y ejecuta comandos desde ~ / .bashrc, si ese archivo existe. Esto puede inhibirse usando la opción --norc. La opción de archivo --rcfile obligará a Bash a leer y ejecutar comandos desde el archivo en lugar de ~ / .bashrc.
Respuestas:
En los archivos de perfil de su shell de inicio de sesión, puede configurar algunas cosas que usará durante su sesión, y que solo deben hacerse una vez. Algunas ideas:
En los archivos de un shell sin inicio de sesión (
.bashrc
), debe configurar su shell:.bash_profile
Por lo general, incluiría
.bashrc
desde.bash_profile
con lo siguiente. Luego, el shell de inicio de sesión obtiene todas sus personalizaciones, y el.bash_profile
archivo no tiene que duplicar cosas que ya están en.bashrc
.fuente