
printenv
コマンドを使用してシステム環境変数を取得できますが、別々の変数データが必要です。
ローカル(セッション範囲)、ユーザー(ユーザー範囲)、およびシステム(システム範囲、グローバル)環境変数のリストをどのように取得しますか?
オペレーティングシステム:Debian-like Linux (x64), kernel: 4.19
。
答え1
Linux環境変数の仕組みについて誤解があるようです。実行中のシェルの環境変数は次のとおりです。それ実行中のシェルのインスタンスです。それ以外に意味や関連性はありません。使用しているシェルで$ PATH変数を変更すると、変更はそのシェルインスタンスにのみ影響し、実行中のシェルの他のインスタンスには影響しません。
シェルが起動してユーザーがログインすると、システム全体またはユーザーごとにデフォルトの環境変数を定義できるさまざまなシェルスクリプトを使用して環境変数を設定できます。の場合(システム全体)または(ユーザー固有)などのスクリプトですbash
。私が知っている限り、実行中のシェルで特定の変数が設定されている場所を確認する方法はありません。ファイルを確認する必要があります。/etc/profile
~/.bash_profile
~/.bashrc
知っておくべきもう一つの概念は出口変わりやすい。export
inコマンドは、bash
実行中のシェルから作成できる新しいサブシェルにエクスポートする必要がある変数を表示するために使用できます。
また、環境変数は特定のシェルにのみ適用され、Linux システム全体に適用されるわけではありません。したがって、bash
(私が例として使用した)変数は、で使用されているものと同じかもしれませんcsh
(いくつかの類似点があるかもしれません)、他のデフォルト値に設定されるかもしれません。