Es bastante común que falten algunos archivos de configuración (o incluso directorios). En ese caso, el software que debería leerlos usará una configuración predeterminada y / o leerá otras fuentes para recuperar la configuración. Si desea modificar un archivo de configuración que no existe, simplemente créelo primero.
Bakuriu
Respuestas:
84
Ubuntu utiliza ~/.profile.
puedes crear tu .bash_profileen Ubuntu pero luego .profileno será leído.
Si leemos contenido .profile:
cat ~/.profile
salida
# ~/.profile: executed by the command interpreter for login shells.# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login# exists.
.profile no funcionó para mí. Tuve que editar .bashrc vim ~/.bashrcentonces. ~/.bashrc
Nahid
Usar .bash_profile no funciona en Ubuntu. Utiliza Dash como un shell de inicio de sesión GUI, no Bash, por lo que bash_profile no se lee.
Jonathan Hartley
Si edita su .profile, debe cerrar sesión y volver a iniciarla para ver los cambios.
Jonathan Hartley
8
Al invocar un shell de inicio de sesión bash buscará sus archivos de configuración en este orden:
[0]~/.bash_profile[1]~/.bash_login[2]~/.profile
Después de encontrar el primero, deja de buscar a los demás, por lo que si hay un .bash_profileen mi $HOMEbash no buscará .bash_loginy .profilenunca más.
A partir de estos tres nombres de archivo, Ubuntu utiliza de manera predeterminada a la .profileque puede cambiarle el nombre .bash_profilesi lo desea:
mv ~/.profile ~/.bash_profile
Ahora bien, si abrimos una nueva shell bash usando bash -l, su - $USER, sudo -u $USER -io cualquier otro comando que se ejecuta bash como un intérprete de ingreso, ~/.bash_profileserá conseguir origen.
Importante tener en cuenta:
Lo que he hablado hasta ahora solo se aplica a Bash en sí, cuando inicia sesión en el sistema desde una GUI, el administrador de pantalla es responsable de obtener los archivos correctos.
Ubuntu usa gdm3como su administrador de pantalla, si echamos un vistazo a: /etc/gdm3/Xsessionpodemos ver que ninguno de los archivos se obtendrá excepto .profile:
# First read /etc/profile and .profilefor file in/etc/profile "$HOME/.profile";doif[-f "$file"];then
source_with_error_check "$file"fidone
así que si está utilizando una GUI para iniciar sesión, mantenga el archivo bajo su .profilenombre, de lo contrario, podría perder algunas variables y configuraciones en sus entornos.
Supongo que la mejor opción es crear un enlace simbólico para .profile:
ln -s ~/.profile ~/.bash_profile
Ahora sus datos viven .profile, gdmno se pierde nada, carga bash lo .bash_profileque realmente es .profile, y al editar cada uno de ellos obtiene el mismo resultado.
¿Falta el perfil?
Si no lo tienes .profile, toma una copia de aquí:
cp /etc/skel/.profile ~/.profile
o
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
Pero, si Bash está buscando ~ / .bash_profile primero, ¿cómo es que no está haciendo esto en Ubuntu? ¿Ubuntu ha modificado Bash? Esto parece extraño man bashen Ubuntu todavía describe cómo buscará .bash_profile primero.
Jonathan Hartley
Se ve de .bash_profileprimera no puede encontrarlo (porque no existe) a continuación, busca .bash_loginno lo encuentra de nuevo (porque no lo hace Ubuntu utiliza estos dos nombre) finaly busca .profiley sí ahí está. Así que si se crea una .bash_profilede ~entonces va a sobrescribir de ubuntu ~/.profile, que es el comportamiento por defecto de la nada golpe ha sido modificado aquí.
Ravexina
Bien, eso es lo que pensé al principio, ¡también! Y lo que usted describe SUCEDE en RHEL. Pero en Ubuntu, no lo hace. Si creo un .bash_profile, no se lee. Me acabo de dar cuenta de que esto se debe a que Ubuntu ya no usa 'Bash' como un shell de inicio de sesión GUI. Utiliza 'Dash' en su lugar. Creo que esto ha sido cierto desde aproximadamente 18.04.
Jonathan Hartley
Te estás perdiendo el punto aquí. En realidad, estamos hablando del bash en sí, lo que digo aquí es que Ubuntu crea '.profile' y no los demás, por lo que si abrimos un nuevo shell bash (shell de inicio de sesión) ese es el orden de leer estos archivos, no No importa qué distribución estamos usando. :)
Ravexina
Si los lectores cambian el nombre de .profile a .bash_profile como sugiere su respuesta, entonces, para las personas en Ubuntu, ese archivo no se leerá al iniciar sesión ni al abrir una terminal. Has roto su sistema. La única forma en que se leerá ese archivo es si inician sesiones bash con el argumento '--login' para convertirlo explícitamente en un shell de inicio de sesión. Eso nunca sucederá automáticamente en su escritorio.
Jonathan Hartley
5
Eso significa que el archivo no existe. Pero puede crear el archivo y bashejecuta / origina el archivo si bashse invoca como un shell de inicio de sesión. Así que cada vez que inicie sesión a través de un shell (por ejemplo a través de ssh)
Si desea que el contenido se ejecute cada vez que abra un terminal, debe modificar el .bashrcarchivo.
En Linux original, el .profile se aplica cuando inicia sesión en la GUI, o se conecta de forma remota, o inicia sesión en la consola, es decir, después de presionar ctrl + shift + F2. Se supone que representa la primera vez que inicia sesión en la máquina, creando un shell que es el principal de todos los demás procesos que crea posteriormente. Sospecho que en WSL, no existe nada de esto, por lo que su .profile podría nunca leerse.
Jonathan Hartley
lo mismo para mi. ~/.profilesimplemente no se carga por defecto en ubuntu 18.04
javapowered
0
Si te refieres al .bashrc, lo encontrarás en tu carpeta de inicio. Si no está allí, puede copiarlo desde la carpeta / etc / skel a su carpeta de inicio.
Si necesita más información sobre este tema, visite la página de stefaan lippens.
~/.profile
en su lugar.Respuestas:
Ubuntu utiliza
~/.profile
.puedes crear tu
.bash_profile
en Ubuntu pero luego.profile
no será leído.Si leemos contenido .profile:
salida
Así que usa en
~/.profile
lugar de~/.bash_profile
fuente
vim ~/.bashrc
entonces. ~/.bashrc
Al invocar un shell de inicio de sesión bash buscará sus archivos de configuración en este orden:
Después de encontrar el primero, deja de buscar a los demás, por lo que si hay un
.bash_profile
en mi$HOME
bash no buscará.bash_login
y.profile
nunca más.A partir de estos tres nombres de archivo, Ubuntu utiliza de manera predeterminada a la
.profile
que puede cambiarle el nombre.bash_profile
si lo desea:Ahora bien, si abrimos una nueva shell bash usando
bash -l
,su - $USER
,sudo -u $USER -i
o cualquier otro comando que se ejecuta bash como un intérprete de ingreso,~/.bash_profile
será conseguir origen.Importante tener en cuenta:
Lo que he hablado hasta ahora solo se aplica a Bash en sí, cuando inicia sesión en el sistema desde una GUI, el administrador de pantalla es responsable de obtener los archivos correctos.
Ubuntu usa
gdm3
como su administrador de pantalla, si echamos un vistazo a:/etc/gdm3/Xsession
podemos ver que ninguno de los archivos se obtendrá excepto.profile
:así que si está utilizando una GUI para iniciar sesión, mantenga el archivo bajo su
.profile
nombre, de lo contrario, podría perder algunas variables y configuraciones en sus entornos.Supongo que la mejor opción es crear un enlace simbólico para
.profile
:Ahora sus datos viven
.profile
,gdm
no se pierde nada, carga bash lo.bash_profile
que realmente es.profile
, y al editar cada uno de ellos obtiene el mismo resultado.¿Falta el perfil?
Si no lo tienes
.profile
, toma una copia de aquí:o
fuente
man bash
en Ubuntu todavía describe cómo buscará .bash_profile primero..bash_profile
primera no puede encontrarlo (porque no existe) a continuación, busca.bash_login
no lo encuentra de nuevo (porque no lo hace Ubuntu utiliza estos dos nombre) finaly busca.profile
y sí ahí está. Así que si se crea una.bash_profile
de~
entonces va a sobrescribir de ubuntu~/.profile
, que es el comportamiento por defecto de la nada golpe ha sido modificado aquí..bash_profile
, no se lee. Me acabo de dar cuenta de que esto se debe a que Ubuntu ya no usa 'Bash' como un shell de inicio de sesión GUI. Utiliza 'Dash' en su lugar. Creo que esto ha sido cierto desde aproximadamente 18.04.Eso significa que el archivo no existe. Pero puede crear el archivo y
bash
ejecuta / origina el archivo sibash
se invoca como un shell de inicio de sesión. Así que cada vez que inicie sesión a través de un shell (por ejemplo a través dessh
)Si desea que el contenido se ejecute cada vez que abra un terminal, debe modificar el
.bashrc
archivo.fuente
/etc/skel/
directorio..bash_profile
que falta (y no funciona) en Ubuntu en los comentarios sobre otras respuestas.La mejor respuesta para usar en
~/.profile
lugar de~/.bash_profile
no funcionó para mí.Modificar
.bashrc
trabajadoSólo:
Nota: estoy usando Ubuntu WSL.
fuente
~/.profile
simplemente no se carga por defecto en ubuntu 18.04Si te refieres al .bashrc, lo encontrarás en tu carpeta de inicio. Si no está allí, puede copiarlo desde la carpeta / etc / skel a su carpeta de inicio.
Si necesita más información sobre este tema, visite la página de stefaan lippens.
http://stefaanlippens.net/bashrc_and_others
fuente