Почему мне нужно запустить команду source для применения псевдонима .bashrc?

Почему мне нужно запустить команду source для применения псевдонима .bashrc?

Хотя я понимаю, что эта sourceкоманда выполняет программу в текущей оболочке, я не совсем понимаю, зачем нам нужно запускать ее source .bashrcдля «перезагрузки» файла .bashrc.

Насколько я понимаю, мы не запускаем никакой скрипт, добавляя псевдоним к .bashrc — source .bashrcмы просто «перезагружаем» файл.

Почему он не перезагружается автоматически?

Наверное, я что-то упускаю.

Как это работает под капотом? Зачем нам нужен sourceэтот файл, чтобы заставить новые псевдонимы работать без выхода из системы?

решение1

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

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

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

Связанный контент