PATH(변수)
PATH (variable)PATH는 Unix와 유사한 운영체제, DOS, OS/2 및 Microsoft Windows 환경변수로 실행 가능한 프로그램이 있는 디렉토리 세트를 지정합니다.일반적으로 실행 중인 각 프로세스 또는 사용자 세션에는 고유한 PATH 설정이 있습니다.
역사
검색 경로의 발상은 멀티틱스입니다.초기 Unix 쉘은 프로그램 이름만 검색했습니다./bin
그러나 버전 3 Unix에서는 디렉토리가 너무 커서/usr/bin
및 검색 경로가 운영 [1]체제의 일부가 되었습니다.
Unix 및 Unix 유사
POSIX 및 Unix와 유사한 운영체제시스템에서는 변수는 콜론으로 구분된1개 이상의 디렉토리 이름 목록으로 지정됩니다.:
)의 문자.[2][3]의 디렉토리PATH
string은 이스케이프 할 수 없기 때문에 디렉토리는 사용할 수 없습니다.:
그들의 이름으로.[4]
그/bin
,/usr/bin
,그리고./usr/local/bin
디렉토리는 보통 대부분의 사용자 목록에 포함됩니다.$PATH
설정(단, 이것은 실장마다 다릅니다).슈퍼유저는 일반적으로/sbin
그리고./usr/sbin
엔트리를 사용하여 시스템 관리 명령을 쉽게 실행할 수 있습니다.현재의 디렉토리(.
)도 유저에 의해서 포함되는 경우가 있기 때문에, 현재의 작업 디렉토리에 있는 프로그램을 직접 실행할 수 있습니다.시스템 관리자는 원칙적으로 이 기능을 에 포함하지 않습니다.$PATH
악의적인 tarbom에 의해 현재 디렉토리에 배치되는 등 현재 디렉토리에 상주하는 스크립트가 우발적으로 실행되지 않도록 하기 위해서입니다.이 경우, 이러한 프로그램을 실행하려면 absolute(절대)를 지정해야 합니다./home/userjoe/bin/script.sh
또는 상대 경로(./script.sh
를 참조해 주세요.
사용자가 명령 이름을 지정하거나 프로그램에서 exec 호출을 하면 시스템은 다음을 검색합니다.$PATH
목록의 왼쪽에서 오른쪽으로 각 디렉토리를 검사하여 명령 이름과 일치하는 파일 이름을 찾습니다.프로그램이 발견되면 명령 셸 또는 명령을 실행한 프로그램의 하위 프로세스로 실행됩니다.
DOS, OS/2 및 Windows
DOS, OS/2 및 Windows 운영체제시스템에서는 변수는 세미콜론으로 구분된1개 이상의 디렉토리 이름 목록으로 지정됩니다.;
)의 문자.[5]
Windows 시스템 디렉토리(일반적으로)C:\WINDOWS\system32
일반적으로 경로의 첫 번째 디렉토리가 되고 그 다음에 설치된 소프트웨어 패키지의 많은 디렉토리(전부는 아님)가 이어집니다.많은 프로그램은 명령 창에서 실행되도록 설계되지 않고 그래픽 사용자 인터페이스에서 실행되도록 설계되었기 때문에 경로에 표시되지 않습니다.일부 프로그램에서는 검색 프로세스를 고속화하거나 OS 명령어를 덮어쓰기 위해 설치 중에 PATH 변수의 콘텐츠 앞에 디렉토리를 추가할 수 있습니다.DOS 시대에는, 통상, E-메일·메일·메일·메일·메일·PATH {program directory};%PATH%
또는SET PATH={program directory};%PATH%
회선을 AUTOEXEC로 설정합니다.배트
명령 셸에 명령어를 입력하거나 프로그램을 실행하기 위한 프로그램에서 시스템 호출이 이루어지면 시스템은 먼저 현재 작업 디렉토리를 검색한 후 경로를 검색하여 각 디렉토리를 왼쪽에서 오른쪽으로 검사하고 지정된 명령 이름과 일치하는 실행 파일 이름을 찾습니다.실행 가능한 프로그램의 파일 확장자는EXE
또는COM
및 배치 스크립트의 확장자는BAT
또는CMD
. 다른 실행 파일 이름 확장자도 시스템에 등록할 수 있습니다.
일치하는 실행 파일이 발견되면 시스템은 해당 파일을 실행하는 새로운 프로세스를 생성합니다.
PATH 변수를 사용하면 자신의 폴더에 있는 일반적으로 사용되는 프로그램을 쉽게 실행할 수 있습니다.그러나 PATH 변수 값을 잘못 사용하면 너무 많은 로케이션 또는 잘못된 로케이션을 검색하여 운영체제가 느려질 수 있습니다.
또한 위치가 잘못되면 서비스가 완전히 실행되지 않을 수 있습니다. 특히 Windows Server 환경 내의 다른 서비스에 종속된 '서버' 서비스는 더욱 그렇습니다.
레퍼런스
- ^ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
- ^ Unix 사양, 환경 변수 열기
- ^ 그룹 Unix 사양, execve() 함수를 엽니다.
- ^ PATH 문자열 파서의 구현 예로서 Dash exec.c를 사용합니다.
- ^ Microsoft.com, PATH 명령어