Embora eu entenda que o source
comando executa um programa no shell atual, não entendo muito bem por que precisamos executar source .bashrc
para "recarregar" o arquivo .bashrc.
Pelo que entendi, não executamos nenhum script adicionando um alias a .bashrc - source .bashrc
apenas "recarregamos" o arquivo.
Por que ele não recarrega automaticamente?
Provavelmente, estou faltando alguma coisa.
Como isso funciona nos bastidores? Por que precisamos source
deste arquivo para que novos aliases funcionem sem fazer login?
Responder1
.bashrc
é lido apenas uma vez, quando o bash é iniciado. É assim por design (e sempre foi). Se você fizer alterações subsequentes em .bashrc
, elas não serão aplicadas até que .bashrc
sejam lidas novamente. Ao executar source .bashrc
, você faz exatamente isso - diz ao bash para reler esse arquivo.
É claro que você também pode iniciar uma nova cópia do bash (por exemplo, iniciando uma nova sessão de terminal), isso fará com que o novo processo bash leia o .bashrc
arquivo novamente (mas não haverá alterações na sessão antiga).
POR FALAR NISSO. .bashrc
arquivoéum script e, ao obtê-lo, você executa os comandos colocados nesse arquivo. Os comandos definem aliases no seu caso, mas pode haver praticamente qualquer comando colocado nesse arquivo.