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 29/04/2008, à 00:32

durendal94

Petit problème d'environnement bash ( de débutant ! )

Bonsoir,

j'ai regroupé différents petit scripts bash dans /home/chris/Data/bash
( pas très original ! )

je me suis dis que ca serait plus pratique d'ajouter ce répertoire à mon PATH.

j'ai donc édité mon fichier ~/.bashrc et ajouté la ligne suivante :

PATH="${PATH}":~/Data/bash

1° question.
j'ai ensuite voulu "sourcer" ce fichier, cru comprendre que ça permettait de mettre à jour l'environnement.
mais rien n'y fait pas de changement en faisant un
echo $PATH

pour ce faire j'ai essayé :
source ./.bashrc
et : . ./.bashrc

bon, je me suis déconnecté, reconnecté de mon terminal
et là le echo $PATH me renvoit bien mon path mis à jour.
Si quelqu'un peut m'éclairer sur le pourquoi, je suis curieux.

2° question
du coup, j'ai voulu tester en lançant un de mes scripts depuis mon home

demontage_ntfs.sh 
+ echo 'lancemenet de /home/chris/Data/bash/demontage_ntfs.sh'
lancemenet de /home/chris/Data/bash/demontage_ntfs.sh
+ echo 'Démontage 1er disque'
Démontage 1er disque
+ umount /media/sda1
umount: seul root peut démonter UUID=F470985E7098297E de /media/sda1
+ umount /media/sda5
umount: seul root peut démonter UUID=30A02B1DA02AE8D4 de /media/sda5
+ umount /media/sda6
umount: seul root peut démonter UUID=E26CEC8E6CEC5F33 de /media/sda6
+ echo 'Démontage 2nd disque'
Démontage 2nd disque
+ umount /media/sdd1
umount: seul root peut démonter UUID=147C3AB27C3A8F0C de /media/sdd1
+ umount /media/3Data2
umount: seul root peut démonter UUID=C44813484813389E de /media/3Data2
+ umount /media/3Data3
umount: seul root peut démonter UUID=6A88FF2788FEF085 de /media/3Data3

là tout va bien, puisque effectivement il faut être sudo pour lancer ce script.

je fais donc un sudo et là j'ai droit à :

sudo demontage_ntfs.sh 
sudo: demontage_ntfs.sh: command not found

j'avoue que je suis perplexe, du mal à comprendre pourquoi, il ne trouve plus la commande !
le path utilisé est pas le même ?

ceci dit en l'écrivant, je me dis que sudo, doit se rapporter à root...
je viens donc de faire le même ajout dans /root/.bashrc

mais là je retrouve ma question 1°, comment faire en sorte que la modification soit prise en compte ?

3° question
est-ce le bon fichier à configurer que le .bashrc !!

merci à vous tous !

Hors ligne

#2 Le 29/04/2008, à 01:02

garnier

Re : Petit problème d'environnement bash ( de débutant ! )

Bon,

c'est lors de l'ouverture d'une nouvelle console que le contenu du fichier .bashrc est interprete ou re-interprete à contrario du fichier .profile dont le contenu est interprete lors de ta connexion.

NB: Il est plus simple de placer tes bash dans le répertoire "bin" de ton HOME, à défaut il suffit de créer ce dernier, en effet en editant le fichier .profile à la fin de celui-ci tu trouvera :

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

cordialement benoit

#3 Le 29/04/2008, à 01:55

garnier

Re : Petit problème d'environnement bash ( de débutant ! )

Bonsoir,

pour ton script "demontage_ntfs.sh", il est necessaire de donner le chemin absolu à ce dernier si tu le lance depuis ton répertoire $HOME :

sudo /home/chris/Data/bash/demontage_ntfs.sh

ou mettre celui-ci dans le répertoire /usr/bin par exemple.

cordialement benoit

#4 Le 29/04/2008, à 07:39

durendal94

Re : Petit problème d'environnement bash ( de débutant ! )

Bonjour Benoit,

merci pour tes réponses.
tes solutions marchent, mais ne m'expliquent pas le pourquoi !

là je suis plus dans une démarche de compréhension.

tu ne devrais pas avoir à donner un chemin absolu si ton PATH est bien positionné.
Là je pars du principe que je veux vraiment ajouter un chemin d'exécution.

Je me suis rendu compte que par contre si j'utilisais un fichier autre il y avait un léger mieux :

cat myConf 
#Personnalise le chemin pour ajouter répertoire de scripts personnels
PATH="${PATH}":/home/chris/Data/bash

et là un source myConf marche très bien.
pour le user chris

doit être impossible de "sourcer" .bashrc ou de le ressourcer.

si je fais un sudo demontage_ntfs.sh par contre ca ne marche pas.
pourtant j'ai bien ajouté le source équivalent dans le .bashrc de root.
mais, si je fais un sudo -s, je bascule en root et j'ai bien mon $PATH qui est ok.

pas défaut l'environnement de sudo doit être positionné ailleurs.
va falloir que je cherche de ce côté là je pense.
on a plus tout à fait le $PATH de l'utilisateur local, ni celui de root si on se loggait !

Merci en tout cas !
Christian

Hors ligne

#5 Le 29/04/2008, à 07:46

Hoper

Re : Petit problème d'environnement bash ( de débutant ! )

pour avoir l'environnement de root avec sudo, et qu'il execute les fichiers type .bashrc etc, il faut utiliser l'option -i (voir le man de sudo)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#6 Le 29/04/2008, à 19:14

babakiller85

Re : Petit problème d'environnement bash ( de débutant ! )

durendal94 a écrit :

tu ne devrais pas avoir à donner un chemin absolu si ton PATH est bien positionné.

Correct ! En fait la console a comme, qui dirait, 2 "modes", un mode User et un mode SU super utilisateur. Ce dernier a son propre PATH ...

durendal94 a écrit :

Je me suis rendu compte que par contre si j'utilisais un fichier autre il y avait un léger mieux :

cat myConf 
#Personnalise le chemin pour ajouter répertoire de scripts personnels
PATH="${PATH}":/home/chris/Data/bash

et là un source myConf marche très bien.
pour le user chris

doit être impossible de "sourcer" .bashrc ou de le ressourcer.

Qu'entends tu par "sourcer" ?? le .bashrc n'est pas un fichier "executable" en soi, il est appelé à chaque fois que tu ouvre un terminal.

Hors ligne

#7 Le 29/04/2008, à 21:44

durendal94

Re : Petit problème d'environnement bash ( de débutant ! )

Bonsoir,

merci Hoper, effectivement interessant à savoir !
j'étais passé à côté lors de ma lecture du man.

mais je reste curieux de savoir comment et par quoi est défini l'environnement de mon sudo si je fais un simple sudo macommande.
ptetre dans /etc/profile tout simplement ?

Babakiller85

Qu'entends tu par "sourcer" ?? le .bashrc n'est pas un fichier "executable" en soi, il est appelé à chaque fois que tu ouvre un terminal.

-rw-r--r--  1 chris chris  108 2008-04-29 08:32 myConf

Bien que ce fichier ne soit pas exécutable, un

source myConf

exécutera le fichier dans le même niveau de shell que le shell ou tu es.
et donc si je définis des variables dedans, elles seront disponibles.

si je rends mon fichier exécutable et que je l'exécute.
Il est exécuté dans un sous-shell.
Du coup tu dois faire un export de tes variables.

source devrait marcher pour tout fichier.
mais à priori ça bloque pour le.bashrc !

Mes explications sont à prendre avec des pincettes vu que je découvre, mais c'est mon niveau de compréhension actuel.

Bonne soirée
Christian

Hors ligne