Pages : 1
#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
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
@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
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 ...
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 )
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 ); 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
Pages : 1