如何配置MacLinuxWindows环境变量

news2024/12/28 19:59:12

这里写目录标题

    • 什么是环境变量
      • 什么是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 变量的路径
在这里插入图片描述

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

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

相关文章

使用程序设计流程图解析并建立神经网络(不依赖深度学习library)

介绍: ## Flow chart for a simple neural network: #(1)Take inputs 输入 #(2)Add bias (if required) #(3)Assign random weights to input features 随机一个权重 #(4)Run the code for training. 训练集训练 #(5)Find the error in prediction. 找预测损失 #(6…

RAG应用-七个最常见的故障点

近日,国外研究者发布了一篇论文《Seven Failure Points When Engineering a Retrieval Augmented Generation System》,探讨了在实际工程落地RAG应用过程中容易出的七类问题。 论文地址:https://arxiv.org/pdf/2401.05856.pdf 一、丢失内容&…

网络协议与攻击模拟_10DHCP攻击与DHCP欺骗

一、DHCP的报文格式 Message type:消息类型(1表示请求,2表示响应)Hardware type:硬件类型Hardware address length:硬件地址长度Hops:DHCP报文经过中继的数目。Transaction ID:事务…

树莓派部署Nginx服务结合内网穿透实现远程访问本地站点

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…

springboot mongodb简单教程

(1)依赖 compile(org.springframework.boot:spring-boot-starter-data-mongodb) (2)application.properties配置文件 spring.data.mongodb.host127.0.0.1 spring.data.mongodb.port27017 spring.data.mongodb.databasetest &a…

如何成为一个更好的沟通者?

新年伊始,我想跟大家分享9条我给自己定下的「沟通准则」。 这9条准则,是我对自己的要求,也是我身体力行践行了许多年的做法。我可能也没能践行得非常完美,但这也是我一直在努力的目标。 如果你希望能够跟别人「好好说话」&#xf…

Linux——磁盘和文件系统(一)

Linux——磁盘和文件系统 磁盘机械式磁盘固态硬盘 机械式磁盘结构磁盘,磁道,扇区柱面 文件系统的初始化划卷(划盘) 挂载C盘放了什么东西Boot Block(启动模块) 0号组放了什么东西Super Block(超级…

[m1pro ] ssh: connect to host localhost port 22: Connection refused

在学习Hadoop 的时候,使用 ssh localhost 遇到以下问题 原因: 本地没有打开远程登录 解决办法:打开远程登录 成功结果

leetcode刷题(剑指offer) 191.位1的个数

191.位1的个数 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(…

【Linux网络编程】网络编程套接字(1)

【Linux网络编程】网络编程套接字(1) 目录 【Linux网络编程】网络编程套接字(1)源IP地址和目的IP地址端口号端口号和进程ID的关系 网络通信TCP协议UDP协议网络字节序socket编程接口简单的UDP网络程序 作者:爱写代码的刚子 时间:2024.1.29 前言&#xff1…

时序预测 | Python基于Multihead-Attention-TCN-LSTM的时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 时序预测 | Python基于Multihead-Attention-TCN-LSTM的时间序列预测 Multihead-Attention-TCN-LSTM(多头注意力-TCN-LSTM)是一种结合了多个注意力机制、时序卷积网络(TCN&#xff0…

ORB-SLAM策略思考之RANSAC

ORB-SLAM策略思考之RANSAC 1. 初始化器的RANSAC ORB-SLAM中的初始化器是一个端到端的地图初始化策略,即不需要人的参与双线程同时计算本质矩阵和单应性矩阵使用基于RANSAC和卡方检验的评价方法 为了保证两种算法评价的一致性,计算本质矩阵F和单应性矩阵…

ETCD监控方法以及核心指标

文章目录 1. 监控指标采集1.1 监控指标采集1.2 配置promethues采集和大盘 2. 核心告警指标3. 参考文章 探讨etcd的监控数据采集方式以及需要关注的核心指标,便于日常生产进行监控和巡检。 1. 监控指标采集 etcd默认通过/metrics指标暴露相关指标,因此不…

引入 js 文件报错: Uncaught SyntaxError: Unexpected token <

文章目录 问题分析问题 在开发中引入 Cesium.js 文件时报错如下 分析 我是这么引入的<body><noscript><strong>Were sorry but <%= htmlWebpackPlugin.options.title %> doesnt work properly without JavaScript enabled.Please enable it to c

C++仿函数、万能头文件、transform学习

这是网上的一个代码,里面的一些东西以前没用过; #include <bits/stdc++.h> using namespace std;// A Functor class increment { private:int num; public:increment(int n) : num(n) { }int operator () (int arr_num) const {return num + arr_num;} };// Driver …

Python列表中的append功能及用法举例

Python列表中的append功能及用法举例 &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;append()&#x1f333;&#x1f340;功能介绍&#x1f340;&#x1f340;语法&#x1f340;&#x1f340;示例&#x1f340;&#x1f340;注意事项&#x…

Spark3内核源码与优化

文章目录 一、Spark内核原理1、Spark 内核概述1.1 简介1.2 Spark 核心组件1.3 Spark 通用运行流程概述 2、Spark 部署模式2.1 YARN Cluster 模式(重点)2.2 YARN Client 模式2.3 Standalone Cluster 模式2.4 Standalone Client 模式 3、Spark 通讯架构3.1 Spark 通信架构概述3.2…

江科大stm32学习笔记5——蜂鸣器

目录 一、接线 二、代码部分 三、查看库函数的方法 一、接线 蜂鸣器选择有源高电平触发蜂鸣器。 GND——GND VCC——正极 I/O——B12 注意&#xff1a;32上的PA15、PB3、和PB4是默认调试端口&#xff0c;如果使用需要进行额外配置&#xff0c;一般避开这三个端口。 二、…

二手交易|校园二手交易小程序|基于微信小程序的闲置物品交易平台设计与实现(源码+数据库+文档)

校园二手交易小程序目录 目录 基于微信小程序的闲置物品交易平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、商品信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕…

5天!软件开发考试该如何准备?

作者&#xff1a;统信UOS技术团队 意外的早晨 那是一个阳光明媚的早晨&#xff0c;我正走早上班的路上&#xff0c;慢悠悠地享受着早餐。忽然&#xff0c;我的手机发出了提示音。一条来自领导的消息突然打破了宁静的早餐时光。它通知我&#xff0c;五天后将有一场考试——离线…