Puede hacerlo simplemente declarándolo como nuevo en la línea de comando o volviéndolo a declarar. Por ejemplo, si desea agregar ~/testfoldera su variable de ruta, simplemente puede ingresarla en su terminal actual (esto es solo un ejemplo):
PATH="$HOME/testfolder:$PATH"
Por supuesto, esto solo lo cambiará durante el tiempo que haya abierto la sesión de terminal. Observe el $uso aquí, lo deja fuera para la declaración, pero si desea mostrarlo debe agregarlo $para expandir su contenido.
Si desea declararlos más duraderos y generales, puede agregarlos a su ~/.bashrcarchivo (solo para usted) o en /etc/bash.bashrc(todo el sistema), por ejemplo, si desea que cuenten solo para usted o para todos los usuarios. Otra opción es agregarlo a su .profilearchivo (solo para usted) donde será viable desde el momento en que inicie sesión. Puede hacerlo, echopor ejemplo, si está seguro de que esta variable no está configurada o si crea otras nuevas. (solo un ejemplo):
echo "variable=value" >> /path/filename
Sin embargo, si desea editar un archivo fuera de su directorio de usuarios, que es el caso cuando desea editar /etc/bash.bashrc, debe usarlo, sudopor lo que no puede simplemente usar un 'documento aquí', ya que esto no funcionaría, en su lugar use una línea como la siguiente:
echo "variable=value" | sudo tee -a /path/filename
Sin embargo, si la variable ya existe, puede cambiarla con el sedcomando (también solo un ejemplo):
sed -i.bak 's/variable=value/variable=new-value/' /path/filename
Esto editará la variable en el archivo, pero creará una copia de seguridad antes de la edición. Si cambia los archivos fuera de su directorio de usuarios con sed, debe usarlos sudoen la mayoría de los casos para que la línea sea:
sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename
sedTambién se puede eliminar una variable de un archivo , solo deje la segunda parte de la expresión regular vacía:
sed -i.bak 's/variable=value//' /path/filename
Si está interesado en qué variables de entorno están configuradas, puede usar el envcomando para enumerarlas, ( set -o posix ; set ) | lesso sh -c set. Los tres dan varias cantidades de salida, con la ( set -o posix ; set ) | lessdevolución de la mayoría de las variables que realmente se establecen.
                 
                
( set -o posix ; set )que sea más simple decirlosh -c set. Esto funcionará incluso sishes un enlace simbólico abash(que normalmente no está en las versiones modernas de Ubuntu).sh -c setno muestra realmente todas las variables de entorno establecidas en el sistema. Sin embargo, lo incluiré como una tercera forma de mostrar algunos de ellos.sh -c setmuestra todas las variables de entorno . Simplemente no muestra las variables de shell del shell de llamada, pero estas nunca son heredadas por un proceso que ejecuta desde ese shell, a menos que usted lo hagaexport./etc/environment? Parece que es un atajo a la confusión.No hay un equivalente directo de
setx /m, pero hay formas de lograr lo quesetx /mhace.setx /mponevariable=valueenHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. De No / m (es decir, por usuario)setxsimplemente pone lavariable=valueenHKCU\Environment.Usted solicitó específicamente 'todo el sistema'. Para eso, agregaría el par de valor variable a
/etc/environmentOR a/etc/profile.d/<yourfile>. El primero es evaluado por pam, mientras que el segundo es evaluado por/bin/sh. Por lo tanto, en/etc/profile.d/<yourfile>, agregaríasvariable=value; export variable. (bash también permiteexport variable=value). Para/etc/environmentusted agregaríavariable=value.Los equivalentes por usuario son
~/.pam_environmenty~/.profile.Ver también: https://help.ubuntu.com/community/EnvironmentVariables
fuente
Puede exportar variables de entorno en la línea de comandos, pero no afectará el entorno efectivo en los procesos ya iniciados, solo en el proceso actual y sus subprocesos. Por lo tanto, en la práctica, a menudo es necesario volver a iniciar sesión al cambiar las variables de entorno.
fuente