如何配置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.hqwc.cn/news/438748.html

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

相关文章

macOS与Linux相互投屏的方法

很多人面对跨系统投屏都望而却步。其实只要找对方法,两台不同系统的电脑也可以相互投屏。 今天就来看看Linux系统和macOS系统如何相互投屏! 第一步,将Linux系统电脑和macOS系统电脑连接同一网络。假设是macOS系统投屏到Linux系统,…

Docker版Jellyfin手动安装插件

Docker版Jellyfin手动安装插件 目录隐射,然后把下载的插件解压到目录中查询运行中的容器,拿到容器id切换到容器目录下 复制解压好的插件(整个文件夹)到容器中存放的插件目录中重启容器后就能在插件中看到了 目录隐射,然后把下载的插件解压到目…

用可视化案例讲Rust编程3. 函数分解与参数传递

上一节我们在绘制面要素的时候,发现了函数功能体是三个不同步骤组成的: 读取文件获得geometry把geometry转变为绘图元素trace把绘图元素绘制到地图上 像我们上一节那样,把所有的功能都写在一个函数里面,这样的函数灵活性太差&am…

防御保护第四次作业

防火墙的智能选路 就近选路 --- 我们希望在访问不同运营商的服务器是,通过对应运营商的链路。这样可以高 通信效率,避免绕路。 策略路由 -- PBR 传统的路由,仅基于数据包中的目标IP地址查找路由表。仅关心其目标,所以&#…

Linux中条件变量的使用及注意事项

条件变量 应用场景:生产者消费者问题(类似于出租车和乘客问题)必要性:为了实现等待某个资源,让线程休眠。提高运行效率函数如下: int pthread_cond_wait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex); int p…

扩展学习|一文明晰推荐系统应用开发核心技术发展

文献来源:Lu J, Wu D, Mao M, et al. Recommender system application developments: a survey[J]. Decision support systems, 2015, 74: 12-32. 主题:关于推荐系统应用开发的调查研究 关键词:推荐系统、电子服务个性化、电子商务、电子学习、电子政务 …

【一】esp32芯片开发板环境搭建

1、esp32的源码在github上的地址 不同的芯片支持的源码版本不一样,需要根据自己的实际的esp32开发板的芯片下载不用版本的代码 esp32支持多种开发方式,如arduino,ESP-IDF等。官方推荐使用idf开发,ESP-IDF 是乐鑫官方推出的物联网开…

thinkadmin用户列表点击用户晒单记录弹出窗体显示关联表记录

admin.html <!--{if auth("mark")}--><a class="layui-btn layui-btn-sm layui-btn-primary" data-modal="{:url(user.mark/index)}?user_id={$vo.id}"

HarmonyOS Slider滑动条组件讲解

好 那么 我们继续来说 ArkTS提供的基础组件 今天 我们来说 slider slider 是一个滑块组件 我们还是在组件中 编写一个 Slider 然后鼠标移上去 弹出提示时 点击进入API 这个组件相对是比较复杂的 min 数字类型 默认值 0 控制 最小是多少 max 数值类型 默认值 100 我们滑块 正…

虚拟机设置静态ip

有时候搭环境需要局域网&#xff0c;设置一下虚拟机静态ip&#xff0c;这里做个记录&#xff1a; 这里我用的是ubuntu18.04的虚拟机&#xff0c;安装完成之后&#xff0c;点击进入设置 这里设置一下桥接模式 这个时候输入ifconfig&#xff0c;就是和主机一个网段了&#xff…

【UEFI实战】Redfish的BIOS实现——生成EDK数据

生成Redfish文件 Redfish数据的表示形式&#xff0c;最常用的是JSON。将JSON表示的数据转换成C语言可以操作的结构体&#xff0c;是必不可少的步骤。当然如果手动转换的话&#xff0c;需要浪费大量的时间&#xff0c;因此DMTF组织开发了一个工具&#xff0c;用于将JSON数据快速…

大专生能不能学习鸿蒙开发?

目前安卓有2,000万的开发者。本科及以上学历占比为35%&#xff1b;iOS有2,400万开发者&#xff0c;本科及以上学历占比为40% 绝大多数的前端开发者都是大专及以下学历&#xff0c;在2023年华为开发者大会上余承东透露华为的开发者目前有200万&#xff0c;但鸿蒙开发者统计的数据…