환경 변수

'''환경 변수'''(環境 變數, )는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다.
변수들은 명령 줄 위에서, .BAT 확장자를 가지는 일괄 처리 파일, 또는 스크립트 안에서 쓰일 수 있다. 변수 이름 주변이나 앞에 있는 특별한 기호를 놓아서 참조하는 것이 보통이다.
예를 들어, 도스 또는 윈도 시스템에서 "프로그램을 찾는 기본 경로"를 보여 주려면, 이 명령어를 사용하면 된다:
 echo %PATH%
다른 스크립트와 셸 환경에서는 가끔 위와 같은 목적에서라도 다른 기호를 사용한다. 많은 유닉스 셸에서는 흔히 달러 사인이 쓰인다:
 echo $PATH
=== 도스 ===
도스와 윈도우에서 '''SET''' 명령어를 변수 없이 사용하면 모든 환경 변수와 그에 따른 모든 값을 보여 준다.
도스-윈도의 특정한 값에 변수를 설정하려면 다음과 같이 사용하면 된다:
 SET ''변수''=''값''
"SET ''변수''="라고만 입력하면, 해당 변수 자체가 지워진다.
=== 유닉스 ===
'''env''', '''set''', 그리고 '''printenv''' 명령어들은 변수 없이 사용하면 모든 환경 변수와 그에 따른 모든 값을 보여 준다. env와 set은 또한 환경 변수를 설정하는 데 쓰일 수도 있으며 자주 셸에 직접 통합되기도 한다. printenv는 변수 이름을 명령어에 단일 변수로 주면 하나의 단일 변수를 인쇄하는 데 쓰일 수 있다.
유닉스에서 다음의 명령어들을 사용할 수 있지만 어떠한 셸에서는 자주 의존적으로 쓰인다.
 export ''변수''=''값''  # Bourne, bash, 그리고 다른 셸에서 쓰임
 setenv ''변수'' ''값''  # csh과 관련된 셸에서 쓰임
=== 예측 불허의 환경 변수 ===
유닉스에서, 변수들은 '''export''' 키워드 없이 할당되기도 한다. 이러한 방법으로 변수를 정의하면 '''set''' 명령어를 통해 보이기는 하지만 자식 프로세스에 종속되지는 않는다. 도스와 윈도 환경에서는 이것을 사용할 수 없다.
 ''변수''=''값''
