Linux의 PATH: 쉘의 비밀

2025-04-29

Linux가 실행하는 명령어를 어떻게 찾는지 궁금해한 적이 있습니까? 답은 커널이 아니라 쉘에 의존한다는 것입니다! 이 기사에서는 PATH 환경 변수의 메커니즘을 자세히 살펴보고, dash와 같은 쉘이 `padvance` 함수를 사용하여 PATH에서 실행 파일을 찾는 방법과 커널의 `execve` 시스템 호출이 실제로 전체 경로를 받는 방법을 밝힙니다. Python, Go, Rust와 같은 프로그래밍 언어도 서브 프로세스 라이브러리에 자체 PATH 검색을 구현하며, 궁극적으로 `execvp`와 같은 기본 함수에 의존합니다. 이 기사에서는 shebang이 절대 경로를 필요로 하는 이유와 `/usr/bin/env`의 영리한 역할에 대해서도 설명합니다.

개발