1在/etc/profile文件中添加變量對全部用戶生效(永久的)shell
用VI在文件/etc/profile文件中增長變量,該變量將會對Linux下全部用戶有效,而且是「永久生效」。bash
例如:編輯/etc/profile文件,添加CLASSPATH變量ide
# vi /etc/profile命令行
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib進程
注1:profile文件在系統啓動時將被運行。你們能夠在裏面加入其餘命令,可是必定要加正確,否則的話系統會啓動不起來的。字符串
2在用戶目錄下的.bash_profile文件中增長變量對單一用戶生效(永久的)it
用VI在用戶目錄下的.bash_profile文件中增長變量,改變量僅會對當前用戶有效,而且是「永久的」。class
例如:編輯guok用戶目錄(/home/guok)下的.bash_profile登錄
# vi /home/guok/.bash.profile變量
添加以下內容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注2:若是修改了/etc/profile,那麼編輯結束後執行source profile 或 執行點命令 ./profile,PATH的值就會當即生效了。這個方法的原理就是再執行一次/etc/profile shell腳本,注意若是用sh /etc/profile是不行的,由於sh是在子shell進程中執行的,即便PATH改變了也不會反應到當前環境中,可是source是在當前 shell進程中執行的,因此咱們能看到PATH的改變。
注3:變量重複定義時,之後面的設置爲先。
例如:在peofile文件默認對PATH變量都有設置PATH=¥¥¥¥¥¥¥,在之後可能在對PATH設置,通常都加在profile文件的最後PATH=······(打個比方)。而系統之中認定的PATH=·······¥¥¥¥¥¥¥¥¥,也就是說相同名字的環境變量,後寫入的先起做用(通俗地講)。
注四、特殊字符介紹。
例如在profile中有以下內容,經過如下內容說明特殊符號的用法。
export A=/q/jing:aaa/cc/ld
export B=.:/liheng/wang export A=/cd/cdr:$A
: 表示並列含義,例如A變量值有多個,用:符號進行分離。
. 表示你操做的當前目錄。例如pap命令會查找B環境變量。
在/home鍵入B命令,系統首先在/home目錄下(即當前路徑)查找關於 B 的內容,若是沒有在/liheng/wang目錄下查找關於B的內容。 $ 表示該變量本次定義以前的值,例如$A表明/q/jing:aaa/cc/ld。也就是說 A=/cd/cdr:/q/jing:aaa/cc/ld
注五、常見的環境變量
PATH:決定了shell將到哪些目錄中尋找命令或程序
HOME:當前用戶主目錄
MAIL:是指當前用戶的郵件存放目錄。
SHELL:是指當前用戶用的是哪一種Shell。
HISTSIZE:是指保存歷史命令記錄的條數。
LOGNAME:是指當前用戶的登陸名。
HOSTNAME:是指主機的名稱,許多應用程序若是要用到主機名的話,一般是從這個環境變量中來取得的。
LANG/LANGUGE:是和語言相關的環境變量,使用多種語言的用戶能夠修改此環境變量。
PS1:是基本提示符,對於root用戶是#,對於普通用戶是$。
PS2:是附屬提示符,默認是「>」。能夠經過修改此環境變量來修改當前的命令符,好比下列命令會將提示符修改爲字符串「Hello,My NewPrompt :) 」。
# PS1=" Hello,My NewPrompt :) "
3直接運行export命令定義變量【只對當前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export變量名=變量值]定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,須要使用的話還須要從新定義。