news 2026/4/16 17:52:55

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

作者头像

张小明

前端开发工程师

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/4/15 16:44:57

HeyGem批量处理模式实测:同一音频生成多个数字人视频的正确姿势

HeyGem批量处理模式实测:同一音频生成多个数字人视频的正确姿势 在内容生产节奏越来越快的今天,企业对高效、低成本制作高质量视频的需求从未如此迫切。尤其是面对需要为多个虚拟形象统一输出相同话术的场景——比如品牌宣传中让不同“代言人”讲同一段广…

作者头像 李华
网站建设 2026/4/16 13:05:51

HeyGem适合教育场景吗?教师数字人课件制作可行性分析

HeyGem适合教育场景吗?教师数字人课件制作可行性分析 在一所普通中学的教研室里,物理老师李老师正为下周的公开课焦头烂额:课程内容需要更新一段关于牛顿定律的新例题,但重新拍摄微课意味着又要打光、布景、反复录制十几遍——而她…

作者头像 李华
网站建设 2026/4/16 12:58:10

从新手到专家:掌握C# Lambda闭包必须跨越的7道坎

第一章:C# Lambda闭包的初识与核心概念 在C#编程中,Lambda表达式与闭包机制的结合为开发者提供了简洁而强大的函数式编程能力。Lambda闭包允许匿名函数捕获其外部作用域中的局部变量,这些变量的生命周期将被延长至闭包本身不再被引用为止。 …

作者头像 李华
网站建设 2026/4/16 13:01:04

推荐使用WAV还是MP3?HeyGem音频格式选择权威指南

推荐使用WAV还是MP3?HeyGem音频格式选择权威指南 在AI数字人视频生成系统日益普及的今天,一个看似微不足道的技术细节——音频文件格式的选择,往往成为决定最终输出质量的关键分水岭。你是否曾遇到过这样的情况:精心准备的语音脚本…

作者头像 李华
网站建设 2026/4/16 13:04:00

银行网点智能柜员机:HeyGem提供可视化业务指导

银行网点智能柜员机:HeyGem提供可视化业务指导 在银行网点,你是否曾见过一位客户站在智能柜员机前反复点击、犹豫不决?尤其是中老年用户,在面对“身份验证”“人脸识别区域提示”这类操作时,常常因图文指引不够直观而求…

作者头像 李华
网站建设 2026/4/16 16:11:56

全网最全2026本科生AI论文平台TOP10:开题报告文献综述必备

全网最全2026本科生AI论文平台TOP10:开题报告文献综述必备 2026年本科生AI论文平台测评:如何选择最适合你的写作助手 随着人工智能技术的不断进步,越来越多的本科生开始借助AI论文平台提升写作效率和学术质量。然而,面对市场上琳琅…

作者头像 李华