web-dev-qa-db-ja.com

Linuxで永続的に変数をエクスポートする方法

私はRHEL6を実行しており、私はこのような環境変数をエクスポートしました:

export DISPLAY=:0

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

122
user1340582

あなたはそれをあなたのシェル設定ファイルに追加することができます。 $HOME/.bashrcまたは/etc/environmentでさらにグローバルに。

142
Antoine

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

  • 〜/ .bashrc

    ターミナルウィンドウを開くと、このファイルが実行されます。したがって、すべての端末ウィンドウに永続的な環境変数を設定したい場合は、このファイルの最後に次の行を追加する必要があります。
    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に保存してから 実行可能にする そして実行してください。

    86
    e_soroush

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

    28
    kostja

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

    1. Java_PATH=/usr/local/Java storeの形式のシステム全体の永続変数

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

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

      ~/.pam_environment
      

    #2の詳細については、これをチェックしてください buntuの質問に答えてください 。注:#3はUbuntuの推奨ですが、現実の世界ではセキュリティ上の問題があるかもしれません。

    25
    csi

    特定の例:Java 7とJava 6がインストールされていて、6でビルドし、7でビルドする必要があります。したがって、mavenが各ビルドに必要なものを拾うように動的にJava_HOMEを変更する必要があります。私は次のことをしました:

    • 単にj6.shパスをj6 installにエクスポートするJava_HOME=...スクリプトを作成しました...
    • それから、上記のコメントの1つによって示唆されるように、私がビルドのためにJ6を必要とする時はいつでも、私はそのそれぞれのコマンドターミナルでソースj6.shを実行します。デフォルトでは、私のJava_HOMEはJ7に設定されています。

    お役に立てれば。

    2
    Cristian Botiza