什麼是環境變數
你可能經常聽到 ⌈沒有環境⌋ ⌈需要配置環境⌋等。 到底什麼是環境? 怎樣配置環境?
這就涉及到一個作業系統的概念—— 環境變數。
程式設計中的變數,大家應該都能夠理解,簡單來說可以理解爲一個別名,這個別名再指向真正的數據。
x = 0那什麼是環境變數呢?
和程式設計中的變數類似,也是名稱和值。
$var=123某些程式透過環境變數來控制行爲,不過說到底也只是一種數據存儲方式。
有一些特殊的環境變數,比如 PATH。
它用來控制搜尋終端中執行的指令。
PATH=/path/to/:/path/dir2/各操作系統會使用特定分隔符表示不同路徑。
在Windows下是 ;分隔每個路徑,而Unix則是 :。
終端如何執行你的指令
指令(Command),其實就是調用可執行檔。
如 ls chmod, 或者是 python ,java等非系統自帶環境。(某些指令是內建處理)
但大多其實都是一個個可執行檔。
問題來了,你的終端如何找到這些可執行檔案呢?
這就是環境變數 PATH的作用。
它告訴終端,你可以在這些目錄中搜尋執行的檔案。
列如執行ls的流程:
鍵入ls並回車 -> 終端判斷是否內建指令 -> 否,查找WorkDir是否有ls程式 -> 否,讀取環境變數PATH -> 將變數解析爲一個個路徑 -> 在這些路徑中查找,有沒有一個叫做ls的程式。
具體來說,如果環境變數:
PATH=/path/to/:/path/to2/並在/home下 執行 ls -> 判斷/home/ls是否存在? -> 否, 讀取環境變數, /path/to/ls是否存在? -> 否, /path/to2/ls是否存在? -> Yes,那麼就調用這個可程式。
也就是相當於省略了查找路徑,即便不在環境變數,你仍然可以透過絕對路徑調用 /path/to2/ls。
爲什麼需要它們?
雖然可檔案可以透過絕對路徑調用,但其的問題也很明顯。
檔案必須按照固定位置存儲。
試想一下所有代碼路徑都使用絕對路徑,不同使用者的檔案結構可能並不相同。
那麼他們就需要自己手動一個個的改。 這顯然是不可接受的。
故透過環境變數PATH搜尋可執行檔路徑,這樣便可無需關心可執行檔實際位置。
總結
配置環境就是配置可執行檔的查找路徑,讓終端能夠找到你執行的檔案。
命令的本質是可執行檔(某些指令可能被內建)。
如果理解這個,相信你以後遇到⌈環境問題⌋就能很快解決啦~
你好呀~ 看到留言訊息裏的 ⌈O2⌋可能是拼寫錯誤,故維持了原始網域並更新了頭像路徑 如有誤可再留言變更~
您好,麻烦更新一下我的站点信息,谢谢~ Name: Ethan Desc: Don’t stay awake for too long. Link: https://hanlifeO2.com Avatar: https://hanlifeO2.com/avatar.svg
嗨~ 朋友你好呀,已經加上咯~