env
| info | |
|---|---|
| name | env |
| aliases | env |
현재 환경 변수를 출력하거나, 환경 변수를 바꿔서 다른 프로그램을 실행한다.
Summary
env: 현재 프로세스 환경을 출력한다.env NAME=VALUE COMMAND: 지정한 환경 변수를 덮어쓴 뒤 프로그램을 실행한다.env -i COMMAND: 빈 환경에서 프로그램을 실행한다.- 단순 출력은 printenv와 겹치지만,
env는 실행 환경을 조합해서 넘기는 용도로 더 자주 쓴다.
Usage
env env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
envenv [OPTION]… [NAME=VALUE]… COMMAND [ARG]…
Options
-i,–ignore-environment: 현재 환경을 비우고 시작한다.-0,–null: 각 항목 끝을 줄바꿈 대신 NUL 문자로 출력한다.-u,–unsetNAME: 지정한 변수를 제거한 뒤 실행한다.-C,–chdirDIR: 명령 실행 전에 작업 디렉터리를 바꾼다.-S,–split-stringSTRING: shebang에서 여러 인자를 분리할 때 사용한다.-v,–debug: 처리 과정을 자세히 출력한다.–help: 도움말을 출력하고 종료한다.–version: 버전 정보를 출력하고 종료한다.
Examples
# 현재 환경 변수 출력 env # PATH만 임시로 바꿔서 명령 실행 env PATH=/usr/local/bin:$PATH command -v python3 # 지정한 변수 하나를 제거하고 실행 env -u http_proxy curl https://example.com # 빈 환경에서 필요한 변수만 넣고 실행 env -i HOME="$HOME" PATH=/usr/bin:/bin bash --noprofile --norc # 작업 디렉터리를 바꾼 뒤 명령 실행 env -C /tmp pwd
Config
env자체의 고정 설정 파일은 없다.- 셸 시작 파일의
export결과를 확인할 때 자주 함께 사용한다. - shebang에서는
#!/usr/bin/env python3또는 여러 인자가 필요하면#!/usr/bin/env -S python3 -I형태를 쓴다.
Troubleshooting
env -i는 PATH, HOME, LANG까지 지우므로, 필요한 변수를 다시 지정하지 않으면 명령이 예상과 다르게 실패할 수 있다.
env: 'command': No such file or directory: 빈 환경이나 잘못된PATH때문에 실행 파일을 찾지 못하는 경우가 많다. 절대 경로를 쓰거나PATH를 명시한다.- 프록시나 인증 관련 동작이 이상하면
env | grep -i proxy처럼 관련 변수가 남아 있는지 먼저 확인한다. - shebang에서 인자 분리가 안 되면
-S지원 여부를 확인한다. 오래된 구현체에는 없을 수 있다.
Compatibility
- 이 문서는 로컬 GNU coreutils
env 8.30의env –help출력을 기준으로 정리했다. - BSD 계열이나 BusyBox 구현체는 일부 옵션, 특히
-C또는-S지원이 다를 수 있다. - POSIX 기본 범위를 넘어서는 옵션을 스크립트에 넣을 때는 대상 시스템 구현체를 확인하는 편이 안전하다.
Related
Help
Usage: env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
Set each NAME to VALUE in the environment and run COMMAND.
Mandatory arguments to long options are mandatory for short options too.
-i, --ignore-environment start with an empty environment
-0, --null end each output line with NUL, not newline
-u, --unset=NAME remove variable from the environment
-C, --chdir=DIR change working directory to DIR
-S, --split-string=S process and split S into separate arguments;
used to pass multiple arguments on shebang lines
-v, --debug print verbose information for each processing step
--help display this help and exit
--version output version information and exit
A mere - implies -i. If no COMMAND, print the resulting environment.
+
See Also
History
- codex:: 2026-06-20 Reorganized the env command page into the standard CLI reference structure and preserved local help output.