[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]

Re: command not found



Le Mon, 29 Sep 2003 05:29:37 -0400
nadjib <[email protected]> a écrit:

> bonjour,
> je ne peux pas lancer des fichiers exécutables  sur le 
> terminal par exemple si je tape
> lolo   
> il me donne ce message
> bash: lolo : command not found
> aidez moi 
> @+
> 

L'exécution d'un programme de cette façon n'est possible que s'il se trouve dans
un répertoire qui est présent dans ton chemin d'exécution.  Faire

        % echo $PATH

pour obtenir tous les répertoires disponibles par défaut.

Sinon, il faut indiquer clairement le chemin.

        % /sbin/ifconfig

Ton répertoire courant n'est pas dans le chemin d'exécution.  Si ton programme lolo se
trouve dans le répertoire ou tu es présentement, il ne s'exécutera pas à moins de le
dire explicitement par le préfixe ./ (point, slash), comme

        % ./lolo

Faire simplement 

        % .lolo

ne donnera rien.  Ton shell cherche le fichier exécutable - et caché - .lolo qui ne s'exécutera pas
parce que le répertoire par défaut n'est pas précisé.  Il faut alors faire

        % ./.lolo

mais il est douteux qu'il faille nommer des exécutables cachés de cette façon.

Il faut aussi s'assurer que lolo soit exécutable pour l'utilisateur. 
Lorsqu'il est bien paramétré, bash colorise les exécutables ou ajoute un * (étoile)
à la fin (mais ne pas écrire l'étoile lorsqu'on invoque le programme.  On fait alors

        % chmod +x lolo

pour donner les droits d'execution de lolo à tous ou paramétrer ces droits avec les valeurs octales comme 

        % chmod 700

Plus de détails dans un HOWTO quelconque sur ces valeurs.

Un mot final.  Au cas où certains seraient tentés par l'aventure, ce
n'est pas une bonne habitude d'ajouter le répertoire courant dans son
$PATH afin d'éviter d'écrire le ./ . On prend alors pour acquis que
notre version qui se trouve dans ce répertoire est plus stable que le
programme du même nom qui se trouve dans un répertoire comme /bin ou
/usr/bin par exemple.  Ça peut même devenir catastrophique quand le
programme-maison 'lolo' a une fonction différente d'un programme nommé
'lolo' dans /usr/bin qui serait très connu et très utilisé dans une
autre procédure (une compilation/installation par exemple).

Ciao.

-- 
Marc St-Jacques

Linux from scratch. 
http://www.linuxfromscratch.org
Your distro. Your rules.

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS !d s+:+ a+ C+++ UL++ P++ L+++
E--- W+ N+ w-- M- PS PE- Y+ PGP++
t+ X+ R tv b- DI D++ G e+++ h++ !r
!y+
------END GEEK CODE BLOCK------