老胡的看法:
Linux中的環境變數$PATH通常是定義了可執行程式和指令碼所在的路徑,當我們在Linux系統中透過終端敲命令的方式來執行某個程式或者指令碼的時候,系統就會根據$PATH定義的路徑依次去尋找這個命令。有時候我們會臨時安裝一些新的程式或者指令碼,需要直接透過它們的名字來執行,這時候就需要把它們所在的目錄加到$PATH中,例如:
這樣是臨時設定環境變數$PATH,當shell關閉的時候就會失效,想要永久生效,有兩種思路:
一、系統範疇內永久生效
1、修改/etc/environment。
將
加入到/etc/environment檔案中。/etc/environment中對環境變數的賦值會對所有使用者起作用,並且無論使用X視窗環境還是純命令列終端,都會載入其中的變數。
(老胡新裝的系統,environment還是空的)
需要注意的是,在environment中定義環境變數時無法使用其他變數。以下這樣定義$PATH是不會生效的:
2、修改/etc/profile 和在 /etc/profile.d/
下面新增自定義環境變數的指令碼。
這兩個地方的檔案只對shell起作用。
二、使用者範疇內永久生效
1、修改~/.profile
這個檔案的作用類似/etc/profile,對當前使用者下由終端啟動的所有程式和bash指令碼生效。不同的使用者,在各自的~目錄下各有一份這樣的配置檔案,可以各自定義自己喜好的環境變數。
2、修改~/.bashrc
在這個檔案裡定義的環境變數,只在當前使用者的bash shell中有效。如果你用的是zsh shell,那麼就修改~/.zshrc
。這個檔案裡定義的環境變數不能用於其他程式。
總結一下,使環境變數$PATH永久生效可以在系統範疇內實現,也可以在使用者範疇內實現,另外的區別是可以使用$PATH的情形。Linux提供了豐富靈活的實現方式,可以根據具體的環境做出不同的配置搭配,可以不互相影響。
老胡的看法:
Linux中的環境變數$PATH通常是定義了可執行程式和指令碼所在的路徑,當我們在Linux系統中透過終端敲命令的方式來執行某個程式或者指令碼的時候,系統就會根據$PATH定義的路徑依次去尋找這個命令。有時候我們會臨時安裝一些新的程式或者指令碼,需要直接透過它們的名字來執行,這時候就需要把它們所在的目錄加到$PATH中,例如:
export $PATH=$PATH:/usr/share/command/bin這樣是臨時設定環境變數$PATH,當shell關閉的時候就會失效,想要永久生效,有兩種思路:
一、系統範疇內永久生效
1、修改/etc/environment。
將
PATH=PATH:/usr/share/command/bin加入到/etc/environment檔案中。/etc/environment中對環境變數的賦值會對所有使用者起作用,並且無論使用X視窗環境還是純命令列終端,都會載入其中的變數。
(老胡新裝的系統,environment還是空的)
需要注意的是,在environment中定義環境變數時無法使用其他變數。以下這樣定義$PATH是不會生效的:
JAVA_HOME="/usr/lib/java"PATH="$JAVA_HOME/bin:$PATH"2、修改/etc/profile 和在 /etc/profile.d/
下面新增自定義環境變數的指令碼。
這兩個地方的檔案只對shell起作用。
二、使用者範疇內永久生效
1、修改~/.profile
這個檔案的作用類似/etc/profile,對當前使用者下由終端啟動的所有程式和bash指令碼生效。不同的使用者,在各自的~目錄下各有一份這樣的配置檔案,可以各自定義自己喜好的環境變數。
2、修改~/.bashrc
在這個檔案裡定義的環境變數,只在當前使用者的bash shell中有效。如果你用的是zsh shell,那麼就修改~/.zshrc
。這個檔案裡定義的環境變數不能用於其他程式。
總結一下,使環境變數$PATH永久生效可以在系統範疇內實現,也可以在使用者範疇內實現,另外的區別是可以使用$PATH的情形。Linux提供了豐富靈活的實現方式,可以根據具體的環境做出不同的配置搭配,可以不互相影響。