В чем разница между .bash_profile и .bashrc?

Чтобы создать псевдоним для терминала в OS X, вы можете поместить псевдонимы в .bash_profile или .bashrc. В чем разница между ними и почему я должен выбирать псевдонимы в одном, а не другом?

130 голосов | спросил daviesgeek 11 Mayam12 2012, 01:39:54

3 ответа


140

.bash_profile выполняется для оболочек входа, а .bashrc выполняется для интерактивных оболочек без входа.

Когда вы входите в систему (введите имя пользователя и пароль) через консоль, либо сидите на машине, либо удаленно через ssh: .bash_profile выполняется для настройки оболочки перед исходной командной строкой.

Но если вы уже вошли в свою машину и открываете новое окно терминала (xterm), то перед командной строкой окна выполняется .bashrc. .bashrc также запускается при запуске нового экземпляра bash, набрав /bin /bash в терминале.

В OS X терминал по умолчанию запускает оболочку входа каждый раз, поэтому это немного отличается от большинства других систем, но вы можете настроить это в настройках.

ответил Alex 11 Mayam12 2012, 01:46:25
27

X11 будет смотреть на ваш .bashrc, в то время как «обычный» терминал будет смотреть на .bash_profile

Однако, если вы добавите следующее в свой .bash_profile, вы можете переместить все в свой .bashrc файл, чтобы объединить все в одно место вместо двух

, если [-f $ HOME /.bashrc]; тогда
        источник $ HOME /.bashrc
фи
ответил Lurch 11 Mayam12 2012, 02:53:34
11

Для macOS код для вставки в .bash_profile для консолидации всего в .bashrc выглядит следующим образом:

, если [-f ~ /.bashrc]; тогда
    источник ~ /.bashrc
фи

Это более специфично для пользователей терминала Mac.

ответил frzhen 3 FebruaryEurope/MoscowbFri, 03 Feb 2017 06:00:36 +0300000000amFri, 03 Feb 2017 06:00:36 +030017 2017, 06:00:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132