Buscar..


Sintaxis

  • Agregar ruta: PATH = $ PATH: / new / path
  • Agregar ruta: PATH = / new / path: $ PATH

Parámetros

Parámetro Detalles
CAMINO Variable de entorno de ruta

Observaciones

Bash archivo de configuración:

Este archivo se obtiene cada vez que se inicia un nuevo shell interactivo de Bash.

En sistemas GNU / Linux es generalmente el archivo ~ / .bashrc; en Mac es ~ / .bash_profile o ~ / .profile

Exportar:

La variable PATH se debe exportar una vez (se realiza de forma predeterminada). Una vez que se exporte, seguirá exportándose y cualquier cambio que se le haga se aplicará de inmediato.

Aplicar los cambios:

Para aplicar los cambios a un archivo de configuración de Bash, debe volver a cargar ese archivo en un terminal ( source /path/to/bash_config_file )

Agregar una ruta a la variable de entorno PATH

La variable de entorno PATH se define generalmente en ~ / .bashrc o ~ / .bash_profile o / etc / profile o ~ / .profile o /etc/bash.bashrc (archivo de configuración Bash específico de la distro)

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin

Ahora, si queremos agregar una ruta (por ejemplo, ~/bin ) a la variable PATH:

PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin

Pero esto modificará el PATH solo en el shell actual (y su subshell). Una vez que salga del shell, esta modificación desaparecerá.

Para hacerlo permanente, debemos agregar ese bit de código al archivo ~ / .bashrc (o lo que sea) y volver a cargar el archivo.

Si ejecuta el siguiente código (en el terminal), agregará ~/bin a la RUTA permanentemente:

echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

Explicación:

  • echo 'PATH=~/bin:$PATH' >> ~/.bashrc agrega la línea PATH=~/bin:$PATH al final del archivo ~ / .bashrc (puede hacerlo con un editor de texto)
  • source ~/.bashrc vuelve a cargar el archivo ~ / .bashrc

Esto es un poco de código (ejecutado en el terminal) que verificará si una ruta ya está incluida y agregará la ruta solo si no:
path=~/bin            # path to be included
bashrc=~/.bashrc      # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"

Eliminar una ruta de la variable de entorno PATH

Para eliminar un PATH de una variable de entorno PATH, debe editar el archivo ~ / .bashrc o ~ / .bash_profile / / etc / profile o ~ / .profile o /etc/bash.bashrc (específico de la distro) y eliminar la asignación de ese camino particular

En lugar de encontrar la asignación exacta, puede hacer un reemplazo en el $PATH en su etapa final.

Lo siguiente quitará $path de forma segura de $PATH :

path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"

Para hacerlo permanente, deberá agregarlo al final de su archivo de configuración de bash.


Puedes hacerlo de forma funcional:
rpath(){
    for path in "$@";do
        PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
    done
    echo "$PATH"
}

PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...

Esto hará que sea más fácil manejar múltiples rutas.

Notas:

  • Deberá agregar estos códigos en el archivo de configuración de Bash (~ / .bashrc o lo que sea).
  • Ejecute source ~/.bashrc para volver a cargar el archivo de configuración de Bash (~ / .bashrc).


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow