如何配置MacLinuxWindows环境变量

这里写目录标题

    • 什么是环境变量
      • 什么是PATH
      • 为什么要配置环境变量
    • 如何配置环境变量
      • 环境变量有哪些
      • 环境变量加载顺序
      • 环境变量加载详解
    • 配置参考
      • 方法一: export PATH
      • Linux环境变量配置方法二:vim ~/.bashrc
      • Linux环境变量配置方法三:vim ~/.bash_profile
      • Linux环境变量配置方法四:vim /etc/bashrc
      • Linux环境变量配置方法五:vim /etc/profile
      • Linux环境变量配置方法六:vim /etc/environment
    • 其他shell配置参考
      • fishshell如何配置
    • Windows环境变量配置
      • step1: 找到环境变量
      • step2: 我们设置系统变量
      • step3: 编辑 path 变量

作为一个程序开发者,每次安装一个工具的时候总会遇到环境变量的配置,Java环境变量、Python环境变、Maven等,还有一些可执行环境变量的配置。虽然是个基础操作,不知道有没有类似我这样每次都得去查一遍。不是忘记环境变量应该配置在什么地方,就是忘记路径。还有bash、zsh、fish每个shell的配置方式也不太一样,所以每次配置环境变量就很头大。今天要彻底做个总结!!!

在这里插入图片描述

什么是环境变量

环境变量(Environment Variable)是操作系统中用于存储配置信息、系统路径、临时数据等动态值的一种机制。这些变量在操作系统级别上存在,可以被系统和应用程序读取和使用。环境变量的作用在于为应用程序和系统提供一种灵活的配置方式,而不需要直接修改应用程序的源代码。它们通常在操作系统启动时被设置,或者在用户登录时被加载。
其中我们最长用到的是PATH,本文也主要介绍PATH。

什么是PATH

用于指定操作系统在哪些目录中查找可执行文件。例如,在命令行中输入 java 时,系统会根据 PATH 变量找到 Java 可执行文件的路径。

为什么要配置环境变量

刚接触编程或者环境变量的人可能不理解为什么要配置这种东西,为什么不是像软件安装完就直接执行了。因为软件安装过程简化了配置,系统都给你配置好了,就不需要操心了。但是作为一个程序开发者我们经常拿到的程序是个zip包,解压就能执行的那种,需要自己配置一下。不配置的话,当你执行某个命令时,系统会捉瞎,找不到这个命令在什么地方。比如你执行:

java -version

java是一个可执行的文件,但是如果不告诉系统java在什么地方,系统是无法识别这个java命令的。

当然你也可以这样执行一个命令,把路径拼全:

/Users/wanglianhai/sea/opt/apache-maven-3.8.6/bin/mvn -version

这里只是举个例子,实际上一些常用的工具不会有人这么搞的,谁会去记路径呀?系统会,所以把这种工作交给系统,配置个变量,系统会记住真实的目录地址,我们只需要执行就好了:

mvn -version

如何配置环境变量

这是本文的重点,上面介绍了环境变量的概念,这个环节实际操作如何配置环境变量,以及那眼花缭乱的各种文件bash_profile,etc/profile等是什么顺序。

环境变量有哪些

