关于如何设置环境变量,如果只是想设置PATH环境变量。在Linx中可以使用如下命令进行设置
PATH=$PATH:NEWDIR
其中$PATH表示引用旧的 PATH 环境变量,最后使用 : 符合链接新的。
另外可以在Linux系统中可以直接使用 name=xxx 来创建临时的环境变量,且该值为局部变量,在新的bash中不被继承。
查看运行结果
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# sanker="sanker"
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# echo $sanker
sanker
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# bash
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# echo $sanker
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# ps --forest
PID TTY TIME CMD
3113305 pts/1 00:00:00 bash
3114118 pts/1 00:00:00 _ bash
3114141 pts/1 00:00:00 _ ps
[root@iZ2zec1zrcsznbscmkkgdkZ sh]#
可以使用 export 命令设置为全局变量,可被继承且子bash不可修改,但是当其bash退出后失效。
查看运行结果
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# export sanker="sanker"
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# echo $sanker
sanker
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# bash
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# echo $sanker
sanker
[root@iZ2zec1zrcsznbscmkkgdkZ sh]# ps --forest
PID TTY TIME CMD
3113305 pts/1 00:00:00 bash
3114221 pts/1 00:00:00 _ bash
3114242 pts/1 00:00:00 _ ps
[root@iZ2zec1zrcsznbscmkkgdkZ sh]#
可以修改家目录~下的.bashrc文件来确保环境变量始终可用。可以使用 echo 命令和重定向 >> 将其加入到文件尾部。使用 source 来使其立即生效。
查看运行结果
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# echo "export sanker=\"sanker\"" >> ~/.bashrc
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# echo $sanker
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# source ~/.bashrc
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# echo $sanker
sanker
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# bash
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# echo $sanker
sanker
[root@iZ2zec1zrcsznbscmkkgdkZ ~]# exit
exit
[root@iZ2zec1zrcsznbscmkkgdkZ ~]#
👤 用户级配置文件(推荐日常使用)
这些文件位于你的个人主目录(/home/你的用户名/)下,修改它们不需要管理员权限,也是最安全、最常用的方式。
~/.bashrc:- 适用场景:最推荐。每次你打开一个新的终端窗口(交互式非登录 Shell)时都会自动加载。
- 用途:日常给自己安装的工具(如 Python 脚本、个人开发工具)添加环境变量或设置命令别名。
~/.bash_profile:- 适用场景:当你通过 SSH 远程登录服务器,或者在物理机上通过 Ctrl+Alt+F1 进入控制台登录时(登录 Shell)才会加载。
- 用途:适合设置只需要在登录时执行一次的变量。在大多数 Linux 发行版中,这个文件内部通常会自动去调用
.bashrc。
~/.profile:- 适用场景:这是一个兼容性更强的登录配置文件。如果你使用的不是 Bash(比如默认的 Dash),或者系统中没有
.bash_profile,Linux 就会读取它。 - 用途:适合设置一些对图形界面(GUI)启动的程序也生效的环境变量。
- 适用场景:这是一个兼容性更强的登录配置文件。如果你使用的不是 Bash(比如默认的 Dash),或者系统中没有
🌐 系统级配置文件(需要 sudo 权限)
这些文件位于 /etc/ 目录下,修改它们需要 sudo 权限。一旦修改,这台 Linux 机器上的所有用户都会受到影响。
/etc/environment:- 特点:这是 Linux 系统最底层的环境变量文件。格式非常严格,只能写
变量名=值(例如MY_VAR=hello),绝对不能使用export命令,也不能引用其他变量(如$PATH)。
- 特点:这是 Linux 系统最底层的环境变量文件。格式非常严格,只能写
/etc/profile:- 特点:系统级的“登录 Shell”总配置文件。任何用户登录系统时都会加载它。可以在里面使用
export命令。
- 特点:系统级的“登录 Shell”总配置文件。任何用户登录系统时都会加载它。可以在里面使用
/etc/bash.bashrc(在 CentOS/RHEL 等系统中通常是/etc/bashrc):- 特点:系统级的
.bashrc。所有用户每次打开新的 Bash 终端时都会加载。
- 特点:系统级的
/etc/profile.d/目录(系统配置强烈推荐):- 特点:这是一个专门存放系统级环境变量脚本的文件夹。你可以在里面新建一个以
.sh结尾的文件(例如my_env.sh),在里面写上export命令。系统在加载/etc/profile时会自动运行这个目录下的所有脚本。 - 优势:模块化管理,不会弄乱主配置文件,后续维护或删除非常方便。
- 特点:这是一个专门存放系统级环境变量脚本的文件夹。你可以在里面新建一个以
📌 Linux 环境变量文件速查表
表格
| 文件路径 | 适用范围 | 核心特点与加载时机 |
|---|---|---|
| ~/.bashrc | 当前用户 | 个人配置首选,每次打开新终端时加载 |
| ~/.bash_profile | 当前用户 | 仅在登录时加载一次,常用于配置全局变量 |
| ~/.profile | 当前用户 | 兼容性强的登录配置文件,图形界面程序也能读取 |
| /etc/environment | 所有用户 | 纯键值对格式,不支持 export,系统底层变量 |
| /etc/profile | 所有用户 | 任何用户登录系统时加载,系统级登录配置 |
| /etc/profile.d/ | 所有用户 | 存放独立的 .sh 脚本,系统级配置推荐方式 |
💡 实用建议:
- 个人日常使用(比如给自己安装的工具加个路径):直接修改
~/.bashrc是最省心、最推荐的做法。 - 给全服务器配置环境(比如安装 JDK 给所有开发用):推荐在
/etc/profile.d/下新建一个.sh文件来配置。 - 修改完上述任何配置文件后,记得在当前终端执行
source 文件路径(例如source ~/.bashrc),或者关掉终端重新打开,新的环境变量才会生效。
