??作者:極客小俊
??公眾號同名: 一個(gè)把邏輯思維轉(zhuǎn)變?yōu)榇a的技術(shù)博主
你在開玩笑吧! 居然還有人不知道為什么要配置環(huán)境變量???
前言概述
你在開始學(xué)習(xí)編程的時(shí)候,首先就會(huì)接觸到環(huán)境變量
例如java、python蔫仙、php
等開發(fā)語言的時(shí)候料睛,需要去配置一個(gè)環(huán)境變量
但又不知道為什么要去配置它!
并且這個(gè)環(huán)境變量
在配置的時(shí)候你也不能照本宣科的去配置,稍有不慎就會(huì)出現(xiàn)各種各樣的問題!
今天我們就來討論討論這個(gè)環(huán)境變量
的話題,并且搞清楚它的原理摇邦,這樣以后再次遇到類似問題就會(huì)迎刃而解!
什么是環(huán)境變量??
環(huán)境變量
英文名為: Environment variables
是在操作系統(tǒng)
中一個(gè)具有特定名字的對象恤煞,它包含了一個(gè)
或多個(gè)
應(yīng)用程序所將使用到的信息, 例如: 如系統(tǒng)臨時(shí)文件夾位置、系統(tǒng)文件夾位置施籍、某些應(yīng)用軟件文件的路徑等等..
舉個(gè)梨子
??
當(dāng)要求系統(tǒng)
運(yùn)行一個(gè)程序
但是又沒有告訴它這個(gè)程序
所在的完整路徑時(shí)居扒,系統(tǒng)
默認(rèn)會(huì)在當(dāng)前目錄下面尋找這個(gè)程序
,如果找不到就會(huì)到環(huán)境變量
中的path
中指定的路徑去找, 所以我們用戶可以通過設(shè)置環(huán)境變量
,來更好的運(yùn)行程序!
這里我以windows
系統(tǒng)的環(huán)境變量
來舉個(gè)梨子
為了讓大家更好的去理解這句話丑慎,我們這里來實(shí)際操作一下, 你可以打開你的cmd命令行終端
來嘗試運(yùn)行一下你的QQ程序, 輸入一個(gè)QQ
程序喜喂,你看看會(huì)發(fā)生什么事情!
如圖
這里他提示了一個(gè)'qq' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件
結(jié)果很明顯竿裂,不能通過這種方式去打開QQ程序,對吧 也就是說你要先告訴系統(tǒng)這個(gè)程序在哪,才能進(jìn)行打開
也相信大多數(shù)人都是通過桌面的QQ圖標(biāo)或者菜單等方式去點(diǎn)擊打開這些應(yīng)用程序 對吧??
那么如果說我硬要通過這種cmd
的方式去打開一個(gè)應(yīng)用程序該怎么辦呢玉吁?首先你要進(jìn)入并且找到這個(gè)程序的準(zhǔn)確路徑位置!
例如上面我們要打開QQ 我就要先通過cmd命令
直接進(jìn)入到QQ安裝的所在目錄下的bin目錄下的QQ.exe
這個(gè)執(zhí)行程序, 當(dāng)然這里需要通過一些簡單的DOS命令
才可以進(jìn)去, 不明白沒關(guān)系,后面會(huì)說到!
這里我這里的路徑為D:\騰訊軟件\QQ\Bin
那么我先切換到D盤
腻异,然后再使用cd命令
切換到D:\騰訊軟件\QQ\Bin
這個(gè)目錄下,最后執(zhí)行一下QQ.exe
如圖
嘿嘿 你驚奇的發(fā)現(xiàn)居然打開了QQ
程序, 是不是感覺很zb! 這個(gè)效果跟你在點(diǎn)擊圖標(biāo)去打開是一個(gè)效果诈茧, 沒有任何區(qū)別!
那如果本次都叫你用這種去慢慢輸入路徑的方式打開 萬一路徑很長很復(fù)雜那豈不是你要瘋掉!??, 當(dāng)然這里只是舉個(gè)梨子,讓你更好的理解為什么要配置環(huán)境變量
你完全可以使用桌面圖標(biāo)來打開這些應(yīng)用程序!????
而且你如果關(guān)掉cmd
后重新打開捂掰,再次輸入QQ
其實(shí)又是同樣的問題敢会,這就意味著你要從cmd
打開QQ必須每次按照剛才的步驟進(jìn)行打開曾沈,并且你還必須要切換到這個(gè)QQ
的bin
目錄下才行,這樣就很麻煩了, 也不利于你zb!??
那么有沒有辦法讓我們在隨便哪個(gè)目錄中都可以直接使用cmd
輸入一個(gè)QQ
就可以打開的辦法呢?
現(xiàn)在就是使用環(huán)境變量
的時(shí)候了!
其實(shí)很簡單你只要把剛剛那個(gè)bin目錄
的路徑添加到環(huán)境變量
的系統(tǒng)變量
下的path
中就可以了
這里的path
也就是環(huán)境變量
中用來指定可執(zhí)行文件
的絕對路徑
鸥昏,這里配置了很多很多路徑塞俱,彼此之間用分號隔開!
具體操作這里以win10
為例,步驟如下:
點(diǎn)擊此電腦---->右鍵(選擇屬性)----->點(diǎn)擊高級系統(tǒng)設(shè)置------>點(diǎn)擊(環(huán)境變量)
如圖
然后找到系統(tǒng)變量
下的path
點(diǎn)擊編輯
如圖
然后點(diǎn)擊新建
然后復(fù)制你的QQ
安裝目錄下的bin
路徑, 我的路徑如下圖
也就是復(fù)制D:\騰訊軟件\QQ\Bin
到新建的對話框中
最后全部點(diǎn)擊確定即可!
然后你就可以在cmd
中的任意目錄 任意盤符下進(jìn)行打開這個(gè)應(yīng)用程序了!
通過這個(gè)小案例 你應(yīng)該對環(huán)境變量有一點(diǎn)點(diǎn)初步的認(rèn)識了吧!
小結(jié)
環(huán)境變量
的主要作用就是規(guī)定了某些系統(tǒng)文件所在的位置!
用戶變量和系統(tǒng)變量的區(qū)別??????
概述
在上面的環(huán)境變量
介紹中吏垮,我們看到可以通過配置一些路徑從而達(dá)到在cmd
命令行中快速啟動(dòng)應(yīng)用程序!
但是眼尖的朋友可能已經(jīng)發(fā)現(xiàn)障涯,環(huán)境變量
的配置中被分為了 用戶變量
和系統(tǒng)變量
他們分別又是什么意思呢?
用戶變量 ??
在環(huán)境變量
中的用戶變量
配置只會(huì)當(dāng)前所登錄的系統(tǒng)用戶生效, 也就是說登錄的系統(tǒng)用戶可以對他自己所配置的環(huán)境變量
參數(shù)進(jìn)行增刪改 , 不同用戶的用戶變量之間是獨(dú)立存在的,并且互不干擾的
系統(tǒng)變量??
在環(huán)境變量
中系統(tǒng)變量
的配置會(huì)對所有用戶都會(huì)有效, 也就是說如果系統(tǒng)變量
被修改了,那么任何一個(gè)用戶都將受到影響!
但是只有管理員賬戶才有權(quán)限進(jìn)行系統(tǒng)變量
的設(shè)置, 普通系統(tǒng)用戶是不能夠去修改系統(tǒng)變量
的膳汪, 當(dāng)然一般情況下你通常都是使用的系統(tǒng)管理員賬戶進(jìn)行windows
系統(tǒng)的登錄的
所以平常我們在自己的電腦系統(tǒng)中去配置環(huán)境變量
的時(shí)候唯蝶,不管你是配置在用戶變量
還是系統(tǒng)變量
基本上還是沒有什么區(qū)別!
用戶變量和系統(tǒng)變量之間的關(guān)系??
用戶變量
和系統(tǒng)變量
我們可以用一張圖來進(jìn)行表示!
如圖
看到了吧,不同用戶的用戶變量
之間是并列獨(dú)立的, 但是如果說系統(tǒng)變量
被修改了,那么任何系統(tǒng)用戶級別都會(huì)用系統(tǒng)變量
遗嗽,因此每個(gè)用戶都將受到影響
所以說系統(tǒng)變量
就是系統(tǒng)級別
的變量粘我,影響范圍最大, 而用戶變量
是建立在系統(tǒng)變量
之前的獨(dú)立存在, 它需要使用系統(tǒng)變量
, 而我們所指的環(huán)境變量
則是是一個(gè)整體,它里面就代表了系統(tǒng)變量
和用戶變量
所以用戶變量
和系統(tǒng)變量
的區(qū)別就是他們的級別不一樣!
如何自定義環(huán)境變量命令??
當(dāng)我們想通過cmd
來運(yùn)行一個(gè)自己定義的命令時(shí)痹换,就會(huì)出現(xiàn)不是內(nèi)部或外部命令征字,也不是可運(yùn)行的程序 或批處理文件
的提示信息!
但是如果我們在cmd
中輸入一個(gè)shutdown
命令則可以完全正常執(zhí)行!
如圖
這個(gè)原因也很簡單,正因?yàn)?code>shutdown在環(huán)境變量中定義了它這個(gè)命令所在的路徑,而test
這個(gè)命令則沒有!
shutdown命令
的默認(rèn)路徑是在C:\Windows\System32
目錄下, 包括一些常見的cmd
命令其實(shí)都在這個(gè)目錄下
如圖
而C:\Windows\System32
這個(gè)路徑也是默認(rèn)安裝系統(tǒng)的時(shí)候就被定義在了環(huán)境變量
當(dāng)中, 就跟之前定義QQ
應(yīng)用程序也是一個(gè)道理!
如圖
所以根據(jù)這個(gè)道理我們也可以自定義一個(gè)環(huán)境變量
來進(jìn)行調(diào)用!
要知道變量、變量
就是一個(gè)可變化的量
我們就利用這個(gè)特點(diǎn)來自己定義一個(gè)系統(tǒng)變量
然后調(diào)用它來打開某個(gè)應(yīng)用程序!
舉個(gè)梨子
我這里要打開微信娇豫,當(dāng)然你完全可以依照之前的辦法在path
中把微信的WeChat.exe
路徑加入到其中, 但是這樣子做不夠靈活!
我們可以先在系統(tǒng)變量中定義一個(gè)weixin
然后值
設(shè)置為微信目錄地址!
我的地址為:D:\騰訊軟件\WeChat
選擇系統(tǒng)變量
點(diǎn)擊新建
輸入變量名
和值
變量名
英文即可!
值
就是微信的路徑
如圖
設(shè)置好了之后匙姜,我們現(xiàn)在就可以對它進(jìn)行調(diào)用!
然后再path
中把剛剛自定義好的weixin
這個(gè)變量加入到其中,格式為%變量名%
如圖
這樣一來以后你只需要去修改變量
的值 path
中就會(huì)自動(dòng)獲取到了!
接下來就可以去cmd
中嘗試一下打開這個(gè)應(yīng)用程序吧!
所以通過以上的操作,只要是在cmd
中去執(zhí)行的應(yīng)用,其位置均儲存在環(huán)境變量
目錄值中,我們在執(zhí)行cmd
中的應(yīng)用時(shí)冯痢,其實(shí)就是在遍歷環(huán)境變量
所有應(yīng)用程序的位置, 并且查看其中有沒有該程序!
如果沒有就會(huì)提示未找到
這種信息氮昧,如果在環(huán)境變量
中找到了你在cmd
中輸入的命令,那么通過環(huán)境變量
就可以直接去找到該程序并且執(zhí)行!
為什么編程開發(fā)要配置環(huán)境變量??
知道什么是環(huán)境變量
以后浦楣,現(xiàn)在應(yīng)該明白我們在開發(fā)java袖肥、python、php
之前需要配置的環(huán)境變量的原因了吧
舉個(gè)梨子
比如Java
我們就需要把JDK
的bin目錄
添加到環(huán)境變量
的path
中椒振,這樣我們就可以在任意目錄下使用bin
下面的.exe可執(zhí)行程序昭伸,javac.exe、java.exe
javac.exe
用來處理.java
源代碼文件澎迎,是把源代碼文件編譯
為字節(jié)碼文件
的一個(gè)工具,經(jīng)過javac.exe
這個(gè)工具編譯java源代碼文件
后形成的.class
就是字節(jié)碼文件
java.exe
用來處理.class字節(jié)碼文件
進(jìn)行執(zhí)行的庐杨,也就是JVM
解釋執(zhí)行java
程序, 從而實(shí)現(xiàn)java
程序的運(yùn)行
而他們都在bin
目錄下, 這都是為了能夠方便的使用這些開發(fā)語言所帶有的編譯解釋工具和命令, 所以我們才要配置環(huán)境變量
如圖
要知道這也正是很多新手朋友剛剛?cè)腴Tjava
的一個(gè)難題, 如果環(huán)境變量
配置不成功,在cmd
中去輸入java
就會(huì)提示找不到某某
的關(guān)鍵詞 對吧!
然而java
的應(yīng)用程序開發(fā)包就在安裝JDK
目錄下面的bin
目錄中, 并且所有跟Java
相關(guān)的工具都在bin
目錄中!
所以在開始學(xué)習(xí)java
或者其他一些開發(fā)語言的時(shí)候夹供,為了操作方便必須要配置一下環(huán)境變量
從而達(dá)到能夠正常運(yùn)行java
的環(huán)境, 其他一些語言也是以此類推!
環(huán)境變量的一些小玩法??
既然我們知道了環(huán)境變量
中的path
可以被系統(tǒng)自動(dòng)檢索灵份,那么我們就也利用這個(gè)特點(diǎn)來做一些配置!
舉個(gè)梨子
我們可以指定某個(gè)文件夾下的所有.exe
執(zhí)行程序都可以直接在命令行終端
里輸入其名稱,并且直接打開!
你可以提前準(zhǔn)備好一些.exe程序
哮洽,并放入到一個(gè)tools
的目錄中填渠,比如你把這個(gè)目錄建立在D:盤
下
如圖
然后你只需要把這個(gè)D:\tools
路徑配置到環(huán)境變量
的path
當(dāng)中
如圖
現(xiàn)在就可以通過命令行終端
直接輸入其執(zhí)行程序的名稱來直接打開了!
如圖
但是這種辦法 可能會(huì)有一些弊端, 因?yàn)橛行?code>.exe執(zhí)行程序你拷貝到另外的文件夾是無法被正常打開的!
既然是環(huán)境變量
我們就要用變量
的特性來解決這個(gè)問題, 也就是用變量訪問
指定文件夾列表的方式!
我們可以在系統(tǒng)變量
當(dāng)中自定義一個(gè)變量名
為TOOLS
那么它的值為如下
D:\Microsoft VS Code;D:\PotPlayer64;D:\Typora;D:\ReNamer;D:\Bandizip
也就是我們把vscode、PotPlayer氛什、typora莺葫、renamer、bandizip
這幾種應(yīng)用的路徑
都賦值到一個(gè)變量
當(dāng)中
如圖
注意:
第一次輸出的時(shí)候枪眉,需要這樣進(jìn)行輸入捺檬,以后再添加直接點(diǎn)擊編輯就可以了
也就是以下這個(gè)樣子
也就是把多個(gè)路徑映射
到一個(gè)變量
上
然后再把這個(gè)TOOLS
變量添加到系統(tǒng)變量
中的Path
下, 加入的格式就為%自定義的變量名%
如圖
這樣子我們就可以通過終端命令行
來快速啟動(dòng)這些應(yīng)用了, 當(dāng)然前提你要知道這些應(yīng)用執(zhí)行程序的名稱!
如圖
最后??
看到這里了想必你已經(jīng)對環(huán)境變量
也應(yīng)該有一個(gè)基本的認(rèn)識了吧贸铜,也不會(huì)對環(huán)境變量
的配置感到復(fù)雜了!
環(huán)境變量
還有更多的玩法堡纬,也期待小伙伴勇于去發(fā)現(xiàn)其中的奧秘!??
如果我的博客對你有幫助、如果你喜歡我的博客內(nèi)容蒿秦,請 “??點(diǎn)贊” “??評論” “??收藏”
一鍵三連哦烤镐!
如果以上內(nèi)容有任何錯(cuò)誤或者不準(zhǔn)確的地方,????歡迎在下面 ?? 留個(gè)言指出棍鳖、或者你有更好的想法炮叶,歡迎一起交流學(xué)習(xí)??????????