linux 怎么设置环境变量 临时与永久配置详解
linux 怎么设置环境变量,核心分为临时生效和永久生效两大类,临时环境变量只对当前终端会话有效,关闭终端之后就失效,永久环境变量需要写入系统或者用户的配置文件,新开终端自动加载,环境变量本质是系统保存的键值对,最常用的就是 PATH 变量,它决定系统可以在哪些目录查找可执行命令,很多人自己编译安装软件之后执行命令提示 command not found,就是因为软件 bin 目录没有加入 PATH,也就是 linux 怎么设置环境变量最常见场景,除了 PATH,还可以自定义 JAVA_HOME NODE_HOME 这类变量,供程序读取,配置的时候要区分用户级和系统级,用户级只对当前登录用户生效,系统级对全部用户生效,修改配置文件之后,需要 source 命令重载,或者重新登录终端,变量才会加载,这是新手最容易遗漏的步骤,理解不同配置文件加载优先级,是 linux 怎么设置环境变量进阶重点,不同 shell 比如 bash zsh 读取的配置文件不一样,bash 是最常见默认 shell,配置文件是 bashrc profile 系列。
一 临时环境变量(当前终端生效)
语法
export 变量名 = 变量值
示例
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$PATH:/usr/local/jdk1.8/bin
特点
只在当前打开的终端生效,关闭终端、新开终端变量就消失,适合临时测试,不适合长期使用
查看变量命令
echo $JAVA_HOME
echo $PATH
二 永久用户级环境变量
只针对当前用户,其他用户看不到这个变量
常用文件
~/.bashrc 每次新开 bash 终端都会加载,最推荐
~/.bash_profile 登录 shell 的时候加载
操作步骤
1 编辑文件
vim ~/.bashrc
2 在文件末尾追加
export JAVA_HOME=/usr/local/jdk1.8
export PATH=PATH:JAVA_HOME/bin
3 保存退出,执行重载
source ~/.bashrc
4 验证 echo $JAVA_HOME
三 永久系统级环境变量
对服务器所有用户生效,全局生效
推荐文件
/etc/profile
/etc/profile.d/ 目录下新建独立 sh 文件,这种方式更规范,不直接修改主 profile 文件
/etc/bashrc
示例 在 /etc/profile.d/ 新建 java.sh
vim /etc/profile.d/java.sh
写入 export 内容,保存之后 source 重载,所有用户新开终端自动加载
四 配置文件加载说明表格
| 文件 | 作用范围 | 加载时机 | 推荐程度 |
|---|---|---|---|
| export | 单终端临时 | 当前会话 | 临时测试 |
| ~/.bashrc | 单用户 | 每次打开 bash 终端 | 推荐 |
| ~/.bash_profile | 单用户 | 登录 shell | 推荐 |
| /etc/profile | 全部用户 | 登录 shell | 全局配置 |
| /etc/profile.d/*.sh | 全部用户 | 登录 shell | 最优推荐,独立管理 |
五 深度重点知识点
1 PATH 变量追加写法,一定要写成 $PATH: 新路径,不能直接覆盖成新路径,如果写成 PATH=/xxx/bin,原来系统命令路径全部丢失,后续 ls cd 等命令会报错,这是高危错误
2 区分登录 shell 和非登录 shell,ssh 远程登录属于登录 shell,会读取 bash_profile,直接新开本地终端属于非登录 shell,读取 bashrc,这也是很多人疑惑为什么写在 bash_profile,新开终端变量不生效的原因
3 自定义环境变量名称一般大写,是行业惯例,变量值如果包含空格,需要用引号包裹
4 删除环境变量使用 unset 变量名,临时会话里面清除变量
5 查看全部环境变量可以执行 env 或者 printenv
六 常见报错排查
1 修改完文件变量还是不生效,没有执行 source 重载,或者新开终端测试
2 命令依然 command not found,PATH 路径写错,bin 目录路径不对
3 其他用户读取不到变量,是因为写在用户家目录的.bashrc,属于用户级变量,全局需要写 /etc/profile.d
4 修改之后系统命令异常,PATH 覆盖错误,把原有系统路径清空
【常见问题】
问题 1 linux 怎么设置环境变量之后为什么新开终端不生效
回答 1 linux 怎么设置环境变量之后新开终端不生效,一般是修改文件之后没有 source 重载,或者配置文件选错,登录 shell 和普通终端读取的配置文件不一样,linux 怎么设置环境变量推荐写入~/.bashrc,绝大多数场景都可以自动加载。
问题 2 linux 怎么设置环境变量全局生效
回答 1 linux 怎么设置环境变量想要全局生效,需要写入 /etc/profile 或者 /etc/profile.d 目录下的 sh 脚本,这个 linux 怎么设置环境变量方式对服务器全部用户生效,写入家目录.bashrc 只对单个用户生效。
问题 3 linux 怎么设置环境变量 PATH 的时候要注意什么
回答 3 linux 怎么设置环境变量修改 PATH 的时候,必须保留原有 $PATH,追加新路径,不能直接覆盖原有 PATH,linux 怎么设置环境变量如果直接覆盖,系统自带命令会丢失,出现 ls 等命令无法使用的故障。
【免责申明】
本文介绍 linux 怎么设置环境变量相关内容仅作为技术学习参考,错误修改全局环境变量尤其是 PATH,可能造成系统命令异常,修改前建议备份原配置文件,生产服务器变更前做好测试,操作风险由使用者自行承担。
相关阅读
-
新加坡国土面积大约 733 2 平方千米,它是城市型岛国,由主岛加上周边六十多个小岛共同组成,国土面积还会...浏览全文>>
-
lmb 并不是键盘上面印着 lmb 字样的实体按键,它是英文 Left Mouse Button 的缩写,中文意思是鼠标左键...浏览全文>>
-
橡子果可以炒,但不建议直接生炒之后马上吃,橡子里面含有单宁,直接炒制之后仍然苦涩,单宁还会刺激肠胃,容...浏览全文>>
-
linux 怎么设置环境变量,核心分为临时生效和永久生效两大类,临时环境变量只对当前终端会话有效,关闭终端之...浏览全文>>
-
鲜海带常规水煮一般 3 到 8 分钟就可以熟透,具体煮制时间要根据海带厚度 想要的口感 后续烹饪方式来调...浏览全文>>
-
linux whoami 是非常基础的原生命令,核心作用就是输出当前终端会话正在生效的用户名,也就是当前进程的有效...浏览全文>>
-
五指毛桃鸡汤做法是粤式家常老火汤经典款,成品汤带有独特椰香,汤味清甜温润,核心要点是鸡肉提前焯水去血沫...浏览全文>>
-
like 的过去式是 liked,like 属于英语规则动词,单词末尾本身带有不发音的字母 e,按照规则动词过去式变...浏览全文>>
-
外墙保温做法顺序核心是基层处理→挂基准线→粘贴保温板→锚栓固定→抹面砂浆 + 耐碱网格布→面层装饰,这是...浏览全文>>
-
lg17gram 是 LG gram 系列的 17 英寸大屏轻薄本,核心定位就是大屏长续航超便携办公本,它最大特点就是...浏览全文>>
- 铁锅炖大鹅的做法 东北风味家常版本
- led 显示屏字幕设置教程 异步控制卡完整操作
- lead 过去式 不规则动词考点详解
- LATENT 代表什么物质 词义与物理概念详解
- 四季豆煮多久能熟 安全熟透时间详解
- 清蒸鳜鱼经典做法 原汁原味鲜而不腥
- 葡萄酒的制作流程 家庭自酿完整步骤
- jimmy 解释 英文名词源用法详解
- it 行业包括什么 全产业链板块详解
- iqooneo 支持红外遥控吗 详细参数解析
- 莲菜怎么做好吃 多款家常做法
- iphone 怎么换字体 全方案深度说明
- iphone 已删除的照片怎么找回来 恢复完整教程
- 教你大排面的做法 苏式红烧大排汤面
- iphone7 掉漆了保修吗 官方保修说明
- 红酒的等级有哪些 各国分级体系详解
- 河粉怎么炒不粘锅 防粘实操技巧详解
- iphone xs max 屏幕是 2k 吗 分辨率规格详细解析
- ipad怎么开机键在哪
- ipad 能干嘛 全能平板用途详解
