PATH 및 기타 환경 변수는 무엇이며 어떻게 설정하거나 사용할 수 있습니까?


341

에 대한 질문

  • 환경 변수 설정
  • 그만큼 PATH

여기에서 매우 일반적이며 대부분의 경우 답변은 서로 매우 유사합니다. 앞으로 좋은 Q / A를 얻는 것이 좋을 것입니다.

문제는 실행 파일과 같은 환경 변수는 무엇이며 PATH주요 운영 체제에서 어떻게 변경하고 사용할 수 있습니까?

좋은 대답은 환경 변수가 무엇인지, 특히 PATHOS 에 어떤 의미가 있는지에 대한 간단한 설명 과 그에 따라 설정하고 읽는 방법에 대한 간단한 지침을 포함합니다.


2
필요할 때마다 수동으로 수행 해야하는 것에 지쳤으므로 pathed.exe라는 무료 앱을 사용하여 AddToPath 및 RemoveFromPath에 대한 컨텍스트 메뉴 항목을 폴더에 추가하는 레지스트리 항목을 작성했습니다. 다음은 완전한 안내서에 대한 링크입니다. addictivetips.com/windows-tips/… 이제 파일을 편집하거나 변수의 형식을 망칠 염려없이 PATH 변수에 폴더를 추가하거나 폴더에서 제거 할 수 있습니다. . 도움이 되길 바랍니다. =)
Haroon Q. Raja

1
Windows에는 시스템의 속성을 여는 바로 가기가 있습니다. 제어판-> 시스템 키보드의 WIN 키 + Pause / Break (WIN + Break)입니다. 이것은 현대 UI에서 몇 개의 창을 클릭해야하기 때문에 Win8에서 새로운 환경 변수를 설정하는 데 매우 유용하고 속도가 빨라집니다 (예. 현대적이라면 손바닥에 선인장을 키울 것입니다). 물론 당신은 PowerShell 스크립트를 작성하거나 setx 명령을 사용하여 그것에 대해 더 이상 걱정하지 마십시오 수 있습니다 : D를
termil0r

Windows 8에서 변경되는 시스템 및 사용자 환경 변수를 가장 빠르게 탐색하는 것은 검색을 사용하는 것입니다. <kbd> Win </ kbd> + <kbd> W </ kbd>는 모든 설정을 검색합니다. 검색 env및 필요한 옵션이 나열됩니다.
FRIdSUN

나는 그것을 열어 신속하고 명확하게 생각 CMD하고 입력 set, 또는 PowerShell하고 입력 Get-Childitem env:.
paradroid

새 시스템을 설정할 때와 같이 경로 변수를 많이 편집하는 경우 바탕 화면의 시스템 속성 대화 상자에 대한 바로 가기가 도움이 될 수 있습니다. 이렇게하려면 바탕 화면을 마우스 오른쪽 버튼으로 클릭하고 새 바로 가기를 선택한 다음 systempropertiesadvanced.exe를 입력하십시오. 그런 다음 링크를 클릭하여 시스템 속성 대화 상자로 이동 한 다음 환경 변수를 클릭하여 경로 설정이있는 대화 상자로 이동하십시오.
Brian Burns

답변:


334

환경 변수 란 무엇입니까?

환경 변수에는 운영 체제 또는 사용자 세션과 같은 현재 환경과 관련된 값이 있습니다.

통로

가장 잘 알려진 것 중 하나는 PATHWindows, Linux 및 Mac OS X에서 호출 됩니다. 명령 행에서 파일의 전체 경로를 알고 입력하지 않고도 시작할 수있는 시스템에 실행 프로그램 *이있는 디렉토리를 지정합니다. . (또는 Windows에서의 실행 시작 메뉴 또는 대화 Win+ R).

Linux 및 Mac OS X에서는 일반적으로 현재 사용자 binsbin관련된 모든 및 디렉토리를 보유합니다 . Windows에서, 그것은 적어도 포함 C:\WindowsC:\Windows\system32디렉토리를 - 당신은 할 수 있습니다 그 이유는 실행 calc.exe 또는 notepad.exe명령 줄이나 실행 대화 상자를하지만 firefox.exe. (Firefox는에 있습니다 C:\Program Files\Mozilla Firefox. Firefox를 포함하는 방법에 대한 정보는 여기를 참조하십시오 .)

예를 들어, 입력 calc합니다 (이 .exe Windows에서 명령 줄은 생략) 윈도우 계산기를 시작합니다.

* .exe편집 이외의 파일 확장자에 대한 지원을 추가 할 수 있습니다 %PATHEXT%.

