Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 a écrit :
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 a écrit :
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