La ruta del shell (es decir, PATH) para un usuario en OSX es un variable definir un conjunto de ubicaciones en el sistema de archivos mediante el cual el usuario puede utilizar ciertas aplicaciones, comandos y shell scripts sin necesidad de especificar la ruta completa a ese comando o programa en el Terminal.
Si introduce abc
en Terminal la primera aparición de abc
en una de las rutas definidas en PATH se ejecutará.
Para acceder o imprimir la variable PATH hay que utilizar $PATH.
Ejemplo:
echo $PATH
La variable PATH tiene una parte general y otra específica del usuario.
1. Parte general:
La parte general está definida por el archivo (superior) /etc/rutas y por el contenido (inferior) de la carpeta /etc/rutas.d .
El contenido por defecto del archivo /etc/rutas (en OS X) es:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
La carpeta por defecto /etc/rutas.d está vacío. En los sistemas más antiguos con una instalación X11 la carpeta contiene un archivo llamado 50-X11 con el contenido
/usr/X11/bin
que añade una ruta adicional ( /usr/X11/bin ) a PATH.
El preámbulo número- sólo define el orden de carga.
Mi /etc/rutas.d contiene los siguientes archivos:
/etc/paths.d/40-mysql #file content: /usr/local/mysql/bin
/etc/paths.d/50-X11 #file content: /usr/X11/bin
/etc/paths.d/60-testdisk #file content: /usr/local/testdisk
/etc/paths.d/70-git #file content: /usr/local/git/bin
El PATH resultante es
echo PATH$
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/X11/bin:/usr/local/testdisk:/usr/local/git/bin
2. Parte específica del usuario:
La parte específica del usuario está definida por el archivo ~/.bash_profile . Si ha creado una carpeta bin en su carpeta de usuario y ha instalado algunas aplicaciones allí, puede añadir la siguiente línea en ~/.bash_profile
export PATH="/Users/username/bin:$PATH"
o
export PATH="$PATH:/Users/username/bin"
La primera entrada ejecuta preferentemente un comando abc
encontrado en la carpeta /bin del usuario, el segundo un comando abc
que se encuentra en la ruta general antes de ejecutar uno con el mismo nombre en la carpeta ~/bin.
Esta parte de PATH definida por .bash_profile sólo es efectiva para el usuario respectivo.
Para añadir la ruta introducida en .bash_profile al PATH actual inmediatamente tiene que originar el archivo una vez:
source ~/.bash_profile
3. Caminos temporales
Mediante la emisión de export PATH="/Users/username/bin:$PATH"
o export PATH="$PATH:/Users/username/bin"
en Terminal puedes añadir una ruta temporalmente.
Esta parte del PATH se pierde después de cerrar la ventana del Terminal, cerrar la sesión o reiniciar el Mac.
Ejemplos (utilizando la parte general de arriba):
El archivo ~/.bash_profile contiene export PATH="/Users/username/bin:$PATH"
y emite en el Terminal export PATH="/Users/username/bin2:$PATH"
entonces el PATH resultante es:
/Users/username/bin2:/Users/username/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/X11/bin:/usr/local/testdisk:/usr/local/git/bin
\____temp. path_____/
El archivo ~/.bash_profile contiene export PATH="$PATH:/Users/username/bin"
y emite en el Terminal export PATH="/Users/username/bin2:$PATH"
entonces el PATH resultante es:
/Users/username/bin2:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin:/usr/X11/bin:/usr/local/testdisk:/usr/local/git/bin:/Users/username/bin
\____temp. path_____/
Resumen
PATH (o $PATH) está definido por varios archivos: /etc/paths, los archivos en /etc/paths.d y ~/.bash_profile y en caso de añadir una ruta temporal por el contenido adicional de la RAM.