В .profileвосходит к оригинальной оболочке Борна , известной как sh. Поскольку оболочка GNU bash(в зависимости от ее параметров) является надмножеством оболочки Bourne, обе оболочки могут использовать один и тот же файл запуска. То есть при условии, что в shкоманду введены только команды.profile
Например, aliasдопустимая встроенная команда, bashно неизвестная sh. Поэтому, если у вас есть только .profileв вашем домашнем каталоге и поместите aliasв него заявление , вы будете shжаловаться. Таким образом, существует специальный файл bash, который имеет команды инициализации оболочки, которые bash будет читать, если и только если .profileфайла нет.
На самом деле, это немного упрощает некоторые установки, и я не знаком с Fedora. В bash /etc/profileчитается оболочкой перед любыми файлами в вашем домашнем каталоге. Если есть общесистемный скрипт инициализации, он часто говорит что-то вроде
if there is a $HOME/.profile:
source it
elseif bash is my shell and there is a $HOME/.bash_profile:
source that
Почему так? Попытка совместимости через десятилетия оболочечных диалектов. Почему учебник написан именно так? Оболочка Bourne не так часто используется, и некоторые люди даже не знают, что есть какая-то другая оболочка, похожая на Bourne, кроме bash. Даже когда (ограниченный) синтаксис Bourne используется для большей кроссплатформенной совместимости, он часто запускается dashили bash в режиме совместимости с POSIX. Действительно, фактический источник оболочки Bourne, вероятно, является компонентом авторского права Unix System V, который, похоже, является собственностью Novell, но я понятия не имею, что они делают с ним, если вообще что-то делают.
Для начинающего пользователя, использование либо $HOME/.profileили , $HOME/.bash_profileно не так , и вы будете в порядке. Поскольку у вас уже есть .bash_profileработа с этим, потому что он может иметь специфические для системы вещи, которые нужны вашей установке.