1.7. El terminal com a eina de treball
1.7.4. Localitzant ordres
Ara que heu escrit algunes ordres, pot ser que us pregunteu on estan ubicades aquestes ordres i com el shell troba les ordres que escriviu. Per trobar les ordres, el shell busca en el que es coneix com a path (en castellà, ruta). Per a les ordres que no estan en el vostre path, podeu escriure la identitat completa de la ubicació de l’ordre.
Si coneixeu el directori que conté l’ordre que desitgeu executar, podeu escriure la ruta completa, o absoluta, d’aquesta ordre. Per exemple, podeu executar l’ordre date
que es troba dins del directori /bin escrivint:
$ /bin/date
Per descomptat, això pot ser inconvenient, especialment si la comanda resideix en un directori amb una ruta llarga. La millor manera és tenir les ordres emmagatzemades en directoris coneguts i després afegir aquests directoris a la variable d’entorn PATH del vostre shell. El path consisteix en una llista de directoris que es verifiquen seqüencialment per a les ordres que escriviu. Per veure el vostre path actual, escriviu el següent:
$ echo $PATH
/home/student/bin:/home/student/.local/bin:/usr/local/sbin: /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
Els resultats mostren un path predeterminat comú per a un usuari regular de Gnu/Linux. Els directoris a la llista del path estan separats per dos punts. La majoria de les ordres d’usuari que venen amb Gnu/Linux s’emmagatzemen en els directoris /bin, /usr/bin o /usr/local/bin. Els directoris /sbin i /usr/sbin contenen ordres administratives (alguns sistemes Gnu/Linux no col·loquen aquests directoris en els paths dels usuaris regulars). El primer directori mostrat és el directori bin en el directori d’inici de l’usuari (/home/student/bin). Si desitges agregar les teves pròpies ordres o scripts de shell, col·loques el directori bin al teu directori d’inici (ie. /home/student/bin per a un usuari anomenat student). Aquest directori s’afegeix automàticament al teu path en alguns sistemes Gnu/Linux, tot i que és possible que necessitis crear aquest directori o agregar-lo al teu PATH en altres sistemes Gnu/Linux. Llavors, sempre que agregues l’ordre al teu bin amb permís d’execució, pots començar a usar-lo simplement escrivint el nom de l’ordre en l’indicador del teu shell. Si es considera que la nova ordre estigui disponible per a tots els usuaris, amb l’usuari root agrega’l al directori /usr/local/bin o /opt/nom_paquet/bin.
A diferència d’alguns altres sistemes operatius, Gnu/Linux no verifica el directori actual de l’executable. Immediatament, comença a buscar en el path, i els executables en el directori actual només s’executen si estan en la variable PATH o si doneu la seva direcció absoluta (com /home/student/scriptx.sh) o relativa (per exemple, i fixeu-vos en el punt abans de la contrabarra, ./scriptx.sh). Els directoris que pertanyen al path d’executables es poden esbrinar escrivint $PATH en el prompt del terminal:
$ echo $PATH
/home/student/.sdkman/candidates/java/current/bin: /home/student/miniconda3/bin: /home/student/miniconda3/condabin: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin: /bin:/usr/games:/usr/local/games:/snap/bin
L’ordre del directori del path és important. Els directoris es verifiquen d’esquerra a dreta. Llavors, en aquest exemple, si hi ha una ordre anomenada foo
ubicada en ambdós directoris /bin i /usr/bin, s’executa el que està al /bin
. Perquè s’executi l’altra ordre foo, heu d’escriure el path complet de l’ordre o canviar la teva variable PATH (un exemple pràctic de com canviar la variable PATH i agregar directoris es descriu en els apartats 1.15 i 1.17).