私はCarly Linuxを使用しています:
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
値は表示されません。
タブの1つを使用して端末に設定しました。繰り返しますが、設定しましたが、特定の端末を閉じると、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/zshenv
export DB_USER=something
zsh
答え2
環境変数をそのまま設定すると、特定のセッションに対してのみ設定されます。すべてのターミナルセッションで設定するには、ホームディレクトリの.zshrcに次の行を追加する必要があります(または/root
rootアカウントで使用する場合)。
export DB_USER=something
質問の2番目の部分では、パス変数はすべてのセッションで共通ですが、コマンドの実行時に表示される環境変数のリストは、env
端末セッションの開始時にすべて初期化されます。現在の作業ディレクトリセッションまたは変数。推測できるように、これらの変数はすべてのインスタンスに共通のパス変数とは異なり、インスタンスごとに異なるため、個々のセッションに対して定義されます。$USER
$PWD