Puede hacerlo simplemente declarándolo como nuevo en la línea de comando o volviéndolo a declarar. Por ejemplo, si desea agregar ~/testfolder
a 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 ~/.bashrc
archivo (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 .profile
archivo (solo para usted) donde será viable desde el momento en que inicie sesión. Puede hacerlo, echo
por 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, sudo
por 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 sed
comando (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 sudo
en la mayoría de los casos para que la línea sea:
sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename
sed
Tambié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 env
comando para enumerarlas, ( set -o posix ; set ) | less
o sh -c set
. Los tres dan varias cantidades de salida, con la ( set -o posix ; set ) | less
devolució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 sish
es un enlace simbólico abash
(que normalmente no está en las versiones modernas de Ubuntu).sh -c set
no 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 set
muestra 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 /m
hace.setx /m
ponevariable=value
enHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
. De No / m (es decir, por usuario)setx
simplemente pone lavariable=value
enHKCU\Environment
.Usted solicitó específicamente 'todo el sistema'. Para eso, agregaría el par de valor variable a
/etc/environment
OR 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/environment
usted agregaríavariable=value
.Los equivalentes por usuario son
~/.pam_environment
y~/.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