.bashrc 未加载,.bash_profile 存在

.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 并删除其中一个吗?谢谢

答案1

您需要将存在于您的 中的相同逻辑添加.profile到您的 中.bash_profile.profile如果存在则不被使用.bash_profile,因此您的.bashrc不会被引用。

不过,在 .bash_profile 中不需要检查您是否正在运行 bash。这已经足够了:

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

答案2

SuperUser 上有一个很好的答案,解释了.bashrc 和 .bash_profile 之间的区别

本质上,“配置文件”文件仅在登录时读取。您可以这样想;当您登录时,shell 使用其中一个配置文件来“设置您的配置文件”。

否则,如果您已经登录,并且启动了新的会话(打开新的选项卡/窗口或在 cli 上调用 bash),则 shell 只会读取您的“rc”文件。

我通过将大部分内容放入 .bashrc 文件中,然后从 .profile 文件中获取 .bashrc 文件来处理此问题。以下是示例:

我的.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

相关内容