环境变量推荐写法

📁 通用方案:/etc/profile.d/ 独立配置文件

这是 Linux 官方推荐的做法,不污染任何主配置文件,每个软件独立一个文件。


一、核心原则

 /etc/profile.d/xxx.sh    # 每个软件一个独立文件

  • ✅ 不修改 /etc/profile

  • ✅ 不修改 ~/.bashrc

  • ✅ 删除文件即卸载,不留痕迹

  • ✅ 所有用户自动生效


二、通用操作模板

1. 创建独立配置文件

 vim /etc/profile.d/<软件名>.sh

2. 写入标准格式

 #!/bin/bash
 # ============================================
 # <软件名称> 环境变量配置
 # ============================================
 ​
 # 软件安装根目录
 export <软件名>_HOME=/usr/local/<软件名>
 ​
 # 将 bin 目录添加到 PATH
 export PATH=$<软件名>_HOME/bin:$PATH
 ​
 # 可选:其他自定义变量
 export <软件名>_DATA=/usr/local/<软件名>/data
 export <软件名>_CONF=/usr/local/<软件名>/conf

3. 添加执行权限并生效

 chmod +x /etc/profile.d/<软件名>.sh
 source /etc/profile.d/<软件名>.sh

通用操作模板

1. 创建独立配置文件

 vi /etc/profile.d/<软件名>.sh

2. 写入标准格式

 #!/bin/bash
 # ============================================
 # <软件名称> 环境变量配置
 # ============================================
 ​
 # 软件安装根目录
 export <软件名>_HOME=/usr/local/<软件名>
 ​
 # 将 bin 目录添加到 PATH
 export PATH=$<软件名>_HOME/bin:$PATH
 ​
 # 可选:其他自定义变量
 export <软件名>_DATA=/usr/local/<软件名>/data
 export <软件名>_CONF=/usr/local/<软件名>/conf

3. 添加执行权限并生效

 chmod +x /etc/profile.d/<软件名>.sh
 source /etc/profile.d/<软件名>.sh


三、常用软件示例

示例 1:MongoDB

文件/etc/profile.d/mongodb.sh

 #!/bin/bash
 export MONGO_HOME=/usr/local/mongodb/current
 export PATH=$MONGO_HOME/bin:$PATH


示例 2:Java

文件/etc/profile.d/java.sh

 #!/bin/bash
 export JAVA_HOME=/usr/java/jdk1.8.0_341
 export JRE_HOME=$JAVA_HOME/jre
 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH


示例 3:Redis

文件/etc/profile.d/redis.sh

 #!/bin/bash
 export REDIS_HOME=/usr/local/redis
 export PATH=$REDIS_HOME/bin:$PATH


示例 4:Nginx

文件/etc/profile.d/nginx.sh

 #!/bin/bash
 export NGINX_HOME=/usr/local/nginx
 export PATH=$NGINX_HOME/sbin:$PATH


示例 5:Python(自定义安装)

文件/etc/profile.d/python3.sh

 #!/bin/bash
 export PYTHON_HOME=/usr/local/python3
 export PATH=$PYTHON_HOME/bin:$PATH


示例 6:Node.js

文件/etc/profile.d/nodejs.sh

 #!/bin/bash
 export NODE_HOME=/usr/local/node
 export PATH=$NODE_HOME/bin:$PATH
 export NPM_CONFIG_PREFIX=$NODE_HOME

完整通用命令模板(可复制直接改)

 # ============================================
 # 一键创建任意软件环境变量(替换 <软件名>)
 # ============================================
 ​
 # 1. 创建配置文件
 cat > /etc/profile.d/<软件名>.sh << 'EOF'
 #!/bin/bash
 # <软件名> 环境变量
 export <软件名>_HOME=/usr/local/<软件名>
 export PATH=$<软件名>_HOME/bin:$PATH
 EOF
 ​
 # 2. 添加执行权限
 chmod +x /etc/profile.d/<软件名>.sh
 ​
 # 3. 立即生效
 source /etc/profile.d/<软件名>.sh
 ​
 # 4. 验证
 echo $<软件名>_HOME
 which <命令名>

快速创建脚本

把这个保存为 setenv.sh,以后直接复用:

 #!/bin/bash
 # ============================================
 # 通用环境变量设置脚本
 # 用法:./setenv.sh <软件名> <安装路径>
 # 示例:./setenv.sh mongodb /usr/local/mongodb/current
 # ============================================
 ​
 NAME=$1
 HOME_PATH=$2
 ​
 if [ -z "$NAME" ] || [ -z "$HOME_PATH" ]; then
     echo "用法: $0 <软件名> <安装路径>"
     echo "示例: $0 mongodb /usr/local/mongodb/current"
     exit 1
 fi
 ​
 # 创建配置文件
 cat > /etc/profile.d/${NAME}.sh << EOF
 #!/bin/bash
 export ${NAME^^}_HOME=$HOME_PATH
 export PATH=\$${NAME^^}_HOME/bin:\$PATH
 EOF
 ​
 # 添加执行权限
 chmod +x /etc/profile.d/${NAME}.sh
 ​
 # 立即生效
 source /etc/profile.d/${NAME}.sh
 ​
 echo "✅ 环境变量已设置:${NAME^^}_HOME=$HOME_PATH"
 echo "✅ 执行 source /etc/profile.d/${NAME}.sh 或重新登录生效"

使用方法

 chmod +x setenv.sh
 ./setenv.sh mongodb /usr/local/mongodb/current
 ./setenv.sh java /usr/java/jdk1.8.0
 ./setenv.sh redis /usr/local/redis

验证环境变量

验证内容

命令

查看变量是否设置

echo $<软件名>_HOME

查看 PATH 是否包含

echo $PATH | grep <软件名>

查看命令是否可用

which <命令名>

查看所有自定义变量

env | grep -E "(HOME|PATH)"

卸载/删除环境变量

 # 删除独立配置文件
 rm -f /etc/profile.d/<软件名>.sh
 ​
 # 重新登录后自动失效,无需任何额外操作

通用配置文件样板

如果你想自定义更多内容,用这个通用模板:

 #!/bin/bash
 # ============================================
 # ${APP_NAME} 环境变量配置
 # 维护人:${MAINTAINER}
 # 创建时间:$(date +%Y-%m-%d)
 # ============================================
 ​
 # 基础路径
 export ${APP_NAME}_HOME=${INSTALL_PATH}
 ​
 # 子目录快捷变量(根据需要启用)
 # export ${APP_NAME}_CONF=${INSTALL_PATH}/conf
 # export ${APP_NAME}_DATA=${INSTALL_PATH}/data
 # export ${APP_NAME}_LOGS=${INSTALL_PATH}/logs
 ​
 # PATH 追加
 export PATH=${INSTALL_PATH}/bin:${INSTALL_PATH}/sbin:${INSTALL_PATH}/scripts:$PATH
 ​
 # 可选:其他配置
 # export ${APP_NAME}_OPTS="-Xmx1024m"