Variables de entorno en macOS: PATH

La variable de entorno PATH es muy útil. Cualquier ruta a una carpeta que esté contenida en la variable permite ejecutar los programas que hay en esa carpeta sin más que teclear su nombre, no hará falta la ruta completa.

Las variables de entorno son unos valores dinámicos que hacen referencia a ciertos aspectos del sistema operativo o de algunos programas y que pueden ser consultados y modificados. Entre ellas tenemos en macOS por ejemplo:

  1. SHELL es el shell que se usará por defecto (suele ser bash)
  2. USER es el usuario que ha iniciado sesión
  3. HOME es la localización del directorio principal del usuario USER
  4. PATH es la lista de las rutas a carpetas con ejecutables que serán reconocidas automáticamente por el sistema operativo.

Por ejemplo, si la carpeta /usr/bin está en la variable PATH y tenemos el programa /usr/bin/mi_app, desde una ventana de Terminal podremos ejecutarlo con escribir solamente mi_app. Si mi_app estuviese en una carpeta no incluida en PATH, habría que teclear la ruta completa en Terminal.

En ocasiones queremos utilizar repetidamente un ejecutable que hemos descargado de Internet y cada vez que lo ejecutamos hay que ir tecleando en Terminal la ruta completa a la carpeta en que lo tenemos, en esos casos es útil copiar el ejecutable a una de las carpetas contenidas en PATH para ahorrarnos trabajo cada vez que lo usemos.

Para copiar los ejecutables a carpetas incluidas en PATH hay que usar el comando
sudo cp /ruta_a_la_carpeta/my_app /usr/local/bin
(se usa sudo porque las carpetas incluidas en PATH suelen ser carpetas protegidas en las que no se pueden copiar archivos sin el permiso adecuado).

La variable PATH del sistema se almacena en el fichero /etc/paths, por lo general contiene las rutas básicas de todo sistema Unix (/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin), lo que exista en este archivo se aplica a todos los usuarios del ordenador.

La variable PATH del usuario se puede modificar en el fichero ~/.bash_profile en el que añadimos líneas como por ejemplo referido a la aplicación Poedit
/Applications/Poedit.app/Contents/MacOS:

PATH=$PATH:/Applications/Poedit.app/Contents/MacOS
 export PATH

Se pueden añadir varias rutas, separadas por el carácter dos puntos.
El fichero ~/.bash_profile si no existe se puede crear al escribir en él por primera vez con

 pico ~/.bash_profile

(se escribe, se guarda con Ctrl+O y se sale con Ctrl+X) y también es posible crearlo por primera vez con el comando

 touch ~/.bash_profile

Para ver el contenido de las variables de entorno, incluida PATH, se usa el comando env que muestra una salida similar a ésta:

TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-color
CLICOLOR=1
TERM_PROGRAM_VERSION=133
USER=pol
__CF_USER_TEXT_ENCODING=0x1F5:0:8
LSCOLORS=cxfxexexDxexexDxDxcxcx
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
PWD=/Users/pol
SHLVL=1
HOME=/Users/pol
LOGNAME=pol
_=/usr/bin/env