Respostas:
/etc/bash.bashrc
aplica-se a todos os usuários
~/.bashrc
aplica-se apenas ao usuário em que pasta inicial está.
readonly
em /etc/bash.bashrc
: \
De acordo com a documentação do GNU Bash :
Quando o Bash é chamado como um shell de login interativo ou como um shell não interativo com a opção --login, ele primeiro lê e executa comandos do arquivo / etc / profile , se esse arquivo existir. Depois de ler esse arquivo, ele procura ~ / .bash_profile , ~ / .bash_login e ~ / .profile, nessa ordem, e lê e executa comandos do primeiro que existe e é legível. A opção --noprofile pode ser usada quando o shell é iniciado para inibir esse comportamento.
Chamado como um shell interativo de não logon Quando um shell interativo que não é um shell de logon é iniciado, o Bash lê e executa comandos de ~ / .bashrc , se esse arquivo existir. Isso pode ser inibido usando a opção --norc. A opção --rcfile file forçará o Bash a ler e executar comandos do arquivo em vez de ~ / .bashrc.
Então, normalmente, seu ~ / .bash_profile contém a linha
if [-f ~ / .bashrc]; então . ~ / .bashrc; fi
depois (ou antes) de qualquer inicialização específica de login.
Para suas preferências pessoais e scripts pessoais ou funções bash, você deve usar .bashrc (aliases, Funções adicionadas ao bash ...)
No momento em que você deseja compartilhar algo com todos os usuários (ou com a maioria dos usuários) ou para itens 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 até digamos que você especifique um script greetings.sh que imprime "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 seu .bashrc para apontar para o script dele em vez do seu. Em outras palavras, o usuário sempre pode personalizar sua sessão no .bashrc para o que ele quiser.