[eside-ghost] Scripts de inicio de bash
AngelD
angeld en froga.net
Lun Mar 12 15:37:14 CET 2007
On Mon, March 12, 2007 14:05, Eneko chan wrote:
> Estoy mirando que scripts se ejecutan al hacer login. De momento me queda
> claro que se ejecutan en este orden:
>
> 1.- /etc/profile
> 2.- El primero que se encuentre de estos 3 en este orden: ~/.bash_profile,
> ~
> /.bash_login o ~/.profile.
Hasta aquí todos de acuerdo.
> Luego viene la parte que no me entero. Mirando la página man bash 1 sale:
>
> When an interactive shell that is not a login shell is started,
> bash reads and executes commands from /etc/bash.bashrc and
~/.bashrc, if
> these files exist.
>
> Lo que no entiendo es que es una "interactive shell that is not a login
> shell", y por eso me pierdo y no se en que casos se ejecutaran esos script
> o no.
Bien, diferencia entre "login shell" y "interactive shell"
- login shell -> La que se ejecuta cuando te "logueas" en un sistema.
Esta ejecuta '/etc/profile' y '~/.bash_profile' o '~/bash_login' o
'bash_profile', por ese orden.
- interactive shell -> La que se ejecuta cuando "ejecutas" un script,
por ejemplo. Esta ejecuta '/etc/bashrc' y '~/.bashrc'
> Luego segun he leido en una página primero se ejecutaria ~/.bashrc y
> despues /etc/bash.bashrc. Pero segun la pagina de man es alreves. Menudo
> lio :S jajaj
Primero se ejecutan SIEMPRE los perfiles globales (los de etc) que
correspondan, ejecutándose posteriormente los de usuario.
Algunas distribuciones (ej, RedHat), ejecutan e '~/.bashrc' dentro del
'~/.bash_profile'
Se pueden forzar a que la shell sea interactiva (-i), login shell (-l), a
que no ejecute los ficheros cuando es un login shell (--noprofile) o
cuando es interactiva (--norc).
Ya sabes, en caso de duda prueba y error. Empiezas a crear los ficheros
adecuados, con los "echo esto es .profile" en su interior para poder
tracearlos.
saludos --- Angel
Más información sobre la lista de distribución eside-ghost