next up previous contents Next: L'option -.- Up: Les commandes de base. Previous: Archivages et sauvegardes.   Table des matières  


5.18 Le PATH où les commandes sont recherchées.

Toute commande saisie derrière l'invite (shell prompt) se trouve dans un répertoire. Sous UNIX, les commandes (ou programmes exécutables) sont enregistrées parmi quatre répertoires . L'emplacement est déterminé par le type de la commande plutôt que par le paquet logiciel auquel elle appartient. Par exemple, dans le cas d'un traitement de texte, l'exécutable peut être stocké dans un répertoire avec d'autres exécutables totalement différents alors que ses fichiers de polices de caractères sont dans un répertoire avec les polices d'autres paquets logiciels.

Le shell a une technique de recherche des exécutables invoqués à la ligne de commande. Si vous tapez, par exemple, /bin/cp, le shell essaye d'exécuter le programme cp à partir du répertoire /bin. Si vous tapez seulement cp, le shell essaye de trouver la commande cp dans chaque sous-répertoire de votre PATH. Pour visualiser ce qu'est votre PATH, essayez:

echo $PATH 


Vous verrez une ligne de plusieurs répertoires séparés par des caractères : (double-point). /bin:/usr/bin:/usr/local/bin Notez que le répertoire courant . n'est pas affiché. Il est fondamental que le répertoire courant ne soit pas dans le PATH pour des raisons de sécurité. Ceci fait que pour exécuter une commande dans le répertoire courant, il est nécessaire de faire: ./<commande>.

Pour ajouter un nouveau répertoire à votre PATH (imaginons, par exemple, /opt/gnome/bin), faites:

PATH="$PATH:/opt/gnome/bin"

export PATH 



LINUX permet de réaliser l'opération en une seule étape:

export PATH="$PATH:/opt/gnome/bin" 


Il y a une commande supplémentaire, which, permettant de vérifier qu'une commande est localisable via le PATH. Parfois, il y a deux commandes de même nom dans différents répertoires contenus dans le PATH. [Ceci est plus fréquent sur Solaris que sur LINUX]. L'exécution de which <commande> à l'invite permet de localiser la commande que votre shell exécutera. Essayez:

which ls

which cp mv rm

which which

which cranzgots 



which est aussi utile dans les scripts de shell pour révéler si une commande existe, et par conséquent, pour vérifier si un paquet logiciel est installé. Par exemple, which netscape.


next up previous contents Next: L'option -.- Up: Les commandes de base. Previous: Archivages et sauvegardes.   Table des matières  
1-01-2006