wsl ubuntu linux环境变量重复 环境变量不生效source .profile source .bashrc

source命令

source .profile

source .bashrc

在同一个shell窗口中,每source一次.profile或者.bashrc,自定义的环境变量就会再添加一次,$PATH越来越长,此时重新打开一个窗口就会恢复正常,但是有时会发现刚才添加的环境变量在新的shell窗口中没有生效,还要执行source命令

因为source命令更新的环境变量是临时起作用,只在当前shell中生效。

.profile文件

如果使用.profile文件添加环境变量,想要永久生效,就必须重新登录当前用户。

也可以在其他环境变量文件中添加source .profile命令,但是实际上,在没有重新登录的情况下,这并不是永久生效,只是每一次你不用手动输入source命令,它每次自动执行了而已。

.bashrc文件

在.bashrc中添加环境变量,每次打开shell窗口都会执行一次,也不属于永久生效,因为在.profile或者.bash_profile中存在读取.bashrc的命令,如下,如果在.bashrc中添加的环境变量没有自动生效,那就在.profile或者.bash_profile中添加如下代码。

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