背景
在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的环境变数例子
d ~ 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 版本
另一个配置环境变数完整的例子(比较好的例子):
终端输入
cd ~ vim ./.bash_profile
打开环境配置文件

输入回车或者o

按i进入输入模式
输入形式如下:
export PATH=$PATH:/usr/local/mysql/bin
按esc并输入:wq!进行保存和退出
输入以下命令,让环境变量生效。
source ./.bash_profile
输入以下命令,查看环境变量是否生效
echo $PATH
注意:由于添加的是用户级别的环境变量,每次启动都需要输入source ./.bash_profile,以使环境变量生效。
为解决此情况,打开cmd,输入
cd ~ vim ./.zshrc
将source ~/.bash_profile添加至文件末尾,则可以解决。