다른

다른 변수는 (사용되는 터미널의 어떤 종류의 프로그램 말할 수있는 TERMWindows 폴더가 위치한 윈도우, (예에, 리눅스 / 맥 OS X에 대한)를, 또는 %WINDIR%이다 C:\Windows).

새로운 환경 변수 만들기

Windows, Linux 및 Unix에서는 새로운 환경 변수를 생성 할 수 있으며, 시작시 모든 프로그램에서 해당 값을 사용할 수 있습니다.

여러 머신에 설치 또는 배치 된 스크립트 또는 프로그램을 작성할 때이 머신에 고유 한 값을 참조해야 할 때이를 사용할 수 있습니다. 프로그램 별 구성 설정을 사용하여 유사한 효과를 얻을 수 있지만 여러 프로그램이 동일한 값에 액세스해야하는 경우 환경 변수를 사용하여이 작업을 수행하는 것이 더 쉽습니다.

 

윈도우

GUI

  1. 를 엽니 다 Control Panel » System » Advanced » Environment Variables.

  2. 입력 control sysdm.cpl,,3실행 대화 상자에서 ( Win+ R)를 클릭합니다 Environment Variables.
    사용자 변수를 편집하려면 다음을 입력하십시오.

    %windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
    

    실행 대화 상자에서

  3. (내) 컴퓨터를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭하거나 Win+ 를 누릅니다 Break.

    • XP에서을 클릭하십시오 Advanced » Environment Variables.
    • Vista +에서을 클릭하십시오 Advanced system settings » Environment Variables.
  4. 시작 메뉴 / 화면 검색 상자에 "환경 변수"를 입력하는 것과 같이 같은 장소에 도달하는 다른 많은 방법이 있습니다.

Windows의 환경 변수는 사용자 및 시스템 / 시스템 특정 값으로 구분됩니다. 값을보고 편집 할 수 있습니다. 시작시 현재 값은 모든 프로그램에서 사용할 수 있습니다.

시스템 설정에 깊이 들어 가지 않고도 Windows에서 환경 변수를 설정하고 변경하는 데 도움이되는 Rapid Environment Editor 도 있습니다 . 경로 환경을 매우 편리하게 편집 할 수있는 Windows 용 또 다른 오픈 소스 프로그램은 경로 편집기 입니다.

커맨드 라인

체재

Windows의 환경 변수는 이름을 둘러싼 퍼센트 기호 (%)로 표시됩니다.

%name%

에코

에 환경 변수의 값을 표시하려면을 cmd.exe입력하십시오 echo %name%.

C:\>echo %USERPROFILE%
C:\Users\Daniel

세트

변수 를 생성 / 설정 하려면 다음을 사용하십시오 set varname=value.

C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures

C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2

변수 를 추가 / 추가 하려면 다음을 사용하십시오 set varname=value;%varname%.

C:\>set Penguins=C:\Linux

C:\>set Penguins=C:\Windows;%Penguins%

C:\>echo %Penguins%
C:\Windows;C:\Linux

이 방법으로 설정된 환경 변수는 설정된 나머지 명령 프롬프트 프로세스 기간 동안 사용할 수 있으며 변수를 설정 한 후 시작된 프로세스에 사용할 수 있습니다.

setx

변수를 영구적으로 생성 / 설정 하려면 다음을 사용하십시오 .setx varname "value"

C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"

[Restart CMD]

C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures

와 달리 set등호가 없으며 값에 공백이 있으면 따옴표로 묶어야합니다. 변수는 공백이있는 문자열로 확장 될 수 있으므로 (예 : %PATH%가 됨 C:\Program Files) 변수가 포함 된 값 주위에 따옴표를 포함하는 것이 가장 좋습니다.

setxVista 이전의 Windows 버전에 수동으로 추가해야합니다 .
Windows XP 서비스 팩 2 지원 도구

Windows 환경 변수 목록

다음 은 Windows에 내장 된 기본 환경 변수 목록입니다 . 몇 가지 예는 다음과 같습니다 : %WINDIR%, %SystemRoot%, %USERPROFILE%,와 %APPDATA%. Windows의 대부분의 이름과 마찬가지로 대소 문자를 구분하지 않습니다.

 

유닉스 파생물 (FreeBSD, GNU / Linux, OS X)

Linux의 환경 변수 앞에는 $ HOME 또는 $ HOSTNAME과 같은 달러 기호 ($)가 붙습니다. 잘 알려진 많은 표준 변수가 대문자로 표기되어 있습니다. 변수 이름은 대소 문자를 구분하므로 $ User 및 $ USER는 셸의 관점과 전혀 관련이 없습니다.

