.bashrc не запускается автоматически?

1346
Amorris

При открытии нового терминала мне нужно сделать это source ~/.bashrcили source ~./bash_profileдо того, как моя $PATHпеременная будет инициализирована. Я думал, .bashrcсделал это автоматически? Как мне сделать так, чтобы мне не нужно было это делать.

0

1 ответ на вопрос

1
Alexandro de Oliveira

Я не уверен, что понимаю ваши вопросы, но:

Ваши файлы инициализации bash должны быть получены при загрузке. Если нет, ваша система плохо настроена или сломана.

Вы не упомянули свою операционную систему, но я предполагаю, что вы используете Linux, в любом случае.

Последовательность инициализации, согласно man bashследующей:

Когда bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения. Опция --noprofile может использоваться, когда оболочка запущена, чтобы запретить это поведение.
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc, если эти файлы существуют. Это может быть запрещено с помощью параметра --norc. Опция --rcfile file заставит bash читать и выполнять команды из файла вместо /etc/bash.bashrc и ~ / .bashrc .

Например, в дистрибутиве Ubuntu после загрузки /etc/profileон ищет ~/.profileфайл, который выглядит следующим образом:

if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi  # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi 

Это означает, что, если вы используете bash и файл ~/.bashrcсуществует, он будет загружен / получен и после этого будет установлена ​​переменная $ PATH.

Поэтому я предлагаю вам сначала взглянуть на ваш ~/.profileфайл и исправить его, если это необходимо.

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