В терминале 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