¿No debería ejecutarse .bashrc cada vez que inicio sesión?

¿No debería ejecutarse .bashrc cada vez que inicio sesión?

Soy nuevo en Ubuntu, así que perdone si escribo las cosas de manera extraña... Todo lo que realmente quiero hacer es cambiar mi comando ls als --color=always -ragX

Lo solucioné... Alias ​​funcionará muy bien. Ahora, para que eso se ejecute cada vez que inicio sesión (SSH desde PuTTY a la línea de comando), creé .bashrcen mi directorio de inicio e ingresé

alias ls='ls --color=always -ragX'

guardado, salido y vuelto a entrar

mecanografiadovi

¿Parece que el .bashrcarchivo no se está ejecutando? ¿Ahora que?

Respuesta1

Verhttps://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files

Cuando se invoca a Bash comoinicio de sesión interactivoshell, o como un shell no interactivo con la opción --login, primero lee y ejecuta comandos del archivo /etc/profile, si ese archivo existe. Después de leer ese archivo, busca ~/.bash_profile, ~/.bash_loginy ~/.profile, en ese orden, y lee y ejecuta comandos desde el primero que existe y es legible. La opción --noprofile se puede utilizar cuando se inicia el shell para inhibir este comportamiento.

Tenga en cuenta que no se menciona lo ~/.bashrcanterior.

Cuando uninteractivocaparazón que esno es un inicio de sesiónSe inicia el shell, Bash lee y ejecuta comandos de ~/.bashrc, si ese archivo existe. Esto se puede inhibir usando la opción --norc. La opción de archivo --rcfile obligará a Bash a leer y ejecutar comandos desde un archivo en lugar de ~/.bashrc.

Verifique las preferencias de su aplicación terminal para ver si inicia un shell de inicio de sesión o no.

Alternativamente, puedes agregar esto a tu~/.bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

Respuesta2

Algunas cosas a tener en cuenta:

  1. Los archivos .bashrc no se "ejecutan", por lo que si buscas en una lista de procesos, no los verás en ninguna parte, y eso está bien.

  2. bash lee el archivo bashrc cuando se inicia, por lo que si realiza cambios en su archivo bashrc, no tendrán efecto hasta la próxima vez que ejecute bash. Cuando estés probando ediciones en tu archivo bashrc, puedes ver fácilmente los cambios simplemente ejecutando bash nuevamente (por ejemplo, abre la terminal y luego escribe "bash"). Los cambios también se recogerán cuando cierre sesión en Ubuntu y luego vuelva a iniciarla (bloquear la pantalla o entrar en modo de espera no funcionará, pero cerrar sesión o reiniciar sí funcionará).

  3. Su archivo .bashrc debe estar en su directorio de inicio. Puede verificar esto editando el archivo como vi ~/.bashrcen lugar de simplementevi .bashrc

Respuesta3

Como ya dijo muru, debería haber por defecto (después del primer inicio de sesión) un .bashrc en su directorio de inicio /home/youloginname

Para proteger su bashrc existente, cree una copia con el siguiente comando.

cp ~/.bashrc ~/mybashrc.backup

Después de esto, puede restaurar el .bashrc predeterminado; para ello, elimine primero el existente y luego cópielo desde el bashrc de todo el sistema. Si aún no lo has hecho, configura el permiso correcto para el archivo.

rm ~/.bashrc
cat /etc/bash.bashrc > ~/.bashrc
chmod 644 ~/.bashrc

Después de esto, realice los cambios en el archivo .bashrc en su hogar. Cuando haya terminado, no necesita cerrar sesión ni iniciar sesión ni siquiera reiniciar. Simplemente recarga el bashrc con el siguiente comando

source ~/.bashrc

Eso debería hacerlo....

Respuesta4

En Ubuntu, el inicio de sesión de bash funciona igual que en otras distribuciones.

Una vez que agregue el alias en su .bashrc como lo hizo usando:

alias ls='ls --color=always -ragX'

Para que ls se ejecute automáticamente cada vez que inicie sesión, simplemente puede agregarlo a la última línea de su .bashrcarchivo.

Si no ve el resultado de lso ls --color=always -ragXal iniciar sesión, probablemente haya un error en su .bashrcarchivo.

información relacionada