环境变量可以简单的分成用户自定义的环境变量以及系统级别的环境变量。

  • 用户级别环境变量定义文件:/.bashrc**、**/.profile(部分系统为:~/.bash_profile
  • 系统级别环境变量定义文件:/etc/bashrc/etc/profile(部分系统为:/etc/bash_profile)、/etc/environment
    另外在用户环境变量中,系统会首先读取**/.bash_profile**(或者**/.profile**)文件,如果没有该文件则读取**/.bash_login**,根据这些文件中内容再去读取**/.bashrc**。

环境变量加载顺序

  1. /etc/environment
  2. /etc/profile
  3. /etc/bash.bashrc
  4. /etc/profile.d/test.sh
  5. ~/.profile
  6. ~/.bashrc
    这些文件并不是每个系统都会存在的,经常会用到的是 ~/bash_profile /etc/profile

环境变量加载详解

Linux系统加载环境变量的顺序如下:
系统环境变量 -> 用户自定义环境变量
/etc/environment -> /etc/profile -> ~/.profile

配置参考

方法一: export PATH

使用export命令直接修改PATH的值,配置MySQL进入环境变量的方法:

export PATH=/home/uusama/mysql/bin:$PATH# 或者把PATH放在前面
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:

生效时间:立即生效
生效期限:当前终端有效,窗口关闭后无效
生效范围:仅对当前用户有效
配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置

Linux环境变量配置方法二:vim ~/.bashrc

通过修改用户目录下的~/.bashrc文件进行配置:

vim ~/.bashrc
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:
生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
生效期限:永久有效
生效范围:仅对当前用户有效
如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效

Linux环境变量配置方法三:vim ~/.bash_profile

和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可:

vim ~/.bash_profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:
生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效
生效期限:永久有效
生效范围:仅对当前用户有效
如果没有/.bash_profile文件,则可以编辑/.profile文件或者新建一个

Linux环境变量配置方法四:vim /etc/bashrc

该方法是修改系统配置,需要管理员权限(如root)或者对该文件的写入权限:

# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/bashrc
vim /etc/bashrc
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:
生效时间:新开终端生效,或者手动source /etc/bashrc生效
生效期限:永久有效
生效范围:对所有用户有效

Linux环境变量配置方法五:vim /etc/profile

该方法修改系统配置,需要管理员权限或者对该文件的写入权限,和vim /etc/bashrc类似:

# 如果/etc/profile文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/profile
vim /etc/profile# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:
生效时间:新开终端生效,或者手动source /etc/profile生效
生效期限:永久有效
生效范围:对所有用户有效

Linux环境变量配置方法六:vim /etc/environment

该方法是修改系统环境配置文件,需要管理员权限或者对该文件的写入权限:

# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/environment
vim /etc/profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:
生效时间:新开终端生效,或者手动source /etc/environment生效
生效期限:永久有效
生效范围:对所有用户有效

其他shell配置参考

fishshell如何配置

fishshell配置环境变量如下,注意路径:

sudo vi ~/.config/fish/config.fish

配置内容:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
export GO_HOME=/Users/xxx/sea/opt/go/bin
export CLICOLOR=1
export LSCOLORS=Gxbxaxdxcxegedabagacad
set -x PATH /usr/local/bin /opt/homebrew/bin /Users/xxx/sea/opt/go/bin /Users/xxx/sea/opt/apache-maven-3.8.6/bin %JAVA_HOME%/bin /usr/local/mongodb/bin $PATH
set fish_plugins rails rbenv bundler node brew rake
if status is-interactive# Commands to run in interactive sessions can go here
end
function nvmbass source /opt/homebrew/opt/nvm/nvm.sh ';' nvm $argv
end

Windows环境变量配置

step1: 找到环境变量

我的电脑【右击】 --> 选择 属性 --> 高级系统设置 --> 环境变量
在这里插入图片描述
用户变量: 表示设置的这个 javac 环境变量只能在 MSI-PC 这个用户下面使用
系统变量: 表示 任何登录这个 系统的用户都是可以使用 javac 环境变量
两种变量设置方式一样。

step2: 我们设置系统变量

在系统变量 位置点击 【新建】 并进行相关设置,如下图:

在这里插入图片描述

step3: 编辑 path 变量

在 系统变量中, 找到 path 变量,并点击 【编辑】
在这里插入图片描述
在path编辑页面中 添加一个 关于 JAVA_HOME 变量的路径
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go语言基础之泛型

1.泛型 泛型是一种独立于所使用的特定类型的编写代码的方法。使用泛型可以编写出适用于一组类型中的任何一种的函数和类型。 1.1 为什么需要泛型 func reverse(s []int) []int {l : len(s)r : make([]int, l)for i, e : range s {r[l-i-1] e}return r }fmt.Println(reverse…

红外热成像仪定制_热成像仪/红外夜视仪开发方案

红外热成像技术是一种利用红外热成像仪将物体发出的不可见红外辐射能量转换成可见的温度场图像的技术,通过不同颜色来表示不同温度。这项技术的应用领域非常广泛,从电路维修到暖通检测再到汽车故障排查等各个领域都有着重要的作用。 红外热成像仪的解决方…

虾皮API助力电商行业高效商品管理

一、引言 随着电商行业的飞速发展,商品管理成为了电商企业面临的重要挑战之一。传统的商品管理模式往往效率低下,难以满足现代电商市场的快速变化和个性化需求。为了解决这一问题,虾皮API应运而生,为电商行业带来了高效商品管理的…

【C++】构造函数

前言 在C语言中,当我们定义了一个结构体时,通常需要编写一个函数来初始化它,否则在创建结构体变量时容易忘记调用初始化函数,导致程序出错。但在C中,我们将不会有这样的烦恼,前提是编写了正确的构造函数。…

整数流理论

目录 一,k流 二,整数流 三,四色问题 一,k流 Tutte在研究四色问题时,开创了整数流理论。 他研究的具体问题是,给定一个有向图和一个k阶交换群,能不能找到一个函数,把图的每个边映…

SpringBoot项目实现热部署的配置方法

SpringBoot项目实现热部署的配置方法 1、什么是热部署? 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。 2、什么是SpringBoot热部署? SpringBoot热部署就是在项目正在运行的时候修改代码, 却不需要重新启动…

PCB的通孔,盲孔,埋孔

通孔:双层板从顶层到底层的打通,这样电流就能够从顶层到底层 盲孔:因为看不到底,像一口井一样,只能打到中间,里面灌上铜,我们可以从第一层切换到第二层,第三层等等,盲孔…

在Windows上安装与配置Apache服务并结合内网穿透工具实现公网远程访问本地内网服务

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

[React源码解析] Fiber

在React15及以前, Reconciler采用递归的方式创建虚拟Dom, 但是递归过程不可以中断, 如果组件的层级比较深的话, 递归会占用线程很多时间, 那么会造成卡顿。 为了解决这个问题, React16将递归的无法中断的更新重构为异步的可中断更新, Fiber架构诞生。 文章目录 1.Fiber的结构2…

【mysql把一个字段分割成两个字段】

需求: 用sql语句把一个字段分割成两个字段 idnameold_string1张三张三房间1 类似这样 要把old_string分割成id和name UPDATE table_name setname substr(old_string,1,2),id substr(old_string,locate(房间,old_string)1,1);locate(房间,old_string)//房间这个指定字符串…

【blender烘焙】法线烘焙出现大面积结构丢失怎么办?blender烘焙vs八猴烘焙

用dcc烘焙法线是很常用的减面优化手段,很多建模的dcc自己也内置的烘焙的功能,像我自己在工作流中也偶尔用blender的烘焙做一下材质的整合优化,在质量要求不高的时候还算凑合可用。 问题描述 在前期的文章中飞燕2号建模,我就遇到…

数据防泄密方案公司(dlp数据防泄密厂商排名)

在当今数字化时代,数据已经成为了企业最重要的资产之一。然而,随着企业信息化的不断深入,数据泄露的风险也越来越大。为了保护企业的核心数据,越来越多的企业开始重视数据防泄密工作,并寻求专业的数据防泄密方案提供商…

LeetCode——415. 字符串相加

C开头 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍&#…

可解释性AI(XAI)的兴起

在今天这个科技迅猛发展的时代,人工智能(AI)已经渗透到我们生活的每一个角落。从智能家居到自动驾驶,从个性化推荐到医疗诊断——AI的决策过程在很多情况下,对我们的日常生活产生着重大影响。然而,这些复杂…

JavaSE-

1. Lambda 表达式 1.1 概述 Lambda表达式是一种没有名字的函数,也可称为闭包,是java8发布的最重要的新特性。 本质上是一段匿名内部类, 也可以是一段可以传递的代码,lambda表达式也被叫做箭头函数。 闭包: 闭包就是能够读取其它函…

如何回话与技巧

1、领导关心 谢谢领导关心,我从中学到了很多,如果有做的不好的方面,还请您多多指点。 2、领导问你忙不忙时 领导有什么工作您安排,如果急的话,我优先处理。 3、安排超过能力时 谢谢您的信任,虽然这件事对…

俄罗斯方块游戏设计文档(基于C语言)

1. 引言 本设计文档旨在详细规划基于C语言开发的俄罗斯方块游戏的整体架构、功能模块以及具体实现步骤。这款游戏将通过控制下落的几何形状方块,以填充和消除行的方式进行,旨在提供用户友好的界面与流畅的游戏体验。 2. 需求分析 2.1 核心元素 - 方块…

【计网·湖科大·思科】实验五 IPV4地址-分类地址和构建超网

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

CUDA编程的框架-以向量相加为例

CPU适合控制GPU程序的逻辑结构。 注意在编程时要区分CPU的程序和GPU的程序&#xff0c;CPU的内存和GPU的内存。 host- CPU device- GPU CPU的内存和GPU的内存之间是相互独立的&#xff0c;因此需要进行通信。 __global__ //核函数的声明符号<<<grid,block>>>…

【Shell实战案例面试题】输入网卡的名字,来输出网卡的IP

1.问题 参数后判断要加"" 名字为空时显示ip 2.分析 把本机的所有网卡名列出来&#xff0c;来引导用户输入 使用命令列出所有网卡信:ifconfig/ip a 设计一个函数&#xff0c;把网卡名作为参数&#xff0c;函数返回网卡的IP 在获取某个网卡IP时&#xff0c;考虑网…