環境變數詳解

郝偉老師(安徽理工大學)發表於2020-11-22

前言

每次在安裝開發環境的時候,比如JDK,Python等工具時,經常需要配置環境變數,環境變數到底是什麼,對於很多新手來,總是一副很神祕且高大上的感覺,所以往往難以理解和上手,給實際開發帶來一定的困難。本文就以最經常的PATH變數,對環境變數進行介紹。

什麼是環境變數

根據百度百科的定義,環境變數(environment variables)一般是指在作業系統中用來指定作業系統執行環境的一些引數,如臨時資料夾位置和系統資料夾位置等。
環境變數是在作業系統中一個具有特定名字的物件,它包含了一個或者多個應用程式所將使用到的資訊。例如Windows和DOS作業系統中的path環境變數,當要求系統執行一個程式而沒有告訴它程式所在的完整路徑時,系統除了在當前目錄下面尋找此程式外,還應到path中指定的路徑去找。使用者通過設定環境變數,來更好的執行程式。

PATH示例

這個解釋仍然有些抽象,讓我們通過PATH變數來看一個具體的例子。
首先,我們以Windows平臺準備一個DOS程式 hello.exe,功能很簡單隻輸出字串 “Hello, world!”,可以在這裡下載,也可以自己手工使用以下程式碼完成:

#include <stdio.h>
int main(){
	printf("Hello, world!\n");
	return 0;
}

現在我們把這個程式放在 C:\data\hello.exe,然後開啟控制檯進入這個目錄,執行效果如下所示:
在這裡插入圖片描述
但是如果我們把當前路徑移動到D盤(或者任意其他位置)就會發現執行不了了。
在這裡插入圖片描述
提示的錯誤為找不到 hello 這個程式或命令。這是為什麼呢?答案是系統並不知道 hello.exe 在什麼地方,因為在我們執行程式時,系統預設會從當前目錄下來查詢,如果沒有的話,就會提示找不到。有同學可能會說,為什麼不從其他地方找?答案很簡單,就是效率。如果每次執行命令的時候都要從全盤查詢,那麼效能會非常低下。

那麼,是否可以無論在任何位置,當我們輸入 hello 時都會執行 C:\data\hello.exe 呢?答案是肯定的,這就是本文所要介紹的環境變數之PATH,這個環境變數的目的,就是告訴系統某些程式的位置,從而無論在哪裡執行都只要使用此命令即可執行。

設定方法

下面是一些不錯的文章,供大家參考:

設定示例

如下所示,在設定完Windows下的環境變數後
在這裡插入圖片描述
我們再來執行命令(要重啟Dos視窗),即可正常執行
在這裡插入圖片描述
本文以 hello.exe 為例,實際上 Java, Python等都是這樣的原理。也就是說,為什麼我們可以在任意路徑下執行 javajavacpython,基原理非常簡單,就是配置了環境變數PATH,僅此而已。

除了PATH變數,常用環境變數有很多,具體可以參見此文:環境變數基礎知識

小結

本文對環境變數的定義進行了解釋,並使用一個例項對變數進行了演示說明,同時提供了一個相關的資源文章,讓讀者能夠對環境變數有一個全面的瞭解。

相關文章