news 2026/9/21 20:09:18

环境变量配置:让命令和程序正确运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
环境变量配置:让命令和程序正确运行

环境变量配置:让命令和程序正确运行

装了Java但java命令找不到?设了变量重启就没了?

今天聊聊Linux环境变量的配置。

什么是环境变量

环境变量就是系统里的一些配置信息,比如:

  • PATH:系统去哪找可执行文件
  • JAVA_HOME:Java安装在哪
  • HOME:用户主目录

查看环境变量

# 查看所有环境变量env# 查看单个变量echo$PATHecho$JAVA_HOMEecho$HOME

临时设置(关闭终端就没了)

exportMY_VAR="hello"echo$MY_VAR

永久设置

环境变量要写到配置文件里才能永久生效。

用户级别(只对当前用户生效):

编辑~/.bashrc~/.bash_profile

vim~/.bashrc# 添加这行exportJAVA_HOME=/usr/lib/jvm/java-11exportPATH=$PATH:$JAVA_HOME/bin# 保存后使其生效source~/.bashrc

系统级别(对所有用户生效):

编辑/etc/profile或在/etc/profile.d/下创建文件:

sudovim/etc/profile.d/java.sh# 添加exportJAVA_HOME=/usr/lib/jvm/java-11exportPATH=$PATH:$JAVA_HOME/bin# 生效source/etc/profile

配置文件的区别

  • ~/.bashrc:每次打开终端都会执行
  • ~/.bash_profile:登录时执行一次
  • /etc/profile:系统级,所有用户登录时执行
  • /etc/environment:系统级环境变量

推荐:个人用~/.bashrc,系统级用/etc/profile.d/xxx.sh

常见场景

场景1:配置Java环境

vim~/.bashrc# 添加exportJAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64exportPATH=$PATH:$JAVA_HOME/binsource~/.bashrc# 验证java-version

场景2:配置Maven

exportMAVEN_HOME=/opt/mavenexportPATH=$PATH:$MAVEN_HOME/bin

场景3:配置Go

exportGOROOT=/usr/local/goexportGOPATH=$HOME/goexportPATH=$PATH:$GOROOT/bin:$GOPATH/bin

场景4:配置Node.js

exportNVM_DIR="$HOME/.nvm"[-s"$NVM_DIR/nvm.sh"]&&\."$NVM_DIR/nvm.sh"

PATH变量详解

PATH变量告诉系统去哪找命令:

echo$PATH# /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

多个路径用冒号分隔,系统按顺序查找。

添加新路径:

# 追加到末尾exportPATH=$PATH:/new/path# 添加到开头(优先级更高)exportPATH=/new/path:$PATH

常见问题

Q:配置了但不生效?

source~/.bashrc# 或者重新登录

Q:命令找不到?

# 检查命令在哪whichjavawhereisjava# 检查PATH里有没有echo$PATH|grepjava

Q:想删除某个环境变量?

unsetMY_VAR

从配置文件里删掉对应行,重新source。

远程服务器配置

不同服务器环境变量要统一,我用星空组网连起来后批量同步:

# 把本地配置同步到所有服务器foripin10.26.1.{10..15};doscp~/.bashrc root@$ip:~/.bashrcsshroot@$ip"source ~/.bashrc"done

速查表

操作命令
查看所有变量env
查看单个变量echo $变量名
临时设置export 变量名=值
永久设置(用户)编辑~/.bashrc
永久设置(系统)编辑/etc/profile
使配置生效source ~/.bashrc
删除变量unset 变量名

小结

环境变量配置核心:

  1. 临时:export 变量名=值
  2. 永久:写入~/.bashrc
  3. 生效:source ~/.bashrc
  4. PATH追加:export PATH=$PATH:/新路径

记住这几点就够日常使用了。

有问题评论区交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/22 2:01:26

集换式卡牌推广:HeyGem生成英雄角色战斗台词视频

集换式卡牌推广:HeyGem生成英雄角色战斗台词视频 在集换式卡牌游戏的世界里,每一个英雄都承载着独特的性格与命运。当玩家抽到一张新卡时,真正让他们心跳加速的,往往不只是数值和技能——而是那句从屏幕中传来、充满张力的战斗宣言…

作者头像 李华
网站建设 2026/9/17 14:29:01

明星虚拟演唱会筹备:HeyGem辅助生成伴舞数字人群体

明星虚拟演唱会筹备:HeyGem辅助生成伴舞数字人群体 在一场即将上线的虚拟演唱会上,50名风格各异的数字人伴舞正随着主唱的旋律整齐划一地开合嘴唇——尽管他们从未真正“说过”这句话。没有录音棚、没有动画师逐帧调整,这一切仅靠一段音频和一…

作者头像 李华
网站建设 2026/9/22 13:44:27

如何构建一个高效的智能汽车制造系统?核心步骤是什么?

在工业4.0与智能制造加速演进的背景下,汽车制造系统正经历一场由数据驱动、智能协同与全流程闭环管理引领的根本性变革。作为现代制造业中结构最复杂、精度要求最高的生产体系之一,汽车制造系统涵盖冲压、焊接、涂装与总装四大核心环节,传统模…

作者头像 李华
网站建设 2026/9/13 19:02:44

python 基于JAVA的动漫周边商城的设计与实现论文4n21--(flask django Pycharm)

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 本研究设计并实现了一个基于Java的动漫周边商城系统,采用Python的Flask和Django框架作为后端技术支撑&…

作者头像 李华
网站建设 2026/9/21 22:05:09

内联数组提升性能50%?,揭秘.NET 7+中的StackOnly类型魔法

第一章:内联数组提升性能50%?,揭秘.NET 7中的StackOnly类型魔法在 .NET 7 中,微软引入了对“内联数组”(Inline Arrays)的实验性支持,这一特性允许开发者将固定大小的数组直接嵌入到结构体中&am…

作者头像 李华