Pregunta ¿Cómo establecer permanentemente $ PATH en Linux / Unix?


Estoy tratando de agregar un directorio a mi ruta, por lo que siempre estará en mi ruta de Linux. He intentado:

export PATH=$PATH:/path/to/dir

Esto funciona, sin embargo, cada vez que salgo de la terminal y comienzo una nueva instancia de la terminal, esta ruta se pierde y necesito ejecutar nuevamente el comando de exportación.

¿Cómo puedo hacerlo así que esto se establecerá de forma permanente?


596
2018-02-01 00:57


origen


Respuestas:


Debe agregarlo a su ~/.profile o ~/.bashrc archivo.

export PATH="$PATH:/path/to/dir"

Dependiendo de lo que esté haciendo, también puede querer enlazar simbólicamente a los binarios:

cd /usr/bin
sudo ln -s /path/to/binary binary-name

Tenga en cuenta que esto no actualizará automáticamente su ruta durante el resto de la sesión. Para hacer esto, debes ejecutar:

source ~/.profile 
or
source ~/.bashrc

730
2018-02-01 01:01



No puedo creer que nadie mencionó /etc/environment archivo. Su único propósito es almacenar variables de entorno. Originalmente, la variable $ PATH se define aquí. Esta es una pasta de mi /etc/environment archivo:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Entonces puede abrir este archivo como root y agregar lo que desee.

Para resultados inmediatos, Ejecutar (prueba como usuario normal y raíz):

source /etc/environment && export PATH

ACTUALIZAR:

Si utiliza zsh (a.k.a Z Shell), agregue esta línea justo después de los comentarios en /etc/zsh/zshenv:

source /etc/environment

Encontré esta pequeña peculiaridad en Ubuntu 15.10, pero si tu zsh no está recibiendo el correcto CAMINO, esta podría ser la razón


199
2018-05-27 16:27



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 de la sesión del usuario. En el caso del script de shell, debe usar una sintaxis de shell específica.

Sistema completo

  1. /etc/environment Lista de asignaciones únicas. Perfecto para agregar directorios de todo el sistema como /usr/local/something/bin a PATH variable o definiendo JAVA_HOME.
  2. /etc/xprofile Script de Shell ejecutado al iniciar la sesión de X Window System. Esto se ejecuta para cada usuario que inicia sesión en X Window System. Es una buena opción para PATH entradas que son válidas para cada usuario como /usr/local/something/bin. El archivo está incluido en otra secuencia de comandos, por lo tanto, utilice la sintaxis de shell POSIX, no la sintaxis de su shell de usuario.
  3. /etc/profile y /etc/profile.d/* Guión de shell Esta es una buena opción para sistemas de solo shell. Esos archivos son leídos solo por shells.
  4. /etc/<shell>.<shell>rc. Guión de shell Esta es una opción pobre porque es solo un shell específico.

Sesión de usuario

  1. ~/.pam_environment. Lista de asignaciones únicas. Cargado por PAM al comienzo de cada sesión de usuario, irrelevante si se trata de una sesión o shell de X Window System. No puede hacer referencia a otras variables, incluido HOME o PATH por lo tanto, tiene un uso limitado.
  2. ~/.xprofile Guión de shell 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. La elección perfecta para extender PATH con valores tales como ~/bin o ~/go/bin o definiendo el usuario específico GOPATH o NPM_HOME. El archivo está incluido en otra secuencia de comandos, por lo tanto, utilice la sintaxis de shell POSIX, no la sintaxis de su shell de usuario. Su editor de texto gráfico o IDE iniciado por atajo verá esos valores.
  3. ~/.profile Guión de shell Será visible solo para programas iniciados desde emulador de terminal o terminal. Es una buena opción para sistemas de solo shell.
  4. ~/.<shell>rc. Guión de shell Esta es una opción pobre porque es solo un shell específico.

Documentación específica de distribución


105
2017-11-16 21:29



Pon el export declaración en ~/.bashrc. Mi .bashrc contiene esto:

export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH

65
2018-02-01 00:59



Puedes establecer $PATH permanentemente de 2 maneras.

  1. Para establecer la ruta para un usuario particular: Es posible que deba hacer la entrada en .bash_profile en el directorio de inicio en el usuario.

    Por ejemplo, en mi caso estableceré la ruta de Java en el perfil de usuario de Tomcat

    [tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
    
  2. Para establecer una ruta común para TODOS los usuarios del sistema, es posible que deba establecer una ruta como esta:

    [root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
    

29
2018-01-03 11:35



Puede usar en Centos o RHEL para usuarios locales:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

Esto agrega el directorio actual (o puede usar otro directorio) a la RUTA, esto lo hace permanente pero entra en vigor en el próximo inicio de sesión del usuario.

Si no desea volver a iniciar sesión, puede usar:

source ~/.bash_profile

Eso recarga el # User specific environment and startup programs este comentario está presente en .bash_profile


9
2017-10-21 04:11



Puede agregar esa línea al archivo de configuración de la consola (por ejemplo, .bashrc) o a .profile


5
2018-02-01 00:59