Jaka jest różnica między .bashrc a /etc/bash.bashrc?

14

.bashrc i / etc / bashrc

Jaka jest różnica między /etc/bash.bashrci ~/.bashrc?

Iliyas Mansons
źródło
1
/etc/bashrcNigdzie nie widzę .
mikewhthing
2
Zobacz sekcję strony bash PLIKI.
Cyrus
1
@mikewhokolwiek, możesz znaleźć /etc/bash.bashrc.
Iliyas Mansons,
@ Cyrus Sprawdziłem sekcję PLIKI strony podręcznika i nie pojawia się tam „bash.bashrc”, pojawia się tylko „~ / .bashrc”. Czy możesz podać link do strony man, którą oglądałeś?
Patrzyłem
1
@ Cyrus, znalazłem odpowiedź z udostępnionego linku!
Iliyas Mansons,

Odpowiedzi:

24

Kiedy bash inicjuje interaktywną powłokę bash bez logowania w systemie podobnym do Debiana / Ubuntu, powłoka najpierw czyta, /etc/bash.bashrca następnie czyta ~/.bashrc.

Powodem, /etc/bash.bashrcktóry nie pojawia się w normalnej dokumentacji bash (takiej jak tutaj lub tutaj ) jest to, że jest to funkcja dodana przez Debiana i przyjęta przez Ubuntu. Jak wyjaśnia Debian ( readme.debian ):

  1. Co to jest /etc/bash.bashrc? Nie wydaje się to udokumentowane.

    Debianowa wersja bash jest skompilowana ze specjalną opcją ( -DSYS_BASHRC), która sprawia, że ​​bash jest czytany /etc/bash.bashrcwcześniej ~/.bashrc dla interaktywnych powłok bez logowania. Tak więc w systemach Debian /etc/bash.bashrcjest taki, ~/.bashrcjaki /etc/profilejest ~/.bash_profile.

Tak więc /etc/bash.bashrcjest udokumentowany na stronach podręcznika Debiana i Ubuntu, ale nie na stronach podręcznika z innych dystrybucji, które nie obsługują tej funkcji.

John1024
źródło
1
Warto zauważyć, że wykorzystanie się rozprzestrzenia. Git bash, oparty na MSYS2, również ma tę konwencję. Wydaje się, że zostało przyjęte w celu ustalenia adaptacji / konfiguracji / standardów na poziomie systemu.
BenPen,
4

Systemowy plik inicjujący /etc/bash.bashrc i standardowy osobisty plik inicjujący, ~/.bashrc jeśli powłoka jest interaktywna.

Iliyas Mansons
źródło