환경 변수

위키백과, 우리 모두의 백과사전.
(환경변수에서 넘어옴)

환경 변수(環境 變數, 영어: environment variable)는 프로세스컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다.

환경 변수 보기/설정[편집]

변수들은 명령 줄 위에서, .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을 잘못 사용한다: USERPROFILEDocuments/Pictures/Downloads/Music와 같은 경로를 사용자가 선택할 수 있게 허용하는 대화 상자에만 사용해야 한다. 프로그래밍 목적의 경우 APPDATA (여러 장치 간 공유되는 애플리케이션 설정 조회용), LOCALAPPDATA (로컬 애플리케이션 설정용) 또는 PROGRAMDATA (여러 OS 사용자 간 공유되는 애플리케이션 설정용)을 사용해야 한다.[1]
  • 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에서)시킴으로써 여러 형식으로 사용이 가능하다.

마이크로소프트 윈도우 XP, 비스타의 기본 환경 변수와 값[편집]

변수 자료값
%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

각주[편집]

  1. Jacobs, Mike; Koren, Alexander; Satran, Michael (2017년 11월 14일). “Store and retrieve settings and other app data”. Microsoft. 2017년 12월 18일에 원본 문서에서 보존된 문서. 2017년 12월 18일에 확인함. 

외부 링크[편집]