以Ubuntu 14.04為例,其他linux發行版類似,但是也有不同之處。這里以PATH為例。
添加環境變量的幾個位置
- /etc/profile—— 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置;
- /etc/environment—— 在登錄時操作系統使用的第二個文件,系統在讀取你自己的profile前,設置環境文件的環境變量;
- /etc/bashrc—— 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取;
- ~/.profile—— 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,它設置一些環境變量,執行用戶的.bashrc文件;
- ~/.bashrc—— 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該文件被讀取;
上面5個添加環境變量的位置的作用時間和作用域有所不同。
添加方法:
- 方法一:直接修改/etc/enviroment文件,這種方法的作用域是全局的,永久性的。
#打開/etc/environment文件,其內容如下: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" #在環境變量PATH中添加你要添加的路徑即可。
- 方法二:修改/etc/profile文件,這種方法的作用域是全局的,永久性的。
#這個文件不是保存環境變量信息的文件,在登錄時,系統只是根據它的內容對環境變量進行設置。 export PATH=$PATH:[your path1]:[your path2]:[...] export PATH=[your path1]:[your path2]:[...]:$PATH
#其中,各個PATH之間用冒號分隔,$PATH指代添加your path前的環境變量。
- 方法三:修改/etc/bashrc或者~/.bashrc文件,這兩個文件同樣不是為了保存環境變量,只是在使用bash shell時進行設置而已,所以設置方法和二中一樣。對於/etc/bashrc文件,修改的作用於所以用戶,但對於~/.bashrc文件,修改的僅僅作用於當前用戶。這種修改的作用也是永久性的。
export PATH=$PATH:[your path1]:[your path2]:[...]
export PATH=[your path1]:[your path2]:[...]:$PATH
這兩個文件只是對bash shell的環境變量的設置,脫離的bash shell,不使用命令行了,這樣的修改就可能沒有意義了。
- 方法四:修改~/.profile文件,作用僅限於當前用戶,但同樣也是永久性的。
這種方法和修改/etc/profile本質上是一樣的,這種之不過是僅僅修改了當前用戶自己的配置文件。所以作用僅限於當前用戶,但同樣也是永久性的。
- 方法五:在Terminal中使用shell命令,只在當前Terminal中起作用,關閉了當前Terminal就無效了。對其他Terminal也無效
#在Bash中直接用下面命令: export PATH=$PATH:[your path1]:[your path2]:[...] export PATH=[your path1]:[your path2]:[...]:$PATH
顯示環境變量
- 顯示所有環境變量
env #打印所有的環境變量
- 顯示指定環境變量
echo $PATH #打印PATH環境變量
讓以上修改生效
在以上前四種方法中,修改后不會設置立即生效(大家思考一下原因),需要重啟或者重新登錄(哪個需要重啟,哪個需要重新登錄?),第五種方法立即生效。
使用source命令也可以讓修改立即生效。使用方法為:
source [file name] # file name 指的是上面修改過的文件的file name
刪除對環境變量的修改
將以上方法中對配置文件的修改還原回去即可。另外,由於第五種方法由於是臨時性質的且局部的,只需要關閉這個Terminal就好了。
一個添加環境變量的例子
這是今天我遇到的一個問題:Ubuntu 14.04 中系統默認安裝了qt4,今天我安裝了qt5,運行qmake時候會產生錯誤。Ubuntu14.04默認${PATH}路徑中的/usr/bin下存在諸多qt命令(確切的說是指向qtchooser的軟連接,qtchooser最終會選擇系統自帶的Qt4命令:但是這些命令默認都不存在),如果${QTDIR}/bin在${PATH}之后,會導致Qt命令失效。
特別是qmake命令,在后續安裝中需要用到,保險起見,在終端輸入qmake,如果顯示qmake命令不存在,請通過創建軟連接進行解決。
#安裝完成后配置一下PATH,在當前用戶主目錄下的.bashrc (or .zshrc)文件中加入: export QTDIR=/opt/Qt/5.3/gcc/ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib export PATH=${QTDIR}/bin:${PATH} #注意${QTDIR}/bin和${PATH}的順序!因為 Ubuntu14.04默認${PATH}路徑中的/usr/bin下存在諸多qt命令 #(確切的說是指向qtchooser的軟連接,qtchooser 最終會選擇系統自帶的Qt4命令:但是這些命令默認都不存在), #如果${QTDIR}/bin在${PATH}之后,會導致Qt命令失效。
#創建軟連接 #將/usr/bin下的qmake軟連接到/opt/Qt/5.3/gcc/bin/qmake上,
#或者將/usr/lib/i386-linux-gnu/qt4/bin/qmake軟連接到/opt/Qt/5.3/gcc/bin/qmake上: sudo ln -s /opt/Qt/5.3/gcc/bin/qmake /usr/bin/qmake or sudo ln -s /opt/Qt/5.3/gcc/bin/qmake /usr/lib/i386-linux-gnu/qt4/bin/qmake #創建完成后再輸入qmake查看是否設置成功。