在 Linux 和 Unix 系统中,有多个文件可以用来设置环境变量。环境变量可以在用户登录时或在特定的 shell 会话中被加载。以下是常见的用于设置环境变量的文件及其用途:
1. .bash_profile
位置: 用户主目录下(例如 /home/username/.bash_profile)。
用途: 在用户登录时执行,用于设置登录 shell 的环境变量。适合用于设置一次性的环境变量。
示例:
export PATH="$HOME/bin:$PATH"
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
2. .bashrc
位置: 用户主目录下(例如 /home/username/.bashrc)。
用途: 每次启动新的交互式非登录 shell 时执行。适合用于设置在每个 shell 会话中需要的环境变量。
示例:
export PATH="$HOME/.local/bin:$PATH"
export NODE_ENV="development"
3. .profile
位置: 用户主目录下(例如 /home/username/.profile)。
用途: 适用于所有 Bourne 兼容的 shell(如 bash、sh)。通常在用户登录时执行。可以用来设置环境变量,类似于 .bash_profile。
示例:
export PATH="$HOME/bin:$PATH"
4. /etc/profile
位置: 系统级配置文件,通常位于 /etc/profile。
用途: 对所有用户的登录 shell 进行全局设置。适合用于设置系统范围的环境变量。
示例:
export PATH="/usr/local/sbin:/usr/local/bin:$PATH"
5. /etc/bash.bashrc
位置: 系统级配置文件,通常位于 /etc/bash.bashrc。
用途: 对所有用户的非登录 shell 进行全局设置。类似于用户的 .bashrc。
示例:
export HISTCONTROL=ignoredups
6. 使用 export 命令
在上述文件中设置环境变量时,通常使用 export 命令。例如:
export VARIABLE_NAME="value"
7. 加载环境变量
在修改了这些文件后,您可以通过以下命令使更改生效:
对于 .bash_profile 或 .profile:
source ~/.bash_profile
对于 .bashrc:
source ~/.bashrc
总结
.bash_profile 和 .profile: 适用于登录 shell,设置一次性的环境变量。
.bashrc: 适用于交互式非登录 shell,设置在每个 shell 会话中需要的环境变量。
/etc/profile 和 /etc/bash.bashrc: 用于全局设置,影响所有用户。
根据需要选择适当的文件来设置环境变量,以确保它们在需要的情况下正确加载。