В чем разница между .profile и .bash_profile, и когда вы настраиваете какие? (Mac) [дубликат]

23

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

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

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

Имран
источник

Ответы:

12

Предполагается, bashчто ваша оболочка по умолчанию, различия описаны в bashman-странице ( 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-страницы для всех деталей.


источник
в Ubuntu 18.04 Открытие нового терминала окно не вызывает .profileтолько .bashrc:(
CpILL
5

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

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

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

speedofmac
источник
3

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


источник
в Ubuntu 18.04 открытие нового окна терминала не вызывает .profile?
CpILL
1

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

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

jm666
источник