23

Возможный дубликат:
Разница между .bashrc и .bash_profile

В чем разница между .profile и .bash_profile , и когда вы настраиваете какие?

Т.е., если я настраиваю .bash_profile , мне все еще нужно настраивать .profile?

4 ответа4

11

Предполагая, что 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-страницы для всех деталей.

5

Если вы настраиваете .bash_profile , вам также не нужно настраивать .profile .

Мне нравится хранить свои собственные псевдонимы и команды в .profile чтобы, если я что-то испортил, я знал, что всегда могу удалить .profile не затрагивая систему в целом или другие приложения, которые изменяют .bash_profile (например, MacPorts).

Чтобы использовать .profile , вам может потребоваться включить строковый source ~/.profile в ваш .bash_profile чтобы файл .profile читался (см. Ответ Неда Дейли).

2

.profile выполняется bash, когда вы получаете нормальный процесс оболочки - например, вы открываете инструмент терминала. .bash_profile выполняется bash для оболочек входа в систему - так что это, например, когда вы telnet/ssh подключаетесь к своей машине удаленно. Например, если вы ssh удаленно подключаетесь к машине (допустим, вы открываете X Terminal), вы изначально запустите .bash_profile. Если в этом XTerminal вы наберете "xterm" и создадите другой X Terminal, тогда .profile будет выполнен для второго экземпляра XTerminal. Файлы находятся в вашем домашнем каталоге (~). Если я не ошибаюсь по умолчанию, они оба выполняют ~/.bashrc, так что вы можете отредактировать это, чтобы настроить общие параметры /переменные для оболочек входа и не входа в систему (например, установка PATH, некоторые псевдонимы /ярлыки и т.д.). Возможно, вы захотите иногда настраивать некоторые вещи для этих двух по-разному, но я никогда не сталкивался с такой необходимостью - однако, возможность есть.

1

для быстрой и простой конфигурации (где вы не хотите усложнять вещи) просто настройте все в вашем ~/.profile. Только когда вы столкнетесь с некоторыми проблемами (но, вероятно, никогда не будете), узнайте больше о .bash_login или .bash_profile;)

Я тоже на OS X и никогда не нуждался в .bash_profile или .bash_login и использую только .profile, но ваш пробег может отличаться ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .