Яка різниця між .profile та .bash_profile, і коли ви налаштовуєте який? (Mac) [дублікат]


23

Можливий дублікат:
різниця між .bashrc та .bash_profile

Яка різниця між .profileі .bash_profile, і коли ви налаштовуєте який?

Тобто якщо я конфігурую .bash_profile, чи потрібно все-таки налаштувати .profile?

Відповіді:


12

Припустимо, що bashце ваша оболонка за замовчуванням, відмінності описані на bashсторінці man ( 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.

Більш детальна інформація на сторінці man, яка охоплює режим сумісності оболонок POSIX, звідки і .profileпоходить. Прочитайте весь розділ сторінки чоловіка, щоб отримати детальну інформацію.


в Ubuntu 18.04 відкриття нового вікна терміналу викликає не .profileтільки .bashrc:(
CpILL

5

Якщо ви налаштуєте .bash_profile, вам також не потрібно буде налаштовувати .profile.

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

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


3

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


в Ubuntu 18.04 відкриття нового вікна терміналу не дзвонить .profile?
CpILL

1

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.