如何設置環境變量?
很多新手,對于環境變量是很迷糊的,所以配置更是不會。而很多教程只是簡單的告知怎么配置環境變量,所以,新手跟著做了,遇到問題也沒法自己解決!這里我就詳細的講解一下環境變量相關的知識,我相信看完后,環境變量配置再也不會是問題。
什么是環境變量從字面意思可以看出,「環境變量」就是用來控制系統或進程操作環境的參數。
引用「百度百科」關于環境變量的定義:
環境變量(environment variables)一般是指在操作系統中用來指定操作系統運行環境的一些參數,如:臨時文件夾位置和系統文件夾位置等。環境變量是在操作系統中一個具有特定名字的對象,它包含了一個或者多個應用程序所將使用到的信息。例如Windows和DOS操作系統中的path環境變量,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在當前目錄下面尋找此程序外,還應到path中指定的路徑去找。用戶通過設置環境變量,來更好的運行進程。以上其實只是說到了環境變量的一個用途:被操作系統使用。實際上,進程也可以用到環境變量,而且實際中也會經常使用。
環境變量的作用我們從操作系統和進程兩個維度來談環境變量的作用。
1. 操作系統
一般來說,操作系統暴露一些屬性,允許用戶通過它來控制一定的行為。比如常見的 PATH 環境變量,就是告知操作系統,運行程序時,去哪里查找。從這里可以知道,為什么我們在安裝完語言開發環境時,經常會有一個步驟,是配置 PATH 環境變量,目的就是為了能夠更好的找到它。
比如,Go安裝在 /usr/local/go/ 目錄下,我們想要編譯 Go 程序,如 go build,那么系統怎么知道 go 這個命令在哪里呢?我們可以這么寫:/usr/local/go/bin/go build,這樣完全不依賴環境變量;但這樣太啰嗦,不方便。如果我們配置了 :
export PATH=$PATH:/usr/local/go/bin
那么,我們可以在系統任何地方,直接 go build ,系統都能找到 go 命令。你理解了嗎?
2. 進程
一般而言,進程啟動時,會從父進程繼承環境變量。環境變量有什么用呢?比如,我們開發一個 Web 服務,我們需要監聽端口,端口號一般有如下幾種方式:
1)硬編碼;2)從配置中讀??;3)從環境變量中讀取;
通過環境變量,可以控制進程的一些行為。
如何配置環境變量我們以配置 PATH 環境變量為例,需要區分不同系統:Windows 和 Unix 來介紹如何配置。另外,環境變量還涉及到永遠有效和臨時有效的問題。
1. Windows
臨時設置環境變量。在 cmd 下,通過 set PATH=%PATH%;C:\Go\bin ,這樣設置后,只在當前 cmd 窗口有效。
永久設置環境變量。右擊“我的電腦”->屬性->高級->環境變量,在彈出的窗口配置即可。詳情可以參考:https://jingyan.baidu.com/article/47a29f24610740c0142399ea.html
2. Unix(以 Linux 為例)
臨時設置環境變量。在 shell 終端,通過 export PATH=$PATH:/usr/local/go/bin ,這樣設置后,只在當前 shell 終端有效。
永久設置環境變量。這里涉及到登錄系統后,系統會執行哪些配置文件。一般的,我們會放置到 /etc/bashrc 中,在該文件最后加上:
export PATH=$PATH:/usr/local/go/bin
這樣就永久有效了。
另外,對于進程需要的環境變量,我們可以在啟動進程的時候給它,比如:
PORT=8080 ./httpserver
這樣,在 httpserver 的代碼中,可以獲取到 PORT 環境變量的值。
總結環境變量是很基礎的知識,我們不僅要知道怎么配置,更應該懂的它是什么,有什么用,這樣我們自然就自動怎么配置了。
Go語言中文網致力于 Go 語言知識分享以及服務端、架構等經驗交流,歡迎關注我!