Які функціональні відмінності між .profile .bash_profile та .bashrc


Відповіді:


151

.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 та інших розширень, що стосуються саме цієї оболонки.


58

.профіль

.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завантажували б тільки .


1
Це відповіло на моє запитання щодо Mac OS X
Джейк Торонто,

38

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

Більше тут .

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