为什么Mac或者Windows经常要配置环境变量?

 

最全:mac设置环境变量(Python/ Java/ Mysql/Allure) https://blog.csdn.net/liuxiaoniudechuntian/article/details/121196855

当你输入一个指令,比如:net start mysql,那系统怎么知道这个指令有没有呢?
系统做了什么事?
其实系统是在当前目录和系统环境变量path里面的路径全部查找一遍,找到第一个为准,找不到就报错。
所以我们要不每次都切换cmd目录,要不就设置环境变量,以后就不需要再切换cmd路径了。
简单的说环境变量里面的path路径这东西,就是cmd系统的查找目录路径。

 


 

 

每次需要在mac上设置环境变量时,总是要重新上网搜索该怎么设置,而且只依葫芦画瓢,没搞懂每个步骤,今天痛定思痛,一定要搞清楚,一劳永逸。好,我们开始
为什么要设置环境变量?
背景
在cmd中想要执行net start mysql等操作命令,必须先cd到bin文件所在目录,如D:\mysql\mysql-x.x.xx-winx64\bin,那么每次打开mysql 都要输入那么多指令切换目录是不是很讨厌?怎么弄呢?
原理
当你输入一个指令,比如:net start mysql,那系统怎么知道这个指令有没有呢?系统做了什么事?其实系统是在当前目录和系统环境变量path里面的路径全部查找一遍,找到第一个为准,找不到就报错。所以我们要不每次都切换cmd目录,要不就设置环境变量,以后就不需要再切换cmd路径了。简单的说环境变量里面的path路径这东西,就是cmd系统的查找目录路径
原本必须要到安装目录下才能执行,为了实现在计算机的任意目录下都能执行,才需要配置环境变量。
下面说下几个变量的作用:
(1)、PATH环境变量:作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等等,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
(2)、CLASSPATH环境变量:作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
javac -c 路径 (可以指定class文件存放目录)
java -cp 路径 (可以指定要执行的class目录)
(3)、JAVA_HOME环境变量:它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
环境变量的作用是指定Java类所在的目录,我们在写好java文件后,去执行java经常会报错找不到主类。就是没有配置好这个变量的原因 。
规则
Mac 系统的环境变量,加载顺序为:/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
其中/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量*
后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件
~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
PATH 的语法为
> # 中间用冒号隔开
export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>
如果要查看 $PATH 的路径
echo $PATH
/etc/paths(如果是全局,建议修改这个文件)
编辑 paths,将环境变量添加到 paths 文件中 ,一行一个路径
/etc/profile(建议不修改这个文件)
全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
/etc/bashrc (一般在这个文件中添加系统级环境变量)
全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件
.profile 文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置
如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效
./bashrc 每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效。
./bash_profile 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
需要需要重启才会生效,/etc/profile对所有用户生效,~/.bash_profile只对当前用户生效。
JAVA
.bash_profile 为每个用户配置环境变量,用户登录后会自动读取一次
我们切换到当前用户主目录,然后编辑 .bash_profile 文件
cd ~
vim .bash_profile
输入内容
# 假如我们有两个JAVA环境,需要任意切换 [java15, java1.8]
export JAVA15_HOME=/Library/Java/JavaVirtualMachines/jdk-15.0.1.jdk/Contents/Home
export JAVA8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
export JAVA_HOME=$JAVA8_HOME
alias jdk8='export JAVA_HOME=$JAVA8_HOME'
alias jdk15='export JAVA_HOME=$JAVA15_HOME'
要使这段设置立即生效,直接执行下边命令
source ~/.bash_profile
这样当我们登录该用户后,默认使用 java1.8 版本
如果我们输入 jdk15 则可以直接切换 到 java15 版本
Note: alias 是用于设置命令别名,详情请参考: 在Linux中通过alias设置命令别名 | 《Linux就该这么学》
MYSQL
我们切换到当前用户主目录,然后编辑 .bash_profile 文件
cd ~
vim .bash_profile
添加 mysql bin 目录路径到环境变量
export PATH=$PATH:/usr/local/mysql/bin
执行下边命令
source ~/.bash_profile
Python
安装完毕python3以后,敲入命令 which python3,安装路径为:
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
我们将这个路径配入环境变量
vim ~/.bash_profile
最后面加入下面这行
PATH=$PATH:Library/Frameworks/Python.framework/Versions/3.7/bin
alias python="/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7”
保存好后执行 source ~/.bash_profile 或者重启电脑。
然后我们敲入python 即可调用我们的python3了
Allure

#设置allure的PATH

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

export PATH=${PATH}:/Users/yourname/allure-2.17.1/bin

有同学可能会问Mysql 和python的都是PATH 那会不会重复?能不能识别正确?
path里面必然会有很多个路径, :表示了分割符,使用时软件会从前往后遍历
————————————————
原文链接:https://blog.csdn.net/liuxiaoniudechuntian/article/details/121196855

posted @ 2022-10-22 23:39  WhoKnows1  阅读(340)  评论(0编辑  收藏  举报