El código en .bashrc no se ejecuta cuando abro una nueva ventana de terminal en Ubuntu 12.04. Me di cuenta de esto al crear un archivo .bash_aliases. Los alias no aparecieron cuando abrí una nueva terminal. Sin embargo, cuando source .bashrc
escribo los alias aparecieron.
.bashrc debe ejecutarse cada vez que abro una nueva ventana de terminal, ¿verdad?
¿Cómo hago que esto suceda?
.profile
se lee en el momento de iniciar sesión, no cuando abre una nueva terminal, a menos que haya una configuración incorrecta en alguna parte. Selah: ¿cambiaste algo de la configuración predeterminada? Ejecútelops -o command $$ $PPID
en una terminal y copie y pegue la salida..bashrc
en tu carpeta de inicio, ¿verdad?echo $SHELL
. Esto me sucedió y el shell era / bin / sh en lugar de bash. Corríjalo en / etc / passwd y su ejecución .bashrc.Respuestas:
No necesariamente se ejecuta; en la parte superior del estándar .bashrc está este comentario:
Creo que hay una opción para ejecutar bash terminal como shell de inicio de sesión o no. Con Ubuntu, gnome-terminal normalmente no se ejecuta como un shell de inicio de sesión, por lo que .bashrc debe ejecutarse directamente.
Para shells de inicio de sesión (como los terminales virtuales), normalmente el archivo
~/.profile
se ejecuta, a menos que tenga cualquiera~/.bash_profile
o~/.bash_login
, pero no están allí por defecto. Por defecto, Ubuntu usa solo .profile.El estándar
~/.profile
tiene esto en él:Esto ejecuta .bashrc si está disponible, suponiendo que $ BASH_VERSION esté presente en su entorno. Puede verificar esto ingresando el comando
echo $BASH_VERSION
, y debe mostrar cierta información sobre el número de versión; no debe estar en blanco.fuente
~/.bash_profile
o~/.bash_login
. Puede probar marcando o desmarcando la casilla de verificaciónEdit -> Profile Preferences -> Title and Command -> "Run command as a login shell
y salir y volver a ejecutar el terminal. Podrías repetir algo de .profile para probar.~/.bash_profile
o~/.bash_login
en su sistema y desea conservarlos, pero aún desea ejecutarlos~/.profile
desde allí~/.bashrc
, puede obtenerlos desde su cuenta~/.bash_profile
o~/.bash_login
con una línea que los contengasource "$HOME/.profile"
. ¡Le devuelve la salida coloreada de ls también en shells de inicio de sesión!En mi caso, simplemente
.bashrc
faltaban las líneas del cargador en.bash_profile
Lo agregué manualmente y funcionó con mi nuevo inicio de sesión
fuente
.bash_profile
? Ubuntu usa un.profile
por defecto, no.bash_profile
.pcre
y parece que sobrescribió el perfil de bash en lugar de agregarlo..bash_profile
contiene la configuración para el shell bash. Cuando abre una terminal, primero lee y ejecuta comandos desde~/.bash_profile
. Entonces puede agregar lo siguiente.bash_profile
para configurar el shell de acuerdo con bashrc.fuente
~/.bash_profile
no se leerá (y no existe de manera predeterminada en Ubuntu)Si
$BASH_VERSION
no está configurado, intente usar elchsh
comando para configurar su shell/bin/bash
.Tuve un problema similar con 12.04 LTS, y resultó que la nueva cuenta de usuario tenía el shell predeterminado configurado
/bin/sh
, que fue la causa del problema.fuente
Según el comentario en .profile
Así que ahí va, si
~/.bash_profile
o~/.bash_login exists
, esos se ejecutarán en lugar de~/.profile
Si desea ejecutar
~/.bashrc
sólo tiene que añadir la líneasource ~/.bashrc
debash_profile
fuente
.bashrc
fuente se obtuvo hasta que creé un.bash_profile
archivo. Así que antepuse lasource ~/.bashrc
línea a mi.bash_profile
archivo.En lugar de pasar por todo eso, simplemente vaya
Edit -> Profile Preferences -> Title and Command -> "Run a custom command instead of my shell"
y en el cuadro de comando personalizado escribabash
y ciérrelo. La próxima vez que abra la terminal, también se ejecutará bash automáticamente.fuente