리눅스 명령어: env

env를 사용하여 환경 변수를 인쇄하거나 현재 셸 세션에서 설정하지 않고 환경 변수를 유틸리티/명령에 전달할 수 있습니다.

인수 없이 env를 실행하고 무슨 일이 일어나는지 봅시다.



단순히 현재 세션의 모든 환경 변수를 인쇄합니다. 다양한 옵션으로 env를 실행할 수도 있습니다.
  • -i: 지정된 환경 변수만 사용하여 명령을 실행하고 이미 설정된 모든 환경 변수를 지웁니다.
  • -u: 다른 값은 그대로 유지하면서 지정된 환경 변수를 제거하여 명령을 실행합니다.
  • -v: env 유틸리티에서 수행한 처리의 각 단계에 대한 세부 정보 출력을 인쇄합니다.
  • env 를 통해 환경 변수를 전달하여 파이썬 스크립트 내에서 환경 변수를 인쇄해 봅시다. 원하는 언어로 실행하도록 선택할 수 있습니다.

    import os
    
    print(os.getenv('BLOG'))
    print(os.getenv('PATH'))
    

    env -i /usr/local/bin/python3 main.py를 사용하여 Python 스크립트를 실행합니다. 실행 파일의 이진 경로를 지정하는 PATH 값도 재설정되므로 간단한 python 명령을 사용하여 코드를 실행할 수 없습니다. 출력은 아래와 같아야 합니다.

    $ env -i /usr/local/bin/python3 main.py
    None
    None
    


    위 출력에서 ​​볼 수 있듯이 None 옵션을 사용했기 때문에 모든 값이 -i로 설정되어 있습니다. 시스템 PATH 변수도 None 로 설정됩니다.

    이제 이env -i BLOG=hashnode /usr/local/bin/python3 main.py를 터미널에서 실행해 보겠습니다.

    $ env -i BLOG=hashnode /usr/local/bin/python3 main.py
    hashnode
    None
    


    위의 출력에서 ​​BLOG=hashnode를 설정했고 출력에 출력되는 것을 볼 수 있습니다.
    -u를 사용하여 특정 환경 변수를 설정 해제할 수도 있습니다.

    import os
    
    print(os.getenv('HOME'))
    print(os.getenv('SHELL'))
    


    env -u HOME /usr/local/bin/python3 main.py 명령을 사용하여 위의 코드를 실행합니다. 출력 결과는 다음과 같습니다. HOME 값이 인쇄되는 동안 SHELL가 인쇄되지 않는 것을 볼 수 있습니다.

    $ env -u HOME /usr/local/bin/python3 main.py
    None
    /bin/zsh
    

    env 명령의 자세한 출력을 인쇄하려면 다음 단계를 따르십시오. -i를 옵션으로 넘기시면 됩니다.

    $ env -v -u HOME /usr/local/bin/python3 main.py
    #env unset:     HOME
    #env executing: /usr/local/bin/python3
    #env    arg[0]= '/usr/local/bin/python3'
    #env    arg[1]= 'main.py'
    None
    /bin/zsh
    


    결론



    로컬 코드를 디버깅하는 동안 및 일부 프로덕션 문제와 같은 다양한 시나리오에서 env를 사용하여 코드 또는 서비스에 대한 모든 환경 변수의 영향을 확인할 수 있습니다.

    If you liked this post please share it with others so that it can help them as well. You can tag me on Twitter . Also please follow me here and on Twitter for future blogs which I write over here

    좋은 웹페이지 즐겨찾기