如何配置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 nvm
    bass source /opt/homebrew/opt/nvm/nvm.sh ';' nvm $argv
end

Windows环境变量配置

step1: 找到环境变量

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

step2: 我们设置系统变量

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

在这里插入图片描述

step3: 编辑 path 变量

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:使用 Systemd 管理 Linux 服务的完全指南

从零开始:使用 Systemd 管理 Linux 服务的完全指南 引言Systemd 简介Systemd 与 SysVinit 的主要区别 Systemd 的核心组件1. systemctl2. systemd-journald3. systemd-analyze4. systemd-tmpfiles 管理服务启动和停止服务重启和重新加载服务查看服务状态管理服务自启…

超越传统,想修哪里就修哪里,SUPIR如何通过文本提示实现智能图像修复

项目简介 通过参数增加使得模型不仅能够修复图像中的错误或损坏,还能根据文本提示进行智能修复。例如根据描述来改变图像中的特定细节。这样的处理方式提升了图像修复的质量和智能度,使得模型能够更准确、更灵活地恢复和改进图像。 SUPIR的主要功能图像…

Azure AI - 沉浸式阅读器,阅读障碍用户福音

目录 一、什么是沉浸式阅读器将内容划分开来提高可读性显示常用字词的图片突出显示语音的各个部分朗读内容实时翻译内容将单词拆分为音节 二、沉浸式阅读器如何工作?环境准备创建 Web 应用项目设置身份验证配置身份验证值安装标识客户端 NuGet 包更新控制器以获取令…

InitVerse:为云计算服务带来更高的透明度和可验证性

InitVerse:为云计算服务带来更高的透明度和可验证性 在云计算服务领域,透明度和可验证性是构建信任的关键要素。传统的云计算市场往往缺乏透明度,用户难以了解其数据和计算资源的实际使用情况。然而,通过利用区块链技术&#xff0…

php下curl发送cookie

目录 一:使用 CURLOPT_COOKIE 选项 二:CURLOPT_COOKIEFILE 三:CURLOPT_HTTPHEADER php curl发送cookie的几种方式,下面来介绍下 一:使用 CURLOPT_COOKIE 选项 通过设置 CURLOPT_COOKIE 选项,你可以将 cookie 字符…

Python数值类型与数学函数:深入理解与高效应用

文章目录 一、Python的数字1.数值类型1.1 整型(int)1.2 浮点型(float)1.3 复数(complex) 2.数字类型转换2.1 int(x)2.2 float(x)2.3 complex(x)2.4 complex(x, y) 3.数字运算3.1 round 二、函数1.数学函数1…

【模拟算法系列】详解5道题

本文讲解模拟算法系列的5道经典题,在讲解题目的同时提供AC代码,点击题目即可打开对应OJ链接 目录 模拟算法的介绍 1、替换所有的问号 2、提莫攻击 3、 Z 字形变换 4、外观数列 5、数青蛙 模拟算法的介绍 题目中明确告诉你要干什么,思路…

在云服务器上通过FileZilla配置FTP(通过FileZilla配置FTP升级版)

有兴趣的读者可以看看博主的博客,有很全面的教程 阿里云之申请云服务器–配置jdk,tomcat,安全策略–能够在他人电脑上显示本电脑的Tomcat 通过FileZilla配置FTP 修改我们的安全组,将21,和50000-50010端口添加进去 加入实例即可,剩…

vue处理后端返回的文件数据流,并提供下载接口

返回的数据流 前端对其进行处理并下载 downloadFile(res, fileName) {// 使用后台返回的数据创建一个新的Blob对象 let blob new Blob([res]); // 如果fileName参数未定义或为空,则从res的headers中获取content-disposition字段,并从中提取文件名 if…

基于阿里云服务器部署幻兽帕鲁联机服务器详细教程

如何自建幻兽帕鲁服务器?基于阿里云服务器搭建幻兽帕鲁palworld服务器教程来了,一看就懂系列。本文是利用OOS中幻兽帕鲁扩展程序来一键部署幻兽帕鲁服务器,阿里云百科aliyunbaike.com分享官方基于阿里云服务器快速创建幻兽帕鲁服务器教程&…

Java实现加权平均分计算程序WeightedAverageCalculator

成绩加权平均分计算程序,带UI界面和输入保存功能。 因为本人对成绩的加权均分有所关注,但学校的教务系统查分时往往又不显示个人的加权均分,加之每次手动敲计算器计算很麻烦就花了点时间写了一个加权均分计算程序自用,顺便开源。…

Go 的 Http 请求系统指南

文章目录 快速体验请求方法URL参数响应信息BodyStatusCodeHeaderEncoding 图片下载定制请求头复杂的POST请求表单提交提交文件 CookieClient 上设置 Cookie请求上设置 Cookie 重定向和请求历史超时设置总超时连接超时读取超时 请求代理错误处理总结 前几天在 “知乎想法” 谈到…

开源的API Gateway项目- Kong基于OpenResty(Nginx + Lua模块)

Kong 是一个在 Nginx 内运行的开源 API 网关和微服务抽象层。它是用于处理 API 流量的灵活、可扩展、可插入的工具。 Kong 提供了以下功能: 用户登录:Kong 提供了多种认证插件,像 JWT、OAuth 2.0 等,可以满足用户登录需求。Toke…

精要图示:园区金融数字化服务蓝图,以园区为支点推动信贷业务增长

作为企业集聚地,园区已然成为银行业夯实客群基础的重要切口,各大行陆续围绕园区场景创新金融产品,以期抢跑园区金融新赛道、把握新增量。 启信慧眼首推一站式【园区金融】数字化服务方案,该方案同时支持启信天元私有化部署&#x…

使用acme.sh 签发SSL证书

(Nginx) 使用acme.sh 签发SSL证书 背景: 域名服务商: 阿里云 SSL证书使用场景: Nginx ,Tomcat 安装acme.sh 国内由于墙的问题,建议用gitee的镜像库克隆 mkdir /usr/local/acme cd /usr/local/acme git clone https://gitee.com/neilpa…

【操作系统】实验九 写一个设备驱动程序

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

分享一个“产业级,开箱即用”的NLP自然语言处理工具

NLP的全称是Natuarl Language Processing,中文意思是自然语言处理,是人工智能领域的一个重要方向 自然语言处理(NLP)的一个最伟大的方面是跨越多个领域的计算研究,从人工智能到计算语言学的多个计算研究领域都在研究计…

Python基础(二十九、pymsql)

文章目录 一、安装pymysql库二、代码实践1.连接MySQL数据库2.创建表格3.插入数据4.查询数据5.更新数据6.删除数据 三、完整代码示例四、结论 使用Python的pymysql库可以实现数据存储,这是一种连接MySQL数据库的方式。在本篇文章中,将详细介绍如何使用pym…

SpringBoot 自定义Filter 提前返回 CORS 错误 处理前后端分离跨域配置无效问题解析

前言 浏览器有跨域限制,非同源策略 (协议、主机名或端口不同) 被视为跨域请求,解决跨域有跨域资源共享(CORS)、反向代理和 JSONP的方式。本篇通过 SpringBoot 的资源共享配置 (CORS) 来解决前后端分离项目的跨域,以及从原理上去解决跨域配置…

2023年NOC大赛(学而思赛道)创意编程Python初中组决赛真题

2023年NOC大赛(学而思赛道)创意编程Python初中组决赛真题 题目总数:7 总分数:100 编程题 第 1 题 问答题 二进制回文 编程实现: 输入一个正整数,判断它的二进制形式是否是回文数,如果是输出True…