1. 程式人生 > >理解及操作環境變量(基於Mac操作)

理解及操作環境變量(基於Mac操作)

命令行 操作 便是 恢復 grep shell操作 同時 /usr 輸入

通過本文,簡單的了解環境變量及其操作,與便於遇到相關問題時能夠準確快捷的解決。

什麽是環境變量

An environment variable is a dynamic-named value that can affect the way 
running processes will behave on a computer. --- wikipedia

轉成中文大概就是 " 環境變量是一個動態命名的值,這個值能夠影響計算機如何運行程序" ,接下來根據例子來理解可能會更好~

當用戶在終端裏輸入某命令並敲下回車鍵的時候,計算機會在環境變量裏指定的路徑下查找這個命令對應的文件,並執行該文件以達到運行用戶所需的程序,比如:

# 查看環境變量
echo $PATH

# 進入指定的路徑下
cd /usr/local/bin

# 查看有哪些node相關的玩意
ls | grep "node"

效果如圖:

技術分享

打開文件夾,發現node是個可執行的文件,其實該文件裏包含著node命令所應有內容:

技術分享

當用戶在終端執行node命令的時候,通過環境變量,系統將node命令指向該文件夾,並且執行該文件夾中對應的內容以啟動node程序。

為了驗證下,這裏將node文件改個名,預測當node改名為node_test後,執行node_test命令則便是執行之前的node程序,下面是驗證結果圖:

# 修改node文件名為node_test
mv node node_test # 查看有哪些node相關的玩意,發現沒有node,變成了node_test ls | grep "node" # 執行node命令,提示沒這命令 node # 執行node_test,發現和原先node效果一樣,並且能寫代碼,還能查看版本,一切正常 node_test node_test -v

效果如圖:

技術分享

通過這麽個簡單的例子,大致能夠知道什麽是環境變量,也了解了環境變量是用來幹什麽的,接下來就看看如何去操作以及如何更好的管理環境變量。

配置環境變量

使用執行命令行進行配置

# 暴露個新變量 NEW_PATH
export NEW_PATH=/usr/lib

# 我們可以通過 $NEW_PATH 變量名查看其值 echo $NEW_PATH # 將NEW_PATH追加到PATH變量後面,註意:用:符號分割路徑 export PATH=$PATH:$NEW_PATH

效果如圖所示:

技術分享

結果顯示ok,正確的追加到了$PATH後...

環境變量的臨時修改還可以這麽操作,但不推薦,這樣的操作重寫PATH所有內容:

eval PATH=xxx

效果如圖:

技術分享

基於上面方法添加的環境變量是臨時的,重新打開個終端界面,一切都恢復如初~ 那麽想要讓配置的環境變量是永久的該怎麽處理呢?我們可以使用把要配置的環境變量寫到對應的文件中,系統會在指定的時候執行對應的文件來讀取用戶配置的命令。

使用文件配置環境變量

Mac OS 默認環境變量的配置文件路徑是 /etc/paths ,同時這個文件也是全局的環境變量文件,一般是只讀權限的,需要用管理員賬號來修改權限,然後寫入對應的環境變量值,操作如下:

技術分享

新開一個終端界面,輸出$PATH,效果如圖:

技術分享

通過這樣的修改,任何用戶進來這臺電腦都可以使用指定的全局環境變量(如:/etc/path_test)。

大多數時候不會使用上面的配置去更改全局環境變量,一般都是針對當前登錄用戶配置的環境變量,那麽便應該操作 ~/.bash_profile

舉個例子,在~/.bash_profile裏加個環境變量

# 在 .bash_profile 裏輸入
exoprt TEST_PATH=/Users/yeshou
export PATH=$PATH:$TEST_PATH

效果如圖:

技術分享

Mac下的環境變量操作的小例子大致就這麽跑了一遍,至此也大致了解環境變量及其操作流程。

最後,我們順便看看 .bash* 相關都有什麽文件:

cd ~
ls -a | grep “bash”

列出來的文件有:

.bash_history (記錄bash命令操作的文件)

.bash_profile (系統在登錄式操作時執行的環境變量配置文件,如啟動系統、遠程登錄、切換用戶)

.bash_sessions (bash會話記錄,這是個文件夾,裏面包含了每次使用bash所做的操作的文件列表)

.bashrc (系統在交互式和非登錄式bash shell操作時讀取執行的環境變量配置文件)


平常操作起來都是挺麻溜的,在整理成文章的時候還是會遇到不少問題,這也反映出平常大多停留在使用的階段,沒停下來去思考去理解… 通過寫文章總結和整理知識點,會發現日常的理解或操作很多有不是那麽合適的地方,發現後去改正,這樣才會有進步~

理解及操作環境變量(基於Mac操作)