env

info
nameenv
aliasesenv

현재 환경 변수를 출력하거나, 환경 변수를 바꿔서 다른 프로그램을 실행한다.

  • env: 현재 프로세스 환경을 출력한다.
  • env NAME=VALUE COMMAND: 지정한 환경 변수를 덮어쓴 뒤 프로그램을 실행한다.
  • env -i COMMAND: 빈 환경에서 프로그램을 실행한다.
  • 단순 출력은 printenv와 겹치지만, env는 실행 환경을 조합해서 넘기는 용도로 더 자주 쓴다.
env
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]
  • env
  • env [OPTION]… [NAME=VALUE]… COMMAND [ARG]…
  • -i, –ignore-environment: 현재 환경을 비우고 시작한다.
  • -0, –null: 각 항목 끝을 줄바꿈 대신 NUL 문자로 출력한다.
  • -u, –unset NAME: 지정한 변수를 제거한 뒤 실행한다.
  • -C, –chdir DIR: 명령 실행 전에 작업 디렉터리를 바꾼다.
  • -S, –split-string STRING: shebang에서 여러 인자를 분리할 때 사용한다.
  • -v, –debug: 처리 과정을 자세히 출력한다.
  • –help: 도움말을 출력하고 종료한다.
  • –version: 버전 정보를 출력하고 종료한다.
# 현재 환경 변수 출력
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
  • env 자체의 고정 설정 파일은 없다.
  • 셸 시작 파일의 export 결과를 확인할 때 자주 함께 사용한다.
  • shebang에서는 #!/usr/bin/env python3 또는 여러 인자가 필요하면 #!/usr/bin/env -S python3 -I 형태를 쓴다.
env -iPATH, HOME, LANG까지 지우므로, 필요한 변수를 다시 지정하지 않으면 명령이 예상과 다르게 실패할 수 있다.
  • env: 'command': No such file or directory: 빈 환경이나 잘못된 PATH 때문에 실행 파일을 찾지 못하는 경우가 많다. 절대 경로를 쓰거나 PATH를 명시한다.
  • 프록시나 인증 관련 동작이 이상하면 env | grep -i proxy처럼 관련 변수가 남아 있는지 먼저 확인한다.
  • shebang에서 인자 분리가 안 되면 -S 지원 여부를 확인한다. 오래된 구현체에는 없을 수 있다.
  • 이 문서는 로컬 GNU coreutils env 8.30env –help 출력을 기준으로 정리했다.
  • BSD 계열이나 BusyBox 구현체는 일부 옵션, 특히 -C 또는 -S 지원이 다를 수 있다.
  • POSIX 기본 범위를 넘어서는 옵션을 스크립트에 넣을 때는 대상 시스템 구현체를 확인하는 편이 안전하다.
  • env는 환경을 보여주거나 바꿔서 실행하는 도구다.
  • 셸 내부에서 현재 세션 변수를 내보낼 때는 export를 쓴다.
  • 현재 환경 출력만 필요하면 printenv가 더 직접적이다.
  • 셸 변수나 함수까지 함께 보려면 셸 내장 명령 set을 확인한다.

+ env --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.

+

  • codex:: 2026-06-20 Reorganized the env command page into the standard CLI reference structure and preserved local help output.
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/pages/env.txt
  • 마지막으로 수정됨: 2026/06/20 10:42
  • 저자 127.0.0.1