プロセスごとに1回実行されるLinux環境変数を設定できますか?

プロセスごとに1回実行されるLinux環境変数を設定できますか?

Windowsでは、次のウィンドウを使用してプロセス実行ごとに1回の環境変数を設定できます。

ここに画像の説明を入力してください。

Linuxでも同じことができますか?

答え1

ユーザーインターフェイスを介してユーザーアプリケーションの環境変数を設定する方法は、WindowsとLinuxで異なります。使用するWindowsインターフェイスは、現在のセッションと将来のセッションで変数の値を変更します。

Linuxでは、環境変数を設定する従来の方法がログイン時に機能します。これにはさまざまな方法がありますが、ログイン時にのみ読み取るファイルを変更する方法があります。したがって、現在のセッションには適用できません。これに使用できる既定のファイルはおよびであり、両方.profileとも.pam_environmentホームディレクトリにあります。環境変数を設定するための最良の distro/shell 独立した方法は何ですか?より詳細な議論のために。

現在のセッションの環境変数を設定するには、アプリケーションを起動するプロセスであるGUIシェルで設定する必要があります。実際のGUIシェルオプションがないため、Windowsでは簡単です。 (技術的にはデフォルトのシェルを置き換えることは可能ですが、これを行うユーザーはほとんどいません。)Linuxには何百もの可能なGUIシェルがあります。 GUIシェルは通常ウィンドウマネージャ、時には別のコンポーネントデスクトップ環境。ウィンドウマネージャまたはデスクトップ環境で環境変数を設定する標準的な方法はありません。各WM / DEには独自の方法があります(残念ながら、いくつかの方法はありません)。

環境変数の変更に関連しないWM / DEはeditです~/.profile。基本的な構文(他の方法もあります)は次のとおりです。

export MYVAR='the value of the variable'

次に、ターミナルを起動し(シェルを実行)、そのシェルに入力します。

. ~/.profile

これにより、環境変数の新しい値がロードされます.profile。その後、そのシェルでプログラムを実行すると、新しい変数がプログラムに適用されます。ただし、GUIメニューから直接プログラムを実行すると、そのプログラムはGUIメニューを提供したプログラムの環境を継承するので、この設定を変更するには、そのプログラムが提供する手段(またはその一部として)を使用する必要があります。コンパニオンプログラム)デスクトップ環境)。

答え2

/etc/environmentファイルに変数を設定できます。形式は次のようになります。

VARIABLE=value

変数拡張は機能しません/etc/environment。この変数を使用するか、必要なすべてのプロセスを再起動する必要があります。

答え3

基本的に、環境変数は、環境変数を設定するプロセス/シェルによって開始されたすべてのプロセスで使用できます。

Unixの環境変数はシェル変数としてエクスポートされますexport。例えば

MYVAR="my value"
export MYVAR

通常、シェル起動ファイルで環境変数を設定します。場合によっては、bashこのシェルは~/.bash_profile他の多くのシェルでも使用されます~/.profile

/etc/etc/profileたとえば、すべてのユーザーの環境をカスタマイズするために使用できるシステム全体のシェル初期化スクリプトがあります。

環境変数はシェルに依存しない方法ですべてのユーザーにグローバルに設定できますが、これを行う方法はUnix環境によって異なります。ほとんどのBSDは修正によってこれを達成できますが、/etc/login.conf一部のLinuxは/etc/environment他のメカニズムを使用しています。

関連情報