Відповіді:
.bash_profileі .bashrcє специфічними для bash, тоді .profileяк читається багатьма оболонками за відсутності власних конфігураційних файлів для оболонки. ( .profileвикористовувався оригінальною оболонкою Борна.) .bash_profileабо .profileчитається оболонками для входу разом із .bashrc; передпрограми для читання .bashrc. (Між контролем роботи та сучасними системами вікон .bashrcсамо по собі мало використовуються. Якщо ви використовуєте screenабо tmux, екрани / вікна зазвичай запускають підзаголовки замість оболонок для входу.)
Ідея цього полягала в тому, що одноразове налаштування здійснювалося .profile(або специфічною для оболонки версією), а за допомогою оболонки - іншим .bashrc. Наприклад, ви, як правило, хочете завантажувати змінні середовища лише один раз за сеанс, замість того, щоб збивати їх у будь-який момент, коли ви запускаєте підпрограму протягом сеансу, тоді як ви завжди хочете, щоб ваші псевдоніми (які не розповсюджуються автоматично, як змінні середовища).
Інші помітні конфігураційні файли оболонки:
/etc/bash_profile(резервна копія /etc/profile) зчитується перед користувачем .profileдля загальносистемної конфігурації, а також /etc/bashrcу підпакеті (для цього немає жодної резервної копії). Багато систем, включаючи Ubuntu, також використовують /etc/profile.dкаталог, що містить сценарії оболонки, з яких .( source) -ed /etc/profile; фрагменти тут на оболонку, із *.shзастосуванням до всіх сумісних оболонок Bourne / POSIX та інших розширень, що стосуються саме цієї оболонки.
.профіль
.profileпризначений для речей, не пов'язаних конкретно Bash, наприклад змінних оточення PATHта друзів, і вони повинні бути доступні в будь-який час.
Наприклад, .profileтакож слід завантажувати при запуску графічного сеансу на робочому столі.
.bashrc
.bashrcпризначений для налаштування інтерактивного використання Bash, наприклад Bash aliases, налаштування улюбленого editor, налаштування Bash promptтощо
.bash_profile
.bash_profile призначений для того, щоб переконатися, що обидва речі в них .profileі .bashrcзавантажені login shells.
Наприклад, .bash_profileможе бути щось просте на кшталт
. ~/.profile
. ~/.bashrc
Якби ви пропустили .bashrc, .profileзавантажували б тільки .
Згідно зі сторінкою bash man, .bash_profileвін виконується для оболонок для входу, а .bashrcінтерактивних оболонок без входу.
Отже, що таке оболонка для входу або не вхід у систему?
Коли ви входите (введіть ім’я користувача та пароль) через консоль, або сидячи за машиною, або віддалено через ssh: .bash_profileвиконується для налаштування вашої оболонки перед початковим командним рядком. Але, якщо ви вже увійшли в свою машину і відкрили нове вікно терміналу (xterm) всередині Gnome або KDE, .bashrcвоно виконується перед командним вікном вікна. .bashrcтакож запускається при запуску нового екземпляра bash, ввівши /bin/bashтермінал.
Виняток із настанов вікна терміналів - це Terminal.app Mac OS X, який за замовчуванням виконує оболонку входу для кожного нового вікна терміналу, викликаючи .bash_profileзамість нього .bashrc. Інші емулятори терміналів GUI можуть робити те саме, але більшість, як правило, не роблять цього.
Більше тут .