sábado, 1 de junio de 2013

Añadir un directorio a la variable PATH

Las variables son un importante aspecto dentro de los sistemas GNU/Linux que aún no he abordado, pero que tengo pendiente hacer pronto. Resumiendo mucho diré que son un conjunto de datos concretos que condicionan nuestro trabajo en la terminal y que podemos almacenar y modificar. Por si prefieren la definición de Wikipedia aquí la tienen.

Una de las variables más importantes de Linux es PATH, la cual determina los directorios donde la shell busca los ficheros binarios (los ejecutables en terminología Windows) de los comandos para no tener que teclearlos con su ruta completa. Al hilo del anterior post, resulta que en Debian Wheezy no figura el directorio /sbin en la variable PATH, por lo que todos los comandos contenidos ahí, entre los que están los relativos a los módulos del kernel como modinfo, modprobe o rmmod, no se ejecutan automáticamente cuando los tecleamos en la terminal y pulsamos enter. Para que esto sea así tenemos que añadir el susodicho directorio /sbin a la variable PATH. Procedamos.

Primero veamos los directorios que ya están incluidos en la variable PATH. Lo hacemos anteponiendo el símbolo del dólar ( $ ) a PATH:

paco@paco-pc:~$PATH
bash: /usr/local/bin:usr/bin:/bin:/usr/local/games:usr/games: No existe el fichero o el directorio
paco@paco-pc:~$

También podemos verlo usando el comando echo:

paco@paco-pc:~$ echo $PATH
bash: /usr/local/bin:usr/bin:/bin:/usr/local/games:usr/games
paco@paco-pc:~$

Bien, estos son los directorios que la variable PATH trae por defecto, separados por dos puntos:

/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games

Ahora añadiremos el directorio /sbin a la variable PATH usando el comando export:

paco@paco-pc:~sudo export PATH=$PATH:/sbin
paco@paco-pc:~$

Ya está añadido. Lo podemos ver si volvemos a listar la variable PATH:

paco@paco-pc:~$ echo $PATH
bash: /usr/local/bin:usr/bin:/bin:/usr/local/games:usr/games:/sbin
paco@paco-pc:~$

Ocurre que este cambio es temporal y dejará de tener efecto en cuanto cerremos la sesión. Si queremos que el cambio sea permanente tenemos varias opciones. Podemos editar el archivo ~/.bashrc (recordemos que el carácter ~ equivale a /home/usuario, que el punto en primer lugar significa archivo oculto y que estamos hablando de la shell bash), el archivo ~/bash_profile, o el ~.profile en caso de que el anterior no exista y añadirle la siguiente línea:

PATH="$PATH:/sbin"

Si lo queremos hacer directamente desde el terminal sin abrir ningún editor de textos, usaremos el comando echo para definir la línea que queremos trasladar al archivo ~/.bashrc:

paco@paco-pc:~$ echo "export PATH=$PATH:/sbin" >> ~/.bashrc
paco@paco-pc:~$

Empleando los caracteres redireccionadores >> hemos añadido la línea entrecomillada al final del archivo ~/.bashrc (mucho ojito, que si solo ponemos un redireccionador sobreescribiremos el archivo). Terminamos aplicando el comando source para recargar el archivo ~/.bashrc:

paco@paco-pc:~$ source ~/.bashrc
paco@paco-pc:~$

Otra manera de hacerlo es estableciendo la variable y luego incorporándola con el comando export, todo en la misma línea:

paco@paco-pc:~$ PATH=/sbin:$PATH ; export PATH
paco@paco-pc:~$

Y aquí se acabó lo que se daba.

Y para "Path" el tema del mismo nombre que interpretan en directos los finlandeses Apocalyptica.