La respuesta de Grzegorz Żur a otra pregunta lo capta brillantemente. Desafortunadamente, estaba escondido entre muchas otras respuestas.
Hay múltiples formas de hacerlo. La solución real depende del propósito.
Los valores de las variables generalmente se almacenan en una lista de asignaciones o en un script de shell que se ejecuta al inicio del sistema o sesión de usuario. En el caso del script de shell, debe usar una sintaxis de shell específica.
Todo el sistema
/etc/environment
Lista de asignaciones únicas. Perfecto para agregar directorios de todo el sistema como/usr/local/something/bin
aPATH
variable o definiciónJAVA_HOME
./etc/xprofile
Script de shell ejecutado al iniciar la sesión del sistema X Window. Esto se ejecuta para cada usuario que inicia sesión en X WindowSystem. Es una buena opción paraPATH
entradas que son válidas para todos los usuarios como/usr/local/something/bin
. El archivo está incluido en otro script, así que use la sintaxis de shell POSIX, no la sintaxis de su shell de usuario./etc/profile
y/etc/profile.d/*
Guión de concha. Esta es una buena opción para sistemas de solo shell. Esos archivos solo los leen los shells./etc/<shell>.<shell>rc
. Guión de concha. Esta es una mala elección porque es específica de un solo caparazón.
Además, /etc/environment
no es un archivo de secuencia de comandos, sino que consta de expresiones de asignación, una por línea. Dado que este archivo almacena la configuración de ubicación y ruta de todo el sistema, es la opción más citada. Usando /etc/profile
no se prefiere. Solo existe para apuntar a /etc/bash.bashrc
y recopilar entradas de /etc/profile.d
Sesión de usuario
~/.pam_environment
. Lista de asignaciones únicas. Cargado por PAM al comienzo de cada sesión de usuario, es irrelevante si se trata de una sesión o shell del sistema XWindow. No puede hacer referencia a otra variable, incluidoHOME
oPATH
por lo que tiene un uso limitado.~/.xprofile
Guión de concha. Esto se ejecuta cuando el usuario inicia sesión en el sistema X Window System. Las variables definidas aquí son visibles para cada aplicación X. Elección perfecta para extenderPATH
con valores como~/bin
o~/go/bin
o definiendoGOPATH
específico del usuario oNPM_HOME
. El archivo está incluido en otro script, así que use la sintaxis de shell POSIX, no la sintaxis de su shell de usuario. Su editor de texto gráfico o IDE iniciado por acceso directo verá esos valores.~/.profile
Guión de concha. Será visible solo para programas iniciados desde terminal o emulador de terminal. Es una buena opción para sistemas de solo shell.~/.<shell>rc
. Guión de concha. Esta es una mala elección porque es específica de un solo caparazón.
Para cambio temporal:
~$ export PATH=$PATH:~/root/scripts
Para un cambio permanente, puede agregar esta línea al /etc/environment
archivo como este:
PATH=$PATH:~/root/scripts