Hay dos razones relacionadas por las cuales los alias no siempre funcionan cuando se colocan en el .profile
archivo. El primero es que el archivo .profile
(o .bash_profile
) solo se ejecuta para un shell de inicio de sesión. Si está iniciando bash en una ventana de terminal debajo de X, su emulador de terminal (por ejemplo, gnome-termanl) probablemente no esté ejecutando bash como un shell de inicio de sesión. [La mayoría tiene una opción para cambiar esto si lo desea, pero el valor predeterminado (para gnome-termal de todos modos) no es ejecutarlo como un shell de inicio de sesión.]
El shell será un shell interactivo y, por .bashrc
lo tanto , se ejecutará.
Sin embargo, normalmente bash se ha ejecutado como un shell de inicio de sesión cuando se iniciaba la sesión X. Entonces, si hay comandos de alias .profile
, se habrán ejecutado junto con la configuración de variables de entorno como PATH, etc. Cuando se abre una ventana de terminal, se ejecuta una nueva instancia de bash para solicitar y ejecutar comandos en esa ventana de terminal. A diferencia de las variables de entorno, los alias no se pueden exportar de una instancia de bash a una nueva iniciada por ella. Por lo tanto, los alias no se pasan al nuevo shell.
Para ver esto, prueba este experimento:
export ROBERT=bob
alias james=jimmy
echo $ROBERT
alias james
bash #start a new bash instance
echo $ROBERT
alias james
exit #end the new bash instance and revert to the original one
echo $ROBERT
alias james
Tenga en cuenta que .bashrc
bash no lo ejecuta cuando se inicia como un shell de inicio de sesión. Por lo tanto, poner sus alias allí no siempre funcionará a menos que su .bashrc
fuente sea suya .profile
, lo cual es una práctica muy común.
gl
? ¿La terminal? La GUI?