Відповіді:
.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 можуть робити те саме, але більшість, як правило, не роблять цього.
Більше тут .