環境變量

環境變量

     環境變量(environment variables)通常是指在 操做系統中用來指定操做系統運行環境的一些參數,如: 臨時文件夾位置和 系統文件夾位置等。
環境 變量是在操做系統中一個具備特定名字的對象,它包含了一個或者多個應用 程序所將使用到的信息。例如Windows和DOS操做系統中的path環境變量,當要求系統運行一個 程序而沒有告訴它程序所在的完整路徑時,系統除了在 當前目錄下面尋找此程序外,還應到path中指定的路徑去找。用戶經過設置環境 變量,來更好的運行進程。
 

主要做用

設置參數
      環境 變量至關於給系統或用戶 應用程序設置的一些參數,具體起什麼做用這固然和具體的環境變量相關。好比path,是告訴系統,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時,系統除了在 當前目錄下面尋找此程序外,還應到哪些目錄下去尋找;再如tc或vc++中,set include=path1;path2; 是告訴 編譯程序到哪裏去找.h類型的文件;固然不只僅是指定什麼路徑,還有其它的做用的,如set dircmd=/4 設置一個環境變量的做用是在使用dir 命令時會把/4做爲缺省的參數添加到你的dir命令以後,就像你的每一個命令都加了/4參數,它其實是給命令 解釋程序command設置的一個環境變量,而且是給dir這個 內部命令設置的。
DWORD  GetEnvironmentVariable(LPCSTR lpName, LPSTR lpBuffer, DWORD dSize),參數lpName是你要求查詢的環境 變量的名,lpBuffer是返回你所指定的環境變量的值的,dSize是告訴這個 函數lpBuffer能夠存放多少個字節。
     分析本地故障時緣由極可能就是由於環境 變量中的默認路徑被刪除的結果,默認路徑一經設置,當前系統若有 程序運行時須要某些DLL或EXE文件,以及Active控件時就會到全部默認路徑中去查找,若是在這些 目錄中查找到相應的程序則自動加載,查找不到則報告缺乏某某文件的 錯誤信息
 
 

常見環境變量

 

WINDOWS系統

%ALLUSERSPROFILE% 局部 返回全部「 用戶配置文件」的位置。
%APPDATA% 局部 返回默認 狀況應用程序存儲數據的位置。
%CD% 局部 返回 當前目錄字符串。
%CMDCMDLINE% 局部 返回用來啓動當前的 Cmd.exe 的準確 命令行。
%CMDEXTVERSION% 系統 返回當前的「 命令處理 程序擴展」的版本號。
%COMPUTERNAME% 系統 返回 計算機的名稱。
%COMSPEC% 系統 返回 命令行解釋器可執行 程序的準確路徑。
%DATE% 系統 返回當前 日期。使用與 date /t  命令相同的格式。由 Cmd.exe 生成。有關 date  命令的詳細信息,請參閱 Date。
%ERRORLEVEL% 系統 返回使用過的 命令錯誤代碼。一般用非零值表示錯誤。
%HOMEDRIVE% 系統 返回鏈接到用戶主 目錄的本地工做站驅動器號。基於主 目錄值的設置。用戶主 目錄是在「本地用戶和組」中指定的。
%HOMEPATH% 系統 返回用戶主 目錄的完整路徑。基於主 目錄值的設置。用戶主 目錄是在「 本地用戶和組」中指定的。
%HOMESHARE% 系統 返回用戶的共享主 目錄的網絡路徑。基於主 目錄值的設置。用戶主 目錄是在「本地用戶和組」中指定的。
%LOGONSEVER% 局部 返回驗證當前登陸會話的 域控制器的名稱。
%NUMBER_OF_PROCESSORS% 系統 指定安裝在 計算機上的處理器的數目。
%OS% 系統 返回 操做系統的名稱。Windows 2000 將 操做系統顯示爲 Windows_NT。
%PATH% 系統 指定 可執行文件的搜索路徑。
%PATHEXT% 系統 返回 操做系統認爲可執行的 文件擴展名的列表。
%PROCESSOR_ARCHITECTURE% 系統 返回處理器的芯片體系結構。值: x86,IA64。
%PROCESSOR_IDENTIFIER% 系統 返回處理器說明。
%PROCESSOR_LEVEL% 系統 返回 計算機上安裝的處理器的型號。
%PROCESSOR_REVISION% 系統 返回處理器修訂號的 系統變量
%PROMPT% 局部 返回當前 解釋程序命令提示符設置。由 Cmd.exe 生成。
%RANDOM% 系統 返回 0 到 32767 之間的任意 十進制數字。由 Cmd.exe 生成。
%SYSTEMDRIVE% 系統 返回包含 Windows XP 根 目錄(即系統根目錄)的 驅動器
%SYSTEMROOT% 系統 返回 Windows XP 根 目錄的位置。
%TEMP% and %TMP% 系統和用戶 返回對當前登陸用戶可用的 應用程序所使用的默認臨時 目錄。有些 應用程序須要 TEMP,而其它應用程序則須要 TMP。
%TIME% 系統 返回當前時間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。有關 time  命令的詳細信息,請參閱 Time。
%USERDOMAIN% 局部 返回包含 用戶賬戶的域的名稱。
%USERNAME% 局部 返回當前登陸的用戶的名稱。
%UserProfile% 局部 返回當前用戶的配置文件的位置。
%WINDIR% 系統 返回 操做系統 目錄的位置。
 

