Cuando escribe un comando en la línea de comando, básicamente le está diciendo al shell que ejecute un archivo ejecutable con el nombre dado. En Linux, estos programas ejecutables como ls
, find
, file
y otros, generalmente viven dentro de varios directorios diferentes en su sistema. Cualquier archivo con permisos ejecutables almacenados en estos directorios se puede ejecutar desde cualquier ubicación. Los directorios más comunes que contienen programas ejecutables son /bin
, /sbin
, /usr/sbin
, /usr/local/bin
y /usr/local/sbin
.
Pero, ¿cómo sabe el shell en qué directorios buscar programas ejecutables? ¿El shell busca en todo el sistema de archivos?
La respuesta es simple. Cuando escribe un comando, el shell busca en todos los directorios especificados en el usuario $PATH
variable para un archivo ejecutable de ese nombre.
Este artículo muestra cómo agregar directorios a su $PATH
en sistemas Linux.
Que es $PATH
en Linux #
El $PATH
variable ambiental es una lista de directorios delimitada por dos puntos que le dice al shell en qué directorios buscar archivos ejecutables.
Para comprobar qué directorios hay en tu $PATH
, puede usar el printenv
o echo
comando:
echo $PATH
La salida se verá así:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Si tiene dos archivos ejecutables que comparten el mismo nombre ubicados en dos directorios diferentes, el shell ejecutará el archivo que está en el directorio que viene primero en el $PATH
.
Agregar un Directorio a tu $PATH
#
Hay situaciones en las que es posible que desee agregar otros directorios al $PATH
variable. Por ejemplo, algunos programas pueden estar instalados en diferentes ubicaciones, o puede que desee tener un directorio dedicado para sus scripts personales, pero poder ejecutarlos sin especificar la ruta absoluta a los archivos ejecutables. Para hacer esto, simplemente necesita agregar el directorio a su $PATH
.
Digamos que tiene un directorio llamado bin
ubicado en su directorio de inicio en el que guarda sus scripts de shell. Para agregar el directorio a su $PATH
escribe:
export PATH="$HOME/bin:$PATH"
La export
El comando exportará la variable modificada a los entornos de procesos secundarios de shell.
Ahora puede ejecutar sus secuencias de comandos escribiendo el nombre de la secuencia de comandos ejecutable sin necesidad de especificar la ruta completa al archivo.
Sin embargo, este cambio es solo temporal y válido solo en la sesión de shell actual.
Para que el cambio sea permanente, debe definir el $PATH
variable en los archivos de configuración de shell. En la mayoría de las distribuciones de Linux, cuando inicia una nueva sesión, las variables de entorno se leen de los siguientes archivos:
-
Archivos de configuración específicos de shell global como
/etc/environment
y/etc/profile
. Use este archivo si desea que el nuevo directorio se agregue a todos los usuarios del sistema$PATH
. -
Archivos de configuración específicos de shell por usuario. Por ejemplo, si está utilizando Bash, puede configurar el
$PATH
variable en el~/.bashrc
expediente. Si está utilizando Zsh, el nombre del archivo es~/.zshrc
.
En este ejemplo, estableceremos la variable en ~/.bashrc
expediente. Abra el archivo con su editor de texto y agregue la siguiente línea al final:
nano ~/.bashrc
~/.bashrcexport PATH="$HOME/bin:$PATH"
Guarde el archivo y cargue el nuevo $PATH
en la sesión de shell actual usando el source
comando:
source ~/.bashrc
Para confirmar que el directorio se agregó correctamente, imprima el valor de su $PATH
escribiendo:
echo $PATH
Conclusión #
Agregar nuevos directorios a su usuario o global $PATH
variable es bastante simple. Esto le permite ejecutar comandos y scripts almacenados en ubicaciones no estándar sin necesidad de escribir la ruta completa al ejecutable.
Las mismas instrucciones se aplican a cualquier distribución de Linux, incluidos Ubuntu, CentOS, RHEL, Debian y Linux Mint.
Siéntase libre de dejar un comentario si tiene alguna pregunta.