¿Cuál es la diferencia entre .bashrc y /etc/bash.bashrc?

14

.bashrc y / etc / bashrc

¿Cuál es la diferencia entre /etc/bash.bashrcy ~/.bashrc?

Iliyas Mansons
fuente
No veo por /etc/bashrcningún lado.
mikewhatever
2
Ver la sección de la página de manual de bash ARCHIVOS.
Cyrus
1
@mikewhatever, puedes encontrar /etc/bash.bashrc.
Iliyas Mansons
@Cyrus Revisé la sección de archivos de la página de manual y "bash.bashrc" no aparece allí, solo aparece "~ / .bashrc". ¿Podría proporcionar un enlace a la página de manual que estaba viendo? Estaba mirando Bash Man Page
WinEunuuchs2Unix
1
@ Cyrus, ¡he encontrado la respuesta en el enlace que has compartido!
Iliyas Mansons

Respuestas:

24

Cuando bash inicializa un shell bash interactivo sin inicio de sesión en un sistema similar a Debian / Ubuntu, el shell primero lee /etc/bash.bashrcy luego lee ~/.bashrc.

La razón que /etc/bash.bashrcno aparece en la documentación de bash normal (como aquí o aquí ) es que es una característica agregada por Debian y adoptada por Ubuntu. Como lo explica Debian ( readme.debian ):

  1. ¿Qué es /etc/bash.bashrc? No parece estar documentado.

    La versión Debian de bash se compila con una opción especial ( -DSYS_BASHRC) que hace que bash se lea /etc/bash.bashrcantes ~/.bashrc para shells interactivos sin inicio de sesión. Entonces, en los sistemas Debian, /etc/bash.bashrces ~/.bashrccomo /etc/profilees ~/.bash_profile.

Por lo tanto, /etc/bash.bashrcestá documentado en las páginas de manual de Debian y Ubuntu, pero no en las páginas de manual de otras distribuciones que no admiten esta función.

John1024
fuente
1
Vale la pena señalar que el uso se está extendiendo. Git bash, basado en MSYS2, también tiene esta convención. Parece ser adoptado para establecer adaptaciones / configuraciones / estándares a nivel de sistema.
BenPen
4

El archivo de inicialización de todo el sistema /etc/bash.bashrc y el archivo de inicialización personal estándar ~/.bashrc si el shell es interactivo.

Iliyas Mansons
fuente