유닉스 파생물은 대부분 /etc폴더 에있는 쉘 스크립트에서 시스템 전체 변수를 정의 하지만 홈 폴더에있는 스크립트의 변수에는 사용자 별 값이 제공 될 수 있습니다 (예 : /etc/profile, $HOME/.bash_profile). .profile홈 폴더 의 파일은 사용자 변수를 정의하는 일반적인 위치입니다.

변수 설정

이 파일은 일반적인 쉘 스크립트이며 환경 변수 선언 이상을 포함 할 수 있습니다. 환경 변수를 설정하려면을 사용하십시오 export. 터미널에서 현재 정의 된 환경 변수를 표시하려면을 실행하십시오 env.

export명령은 변수를 정의하는 표준 방법입니다. 구문은 매우 직관적입니다. 결과는이 두 라인에서 동일하지만 POSIX Bourne 쉘 이전으로 이식성이 필요한 경우 첫 번째 대안이 선호됩니다.

var=value; export var
export var=value

C 쉘과 그 자손은 완전히 다른 구문을 사용합니다. 거기에서 명령은 setenv입니다.

이 주제에 대한 자세한 설명은 Linux 문서 프로젝트 Path HOWTO 를 참조하십시오 .

아마도 일반적인 생각과는 달리 OS X는 Linux보다 "Unix"입니다. 이미 언급 한 파일 외에도 다음 파일에서 $ PATH를 수정할 수 있습니다.

  • /etc/paths같은 경로에 추가되는 모든 기본 디렉토리가 들어 /bin/usr/sbin.
  • 모든 파일 /etc/paths.d-시스템 전체 또는 사용자 별 구성 파일을 건드리지 않고 셸에서 제공하는 실행 파일을 만들기 위해 설치 프로그램에서 일반적으로 사용합니다. 이 파일들은 한 줄에 하나의 경로 만 포함합니다. 예 : / Programs / Mozilla / Calendar / bin.

 

외부 링크:

XP의 환경 변수
Windows XP 서비스 팩 2 지원 도구 (포함 setx)
Windows Vista 및 Windows 7의 환경 변수
실행 대화 상자에 실행 파일 추가
Mac OSX 팁-환경 변수 설정
TLDP : 경로 방법


10
Windows Vista 이상에서는 SETX영구적으로 변경할 수 있습니다 . 구문이 약간 다릅니다. SETXWindows Server 2003 Resource Kit이전 버전 에서 추가해야합니다 NT.
paradroid

1
@ paradroid Nice, 몰랐습니다 (Windows 사용자 아님). 이 주제는 커뮤니티 위키입니다. 계속 진행하여 해당 정보를 편집하십시오.
다니엘 벡

2
@JdeBP 섹션 제목은 다음 명령 행 인터페이스 섹션과 달리 Windows에서 이라고 하는 사용자 인터페이스 에서 이러한 값을 설정하는 방법을 나타 냅니다 . 나는 10 시간 전에 귀하의 의견을보기 전에 이것을 편집했습니다. 아무도 이것이 익스플로러에만 적용되었다고 언급 한 적이 없습니다.
Daniel Beck

1
@JdeBP 레지스트리에서 값을 설정하는 것에 대해 이야기했기 때문에 연결된 대답은이 경우 실제로 적용되지 않습니다. 대화를 통한 설정은 WM_SETTINGCHANGE내가 상상 하는 것을 방송 하므로 새로운 가치에 대해 이해 당사자에게 알립니다. 그래서 어떻게 적용했는지 물었습니다. 굵게 표시해도 의미가 바뀌지 않으며 같은 문장을 반복하는 것처럼 큰 소리로 이해하기가 쉽지 않습니다. 또한 몇 시간 전에이 게시물을 편집하여 프로세스가받을 때 설정되는 값이 설정되었음을 구체적으로 언급했습니다.
Daniel Beck

3
@JdeBP 또한 그 질문은 본질적으로 다소 기본적이라는 것을 알 수 있습니다. 환경 변수에 대한 변경 사항이 어떻게 배포되는지에 대한 복잡한 점을주의 깊게 설명하십시오 (심지어 WM_SETTINGCHANGEWindows API?이 질문의 대상이 아닙니다!) .
Daniel Beck

64

이 게시물은 Daniel보다 더 기술적 인 관점에서 작성되었지만 개념을 많이 설명하지는 않습니다.


위키 백과 문서는 또한 훌륭한 referrence입니다.

