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:
Variables persistentes en todo el sistema en el formato de
JAVA_PATH=/usr/local/java
store en/etc/environment
Variables persistentes en todo el sistema que hacen referencia a variables tales como
export PATH="$JAVA_PATH:$PATH"
tienda en/etc/.bashrc
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
#!/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 exportaJAVA_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, miJAVA_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.