/etc/bash.bashrc
se aplica a todos os usuários
~/.bashrc
aplica-se apenas ao usuário em que a pasta base é.
Quando devo usar cada um dos dois arquivos .bashrc para definir meus aliases, prompt, etc?
De acordo com a Documentação do GNU Bash :
When Bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
Invoked as an interactive non-login shell When an interactive shell that is not a login shell is started, Bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force Bash to read and execute commands from file instead of ~/.bashrc.
So, typically, your ~/.bash_profile contains the line
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
after (or before) any login-specific initializations.
Para suas preferências pessoais e scripts pessoais ou funções bash você deve usar .bashrc (aliases, funções adicionadas para bash ...)
No momento em que você deseja compartilhar algo com todos os usuários (ou a maioria dos usuários) ou para coisas de uso geral (Caminho para executáveis compartilhados, caminho para documentação ...), coloque-o em /etc/bash.bashrc
Eu disse a maioria dos usuários porque mesmo digamos que você especifique um script greetings.sh que imprima "Hello world!"
para todos os usuários, mas o usuário Pepe deseja usar o script greetings.sh que imprime "Hola el mundo!"
. Ele pode modificar seu caminho em sua .bashrc para apontar seu script em vez do seu. Em outras palavras, o usuário sempre pode personalizar sua sessão em .bashrc para o que ele quiser.