環境變量是什麼:
環境變量是操作系統中指定操作系統或者應用程序運行的一些參數,可以看作是系統的全局變量。可以分爲系統級變量和用戶級變量。
當要求系統運行一個程序卻沒有指定完整的路徑時,首先會在當前目錄下尋找相應的可執行文件,當沒有符合條件的文件時,會到path指定的路徑下尋找。
當程序運行需要一些參數時,可以通過環境變量將需要的參數傳遞進去。
環境變量有什麼用:
解決未指定路徑的應用程序運行。
解決雙系統下軟件共用的問題:當一些軟件運行時需要寫入註冊表的文件時,可以通過環境變量更改完成共用,具體見具體的文件。
設置一些軟件或者體系的運行環境時。
Ubuntu環境變量設置
一些有關環境變量的命令
- echo 顯示某個環境變量值echo $PATH
- export 設置一個新的環境變量export HELLO=hello (可以無引號)
- env 顯示所有環境變量
- set 顯示本地定義的shell變量
- unset 清除環境變量unset HELLO
- readonly 設置只讀環境變量readonly HELLO
2. Linux的變量種類
按變量的生存週期來劃分,Linux變量可分爲兩類:
- 永久的:需要修改配置文件,變量永久生效。
- 臨時的:使用export命令聲明即可,變量在關閉shell時失效。
設置變量的三種方法
在/etc/profile文件中添加變量【對 所有用戶 生效 永久的】
用VI在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,並且是永久的;例如:編輯/etc/profile文件,添加CLASSPATH變量
vi /etc/profile export CLASSPATH=./JAVA\_HOME/lib;$JAVA\_HOME/jre/lib
修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
在用戶目錄下的.bash_profile文件中增加變量【對 單一用戶 生效 永久的】
用VI在用戶目錄下的.bash_profile文件中增加變量,改變量僅會對當前用戶有效,並且是永久的。例如:編輯guok用戶目錄(/home/guok)下的.bash_profile
$ vi /home/guok/.bash.profile export CLASSPATH=./JAVA\_HOME/lib;$JAVA\_HOME/jre/lib
注:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。
直接運行export命令定義變量【只對 當前shell(BASH) 有效 臨時的】
在shell的命令行下直接使用
[export 變量名=變量值]
定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。
環境變量的查看
- 使用
echo
命令查看單個環境變量。例如:echo $PATH
- 使用
env
查看所有環境變量。 - 使用
set
查看所有本地定義的環境變量,unset
可以刪除指定的環境變量。
Ubuntu下都有那些軟件需要設置環境變量?
PATH
:指定命令的搜索路徑
HOME
:指定用戶的主工作目錄(即用戶登陸到Linux系統中時,默認的目錄)
HISTSIZE
:指保存歷史命令記錄的條數。
LOGNAME
:指當前用戶的登錄名。
HOSTNAME
:指主機的名稱,許多應用程序如果要用到主機名的話,通常是從這個環境變量中來取得的。
SHELL
:指當前用戶用的是哪種Shell。
LANG/LANGUGE
:和語言相關的環境變量,使用多種語言的用戶可以修改此環境變量。
MAIL
:指當前用戶的郵件存放目錄。
PS1
:命令基本提示符,對於root用戶是#,對於普通用戶是$。
PS2
:附屬提示符,默認是>。
windows環境變量設置
有兩種方法可以設置windows的環境變量:
- 可以通過命令行set的方式設定,具體的命令有:
set
打印所有的環境變量set 變量名 =
清空某個環境變量set 變量名 = 內容
設置某個變量內容set 變量名 = %變量名%內容
追加變量內容
- 可以在窗口修改
第一種修改方法僅在當前窗口內有效。
第二種修改方法全局生效。
都有那些環境變量?
%ALLUSERSPROFILE%
局部 返回所有用戶配置文件的位置。
%APPDATA%
局部 返回默認情況下應用程序存儲數據的位置。
%CD%
局部 返回當前目錄字符串。
%CMDCMDLINE%
局部 返回用來啓動當前的 Cmd.exe 的準確命令行。
%CMDEXTVERSION%
系統 返回當前的命令處理程序擴展的版本號。
%COMPUTERNAME%
系統 返回計算機的名稱。
%COMSPEC%
系統 返回命令行解釋器可執行程序的準確路徑。
%DATE%
系統 返回當前日期。
%ERRORLEVEL%
系統 返回最近使用過的命令的錯誤代碼。通常用非零值表示錯誤。
%HOMEDRIVE%
系統 返回連接到用戶主目錄的本地工作站驅動器號。基於主目錄值的設置。用戶主目錄是在本地用戶和組中指定的。
%HOMEPATH%
系統 返回用戶主目錄的完整路徑。基於主目錄值的設置。用戶主目錄是在本地用戶和組中指定的。
%HOMESHARE%
系統 返回用戶的共享主目錄的網絡路徑。基於主目錄值的設置。用戶主目錄是在本地用戶和組中指定的。
%LOGONSEVER%
局部 返回驗證當前登錄會話的域控制器的名稱。
%NUMBER\_OF\_PROCESSORS%
系統 指定安裝在計算機上的處理器的數目。
%OS%
系統 返回操作系統的名稱。Windows 2000 將操作系統顯示爲 Windows_NT。
%PATH%
系統 指定可執行文件的搜索路徑。
%PATHEXT%
系統 返回操作系統認爲可執行的文件擴展名的列表。
%PROCESSOR\_ARCHITECTURE%
系統 返回處理器的芯片體系結構。值: x86,IA64。
%PROCESSOR\_IDENTFIER%
系統 返回處理器說明。
%PROCESSOR\_LEVEL%
系統 返回計算機上安裝的處理器的型號。
%PROCESSOR\_REVISION%
系統 返回處理器修訂號的系統變量。
%PROMPT%
局部 返回當前解釋程序的命令提示符設置。由 Cmd.exe 生成。
%RANDOM%
系統 返回 0 到 32767 之間的任意十進制數字。由 Cmd.exe 生成。
%SYSTEMDRIVE%
系統 返回包含 Windows XP 根目錄(即系統根目錄)的驅動器。
%SYSTEMROOT%
系統 返回 Windows XP 根目錄的位置。
%TEMP%
and %TMP% 系統和用戶 返回對當前登錄用戶可用的應用程序所使用的默認臨時目錄。有些應用程序需要 TEMP,而其它應用程序則需要 TMP。
%TIME%
系統 返回當前時間。
%USERDOMAIN%
局部 返回包含用戶帳戶的域的名稱。
%USERNAME%
局部 返回當前登錄的用戶的名稱。
%UserProfile%
局部 返回當前用戶的配置文件的位置。
%WINDIR%
系統 返回操作系統目錄的位置。
Java環境變量的設置
Java都需要設置那些環境變量?
JAVA\_HOME
指明JDK安裝路徑.(在安裝好java之後就該配置)
Path
使得系統可以在任何路徑下識別java命令.(如果你採用命令形式編譯java源碼,設置這個很方便)
classpath
爲java加載類(class or lib)路徑,只有類在classpath中,java命令才能識別它.
Java在windows和linux下配置環境變量
windows:系統設置 分別設置這三項。
Linux:
修改
/etc/profile
文件
如果你的計算機僅僅作爲開發使用時推薦使用這種方法,因爲所有用戶的shell都有權使用這些環境變量,可能會給系統帶來安全性問題。- 用文本編輯器打開/etc/profile
在profile文件末尾加入:
export JAVA\_HOME=/usr/share/jdk1.6.0\_14 export PATH=$JAVA\_HOME/bin:$PATH export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
重新登錄
註解
1. 你要將 /usr/share/jdk1.6.0_14改爲你的jdk安裝目錄
2. linux下用冒號:來分隔路徑
3.PATH/ CLASSPATH / $JAVA_HOME 是用來引用原來的環境變量的值
在設置環境變量時特別要注意不能把原來的值給覆蓋掉了,這是一種常見的錯誤。
4. CLASSPATH中當前目錄.不能丟,把當前目錄丟掉也是常見的錯誤。
5. export是把這三個變量導出爲全局變量。
6. 大小寫必須嚴格區分。修改
.bash\_profile
文件這種方法更爲安全,它可以把使用這些環境變量的權限控制到用戶級別,如果你需要給某個用戶權限使用這些環境變量,你只需要修改其個人用戶主目錄下的.bash_profile文件就可以了。
- 用文本編輯器打開用戶目錄下的.bash_profile文件
在.bash_profile文件末尾加入:
export JAVA\_HOME=/usr/share/jdk1.6.0\_14 export PATH=$JAVA\_HOME/bin:$PATH export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
重新登錄
直接在shell下設置變量
不贊成使用這種方法,因爲換個shell,你的設置就無效了,因此這種方法僅僅是臨時使用,以後要使用的時候又要重新設置,比較麻煩。
只需在shell終端執行下列命令:
export JAVA\_HOME=/usr/share/jdk1.6.0\_14 export PATH=$JAVA\_HOME/bin:$PATH export CLASSPATH=.:$JAVA\_HOME/lib/dt.jar:$JAVA\_HOME/lib/tools.jar
引用來源
http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html
http://blog.chinaunix.net/uid-27135166-id-3304153.html
http://www.jb51.net/LINUXjishu/77524.html
http://blog.chinaunix.net/uid-27135166-id-3304153.html
http://blog.csdn.net/fb281906011/article/details/8057672
http://jingyan.baidu.com/article/4ae03de320d99f3eff9e6bfd.html