Estoy configurando una nueva máquina Linux que obtuve de nuestro departamento de TI, y noté .profile
que no se carga cuando comienzo una nueva sesión de terminal. El shell actual es Bash , aunque he cambiado desde el valor predeterminado sh que vino. ¿Cómo hago que se cargue .profile
al inicio?
Accedo a la cáscara a través de SSH : ssh myusername@remotemachine
. Tengo privilegios de administrador en ello.
Respuestas:
Cuando Bash se inicia como un shell de inicio de sesión interactivo, uno de los archivos que puede procesar es
~/.profile
.Cuando comienza como un shell interactivo sin inicio de sesión, no lo hace. Se procesa
/etc/bash.bashrc
(si ese archivo o un archivo similar está habilitado en su versión de Bash) y~/.bashrc
.Puede agregar lo siguiente a su
~/.bashrc
(pero tenga cuidado con los bucles o valores que se cambian sin darse cuenta):fuente
[ -z "$SOME_VAR_SET_IN_PROFILE" ] && . ~/.profile
Depende de cómo comiences tu shell. Como otros han dicho, un shell de inicio de sesión cargará su perfil (primero buscará .bash_profile, luego intentará .profile). Si encuentra uno de estos, los carga. Un shell sin inicio de sesión (ya sea interactivo o no interactivo) generará .bashrc.
Sugeriría poner todo en .bashrc. La división .profile / .bashrc era algo arbitraria y tenía más sentido en los viejos tiempos de UNIX cuando tty no era solo un nombre de dispositivo y significaba un TeleType real. Estaba destinado a comenzar ciertas cosas (como verificar el correo) en el inicio de sesión 'principal' a un servidor, y solo cosas de configuración normal para otros shells. En la mayoría de Linux, iniciará sesión ahora, en realidad no está iniciando sesión en un shell, ya que está iniciando sesión en alguna interfaz gráfica (KDE, gnome, CDE 'shudder'). El administrador de la sesión ahora se encarga de los "procesos de inicio de sesión". Es mucho menos relevante ahora.
Mi sugerencia: haga que su .profile consista únicamente en:
como la primera línea de .bashrc, evite que sucedan cosas extrañas al ejecutar un script bash saltando temprano:
fuente
.profile
debe mantenerse bajo agnóstico. Sugiero configurar.bash_profile
para cargar.profile
y luego cargar.bashrc
. pon solo cosas agnósticas de bash.profile
, comoPATH
yLC_*
esas cosas. Pon el resto adentro.bashrc
.