在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
,這樣就是系統級的
環境變數命令
1
、引言
在linux
系統下,如果你下載並安裝了應用程式,很有可能在鍵入它的名稱時出現“command not found”
的提示內容。如果每次都到安裝目標檔案夾內,找到可執行檔來進行操作就太繁瑣了。這涉及到環境變數PATH
的設定問題,而PATH
的設定也 是在linux
下定製環境變數的一個組成部分。本文基於RedHat 9.0
,詳細講解了環境變數定製的問題。
2
、變數簡介
Linux
是一個多使用者的作業系統。每個使用者登入系統後,都會有一個專用的運行環境。通常每個使用者預設的環境都是相同的,這個預設環境實際上就是一組環境變數的定義。使用者可以對自己的運行環境進行定製,其方法就是修改相應的系統內容變數。
3
、定製環境變數
環境變數是和Shell
緊密相關的,使用者登入系統後就啟動了一個Shell
。對於Linux
來說一般是bash
,但也可以重新設定或切換到其它的 Shell
。根據發行版本的情況,bash
有兩個基本的系統級設定檔:/etc/bashrc
和/etc/profile
。這些設定檔包含兩組不同的 變數:shell
變數和環境變數。前者只是在特定的shell
中固定(如bash
),後者在不同shell
中固定。很明顯,shell
變數是局部的,而環 境變數是全域的。環境變數是通過Shell
命令來設定的,設定好的環境變數又可以被所有目前使用者所啟動並執行程式所使用。對於bash
這個Shell
程式來 說,可以通過變數名來訪問相應的環境變數,通過export
來設定環境變數。下面通過幾個執行個體來說明。
3.1
使用命令echo
顯示環境變數
#
本例使用echo
顯示常見的變數HOME
$ echo $HOME
/home/xiaosu
3.2
設定一個新的環境變數
$ export HELLO=”Hello!”
$ echo $HELLO
Hello!
3.3
使用env
命令顯示所有的環境變數
$ env
SSH_AGENT_PID=1875
HOSTNAME=xiaosu-latop
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
……
3.4
使用set
命令顯示所有本地定義的Shell
變數
$ set
BASH=/bin/bash
……
3.5
使用unset
命令來清除環境變數
$ export TEST=”test” #
增加一個環境變數TEST
$ env | grep TEST #
此命令有輸出,證明環境變數TEST
已經存在了
TEST=test
$ unset $TEST #
刪除環境變數TEST
$ env | grep TEST #
此命令無輸出,證明環境變數TEST
已經存在了
3.6
使用readonly
命令設定唯讀變數
如果使用了readonly
命令的話,變數就不可以被修改或清除了。樣本如下:
$ export TEST=”Test…” #
增加一個環境變數TEST
$ readonly TEST #
將環境變數TEST
設為唯讀
$ unset TEST #
會發現此變數不能被刪除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST=”New” #
會發現此變數不能被修改
-bash: TEST: readonly variable
3.7
用C
程式來訪問和設定環境變數
對於C
程式的使用者來說,可以使用下列三個函數來設定或訪問一個環境變數。
getenv()
訪問一個環境變數。輸入參數是需要訪問的變數名字,傳回值是一個字串。如果所訪問的環境變數不存在,則會返回NULL
。
setenv()
在程式裡面設定某個環境變數的函數。
unsetenv()
清除某個特定的環境變數的函數。
另外,還有一個指標變數environ
,它指向的是包含所有的環境變數的一個列表。下面的程式可以列印出當前運行環境裡面的所有環境變數:
#include <stdio.h>
extern char**environ;
int main ()
{
char**var;
for (var =environ;*var !=NULL;++var)
printf (”%s /n “,*var);
return 0;
}
3.8
通過修改環境變數定義檔案來修改環境變數。
需要注意的是,一般情況下,這僅僅對於普通使用者適用,避免修改根使用者的環境定義檔案,因為那樣可能會造成潛在的危險。
$cd #
到使用者根目錄下
$ls -a #
查看所有檔案,包含隱藏的檔案
$vi .bash_profile #
修改環境變數定義檔案
然後編輯你的PATH
聲明,其格式為:
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:——:<PATH N>
你可以自己加上指定的路徑,中間用冒號隔開。環境變數更改後,在使用者下次登陸時生效,如果想立刻生效,則可執行下面的語句:$source .bash_profile
需要注意的是,最好不要把當前路徑”./”
放到PATH
裡,這樣可能會受到意想不到的攻擊。完成後,可以通過$ echo $PATH
查看當前的搜尋路徑。這樣定製後,就可以避免頻繁的啟動位於shell
搜尋的路徑之外的程式了。
-------------------------------------------------------------------------------------------------------
原帖地址:http://blog.csdn.net/xiaosu_521/archive/2008/03/09/2160458.aspx
===========================================================