Why do I need to run source command for .bashrc alias to get applied?

While I understand that source command executes a program in the current shell, I don't quite understand why we need to run source .bashrc to "reload" the .bashrc file.

From my understanding, we do not run any script by adding an alias to .bashrc - with source .bashrc we just "reload" the file.

Why does it not reload automatically?

Probably, I'm missing something.

How does it work under the hood? Why do we need to source this file to get new aliases working without login out?

0
задан 11 August 2020 в 18:57

1 ответ

.bashrc читается только один раз при запуске bash. Это так задумано (и так было всегда). Если вы внесете какие-либо последующие изменения в .bashrc , они не будут применены до тех пор, пока не будет перечитан .bashrc . Запустив source .bashrc , вы делаете именно это - вы говорите bash перечитать этот файл.

Конечно, вы также можете запустить новую копию bash (например, запустив новый сеанс терминала) ), это заставит новый процесс bash снова прочитать файл .bashrc (но в старом сеансе изменений не будет).

Кстати. .bashrc файл является сценарием, и, получая его, вы выполняете команды, помещенные в этот файл. Команды определяют псевдонимы в вашем случае, но в этом файле могут быть практически любые команды.

2
ответ дан 11 August 2020 в 20:03

Другие вопросы по тегам:

Похожие вопросы: