variable remove from envvar delete linux environment-variables redhat

linux - envvar - remove from environment



¿Cómo exportar permanentemente una variable en Linux? (5)

Estoy ejecutando RHEL6, y he exportado una variable de entorno como esta:

export DISPLAY=:0

Esa variable se pierde cuando el CMD está cerrado. ¿Cómo agrego esto permanentemente para que este valor de variable siempre exista con un usuario en particular?


En los sistemas Ubuntu, use las siguientes ubicaciones:

  1. Variables persistentes en todo el sistema en el formato de JAVA_PATH=/usr/local/java store en

    /etc/environment

  2. Variables persistentes en todo el sistema que hacen referencia a variables tales como
    export PATH="$JAVA_PATH:$PATH" tienda en

    /etc/.bashrc

  3. Variables persistentes específicas del usuario en el formato de PATH DEFAULT=/usr/bin:usr/local/bin store in

    ~/.pam_environment

Para obtener más detalles sobre el n. ° 2, consulte esta respuesta de Ask Ubuntu . NOTA: # 3 es la recomendación de Ubuntu pero puede tener problemas de seguridad en el mundo real.


Puede agregarlo a su archivo de configuración de shell, por ejemplo $HOME/.bashrc o más globalmente en /etc/environment .


Tienes que editar tres archivos para establecer una variable de entorno permanente de la siguiente manera:

  • ~ / .bashrc

    Cuando abre cualquier ventana de terminal, este archivo se ejecutará. Por lo tanto, si desea tener una variable de entorno permanente en todas sus ventanas de terminal, debe agregar la siguiente línea al final de este archivo:
    exportar DISPLAY = 0

  • ~ / .profile

  • Al igual que Bashrc , debe poner la línea de comando mencionada al final de este archivo para tener su variable de entorno en cada inicio de sesión de su sistema operativo.

  • / etc / environment

  • Si desea que su entorno variable en cada ventana o aplicación (no solo la ventana de terminal) debe editar este archivo. Agregue el siguiente comando al final de este archivo:
    DISPLAY = 0
    Tenga en cuenta que en este archivo no es necesario escribir el comando de exportación

Normalmente debe reiniciar su computadora para aplicar estos cambios. Pero puede aplicar cambios en bashrc y perfil mediante estos comandos:

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

Pero para / etc / environemnt no tienes más remedio que reiniciar (hasta donde yo sé)

  • Una solución simple

  • He escrito una secuencia de comandos simple para este procedimiento para hacer todo ese trabajo. Solo tiene que establecer el nombre y el valor de su variable de entorno.

    #!/bin/bash echo "Enter variable name: " read variable_name echo "Enter variable value: " read variable_value echo "adding " $variable_name " to einvironment 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 wanna 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

    Guarde estas líneas en un shfile, luego hágalo ejecutable y ¡simplemente ejecútelo!


    Un ejemplo particular: tengo Java 7 y Java 6 instalados, necesito ejecutar algunas compilaciones con 6, otras con 7. Por lo tanto, necesito modificar dinámicamente JAVA_HOME para que maven recoja lo que quiero para cada compilación. Hice lo siguiente:

    • creado el script j6.sh que simplemente exporta JAVA_HOME=... ruta a la instalación j6 ...
    • luego, como lo sugiere uno de los comentarios anteriores, cada vez que necesito J6 para una compilación, ejecuto source j6.sh en ese terminal de comando respectivo. Por defecto, mi JAVA_HOME está configurado a J7.

    Espero que esto ayude.


    agregue la línea a su .bashrc o .profile . Las variables establecidas en $HOME/.profile están activas para el usuario actual, las de /etc/profile son globales. El .bashrc se tira en cada inicio de sesión de bash.