Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Commandes avec plusieurs shells
Envoyé par: jacqueline

Tous mes utilisateurs ( y compris le root , ont été affectés à /bin/bash ( fichier /etc/passwd )


Donc en tant qu'utilisateur lambda, si je lance une commande dans un terminal, le shell va la chercher dans bash (avec alias et le lien vers un programme cde de base ou scripts bash ajoutés )

Si j'ai bien suivi les infos de léa Book ( merci ! ) on peut rajouter des entrées dans le /bin/bash pour ajouter ses scripts de lancement de programmes, voire modifier les entrées ( alias ) pour raccourcir leur nom, si on les lance fréquemment ?


MAIS , c'est la première fois que j'ai plusieurs batches sur un système... (en particulier le /bin/sh )

Je n'en vois pas encore l'intêret .....et ça , ce n'est pas simple à capter.

J'ai un problème avec kdevelop, lorsque je lance la création d'un projet.

Tous les scripts de kdevelop sont indiqés au début : #!bin/sh


J'ai une première erreur sur une commande que lance kdevelop lors de la création du projet ( et dont l'objectif , il me semble, est de créer des fichiers dans le dossier du projet ( dans /home/mon rep ) et qui serviront à faire la compilation du projet dans son ensemble, comme s'il préparait le terrain avec ce qui a été défini au tout début : jusque là ça me semble normal, le projet pouvant être de nature différente , le fichier de cde de la compil sera différent)

Après la création d'un premier fichier qu'il doit lancer dans la foulée il me sort cette erreur :


sh: ./configure: /bin/sh: bad interpreter: Permission non accordée

Celà veut-il bien dire que :

1 - la commande s'adresse cette fois , non pas à /bin/ bash, mais à l'autre bash : /bin/sh ( avec le sh: en tête) ?

2 - la commande ./(commande) est une commande avec les droits super utilisateur ? ( j'ai un doute )

3 - qu'il s'agit d'une commande de configuration du /bin/sh ?

4 - et que c'est pour lui donner de nouvelles entrées afin d'éxécuter plus tard la compilation du projet avec une commande bash sur le :bin/sh

Je ne comprends pas ce problème de permission non accordée ( au vu de ce que j'ai compris et dont je vous demande : soit une confirmation, soit de me dire où je me plante dans mon interprétation.

Auparavant, avant de lancer ce fichier, il me demande après cette dernière info :

*** Finished

Don't forget to run ./configure
If you haven't done so in a while, run ./configure --help


Si je tappe cette commande en tant qu'utilisateur donc dans le shell "bash" donc :

jackie@linux:~> ./configure --help
bash: ./configure: Aucun fichier ou répertoire de ce type
jackie@linux:~>


Si je tappe celle là :


jackie@linux:~> sh --help
GNU bash, version 2.05b.0(1)-release-(i586-suse-linux)
Usage: sh [GNU long option] [option] ...
sh [GNU long option] [option] script-file ...
GNU long options:
--debug
--dump-po-strings
--dump-strings
--help
--init-file
--login
--noediting
--noprofile
--norc
--posix
--rcfile
--restricted
--verbose
--version
--wordexp
Shell options:
-irsD or -c command or -O shopt_option (invocation only)
-abefhkmnptuvxBCHP or -o option
Type `sh -c "help set"' for more information about shell options.
Type `sh -c help' for more information about shell builtin commands.
Use the `bashbug' command to report bugs.
jackie@linux:~>


Et enfin :

jackie@linux:~> ./configure --help
bash: ./configure: Aucun fichier ou répertoire de ce type

jackie@linux:~> sh: ./configure --help
bash: sh:: command not found

jackie@linux:~> sh : configure --help
:: :: Aucun fichier ou répertoire de ce type
jackie@linux:~>

Et puis à tout hasard , j'ai essayé ça pour comparer le shell "sh" et le shell "bash" :


jackie@linux:~> date
dim oct 10 16:08:38 CEST 2004

Et puis, pour tester la même commande en super utilisateur (au vu de ce que j'avais cru capter sur le ./ et pour éclaircir ce problème de droits d'accès )

jackie@linux:~> sh: ./date
bash: sh:: command not found



En terminal SUPER UTILISATEUR :


La commutation du bash "bash" au "sh" semble se faire avec un ; et non pas avec :

linux:/ # sh;
sh-2.05b# date
dim oct 10 16:24:40 CEST 2004
sh-2.05b# bash;
linux:/ # date
dim oct 10 16:24:57 CEST 2004
linux:/ # sh;
sh-2.05b# date
dim oct 10 16:25:34 CEST 2004

J'ai découvert ça avec une faute de frappe lol !

je réessaye donc la commande de configuration :

sh-2.05b# configure --help
sh: configure: command not found

avec le ./

sh-2.05b# ./configure --help
sh: ./configure: Aucun fichier ou répertoire de ce type
sh-2.05b#


Je suppose que kdevelop n'a pas pu enregistrer la commande configure dans le shell "sh" (et dans le "bash" non plus d'ailleurs)



Enfin une dernière question :

Puisque tous mes utilisateurs bossent avec "bash", kdevelop ne se servirait-il pas du bash " sh" comme d'un bash auxiliaire pour lancer la commande de son fichier bash "sh" de toute la compil ?

mais s'il met : au lieu de ; derrière sa commande sh...


S'agirait -il d'un problème de configuration des deux shell entre le : et le ; ( je suppose que ce n'est pas un bug de kdevelop, on le saurait !)

J'ai la Suse 9.0, il y a peut être quelques particularités..et la notice du shell, si elle est assez détaillée ne parle pas de cette commutation sur l'un ou l'autre.


Je ne trouve pas la cde pour lister toutes les commandes enregistrées dans tel ou tel shell. ( j'en ai vu pour ajouter ou enlever, mais avant de casser quelque chose...)

Si vous pouviez m'éclairer sur l'utilisation de ces deux shell, ou me donner un lien, au vu de mes investigations : je ne trouve pas encore de doc sur cette double utilisation...

Jacqueline



Merci


Jacqueline











Poste le Sunday 10 October 2004 17:12:26
Répondre     Citer    
Re: Commandes avec plusieurs shells
Envoyé par: RemiC

Sans vouloir rentrer dans les détails des différents shell disponibles je dirais que sous Linux, en général, si tu fais
$ ll /bin/sh
lrwxrwxrwx  1 root root 4 mai 23 08:03 /bin/sh -> bash

Ce qui signifie que sh est un lien vers bash, c'est donc la même chose.

Par contre (est-ce une faute de frappe mais tes scripts ne doivent pas commencer par #!bin/sh mais #!/bin/sh

Voila pour commencer,
a suivre...

Poste le Sunday 10 October 2004 18:07:52
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Commandes avec plusieurs shells
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons