一文搞懂Ubuntu环境变量

用户级别的环境变量

  • .bash_profile
  • .bash_login
  • .bashrc

坑的原理:

1.当bash shell作为登录shell启动时(比如用户登录系统时),首先会查找并执行/.bash_profile文件。如果这个文件不存在,那么它会尝试查找并执行/.bash_login。如果/.bash_login也不存在,那么它会尝试查找并执行/.profile。
2.当bash shell作为交互式非登录shell启动时(比如在已登录的系统中打开一个新的终端窗口时),它会查找并执行~/.bashrc。

坑的原因,新建了一个bash_profile,导致其他文件里边的环境变量失效

解决
因此,如果你打算在所有登录和非登录的bash shell中都使用一些设置(比如环境变量或命令别名),那么最好将这些设置添加到/.bashrc中,并在/.bash_profile(或者/.bash_login或/.profile,取决于你的系统配置)中添加以下代码,以确保登录shell也会加载~/.bashrc

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

此外还有一个在mac中常用的shell的环境变量文件
~/.zshrc

解决办法

加入以上代码,或者把东西放进一个文件内,要不然就只能加载优先级最高的一个

补充

  • 系统级环境变量
    在Linux中,系统级别的环境变量通常在以下文件或目录中设置:
    /etc/environment: 这个文件是用来存储系统级别环境变量的一个好地方。这个文件只包含简单的“变量名=值”对,不能包含shell脚本。
    /etc/profile和/etc/profile.d/*: 这些文件用于全局shell环境变量。/etc/profile文件在用户登录时执行一次。/etc/profile.d目录中的所有脚本都会被/etc/profile执行。
    /etc/bash.bashrc或/etc/bashrc: 这些文件在每次打开新的bash shell时都会被执行,适合那些需要在每个bash shell中都可用的环境变量。

你可能感兴趣的:(笔记,ubuntu,bash,linux)