zsh에서 env 변수를 설정할 수 없습니다

zsh에서 env 변수를 설정할 수 없습니다

저는 칼리 리눅스를 사용하고 있습니다:

lsb_release -a

"
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2021.2
Codename:       kali-rolling
"

환경변수를 설정했어요

export DB_USER=something

작동하지만 탭을 닫으면 더 이상 인식되지 않습니다. 내 Django 프로젝트에 대한 환경 변수를 설정하고 있습니다. "pycharm" 터미널에 설정하면 설정됩니다.

   printenv  DB_USER

하지만 pyhcarm을 닫으면 printenv DB_USER값이 표시되지 않습니다.

탭 중 하나를 사용하여 터미널에 설정했습니다. 다시 말하지만, 설정했지만 특정 터미널을 닫으면 더 이상 env 값을 인식하지 못합니다.

zshenv 파일을 확인하면 다음과 같습니다.

 nano /etc/zsh/zshenv

내 파일에 이게 있어요

if [[ -z "$PATH" || "$PATH" == "/bin:/usr/bin" ]]
then
        export PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi

zsh의 유일한 환경 변수는 PATH입니다. 그러나 명령을 실행하면 env많은 환경 변수 목록이 표시되지만 "zshenv"에는 없습니다.

답변1

시스템 터미널이든, Pycharm 터미널이든, 다른 터미널이든 각 터미널은 서로 다른 쉘 세션과 서로 다른 환경입니다. 하나에서 설정한 내용은 다른 하나에는 존재하지 않습니다.

여러 세션에서 작동하도록 하려면 파일을 편집 하거나 /etc/zsh/zprofile. 로그인하면 사용 중인 쉘인 이 정보를 얻을 수 있습니다. 수행 중인 작업에 따라 후자의 init 스크립트를 사용하여 모든 쉘 초기화의 소스 역할을 할 수 있도록 하는 것이 더 나을 수 있습니다.etc/zsh/profile/etc/zsh/zshenvexport DB_USER=somethingzsh

답변2

환경 변수를 있는 그대로 설정하면 특정 세션에 대해서만 설정됩니다. 모든 터미널 세션에서 설정하려면 홈 디렉터리에 있는 .zshrc에 다음 줄을 추가해야 합니다(또는 /root루트 계정에 사용하려는 경우).

export DB_USER=something

질문의 두 번째 부분의 경우 경로 변수는 모든 세션에서 공통이지만 명령을 실행할 때 표시되는 환경 변수 목록은 env터미널 세션이 시작될 때 모두 초기화됩니다 . 현재 작업 디렉터리 세션 또는 변수. 추론할 수 있듯이 이러한 변수는 모든 인스턴스에 공통된 경로 변수와 달리 각 인스턴스마다 다르므로 개별 세션에 대해 정의됩니다.$USER$PWD

관련 정보