Comment exporter de façon permanente une variable sous Linux?

J'exécute RHEL6, et j'ai exporté une variable d'environnement comme ceci:

export DISPLAY=:0

cette variable est perdue lorsque le CMD est fermé. Comment puis-je ajouter cela de façon permanente pour que cette valeur variable existe toujours avec un utilisateur particulier?

104
demandé sur user1340582 2012-10-24 13:42:50

5 réponses

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

123
répondu Antoine 2017-01-30 10:17:58

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 vos fenêtres de terminal, vous devez ajouter la ligne suivante à la fin de ce fichier:

    export DISPLAY=0


  • ~/.profil

  • Comme bashrc vous devez mettre la ligne de commande mentionnée à la fin de ce fichier pour avoir votre variable d'environnement dans chaque login de votre système D'exploitation.



  • /CTE / environnement

  • Si vous voulez votre variable d'environnement dans chaque windows ou application ( pas seulement la fenêtre du terminal ) vous devez éditer ceci fichier. Ajouter la commande suivante à la fin de ce fichier:

    affichage=0

    Notez que dans ce fichier vous n'avez pas à écrire exportation commande

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

$ source ~/.bashrc

$ source ~/.profile

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

  • Une Solution Simple

  • J'ai écrit un script simple pour ces procédures pour faire tout ce travail. Vous avez juste à définir le nom et la valeur de votre variable d'environnement.

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

    enregistrer ces lignes dans un fichier shfile puis le rendre exécutable et juste l'exécuter!

    70
    répondu e_soroush 2018-09-27 03:30:05

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

    27
    répondu kostja 2013-06-18 17:27:31

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

    1. à l'échelle du Système persistant variables dans le format de JAVA_PATH=/usr/local/java magasin

      /etc/environment
      
    2. variables persistantes à l'échelle du système qui font référence à des variables telles que

      export PATH="$JAVA_PATH:$PATH" stock in

      /etc/.bashrc
      
    3. variables persistantes spécifiques à l'utilisateur dans le format de PATH DEFAULT=/usr/bin:usr/local/bin magasin

      ~/.pam_environment
      

    pour plus de détails sur #2, consultez ceci Ask Ubuntu réponse . NOTE: #3 est la recommandation Ubuntu mais peut avoir des préoccupations de sécurité dans le monde réel.

    24
    répondu csi 2017-04-13 12:22:45

    un exemple particulier: J'ai installé Java 7 et Java 6, j'ai besoin d'exécuter certaines constructions avec 6, d'autres avec 7. Par conséquent, je dois modifier dynamiquement JAVA_HOME de sorte que maven ramasse ce que je veux pour chaque construction. J'ai fait ce qui suit:

    • a créé j6.sh script qui exporte simplement JAVA_HOME=... chemin vers J6 install...
    • ensuite, comme suggéré par l'un des commentaires ci-dessus, chaque fois que j'ai besoin de J6 pour une construction, j'exécute source j6.sh dans ce terminal de commande respectif. Par défaut, mon JAVA_HOME est défini à J7.

    Espérons que cette aide.

    2
    répondu Cristian Botiza 2017-01-30 10:29:44