* PATH: 디렉터리 경로의 목록. 사용자가 전체 경로를 지정하지 않고 명령을 입력하면 이 목록을 확인하여 해당 명령어가 경로에 속하는지를 살펴본다.
* HOME (유닉스 계열) 및 USERPROFILE (마이크로소프트 윈도우): 사용자의 홈 디렉터리가 파일 시스템의 어디에 위치해있는지를 지시한다.
* HOME/{.AppName} (유닉스 계열) 및 APPDATA\{DeveloperName\AppName} (마이크로소프트 윈도우): 애플리케이션 설정 저장을 위해 사용한다. 윈도우의 경우 수많은 애플리케이션들이 애플리케이션 설정에 USERPROFILE을 잘못 사용한다: USERPROFILE은 Documents/Pictures/Downloads/Music와 같은 경로를 사용자가 선택할 수 있게 허용하는 대화 상자에만 사용해야 한다. 프로그래밍 목적의 경우 APPDATA (여러 장치 간 공유되는 애플리케이션 설정 조회용), LOCALAPPDATA (로컬 애플리케이션 설정용) 또는 PROGRAMDATA (여러 OS 사용자 간 공유되는 애플리케이션 설정용)을 사용해야 한다.
* TERM (유닉스 계열): 사용되는 컴퓨터 터미널이나 터미널 에뮬레이터의 유형을 지정한다. (예: vt100 또는 dumb).
* PS1 (유닉스 계열): 본 셸 및 변종에서 프롬프트가 어떻게 표시될지를 지정한다.
* MAIL (유닉스 계열): 사용자의 메일을 발견할 위치를 지정하는데 사용된다.
* TEMP: 프로세스가 임시 파일을 저장할 수 있는 위치이다.
;$PATH: 콜론으로 구분된 디렉터리 목록을 포함하며 셸은 이름에 슬래시가 포함되지 않는 명령을 검색한다. 도스, OS/2, 윈도우의 %PATH% 변수와 동일하다.
;$HOME: 사용자의 홈 디렉터리의 위치를 포함한다. getpwuid, getuid와 같은 C 함수를 통해 현재 사용자의 홈 디렉터리를 찾아낼 수 있으나 다양한 셸 스크립트(및 다른 컨텍스트)에서 편의를 위해 $HOME이 자주 사용된다.
;$PWD: 현재 디렉터리의 변수 지점. pwd 명령어를 변수 없이 호출할 때의 출력과 동일하다.
;$DISPLAY: X1 프로그램이 기본적으로 사용할 디스플레이 식별자를 포함한다.
;$LD_LIBRARY_PATH: 동적 링커가 있는 수많은 유닉스 시스템에서 다른 모든 디렉터리를 찾기 전에 exec 이후 프로세스 이미지를 빌드할 때 동적 링커가 공유 오브젝트를 검색할 대상인 콜론 구분 디렉터리 목록을 포함한다.
;$LANG, $LC_ALL, $LC_...: $LANG은 기본 로케일을 설정하기 위해 사용된다. 이를테면 로케일 값이 pt_BR이라면 언어는 (브라질) 포르투갈어로 설정된다. 각기 다른 지역화 관점은 개개의 $LC_- 변수($LC_CTYPE, $LC_COLLATE, $LC_DATE 등)들에 의해 제어된다. $LC_ALL을 사용하면 모든 관점에 동일한 로케일을 강제하는데 사용할 수 있다.
;$TZ: 시간대를 참조한다. 시간대 자체를 지정하거나 파일을 참조(/usr/share/zoneinfo에서)시킴으로써 여러 형식으로 사용이 가능하다.
 변수
 자료값
 %ALLUSERSPROFILE%
 (윈도 XP) C:\Documents and Settings\All Users
(윈도 비스타) C:\ProgramData
 %APPDATA%
 (윈도 XP) C:\Documents and Settings\{사용자 이름}\Application Data
(윈도 비스타) C:\Users\{사용자 이름}\AppData\Roaming
 %COMPUTERNAME%
 {컴퓨터 이름}
 %COMSPEC%
 C:\Windows\System32\cmd.exe
 %HOMEDRIVE%
 C:
 %HOMEPATH%
 (윈도 XP) \Documents and Settings\{사용자 이름}
(윈도 비스타) \Users\{사용자 이름}
 %PATH%
 C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem
 %PATHEXT%
 (윈도 XP) .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF: .WSH
(윈도 비스타) .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
 %PROGRAMFILES%
 C:\Program Files
 %PROMPT%
 현재 명령 프롬프트 포맷에 대한 코드. 보통 이 코드는 $P$G로 되어 있다.
 %SYSTEMDRIVE%
 윈도 XP 루트 디렉터리를 포함하고 있는 드라이브. 보통 C:
 %SYSTEMROOT%
 윈도 디렉터리. 보통 C:\Windows로 되어 있으며, 공식적으로는 C:\WINNT이다.
 %TEMP% 및 %TMP%
(윈도 XP) C:\Documents and Settings\{사용자 이름}\Local Settings\Temp
(윈도 비스타) C:\Users\{사용자 이름}\AppData\Local\Temp
 %USERNAME%
 {사용자 이름}
 %USERPROFILE%
 (윈도 NT 4, 2000) C:\windows\Profile
(윈도 XP) C:\Documents and Settings\{사용자 이름}
(윈도 비스타) C:\Users\{사용자 이름}
 %WINDIR%
 C:\Windows
* 
* 
* 
* 
*  Environment Variables Wiki
*  User Environment Variables
*  Environment Variables in Windows XP 
 
분류:운영체제 기술