Назад | Перейти на главную страницу

.bashrc не загружен, существует .bash_profile

В терминале ubuntu мой .bashrc недоступен, пока я не запустил: source ~ / .bashrc

У меня есть ~ / .bash_profile с содержимым:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

У меня есть ~ / .profile с:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

Что мне делать, чтобы мой .bashrc загружался автоматически? Должен ли я объединить .bash_profile и .profile и удалить один из них? Спасибо

Вам нужно будет добавить ту же логику, которая существует в вашем .profile на ваш .bash_profile. .profile не используется, если .bash_profile существует, поэтому ваш .bashrc не получен.

Однако проверка того, используете ли вы bash, в .bash_profile не обязательно. Этого достаточно:

[[ -f ~/.bashrc ]] && source ~/.bashrc

На SuperUser есть отличный ответ, объясняющий разница между .bashrc и .bash_profile.

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

В противном случае, если вы уже вошли в систему и инициируете новый сеанс (открываете новую вкладку / окно или вызываете bash в cli), оболочка просто считывает ваш файл «rc».

Я справляюсь с этим, помещая почти все в свой файл .bashrc, а затем получая файл .bashrc из моего файла .profile. Вот пример:

Мой .profile файл:

source ~/.bashrc

Мой .bashrc файл:

alias g='egrep -i'

export CLICOLOR=1
export LSCOLORS=ehfxcxdxbxegedabagacad

PS1="\[\e[0;31m\]\u\[\e[0;32m\]@\[\e[0;31m\]\h\[\e[0;37m\] \w\[\e[0;39m\]"
case `id -u` in
        0) PS1="${PS1}# ";;
        *) PS1="${PS1}$ ";;
esac