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 12/06/2007, à 20:28

Xa

bash : commande introuvable

Bonjour,

programmant en C sous Ubuntu, voici mon problème :

>> gcc -o bonjour bonjour.c

>> bonjour
bash : bonjour : commande introuvable

C'est quoi le problème?? Pourquoi je sais pas exécuter mon programme?

Merci beaucoup :-)

#2 Le 12/06/2007, à 20:41

Epehj

Re : bash : commande introuvable

./bonjour


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#3 Le 12/06/2007, à 21:38

pacome

Re : bash : commande introuvable

Salut,

Une autre possibilité consiste à rajouter le répertoire courant (.) à la variable PATH; et pour ne pas le faire à chaque fois, on peut faire ça dans le fichier ~/.bashrc:

# inclure le repertoire courant dans le PATH
PATH=.:"${PATH}"

# affecter ulimit pour avoir les core dumped
ulimit -c 100000

La ligne avec ulimit permet, comme le commentaire l'indique, d'avoir des core dumped quand le programme se plante: ce qui permet de le debugger avec gdb ou ddd quand on a compilé avec l'option -g:

gdb bonjour core

A+

Hors ligne

#4 Le 13/06/2007, à 01:56

abetsic

Re : bash : commande introuvable

Pas forcément une bonne idée de mettre . dans le path, et encore moins de le mettre en première position.

Voilà ce qui peut se passer :
Quelqu'un laisse dans le repertoire /tmp un fichier nommé "ls" executable qui est un script qui se contente de supprimer le repertoire personnel. Si "." est dans le path et en première position, ce n'est pas /bin/ls qui sera trouvé, mais ./ls supprimant définitivement le contenu du répertoire personnel.
Si "." est en dernière position, il suffit de nommer le script malveillant "sl" et attendre que l'utilisateur fasse une faute de frappe fatidique...

Et ça ne nécessite pas les droits root... Juste un accès à /tmp

Après vous faites ce que vous voulez hein wink

Je croyais que ulimit servait à limiter le nombre de process pour les processus fils du shell ?

Dernière modification par abetsic (Le 13/06/2007, à 01:57)

Hors ligne

#5 Le 13/06/2007, à 02:28

Yannick_LM

Re : bash : commande introuvable

@abestic : ah, c'est pour ça...
Je savais que la présence du point dans le path était une faille de sécurité était un problème, mais ne ne voyais pas où...

@pacome : si vraiment ça t'embêtes de taper ./ à chaque fois, une autre solution est de se créer un petit répertoire perso, genre ~/prog, et à rajouter celui-ci dans le path.


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#6 Le 13/06/2007, à 03:27

abetsic

Re : bash : commande introuvable

Yannick_LM a écrit :

@pacome : si vraiment ça t'embêtes de taper ./ à chaque fois, une autre solution est de se créer un petit répertoire perso, genre ~/prog, et à rajouter celui-ci dans le path.

Le repertoire ~/bin est automatiquement ajouté au path si il existe (~/.bash_profile), autant s'en servir et y mettre ses executable maison wink

Hors ligne

#7 Le 13/06/2007, à 08:27

Xa

Re : bash : commande introuvable

Je suis novice dans Ubuntu,

je comprends pas ce que je dois faire smile...

Si y'avait quelqu'un qui pouvait me donner une solution claire, ça m'intéresse, je suis un peu paumé!

#8 Le 13/06/2007, à 09:24

pacome

Re : bash : commande introuvable

Salut,

@Xa:
Le plus simple reste de lancer ton programme en indiquant le chemin ( ./ = ici ) comme l'indique Epehj:

./bonjour

Si tu le souhaites, tu peux aussi rajouter ce chemin (une fois pour toutes) dans la variable d'environnement PATH qui contient tous les chemins que ton shell "connait" en rajoutant dans le fichier de configuration de ton shell (~/.bashrc):

# inclure le repertoire courant dans le PATH
PATH="${PATH}":.

(en dernier dans le code ci-dessus wink)
Mais comme le signale abetsic, ça peut te créer d'éventuelles surprises...

Pour afficher les chemins contenus dans la variable PATH

echo $PATH

@abetsic:
J'ai essayé de mettre en œuvre ton exemple, mais sur mon système, /tmp/ls n'est exécuté que lorsque je me trouve dans /tmp, je ne vois donc pas le problème potentiel (de plus je suis "en solo" sur mon PC, et comme le contenu de /tmp a une durée de vie assez courte...).

Pour ulimit,

man bash

et recherche de ulimit (en tapant /ulimit) fournit l'ensemble des fonctionnalités de ulimit.

@Yannick_LM:
Ce n'est pas si "embêtant" que ça, je te l'accorde; c'est même quasiment un réflexe quand je suis sur une autre machine (comme l'appel à /bin/ls, pour être sûr wink); mais chez moi j'avoue être un peu paresseux (pour 2 caractères!:rolleyes:) quand je bricole un truc (shell-script ou C) avant de le placer dans un répertoire "officiel" (~/.bin pour mes exécutables perso, pour ne pas "voir" ce répertoire à chaque ls...)

A+

(edit: man ulimit -> man bash)

Dernière modification par pacome (Le 13/06/2007, à 09:28)

Hors ligne

#9 Le 13/06/2007, à 12:25

Yannick_LM

Re : bash : commande introuvable

@abestic :
O.K.
(ou comment perdre en beauté une magnifique occasion de se taire)
Ça m'apprendra, tiens...

EDIT :
Je vais passer pour un pinailleur, mais bon :
Intrigué, j'ai vérifié, ce n'est pas .bash_profile, mais .profile (je ne crois que ce que je vois, moi)...

Tiens, j'en profite pour changer de signature

Dernière modification par Yannick_LM (Le 13/06/2007, à 12:44)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne