Возможный дубликат:
Разница между .bashrc и .bash_profile
В чем разница между .profile
и .bash_profile
, и когда вы настраиваете какие?
Т.е., если я настраиваю .bash_profile
, мне все еще нужно настраивать .profile
?
Предполагая, что bash
является вашей оболочкой по умолчанию, различия описаны на странице руководства bash
(man bash
):
When bash is invoked as an interactive login shell, or as a non-interac-
tive shell with the --login option, it first reads and executes commands
from the file /etc/profile, if that file exists. After reading that file,
it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that
order, and reads and executes commands from the first one that exists and
is readable. The --noprofile option may be used when the shell is started
to inhibit this behavior.
На странице руководства есть более подробная информация о режиме совместимости с POSIX-оболочкой, откуда и происходит .profile
. Прочитайте весь раздел man-страницы для всех деталей.
Если вы настраиваете .bash_profile
, вам также не нужно настраивать .profile
.
Мне нравится хранить свои собственные псевдонимы и команды в .profile
чтобы, если я что-то испортил, я знал, что всегда могу удалить .profile
не затрагивая систему в целом или другие приложения, которые изменяют .bash_profile
(например, MacPorts).
Чтобы использовать .profile
, вам может потребоваться включить строковый source ~/.profile
в ваш .bash_profile
чтобы файл .profile
читался (см. Ответ Неда Дейли).
.profile выполняется bash, когда вы получаете нормальный процесс оболочки - например, вы открываете инструмент терминала. .bash_profile выполняется bash для оболочек входа в систему - так что это, например, когда вы telnet/ssh подключаетесь к своей машине удаленно. Например, если вы ssh удаленно подключаетесь к машине (допустим, вы открываете X Terminal), вы изначально запустите .bash_profile. Если в этом XTerminal вы наберете "xterm" и создадите другой X Terminal, тогда .profile будет выполнен для второго экземпляра XTerminal. Файлы находятся в вашем домашнем каталоге (~). Если я не ошибаюсь по умолчанию, они оба выполняют ~/.bashrc, так что вы можете отредактировать это, чтобы настроить общие параметры /переменные для оболочек входа и не входа в систему (например, установка PATH, некоторые псевдонимы /ярлыки и т.д.). Возможно, вы захотите иногда настраивать некоторые вещи для этих двух по-разному, но я никогда не сталкивался с такой необходимостью - однако, возможность есть.
для быстрой и простой конфигурации (где вы не хотите усложнять вещи) просто настройте все в вашем ~/.profile. Только когда вы столкнетесь с некоторыми проблемами (но, вероятно, никогда не будете), узнайте больше о .bash_login или .bash_profile;)
Я тоже на OS X и никогда не нуждался в .bash_profile или .bash_login и использую только .profile, но ваш пробег может отличаться ...