天天看點

Linux(Ubuntu)設定環境變量(轉載)

Linux(Ubuntu)設定環境變量(轉載)

http://blog.csdn.net/wumingxing0228/article/details/6050175

環境變量是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對于Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。對于UNIX,可能是CShelll。環境變量是通過Shell指令來設定的,設定好的環境變量又可以被所有目前使用者所運作的程式所使用。對于bash這個Shell程式來說,可以通過變量名來通路相應的環境變量,通過export來設定環境變量。下面通過幾個執行個體來說明。

1)etc/profile:此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行.

并從/etc/profile.d目錄的配置檔案中搜集shell的設定.

注:在這裡我們設定是為所有使用者可使用的全局變量。

2)/etc/bashrc:為每一個運作bash shell的使用者執行此檔案.當bash shell被打開時,該檔案被讀取.

3)~/.bash_profile:每個使用者都可使用該檔案輸入專用于自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變量,執行使用者的.bashrc檔案.

注:~在LINUX下面是代表HOME這個變量的。

另外在不同的LINUX作業系統下,這個檔案可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一種或幾種,如果存在幾種的話,那麼執行的順序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如我用的是Ubuntu,我的使用者檔案夾下預設的就隻有~/.profile檔案。

4)~/.bashrc:該檔案包含專用于你的bash shell的bash資訊,當登入時以及每次打開新的shell時,該檔案被讀取.

(注:這個檔案是 .開頭的,是以在檔案夾中被隐藏了)

那麼我們如何添加自己定義的環境變量呢?

用記事本打開這個檔案,然後在裡面最後寫上:

xiaokang=kangkang

然後儲存,這樣每次打開一個新的terminal的時候,我們這個變量就生效了。記住,如果你已經打開一個terminal,然後你修改了這個檔案,那麼在這個terminal下是不會生效的。一般情況使用者最好在這裡進行修改,但是有時候會覆寫父級的變量,比如PATH是ROOT設定的,但是如果你在這個檔案裡面寫了PATH=xx,那麼将來所有的PATH都成了xx了,是以我們應該在這個檔案中寫為:  

PATH=$PATH:xx

這樣就把原來的和你自己的一起加上了。而且注意在LINUX系統下用:分割表示并列,而不是windo的;

3和4都是在使用者目錄下的,他們唯一的不同是: .bash_profile隻能在登入的時候啟動一次。在我的Ubuntu裡面這個3檔案似乎沒有。

5)~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案.

另外,/etc/profile中設定的變量(全局)的可以作用于任何使用者,而~/.bashrc等中設定的變量(局部)隻能繼承/etc/profile中的變量,他們是/"父子/"關系.

~/.bash_profile 是互動式、login 方式進入 bash 運作的

~/.bashrc 是互動式 non-login 方式進入 bash 運作的

通常二者設定大緻相同,是以通常前者會調用後者。

好的,總結一下他們的執行方式:

當你登入并且登入shell是bash時,bash首先執行/etc/profile檔案中的指令(如果該檔案存在),然後它順序尋找~ /.bash_profile,~/.bash_login或~/.profile檔案,并執行找到的第一個可讀檔案中的指令.當登入bash退出時,它 将執行~/.bash_logout檔案中的指令.

當啟動一個互動的bash時,它将執行~/.bashrc檔案中的指令(如果該檔案存在并且可讀).當非互動地啟動以運作一個shell腳本時,bash将查找bash_env環境變量,确定執行檔案的名稱.

繼續閱讀