env
명령어는 주로
- environment variable들을 확인하거나
- 특정 명령어 수행할 때 특정 environment variable을 지정해주는데 사용된다.
The
env
command allows youto
display your current environment or
run a specified command
in a changed environment.
개인적으로 env
를 많이 사용하는 경우는 #!
으로 시작하는 script의 shebang line 이다.
Shebang line이란

Script를 구성하는 commands을 해석 및 수행할 프로그램 (보통 interpreter. bash, zsh, python 등)을 "절대경로(absolute path)로 지정하는 첫 번째 line은 #!
으로 시작하며 이를 shebang line이라고 지칭함. 이때, 해당 프로그램의 경로는 시스템에 따라 다를 수 있으므로, 절대경로로 지정하는 대신, env
를 사용하여 해당 프로그램의 위치를 알아서 찾아 실행할 수 있도록 해놓으면 script file의 호환성이 향상됨. env
의 인수로 shell script의 command를 해석 및 수행할 프로그램을 지정하는 방식임.(자세한 내용은 아래를 참고).
- 단, 이 경우,
env
는 절대경로로 기재해야한다. :/usr/bin/env
가 주로 사용된다.
script를 실행할 인터프리터 지정하는 첫번째 line!
shebang 의 동작방식
#!/usr/bin/env python
print("Hello, World")
실행되는 과정은 다음과 같음:
- /usr/bin/env 명령어가 실행됩니다.
- env는 환경변수 PATH에 정의된 디렉토리 목록을 순서대로 검색
- 각 디렉토리에서 python 실행 파일을 찾습니다.
- 가장 먼저 발견된 python 실행 파일을 사용하여 스크립트 라인들을 실행.
Windows에서 Python Launcher py 가 이 기능을 대신함.
2025.03.06 - [분류 전체보기] - [Py] Python Launcher for Windows - py
[Py] Python Launcher for Windows - py
소개Python Launcher for Windows는Windows 플랫폼에서Python 스크립트를 실행하거나특정 Python 버전을 호출할 때 사용하는 명령줄 도구.Detail특히 여러 Python 버전(예: 2.7, 3.8, 3.11 등)이 설치된 환경에서 특정
ds31x.tistory.com
Syntax
env [-i|-][Name=Value]...[Command[ Argument ...]]
Command
가 지정되면, 해당Command
가env
에 의한 environment variable이 설정된 상황에서 수행된다.-i
(or - 만)flag가 설정된 경우, 현재의 environment variable들이 모두 무시(ignore)됨.env
뒤에 입력된Name=Value
등이 뒤에 놓이는Command
를 실행시키기 전 envrionment variable로 설정이 됨.env
로 설정된 environment는Command
가 수행되는 동안만 유효함.
env
만 입력된 경우, 현재의 environment variable들을Name=Value
들로 출력해줌.env Name
이라고 지정한 경우,Name
에 해당하는 environment variable만 보여줌.
Example
env TZ=MST7MDT data
위 경우, time zone에 해당하는 environment variable TZ
를 MST7MDT
로 변경하고 나서 data
커맨드가 수행됨.
- MST - Mountain Standard Time (미국 산악 표준시)
- 7 - UTC(협정 세계시)로부터 7시간 뒤쳐진다는 의미 (UTC-7)
- MDT - Mountain Daylight Time (미국 산악 일광 절약 시간)
- MST7MDT: 미국 콜로라도, 아리조나(일광 절약 시간 미적용), 뉴멕시코, 유타 등 미국 산악 지역에서 사용되는 timezone
env -i PATH=$PATH IDIR=/$HOME/include LIBDIR=/$HOME/lib make
위 경우, make
명령어가 오직 PATH
, IDIR
, LIBDIR
환경변수만 있는 환경에서 수행된다.
Shebang line
Script를 해석 (or 수행)할 프로그램을 지정하는 line인,
shebang line에 env
와 python
명령어를 다음 예제의 첫라인처럼 사용함.
#!/usr/bin/env python
print('Hello, Python')
bash에 대한 script라면 다음과 같음.
#!/usr/bin/env bash
echo "Hello, Bash!"
참고자료
https://www.ibm.com/docs/en/aix/7.2?topic=e-env-command
env Command
Purpose Displays the current environment or sets the environment for the execution of a command. SyntaxTo Display Multiple Environment Variables env [ -i | - ] [Name=Value ]... [Command [ Argument ... ] ] To Display A Single Environment Variable env
www.ibm.com
https://en.wikipedia.org/wiki/Shebang_%28Unix%29
Shebang (Unix) - Wikipedia
From Wikipedia, the free encyclopedia The symbol "#!", used in computing at the beginning of a Unix-like script In computing, a shebang is the character sequence consisting of the characters number sign and exclamation mark (#!) at the beginning of a scrip
en.wikipedia.org
'개발환경' 카테고리의 다른 글
[Env] PowerShell v7.3.5 (0) | 2023.06.28 |
---|---|
[Env] xterm: Font (0) | 2023.06.26 |
[Env] VSCode : Terminal Font 변경 (0) | 2023.06.21 |
[Env] Environment Variable (환경변수) (0) | 2023.06.20 |
[Env] Oh-My-Posh (0) | 2023.06.20 |