web-dev-qa-db-fra.com

Comment exporter de manière permanente une variable sous Linux?

J'utilise RHEL6 et j'ai exporté une variable d'environnement comme celle-ci:

export DISPLAY=:0

Cette variable est perdue lorsque le terminal est fermé. Comment puis-je ajouter ceci de manière permanente afin que cette valeur de variable existe toujours avec un utilisateur particulier?

127
user1340582

Vous pouvez l'ajouter à votre fichier de configuration Shell, par exemple. $HOME/.bashrc ou plus globalement dans /etc/environment.

144
Antoine

Vous devez éditer trois fichiers pour définir une variable d'environnement permanente comme suit:

  • ~/.bashrc

    Lorsque vous ouvrez une fenêtre de terminal, ce fichier sera exécuté. Par conséquent, si vous souhaitez avoir une variable d'environnement permanente dans toutes les fenêtres de votre terminal, vous devez ajouter la ligne suivante à la fin de ce fichier:
    export DISPLAY = 0

  • ~/.profile

  • Pareil que bashrcvous devez mettre la ligne de commande mentionnée à la fin de ce fichier pour que votre environnement soit une variable dans chaque login de votre système d'exploitation.

  • / etc/environment

  • Si vous souhaitez que votre variable d’environnement apparaisse dans chaque fenêtre ou application (pas uniquement dans la fenêtre du terminal), vous devez éditer ce fichier. Ajoutez la commande suivante à la fin de ce fichier:
    AFFICHAGE = 0
    Notez que dans ce fichier vous n’avez pas à écrire exportationcommander

Normalement, vous devez redémarrer votre ordinateur pour appliquer ces modifications. Mais vous pouvez appliquer des modifications dans bashrc et profil par ces commandes:

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

Mais pour / etc/environment vous n'avez pas d'autre choix que de redémarrer (pour autant que je sache)

  • Une solution simple


  • #!/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
    

    Sauvegardez ces lignes dans un shfile puis rendez-le exécutable et lancez-le!

    96
    e_soroush

    ajoutez la ligne à votre .bashrc ou .profile. Les variables définies dans $HOME/.profile sont actives pour l'utilisateur actuel, celles dans /etc/profile sont globales. Le .bashrc est tiré à chaque début de session bash.

    29
    kostja

    Sur les systèmes Ubuntu, utilisez les emplacements suivants:

    1. Variables persistantes à l'échelle du système sous la forme de Java_PATH=/usr/local/Java store in

      /etc/environment
      
    2. Variables persistantes à l’échelle du système qui font référence à des variables telles que
      export PATH="$Java_PATH:$PATH" stocker dans

      /etc/.bashrc
      
    3. Variables persistantes spécifiques à l'utilisateur au format PATH DEFAULT=/usr/bin:usr/local/bin store dans

      ~/.pam_environment
      

    Pour plus de détails sur # 2, cochez ceci Demandez à Ubuntu de répondre . REMARQUE: la recommandation n ° 3 est la recommandation Ubuntu, mais peut poser des problèmes de sécurité dans le monde réel.

    27
    csi

    Un exemple particulier: j’ai installé Java 7 et Java 6, j’ai besoin d’exécuter certaines versions avec 6, d’autres avec 7. Par conséquent, j’ai besoin de modifier dynamiquement Java_HOME donc ce maven ramasse ce que je veux pour chaque build. J'ai fait ce qui suit:

    • créé j6.sh script qui exporte simplement Java_HOME=... chemin d'accès à l'installation de j6 ...
    • puis, comme suggéré par l'un des commentaires ci-dessus, chaque fois que j'ai besoin de J6 pour une construction, je lance la source j6.sh dans le terminal de commande correspondant. Par défaut, mon Java_HOME est défini sur J7.

    J'espère que cela t'aides.

    2
    Cristian Botiza