리눅스와 대부분의 BSD

대부분의 명령 줄 셸에서 임시 환경 변수는 export(sh, bash, zsh) 또는 setenv(csh, tcsh) 명령을 사용하여 설정됩니다 .

  • 붙이는의 예 $HOME/bin$PATH떠들썩한 파티 또는 zsh을에서 :

    export PATH="$HOME/bin:$PATH"
    

    (이 특별한 경우 이미 환경의 일부 export이므로 불필요 PATH합니다.)

  • csh, tcsh :

    setenv PATH "$HOME/bin:$PATH"
    

지속적인 환경 변수는 여러 단계에서 설정 될 수 있습니다.

  • 로그인:

    • 로그인 세션 설정 : Linux ( pam_env일반적으로 다음에서 읽음)/etc/environment

    • 터미널 로그인 : 쉘의 "프로필"파일.

      • bash사용 /etc/profile및 첫 번째 : ~/.bash_profile, ~/.bash_login, ~/.profile. 매뉴얼 페이지 bash(1)섹션 호출 .

        종종 사용자의 프로필 파일에 대한 명시적인 호출 ~/.bashrc도 포함됩니다.

      • zsh: 수동 페이지 zsh(1)섹션 시작 / 종료 파일 .

      • csh 및 기타 쉘 : 적절한 매뉴얼 페이지를 참조하십시오.

    • 그래픽 로그인 : 확실하지 않습니다. 로그인 관리자에 따라 다를 수 있습니다. ~/.profile내 시스템에서 GDM을 읽는 것으로 보입니다 .

  • 터미널 창 열기 :

    • bash/etc/bash.bashrc및을 사용합니다 ~/.bashrc.

Windows NT 시리즈

  • 명령 프롬프트 ( cmd.exe) 에서을 사용 set name=value하여 해당 창의 환경 변수를 변경하십시오.

    에 추가하려면 다음 c:\bin%PATH%사용하십시오.

    set path=%path%;c:\bin
    

    이는 해당 cmd.exe프로세스 및 프로세스에서 시작된 프로세스 에만 영향을줍니다 .

  • 지속적으로 변경하려면 제어판 → 시스템 → 고급 → 환경 변수를 사용하십시오 . ( 문서 )

    참고 : 사용자 설정은 일반적으로 시스템 설정보다 우선하지만 PATH변수는 특별히 처리됩니다. 시스템 및 사용자 설정이 모두 최종 값으로 병합됩니다.

    변경 사항은 레지스트리에 저장되며 (아래 참조) 탐색기 (예 : 그래픽 셸)에서 시작 메뉴를 통해 생성 한 모든 프로세스에 즉시 적용됩니다 .

  • 시스템 전체 환경 변수는 레지스트리에 유지 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment되며 시스템 부팅시로드됩니다.

    사용자 환경은 HKCU\Environment사용자 로그온 중에 유지 되고로드됩니다.

  • 기본적으로 시스템 setAUTOEXEC.NT파일 에서 명령을 찾습니다 .

MS-DOS, 16 비트 Windows, Windows 9x 시리즈

  • MS-DOS 프롬프트 ( command.com) set name=value에서 WinNT와 같이을 사용하십시오.

    마찬가지로 set대화식으로 실행 하면 command.com인스턴스에서 시작된 새 프로세스와 함께 해당 인스턴스 하나에 만 영향을줍니다 .

  • 지속적으로 변경하려면에 적절한 set행을 추가하거나 편집 C:\AUTOEXEC.BAT한 다음 다시 부팅하십시오.

    • Windows 9x의 재시작을 피하기위한 해결 방법 : MS-DOS 프롬프트 창을 열고 적절한 변수를 설정하고 기존 탐색기 프로세스를 닫습니다 ( 시작 → 시스템 종료 → Ctrl + Shift를 누른 상태에서 취소 클릭 ), explorer.exeMS-DOS 프롬프트 창에서 실행 .

VMS

(저항하지 못했습니다.)

DCL에는 "경로"라는 개념이 없지만 다양한 기호 및 명령 정의를 넣을 수 있습니다 SYS$LOGIN:LOGIN.COM.


2
VMS 섹션이 잘못되었습니다. DCL에는 DCL$PATH" 자동 외부 명령 "이 있습니다.
JdeBP

9

를 들어 bashPATH글로벌 (비 터미널) 환경 변수, 내 우분투 VM 설치에 사용되는 규칙을 따릅니다 - 다른 쉘은 달라질 수 있습니다 :

