Linux环境变量
Linux环境变量

Linux环境变量

关于如何设置环境变量,如果只是想设置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)启动的程序也生效的环境变量。

🌐 系统级配置文件(需要 sudo 权限)

这些文件位于 /etc/ 目录下,修改它们需要 sudo 权限。一旦修改,这台 Linux 机器上的所有用户都会受到影响。

  • /etc/environment
    • 特点:这是 Linux 系统最底层的环境变量文件。格式非常严格,只能写 变量名=值(例如 MY_VAR=hello),绝对不能使用 export 命令,也不能引用其他变量(如 $PATH
  • /etc/profile
    • 特点:系统级的“登录 Shell”总配置文件。任何用户登录系统时都会加载它。可以在里面使用 export 命令。
  • /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),或者关掉终端重新打开,新的环境变量才会生效。