What's the difference between .bashrc and /etc/bash.bashrc?

.bashrc and /etc/bashrc

What's the difference between /etc/bash.bashrc and ~/.bashrc?

7

2 Answers

When bash initializes a non-login interactive bash shell on a Debian/Ubuntu-like system, the shell first reads /etc/bash.bashrc and then reads ~/.bashrc.

The reason that /etc/bash.bashrc does not appear in normal bash documentation (such as here or here) is that it is a feature added by Debian and adopted by Ubuntu. As Debian explains it (readme.debian):

  1. What is /etc/bash.bashrc? It doesn't seem to be documented.

The Debian version of bash is compiled with a special option (-DSYS_BASHRC) that makes bash read /etc/bash.bashrc before ~/.bashrcfor interactive non-login shells. So, on Debian systems,/etc/bash.bashrc is to ~/.bashrc as /etc/profile is to~/.bash_profile.

Thus, /etc/bash.bashrc is documented in the Debian and Ubuntu man pages but not in man pages from other distributions that do not support this feature.

Update: More distributions

/etc/bash.bashrc has been adopted beyond Debian circles as comments indicate its usage in distros like Arch Linux, MSYS2 and thereby Git Bash.

3

System wide initialization file /etc/bash.bashrc and the standard personal initialization file ~/.bashrcif the shell is interactivе.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like