~/.bashrcy /etc/bash.bashrcse ejecutan cada vez que bashse inicia un shell interactivo .
Por el contrario, ~/.profiley /etc/profilese ejecute cada vez que un inicio de sesión se inicia la cáscara. Por lo tanto, no tiene que ser un bashshell, pero sí tiene que ser un shell de inicio de sesión (y muchas bashinstancias de shell no son shells de inicio de sesión ).
- Un
bashshell es un shell donde está el programa de shell que lo proporciona bash, en lugar de algún otro programa, como dash.
- Un shell de inicio de sesión es un shell que se inicia automáticamente como consecuencia del inicio de sesión, para proporcionar la interfaz de usuario (gráfica o línea de comandos) para el inicio de sesión. Cuando se sale de un shell de inicio de sesión, el inicio de sesión finaliza.
Por lo tanto, colocar una recomendación que anexe entradas PATHen un bashrcarchivo:
No haga nada cuando el caparazón no bashlo sea, lo cual suele ser el caso. Por ejemplo, PATHno se modificaría cuando esté en una sesión de inicio de sesión gráfica. Recuerde, PATHno solo lo usan los programas de línea de comandos.
Añádalo una y otra vez en presencia de bashconchas anidadas . Entonces, si inicia un shell dentro de un shell, que es muy común, por una variedad de razones, entonces tendrá varias ~/binentradas apiladas en su PATH. Esto hace que la PATHvariable de entorno sea difícil de leer y, a veces, también disminuye el rendimiento.
Estos serían indeseables. Por lo tanto, sería un error poner esto en un bashrcarchivo; en realidad pertenece ~/.profile. ~/.profilees el lugar adecuado para:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Los shells sin inicio de sesión tienen shells de inicio de sesión (o algo que se comporta como un shell de inicio de sesión) como su padre, y heredan la mayoría de sus variables de entorno, incluido PATH, desde este shell de inicio de sesión. Por lo tanto, colocar comandos de modificación de ruta ~/.profilerequiere que cierre la sesión y vuelva a iniciarla para que sean efectivos, pero también afecta el entorno de los shells sin inicio de sesión (así como el entorno de los programas que no son shells, ya que cada programa obtiene su propio conjunto de variables de entorno, denominado "entorno", heredado de su proceso padre).
bindirectorio privado no existía cuando inició sesión y que lo creó durante esta sesión de inicio de sesión. Si cierra sesión y vuelve a iniciarla, estará en suPATH. Dado que crear subindirectorio privado es algo que solo debe hacerse una vez, este es un inconveniente único.Es porque tradicionalmente las variables de entorno van solo en
/etc/profileo.profile. Elbashrcarchivo es para cosas como alias, configuraciones de solicitud, opciones de shell, etc. (es decir, cosas que se relacionan directamente con el shell).fuente