看懂什么是环境变量

首次接触环境变量是很久以前了,当时,包括后面的一长段时间,都是临时在网页中搜索增加环境变量的方法,一直缺乏一个全面的了解。比如:环境变量到底是什么,有什么作用;环境变量有哪些;不同系统(Mac、Window)如何配置环境变量等。

什么是环境变量?

首先要明白一个概念,就是我们计算机中的操作系统,本质上就是一个巨大的程序。这个程序可能就是 Windows,Linux,Mac 系统中的一种,但是本质都是程序。其他应用程序(JDK、MySQL、Chrome、微信。。。),都在在操作系统内运行的。

环境变量是操作系统中描述运行环境的变量,其本质是操作系统中一个具有特定名字的变量。它包含了一个或者多个应用程序将使用到的信息,可以被操作系统使用,也可以被操作系统内的其他应用程序使用!

有些应用程序在安装完成后,还必需配置环境变量才能正常运行,如:JDK、MySQL等。

环境变量有哪些?

环境变量是一个总称,代表了系统变量和用户变量,一般我们说环境变量都是指这两种。系统变量就是系统级别的变量,可以被系统的所有用户使用。用户变量运行在系统变量之上的,每个用户可以拥有自己独立的变量,这些变量只允许自己使用,与其他用户的用户变量互不干扰。

环境变量的储存文件(Mac)

  • 系统环境变量定义文件: /etc/environment/etc/profile|/etc/bash_profile)、/etc/bashrc
  • 用户环境变量定义文件:~/.bashrc~/.profile|~/.bash_profile

系统环境变量不建议修改 /etc/profile ,因为它只在用户登录才会加载;一般在 /etc/bashrc 中添加,它会在每次 bash shell 执行时加载。

环境变量的加载顺序如下:

  1. /etc/environment
  2. /etc/profile
  3. /etc/bashrc
  4. /etc/profile.d/test.sh
  5. ~/.profile
  6. ~/.bashrc

环境变量的储存文件(Window)

为什么要配置环境变量?

当启动一个应用程序时,无论是点击程序的图标,还是在终端通过命令启动,都是系统先找到程序的安装目录,然后启动程序。

程序的图标包含了应用程序的安装位置信息,点击它们时,系统会按照位置信息找到安装目录,启动程序。而在终端启动时,系统通过以下三种方法定位程序的安装目录,其中,最后一种就跟环境变量有关了:

  • 指定完整的程序文件路径:

    /usr/bin/java -version
    
  • 定位到程序的安装目录(系统在当前目录搜索可执行程序):

    cd /usr/bin
    java -version
    
  • 系统根据程序名,自动搜索可执行的程序:

    java -version
    

在配置环境变量前,运行 java -version 是会报错的。因为操作系统并不知道你的 java 程序(文件)在哪里。

PATH是干什么的?

系统变量就是一个大的容器,其中里面有一个环境变量是PATH,PATH主要用于储存各种命令的路径。

当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到 PATH变量中指定的路径去找。即,如果可执行程序不在当前目录下,操作系统会自动依次搜索 PATH 变量中所指定的所有目录。

当然,不在 PATH 中设置路径也可执行程序,但必须把完整的路径写出来,如:/usr/bin/java -version

查看PATH有哪些路径:

echo $PATH

查找使用的指令是PATH的哪个路径:

where java
which java

设置PATH:

/etc/paths 是系统设置的环境变量,修改此文件就可以修改环境变了。但是不建议在此修改,因为这是系统预设的文件,最好不要动。

建议在 /etc/paths.d/ 目录下添加新文件,如:/etc/paths.d/mypath

或者使用命令行修改:

export PATH=/example/bin:$PATH  
# 在 Windows 系统中 PATH 变量中的所有路径采用分号分割,如果在 Linux 系统中采用冒号分割。

如何配置环境变量(Mac)?

Mac系统

查看所有环境变量:

printenv
env
set #显示本地定义的shell变量,包括环境变量

查看单个环境变量,如:PATH:

printenv PATH
echo $PATH
echo ${PATH}

设置新的环境变量(临时):

临时环境变量就是在当前窗口定义,且只能在当前窗口使用的变量。在新开一个窗口(或已开的另一个窗口),这个变量是不存在。

export MY_NEW_VAR="example"
echo $MY_NEW_VAR

设置新的环境变量(永久):

永久环境变量会一直存在文件中,直到被手动删除。

#系统环境变量
vim /etc/profile # 写入  
export MY_NEW_VAR="example"
source /etc/profile #立即生效  

#用户环境变量
vim ~/.bash_profile
export MY_NEW_VAR="example"
source ~/.bash_profile #立即生效

重新加载文件,让环境变量立即生效(在环境配置完毕后,一般是需要重新登录或重启SHELL才会生效):

source ~/.bash_profile

删除环境变量:

unset MY_NEW_VAR

Window系统

查看所有环境变量:

set

查看单个环境变量,如:PATH:

set PATH

修改环境变量:

set MY_NEW_VAR=example
set PATH=%PATH%;example

删除环境变量:

set PATH=

© lizhao all right reserved,powered by Gitbook文件修订时间: 2024-06-24 22:04:10

results matching ""

    No results matching ""