ubuntu: faltan perfil.d y .bash_profile

ubuntu: faltan perfil.d y .bash_profile

Leí un poco sobre el inicio de Linux, etc. y noté que en mi directorio de inicio no hay una carpeta profile.d:

/home/user/profile.d/ # Doesn't exists

y ni un archivo .bash_profile:

/home/user/.bash_profile # Doesn't exists

¿Hay alguna razón para esto?

Ubuntu 15.04, gnomo

Respuesta1

Respuesta corta:está bien así.

Hay muchos archivos de usuario de inicialización porque un usuario puede decidir iniciar sesión en una cuenta de computadora de muchas maneras diferentes, desde la consola, con un shell interactivo o no interactivo, con diferentes tipos de shell. No es prerrogativa de todos los usuarios, sino de la necesidad de mantener uncompatibilidad con versiones anterioresterminó de complicarseun pocolas cosas. :-)

  • un directorioprofile.d no debería estar en su directorio de inicio:
    /etc/profile.dcontiene scripts con archivos de inicio específicos de la aplicación, que el shell también ejecuta en el momento del inicio. Es un directorio válido para todos los usuarios, para ello se crea bajo la /etc/ruta y no bajo el directorio de inicio de cada usuario.

  • El archivo ~/.bash_profilees uno de los archivos de inicialización personal y cuando existe se almacena en el domicilio de cada usuario.Pero no es necesario que exista.Debe contener los comandos específicos de bash que se ejecutarán al iniciar un shell de inicio de sesión ( ~/.profiletambién se puede leer desde diferentes shells, que generalmente entienden una sintaxis diferente a la de bash).


Leer más de la INVOCATIONsección deman bash

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_loginy~/.profileen ese orden,y lee y ejecuta comandos desde el primero que existe y es legible.

Entonces, si tiene un ~/.bash_profilearchivo, no se leerá ~/.profile, si no se llama (o se obtiene) en uno de los otros archivos.

Tenga en cuenta que

Cuando se inicia un shell interactivo que no es un shell de inicio de sesión, bash lee y ejecuta comandos desde /etc/bash.bashrcy ~/.bashrc, si estos archivos existen.

De alguna versión de Ubuntu 12 (y seguramente de la 13.10) se .profileobtiene el archivo ~/.bashrc.

Esto puede causar un comportamiento inesperado al ejecutar shells de inicio de sesión (como cuando sshse ingresa a la máquina, por ejemplo) donde el usuario no esperaría haber ~/.bashrcaccedido.

Referencia:

información relacionada