Esto me está irritando. Vi varias sugerencias (todas con diferentes archivos y sintaxis) y ninguna funcionó.
¿Cómo configuro una variable de entorno para un usuario específico? Estoy en Debian Squeeze. ¿Cuál es la sintaxis exacta que debo poner en el archivo para hacer ABC = "123"?
environment-variables
path
Gilles
fuente
fuente
.bashrc
es el lugar principal para eso..bash_profile
contiene algo como[[ -f ~/.bashrc ]] && . ~/.bashrc
.Respuestas:
Debe poner la declaración en los archivos de inicialización de su shell:
Si está utilizando bash, ash, ksh o algún otro shell de estilo Bourne, puede agregar
en su
.profile
archivo (${HOME}/.profile
). Esta es la situación predeterminada en la mayoría de las instalaciones de Unix, y en particular en Debian.Si su shell de inicio de sesión es bash, puede usar
.bash_profile
(${HOME}/.bash_profile
) o en su.bash_login
lugar.Nota: Si alguno de estos archivos existe y su shell de inicio de sesión es bash,
.profile
no se lee cuando inicia sesión a través de ssh o en una consola de texto, pero aún podría leerse en lugar de.bash_profile
iniciar sesión desde la GUI. Además, si no hay.bash_profile
, entonces úselo.bashrc
.Si ha configurado zsh como su shell de inicio de sesión, use en
~/.zprofile
lugar de~/.profile
.Si está utilizando tcsh, agregue
en
.login
archivo (${HOME}/.login
)si está utilizando otro shell, consulte el manual del shell cómo definir las variables de entorno y qué archivos se ejecutan al inicio del shell.
fuente
su user
es cambiar la propiedad del shell actual al nombre de usuario arg, manteniendo el directorio de inicio y el entorno del usuario llamante. Para ingresar un shell de tal manera que se convierta en el nuevo usuario y obtenga todos sus ajustes ambientales ($ PATH, $ HOME, $ ABC, etc.), debe pasar a - como primer argumento para su.su - username
logrará lo que está pidiendo.man su
)su
en primer lugar? ¿No acabas de crear una raíz propiedad.profile
que no puede ser utilizada por el usuario?.profile
todos los shells compatibles con Bourne leen, no debe escribir la sintaxis de Bash en ese archivo. En particular,export VARIABLE=value
debe ser refactorizadoVARIABLE=value; export VARIABLE
.Use el
/etc/environment
archivo para configurar las variables de entorno. Luego agregue la siguiente línea dentro del/etc/environment
archivo.Ahora se podrá acceder a la variable ABC desde todas las sesiones de usuario. Para probar la salida de la variable, primero actualice la variable de entorno con el comando
y ejecutar
echo $ABC
.fuente
/etc/environment
no sea compatible con la sintaxis completa de bash, algo que descubrí por las malas. Por ejemplo, ponerPATH="/usr/bin:/usr/sbin"
y luego hacerPATH="$PATH:/foo/bar"
en una línea siguiente no funcionará/etc/environment
, incluso si reiniciaba el terminal bash o escribíasource /etc/environment
. Entonces, si tiene problemas donde la variable de entorno no se perpetúa, intente reiniciar.Este es un procedimiento general que puede usar para casi cualquier shell. En cualquier caso, debe saber con qué shell normalmente iniciaría sesión el usuario:
Luego tiene que averiguar qué archivos de puntos leería normalmente este shell:
Un atajo que podría funcionar es enumerar los archivos de puntos que contienen el nombre del shell:
Si desea verificar si uno de los archivos se lee realmente durante el inicio de sesión, simplemente puede imprimir el nombre del archivo en cada uno de ellos, por ejemplo:
Al iniciar sesión, debe ver qué archivos se están leyendo y puede decidir cuál modificar. Tenga en cuenta que no debe intentar usar
echo "$0"
o algo similar, porque el valor de$0
depende de cómo procese el shell los archivos de puntos, y podría ser engañoso.Cuando se trata de declarar la variable "permanentemente", tenga en cuenta que esto solo se extiende a la sesión. No hay forma de acceder al valor de una variable sin una sesión, por lo que no tiene sentido fuera de una. Si quiere decir "solo lectura", eso depende del shell, y en Bash puede usar:
si ya tiene un valor, o
para asignarlo al mismo tiempo. No todos los proyectiles tienen esta característica.
Para declarar una variable en la mayoría de los shells, debe usar un nombre de variable (
[A-Za-z_][A-Za-z0-9_]*
), seguido de un signo igual (y sin espacios alrededor del signo igual), luego un valor (preferiblemente citado a menos que el valor sea simple[A-Za-z0-9_]+
). Por ejemplo:fuente
Usar exportación.
Para verificar si está configurado, use
y / o
Para agregarlo permanentemente, agréguelo a su
~/.bashrc
archivo.fuente
permenate
y nopermenently
: Dbashrc
permenate
? Qué quiere decirpermanent
?El comando exacto es:
fuente
~/.profile
y (b) deja espacio antes y después=
?La mejor manera que funcionó para mí es modificar el archivo .bashrc en el shell BASH.
use esto por ejemplo:
agregue esta línea:
p.ej :
export HOME = "/home/user/"
Recuerde usarlo,
""
ya que el uso' '
no funcionará y su archivo bashrc informará un error durante el abastecimiento.fuente en la sesión actual.
También traté de modificar el archivo / etc / environment pero no me permitió crear una nueva variable de entorno y cuando lo obtuve, me provocó un error de que no se encuentra la variable definida.
fuente