Linux系統

       shell環境依賴於多個文件的設置。當shell被調用時,它從兩個初始文件讀取 命令。/etc/profile包含了 系統變量,它由 系統管理員維護,由系統管理員設置本地系統變量和特殊 命令。普通用戶的啓動 信息文件($HOME/.bash_project)由各用戶本身維護,該文件能夠被修改以實現任何特定的 系統初始化
只有在特定的 狀況下才讀取profile文件,確切的說是在用戶登錄的時候。當運行shell腳本或subshell之後,就無須再讀profile.雖然全部profile均可選的,可是基本上全部系統都有/etc/profile.
若是定義了 變量ENV且已經傳遞到環境中,則全部的bash shell都要讀取並調用由這個變量制定的文件所包含的 命令。這個文件用來定義全部bash shell的特徵,而不只僅是登錄到shell。這個文件的典型的名字是$HOME/,bashrc。
當用( 系統管理員)新建用戶時,.bash_profile、bashrc和其餘公共的環境文件模板將複製到/etc/skel這個 目錄下面。能夠編輯這些初始化設置,也能夠在此 目錄下添加附加的文件。
Example:
一個典型的系統profile(/etc/profile):
PATH=$PATH:/usr/qa/tools/bin
ENV==$HOME/.bashrc
ORACLE_HOME=/ dbs/oracle
ORACLE_SID=qadb
Export PATH ENV ORACLE_HOME ORCAL_SID
Cat /etc/motd
一個典型的用戶profile(.bashrc)
PATH=$PATH:$HOME/bin
TEAM=uvt1224 export TERM
stty intr \^C
cal
mesg n
一個典型的用戶 bashrc file (.bashrc):
alias dir=ls lf='ls -FC'
PSI='$PWS[!]>'
set -o vi
別名和其餘bash專用的定義應該放在.bashrc文件(不該在.bash_profile) 中定義;不然會致使找不到某些 命令
應該記住profile文件和.bashrc文件的區別:兩個profile都只在系統啓動時被讀取一次,而.bashrc在系統啓動和每次調用shell的時候都要被讀取。
 

設置方法

      在windows 操做系統中能夠經過 個人電腦-〉系統屬性-〉高級系統設置->環境變量,來設置系統的環境 變量,然而在此設置的環境變量是否在註冊表中具備對應的項呢?答案是確定的。而在.net 中提供了一個類來獲取系統的環境 變量及其值。
環境 變量分爲兩類:用戶變量與 系統變量,在註冊表中都有對應的項。
其中用戶 變量所在位置:\ HKEY_CURRENT_USER\Environment;
系統變量所在位置爲:\ HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment。
     另外也能夠右擊 個人電腦——高級系統設置——環境 變量——在 系統變量裏有path選項——雙擊打開——在原有變量的基礎上添加英文狀態下的分號——而後將路徑名輸入便可。(切記,不要刪除原先的 系統變量,只要用分號隔開,而後添加,最後也要加上分號)
 

編輯方法

在命令行中對環境變量進行編輯的方法
查看當前可用的全部環境 變量(= 系統變量+用戶變量)
set
查看某個環境 變量,如PATH
set PATH
添加環境 變量,如xxx=aa
set xxx=aa
將環境 變量(如xxx)的值置爲空
set xxx=
在某個環境 變量(如PATH)後添加新的值(如d:\xxx)
set PATH=%PATH%;d:\xxx
(注:在dos窗口中以 命令行方式對環境 變量的操做只對當前窗口的應用有效)