경고 : 전체 쉘 시작 업 시퀀스, .bashrc, .profile, 등의 파일 등 내가 가시성을 얻을에 다시 로그인을 할 때 어떤 순서로?에서 새롭게 정의하는 변수, 별칭을 공급됩니다? 로그인의 차이 무엇 , 대화식 및 비 대화식 셸- cron?를 사용하는 이유 . ~/.bashrcPATH무엇입니까? 어리석은 변수가 점점 길어 지나요? PATH변수를 생각할 때 떠오르는 핵심 질문입니다 .

사실, 우분투와 cygwin 스켈레톤 파일에서 아이디어를 얻은 전체 bash 시작 파일 세트를 완전히 다시 작성했으며 다음은 내 사이트 중 일부입니다.

  1. ; PATH및 다른 전역 환경 변수 (예 :) LD_LIBRARY_PATH변수를 .profile;
  2. 로직을 사용 ~/.profile하여 소스 $HOME/.bashrc를 지정하십시오.
  3. ~/.bashrc대화식 실행을위한 테스트 로의 울타리 실행 , 그렇지 않으면 종료;
  4. 대화식 모드에서만 실행되도록 보호되는 shopt부분에 모든 별칭, 프롬프트 설정, 기록 제어, 터미널 설정, 기능 정의 등 (대화식 관련 설정)을 넣습니다 ~/.bashrc.
  5. 다른 bash 시작 파일이 있으면 제어 경로를 통과 .profile하고 .bashrc예상대로 작동 하는지 여부가 결정되므로 다른 bash 시작 파일을 제거하십시오 . 즉, 달리 수행해야 할 특정 요구 사항이없는 경우 ~/.bash_profile& ~/.bash_login;
  6. 내가 bash 프롬프트에 있고 기본 설정을 업데이트해야 할 때 ~/.bashrc파일을 편집 한 다음 단순히 . ~/.bashrc현재 쉘에서 변경 사항을 가져 오기 위해 a 로 파일을 소싱하십시오 .
  7. 와 같은 환경 변수를 변경할 때 PATH내 수정하고 소싱해야합니다 ~/.profile.
  8. 전화를 걸고 포트를 만들고 특정 설정을 끓입니다 .profile.

그것은이 주제에 대한 나의 2 센트입니다.


7

Q : 환경 변수 란 무엇입니까?

A : 환경 변수는 모든 프로그래밍 언어의 변수와 유사합니다. Windows 또는 Unix 시스템의 경우 프로그램 및 태스크가 필요한 OS 정보 또는 '환경'정보를 얻을 수 있도록 다양한 값을 저장합니다. 예를 들면 다음과 같습니다.

USERPROFILE : OS 파일 내의 사용자 디렉토리.

MAIL : OS 파일 내에서 사용자 메일을 찾을 수 있습니다.

Q : PATH 변수는 무엇입니까?

A : PATH 변수는 RUN 명령과 프로그램의 내부 호출 모두에 대해 명령이 실행될 때 찾을 디렉토리 경로를 설정합니다. 이렇게하면 프로그램이 다른 실행 가능 프로세스를 호출하기 위해 설치 위치를 알 필요가 없습니다.

Windows 환경 시스템 PATH 변수를 찾고 지정된 실행 파일의 각 위치를 테스트합니다. 따라서 PATH 변수에 위치를 추가하면 실행 파일을 직접 호출 할 수 있습니다.

Wikipedia 기사 에 따르면 :

명령을 명령 쉘에 입력하거나 프로그램이 프로그램을 실행하기 위해 시스템을 호출하면 시스템은 먼저 현재 작업 디렉토리를 검색 한 다음 경로를 검색하여 각 디렉토리를 왼쪽에서 오른쪽으로 검사합니다.


Q : PATH 변수에 위치를 추가하는 방법은 무엇입니까?

A : 실행 파일의 위치를 ​​포함하도록 환경 변수 PATH 변수의 변수 문자열을 편집해야합니다.

이를 수행하는 한 가지 방법은 다음과 같습니다 .

  1. 시작 메뉴를 열고 컴퓨터를 마우스 오른쪽 버튼으로 클릭하십시오. 속성을 선택하십시오.
  2. 고급 시스템 설정을 선택하십시오.
  3. 고급 탭에서 환경 변수를 선택하십시오.
  4. 편집 또는 신규를 선택하십시오. (PATH의 경우 대부분 편집하고 싶습니다).
  5. 위치 경로를 추가하십시오. 예 :C:\wamp\bin\php\php5.5.12;

이것이 혼란을 분명히하기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.