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 .bashrcescribo los alias aparecieron.
.bashrc debe ejecutarse cada vez que abro una nueva ventana de terminal, ¿verdad?
¿Cómo hago que esto suceda?

.profilese 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 $$ $PPIDen una terminal y copie y pegue la salida..bashrcen 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
~/.profilese ejecuta, a menos que tenga cualquiera~/.bash_profileo~/.bash_login, pero no están allí por defecto. Por defecto, Ubuntu usa solo .profile.El estándar
~/.profiletiene 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_profileo~/.bash_login. Puede probar marcando o desmarcando la casilla de verificaciónEdit -> Profile Preferences -> Title and Command -> "Run command as a login shelly salir y volver a ejecutar el terminal. Podrías repetir algo de .profile para probar.~/.bash_profileo~/.bash_loginen su sistema y desea conservarlos, pero aún desea ejecutarlos~/.profiledesde allí~/.bashrc, puede obtenerlos desde su cuenta~/.bash_profileo~/.bash_logincon 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
.bashrcfaltaban las líneas del cargador en.bash_profileLo agregué manualmente y funcionó con mi nuevo inicio de sesión
fuente
.bash_profile? Ubuntu usa un.profilepor defecto, no.bash_profile.pcrey parece que sobrescribió el perfil de bash en lugar de agregarlo..bash_profilecontiene 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_profilepara configurar el shell de acuerdo con bashrc.fuente
~/.bash_profileno se leerá (y no existe de manera predeterminada en Ubuntu)Si
$BASH_VERSIONno está configurado, intente usar elchshcomando 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_profileo~/.bash_login exists, esos se ejecutarán en lugar de~/.profileSi desea ejecutar
~/.bashrcsólo tiene que añadir la líneasource ~/.bashrcdebash_profilefuente
.bashrcfuente se obtuvo hasta que creé un.bash_profilearchivo. Así que antepuse lasource ~/.bashrclínea a mi.bash_profilearchivo.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 escribabashy ciérrelo. La próxima vez que abra la terminal, también se ejecutará bash automáticamente.fuente