¿Cómo añadir un directorio al PATH?

¿Cómo puedo añadir un directorio al $PATH en Ubuntu y hacer los cambios permanentes?

Solución

Usando ~/.profile para establecer $PATH

Una ruta establecida en .bash_profile sólo se establecerá en un shell de inicio de sesión de bash (bash -l). Si pones tu ruta en .profile estará disponible para toda tu sesión de escritorio. Esto significa que incluso metacity la utilizará.

Por ejemplo ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Además, puedes comprobar la variable PATH de un proceso mirando su entorno en /proc/[pid]/environ (sustituye [pid] por el número de ps axf). Por ejemplo, utilice grep -z "^PATH" /proc/[pid]/environ.

Nota:

bash como shell de inicio de sesión no analiza .profile si existe .bash_profile o .bash_login. Desde man bash :

busca ~/.bash_profile, ~/.bash_login, y ~/.profile, en ese orden, y lee y ejecuta los comandos del primero que existe y sea legible.

Vea las respuestas más abajo para información sobre .pam_environment, o .bashrc para shells interactivos que no son de inicio de sesión, o establezca el valor globalmente para todos los usuarios poniendo un script en /etc/profile.d/ o use /etc/X11/Xsession.d/ para afectar la sesión de los administradores de pantalla.

Comentarios (11)

Edita .bashrc en tu directorio personal y añade la siguiente línea:

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

Para que los cambios surtan efecto, tendrás que crear tu .bashrc o cerrar la sesión (o reiniciar el terminal). Para obtener su .bashrc, simplemente escriba

$ source ~/.bashrc
Comentarios (8)

Añadirlo a .bashrc funcionará pero creo que la forma más tradicional de configurar las variables de ruta es en .bash_profile añadiendo las siguientes líneas.

PATH=$PATH:/my/path/foo
export PATH

Según este hilo parece que el comportamiento de Ubuntu es ligeramente diferente al de RedHat y los clones.

Comentarios (5)