#1 Le 14/05/2011, à 22:14
- Sebulba
Question au lancement de warzone2100 vie le terminal [RÉSOLU]
Bonjour à tous.
Mon fichier warzone2100 se trouve dans /usr/games/
Vous pourriez m'expliquer la différence entre les deux opération ci-bas ?
sebulba@sebulba:/usr/games$ warzone2100
La commande « warzone2100 » est disponible dans « /usr/games/warzone2100 »
La commande n'a pas pu être localisée, car « /usr/games » n'est pas dans la variable d'environnement PATH.
warzone2100 : commande introuvable
Cette méthode ne fonctionne pas
sebulba@sebulba:/usr/games$ /usr/games/warzone2100
Celle-ci fonctionne.
Dernière modification par Sebulba (Le 15/05/2011, à 08:14)
Pascal Verstraeten
pascal.verstraeten@mambourg-charleroi.be
www.mambourg-charleroi.be/net
[Site du Mambourg] [Forum de discussion]
Hors ligne
#2 Le 15/05/2011, à 06:14
- pode
Re : Question au lancement de warzone2100 vie le terminal [RÉSOLU]
sebulba@sebulba:/usr/games$ /usr/games/warzone2100
Tu as donné le chemin absolu vers l'exécutable, donc la commande a pu s'exécuter.
sebulba@sebulba:/usr/games$ warzone2100 La commande « warzone2100 » est disponible dans « /usr/games/warzone2100 » La commande n'a pas pu être localisée, car « /usr/games » n'est pas dans la variable d'environnement PATH. warzone2100 : commande introuvable
Tu as lancé une commande sans donner de chemin (absolu ou relatif). Dans ce cas, le shell de connexion (certainement bash) va chercher où peut bien être cette commande. Pour cela, il se base sur la variable PATH, qui est la variable où on stocke la liste des répertoires (séparés par des : ) dans lesquels un shell cherche les commandes.
Sur mon PC, avec un utilisateur normal :
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
/usr/games étant normalement dans le PATH, j'aurais pensé que la commande warzone2100 allait fonctionner aussi.
Par exemple, je peux lancer le jeu sol (qui est dans /usr/games) depuis n'importe quel répertoire.
Il est vrai que l'utilisateur root n'a pas la même valeur de PATH par défaut :
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Quel est, sur ton poste, le contenu de la variable PATH, pour l'utilisateur avec lequel tu lances la commande ?
Sinon, le fait que tu te sois déplacé dans le répertoire qui contient la commande, avant de la lancer, n'apporte rien, sauf si, dans la variable PATH, il y a un . (qui représente le répertoire courant). Mais avoir le . dans le PATH n'est pas conseillé, pour des questions de sécurité.
Quand on est dans le répertoire contenant un exécutable qu'on veut lancer, et que ce répertoire n'est pas dans le PATH, le plus simple est de faire précéder la commande par ./
Cela revient à indiquer un chemin relatif par rapport au répertoire courant.
Exemple :
sebulba@sebulba:/usr/games$ ./warzone2100
Dernière modification par pode (Le 15/05/2011, à 06:19)
Hors ligne
#3 Le 15/05/2011, à 08:14
- Sebulba
Re : Question au lancement de warzone2100 vie le terminal [RÉSOLU]
Merci pour toutes ces explications, je viens d'en apprendre beaucoup grâce à toi ;o)
Pascal
Pascal Verstraeten
pascal.verstraeten@mambourg-charleroi.be
www.mambourg-charleroi.be/net
[Site du Mambourg] [Forum de discussion]
Hors ligne