202

RHEL6を実行していて、次のような環境変数をエクスポートしました。

export DISPLAY=:0

その変数は、端末が閉じられると失われます。この変数値が常に特定のユーザーに存在するように、これを永続的に追加するにはどうすればよいですか?

4

6 に答える 6

230

シェル構成ファイルに追加できます。たとえば$HOME/.bashrc、よりグローバルに/etc/environment。これらの行を追加した後、変更はGUIベースのシステムにすぐには反映されません。ターミナルを終了するか、新しいシステムを作成し、サーバーでセッションをログアウトしてログインし、これらの変更を反映する必要があります。

于 2012-10-24T09:45:12.050 に答える
155

次のように永続的な環境変数を設定するには、3つのファイルを編集する必要があります。

  • 〜/ .bashrc

    ターミナルウィンドウを開くと、このファイルが実行されます。したがって、すべてのターミナルウィンドウに永続的な環境変数を設定する場合は、このファイルの最後に次の行を追加する必要があります。

    export DISPLAY=0
    
  • 〜/ .profile

    bashrcと同じように、OSのすべてのログインで環境変数を使用するには、このファイルの最後に上記のコマンドラインを配置する必要があります。

  • / etc / environment

    (ターミナルウィンドウだけでなく)すべてのウィンドウまたはアプリケーションで環境変数が必要な場合は、このファイルを編集する必要があります。このファイルの最後に次のコマンドを追加します。

    DISPLAY=0
    

    このファイルでは、エクスポートコマンドを記述する必要がないことに注意してください

通常、これらの変更を適用するには、コンピュータを再起動する必要があります。ただし、次のコマンドを使用して、 bashrcプロファイルに変更を適用できます。

$ source ~/.bashrc
$ source ~/.profile

しかし、/ etc / environmentの場合、(私が知る限り)再起動する以外に選択肢はありません。

簡単な解決策

これらすべての作業を行うために、これらの手順の簡単なスクリプトを作成しました。環境変数の名前と値を設定するだけです。

#!/bin/bash
echo "Enter variable name: "
read variable_name
echo "Enter variable value: "
read variable_value
echo "adding " $variable_name " to environment variables: " $variable_value
echo "export "$variable_name"="$variable_value>>~/.bashrc
echo $variable_name"="$variable_value>>~/.profile
echo $variable_name"="$variable_value>>/etc/environment
source ~/.bashrc
source ~/.profile
echo "do you want to restart your computer to apply changes in /etc/environment file? yes(y)no(n)"
read restart
case $restart in
    y) sudo shutdown -r 0;;
    n) echo "don't forget to restart your computer manually";;
esac
exit

これらの行をshfileに保存し、実行可能にして実行するだけです。

于 2015-07-21T18:31:55.753 に答える
31

.bashrcまたはに行を追加します.profile。に設定された変数$HOME/.profileは現在のユーザーに対してアクティブであり、の変数/etc/profileはグローバルです。は.bashrc、bashセッションの開始ごとにプルされます。

于 2012-10-24T09:45:11.567 に答える
30

Ubuntuシステムでは、次の場所を使用します。

  1. JAVA_PATH=/usr/local/javaストアの形式のシステム全体の永続変数

    /etc/environment
    
  2. 次のような変数を参照するシステム全体の永続
    export PATH="$JAVA_PATH:$PATH"変数

    /etc/.bashrc
    
  3. PATH DEFAULT=/usr/bin:usr/local/binストアの形式のユーザー固有の永続変数

    ~/.pam_environment
    

#2の詳細については、この AskUbuntuの回答を確認してください。注:#3はUbuntuの推奨事項ですが、現実の世界ではセキュリティ上の懸念がある場合があります。

于 2013-12-02T16:10:32.650 に答える
7

誰かに適している場合は、環境変数を永続的に追加するための簡単なガイドラインを次に示します。

vi ~/.bash_profile

ファイルに変数を追加します。

export DISPLAY=:0
export JAVA_HOME=~/opt/openjdk11

すべての変更をすぐに適用します。

source ~/.bash_profile

ソース:https ://www.serverlab.ca/tutorials/linux/administration-linux/how-to-set-environment-variables-in-linux/

于 2020-04-07T14:06:06.250 に答える
3

特定の例:Java7とJava6がインストールされているので、6でビルドを実行する必要があり、7でビルドを実行する必要があります。したがってJAVA_HOME、Mavenがビルドごとに必要なものを取得するように動的に変更する必要があります。私は次のことをしました:

  • j6インストールへのパスをj6.shエクスポートするだけのスクリプトを作成しました...JAVA_HOME=...
  • 次に、上記のコメントの1つで示唆されているように、ビルドにJ6が必要な場合は常に、j6.shそれぞれのコマンド端末でsourceを実行します。デフォルトでは、myJAVA_HOMEはJ7に設定されています。

お役に立てれば。

于 2015-03-03T12:35:19.060 に答える