為什么我使用source /etc/profile這個命令之后,新的環境變量只能在一個終端里面有效?


 

各位大蝦:
我從網上得知,在ubuntu中,使用source /etc/profile命令可以使新建立的環境變量立刻生效而不用重新啟動系統,但是
如題,當我使用source /etc/profile這個命令之后,新的環境變量只能在一個終端里面有效,而當我把這個終端關閉重新再
打開另一個終端時,剛才有效的環境變量就沒了。

我的過程如下:
打開一個終端,輸入命令:
$ source /etc/profile
$ echo $LD_LIBRARY_PATH
/home/zzm/installs/BALL/BALL-1.2/lib/Linux-i386-g++_4.1.3
(可見我在/etc/profile文件里面配置的環境變量生效了)

然后,我把這個終端關閉了,再打開一個終端,輸入同樣的“echo $LD_LIBRARY_PATH”,就什么都沒有顯示,顯然,環境
變量又變得失效了。

我是在/etc/profile里面添加了下面的內容來設置環境變量的:
--------------------------------------
#設置BALL環境變量
export LD_LIBRARY_PATH=/home/zzm/installs/BALL/BALL-1.2/lib/Linux-i386-g++_4.1.3
export BALL=/home/zzm/installs/BALL/BALL-1.2
--------------------------------------

不知道這是怎么回事,總之,我將系統重新啟動之后,環境變量就都生效了,無論在哪個終端里面都有效了。

請問,如何在不重新啟動系統的情況下,將環境變量生效,而且是永久生效,不再出現我以上遇到的問題?
 
我加到自己的 ~/.bashrc 里,並且重新登錄了,每次打開終端執行命令,發現環境變量確實生效了,但是我在應用程序里面實驗的時候,比如在Java中調用系統命令,環境變量又失效了。

是不是加到自己的 ~/.bashrc 里的環境變量只是對bash等shell有效,而不是真正的對整個系統有效?
==========================================================================
http://www.cnblogs.com/BigIdiot/archive ... 17547.html

在Ubuntu中有如下幾個文件可以設置環境變量
1、/etc/profile:在登錄時,操作系統定制用戶環境時使用的第一個文件,此 文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。
2、/etc/environment:在登錄時操作系統使用的第二個文件,系統在 讀取你自己的profile前,設置環境文件的環境變量。
3、~/.bash_profile:在登錄時用到的第三個文件是.profile文 件,每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用 戶登錄時,該 文件僅僅執行一次!默認情況下,他設置一些環境變游戲量,執 行用戶的.bashrc文件。/etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該 文件被讀取.
4、~/.bashrc:該文件包含專用於你的bash shell的bash信 息,當登錄時以及每次打開新的shell時,該該文件被讀取。

幾個環境變量的優先級

1>2>3


設置永久環境變量

1.環境變量配置中,要先刪除.bash_profile中的三行關於.bashrc的 定義,然后把環境變量配置在.bashrc中
2.選擇要使用的java環境:update-alternatives –config java
3.要使得剛修改的環境變量生效:source .bashrc
4.查看環境變量:env

可以放到/etc/bash/bashrc,這樣就是系統級的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM