#1 Le 16/08/2015, à 19:20
- visual1956
réinitialisation de la variable PATH
BONSOIR
étant débutant j'ai voulu mettre un répertoire dans ma variable d'environnement PATH mais j'ai du commettre une erreur car depuis les commande standard type ls ne fonctionne plus j'ai un message qui m’indique que le chemin /user/bin n'est plus dans PATH
comment faire pour retrouver la configuration initiale
par avance merci
Hors ligne
#2 Le 16/08/2015, à 19:40
- f.x0
Re : réinitialisation de la variable PATH
Bonjour visual1956,
Esaies ceci en terminal
export PATH="${PATH}:/user/bin"
puis testes en tapant
ls
postes ensuite le retour de
echo $PATH
SOPI
Hors ligne
#3 Le 17/08/2015, à 05:05
- visual1956
Re : réinitialisation de la variable PATH
BONJOUR
cela ne semble pas fonctionner
j'ai bien user/bin mais impossible d'obtenir une réponse à ls
]:/home/michel/Arduino:/home/michel/michel/::/home/michel/michel/Arduino:/michel/Arduino:/usr/bin:/user/bin:/user/bin
Hors ligne
#4 Le 17/08/2015, à 07:49
- jplemoine
Re : réinitialisation de la variable PATH
export PATH="${PATH}:/user/bin"
Le séparateur ne serait pas plutôt un point-virgule et non deux points comme sous Windows..
Je mettrais plutôt (sans aucune garantie : je ne peux pas tester : je suis sur un poste W$) :
export PATH="${PATH};/user/bin"
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#5 Le 17/08/2015, à 08:24
- f.x0
Re : réinitialisation de la variable PATH
Non non, il faut bien les 2 points.
Normalement il faudrait avoir :
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SOPI
Hors ligne
#6 Le 17/08/2015, à 11:04
- MicP
Re : réinitialisation de la variable PATH
Sur Xubuntu, la variable d'environnement PATH pour tous les utilisateurs (non root) du système est définie dans le fichier /etc/environment.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
S'il est nécessaire de modifier cette variable pour le compte d'un utilisateur particulier, on peut le faire dans le fichier ~/.bashrc ou ~/.profile (donc, dans le répertoire personnel de l'utilisateur)
Voir aussi : doc.ubuntu-fr.org -> variables d'environnement au niveau session utilisateur
==
Si un répertoire ~/bin existe, il sera ajouté (en premier) dans le PATH de l'utilisateur (par le fichier ~/.profile) au moment de l'ouverture de sa session. Ce qui donnera, pour le compte utilisateur michel :
michel@virtXubu:~$ echo $PATH
/home/michel/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
michel@virtXubu:~$
=======
michel@virtXubu:~$ which ls
/bin/ls
michel@virtXubu:~$
Donc, c'est sûr qu'avec le PATH qui était en cours, impossible pour le système d'accéder à la commande ls sans spécifier son chemin absolu (qui a été retournée par la commande which) sur la ligne de commande.
=======
…j'ai voulu mettre un répertoire dans ma variable d'environnement PATH…
Comment as-tu procédé ?
Dernière modification par MicP (Le 17/08/2015, à 12:36)
Hors ligne
#7 Le 17/08/2015, à 18:59
- visual1956
Re : réinitialisation de la variable PATH
bonsoir
en réponse à la question de MicP j'ai utilisé l'instruction suivante
export PATH=$PATH:$home/michel/Arduino
Hors ligne
#8 Le 17/08/2015, à 20:06
- Alex10336
Re : réinitialisation de la variable PATH
Essaye:
export PATH="$PATH:/home/michel/Arduino"
ou
export PATH="$PATH:$HOME/Arduino"
Dernière modification par Alex10336 (Le 17/08/2015, à 20:07)
« On ne répond pas à une question par une autre question. » (moi ;-) )
Hors ligne
#9 Le 17/08/2015, à 22:02
- abelthorne
Re : réinitialisation de la variable PATH
Qu'est-ce que c'est que ce /user/bin dont vous parlez depuis le début ? C'est /usr, pas /user, normalement...
Hors ligne
#10 Le 17/08/2015, à 22:21
- f.x0
Re : réinitialisation de la variable PATH
C'est vrai, mais je crois qu'il faut refaire à neuf le PATH.
SOPI
Hors ligne
#11 Le 18/08/2015, à 05:29
- visual1956
Re : réinitialisation de la variable PATH
bonjour
je veux bien refaire entièrement le path mais comment ?
Hors ligne
#12 Le 18/08/2015, à 08:30
- abelthorne
Re : réinitialisation de la variable PATH
À priori, il devrait se régler tout seul comme il faut, à moins que tu le modifies toi-même à chaque démarrage. Est-ce que tu as ajouté une commande qui le redéfinit quelque part, par exemple dans ~/.profile ?
Pour commencer, qu'est-ce que tu as fait quand tu as "voulu mettre un répertoire dans [ta] variable d'environnement PATH" ? J'imagine que tu n'as pas simplement tapé une commande export dans le terminal, le changement ne résisterait pas à un redémarrage (même pas à la fermeture du terminal).
Dernière modification par abelthorne (Le 18/08/2015, à 13:51)
Hors ligne
#13 Le 18/08/2015, à 08:41
- MicP
Re : réinitialisation de la variable PATH
Juste après avoir démarré et s'être identifié, quel est le retour de la commande :
/bin/echo $PATH
=======
Si tu n'a pas de répertoire ~/bin, le retour de /bin/echo $PATH devrait correspondre au contenu du fichier /etc/environment :
michel@virtXubu:~$ /bin/echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
michel@virtXubu:~$
michel@virtXubu:~$ /bin/cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
michel@virtXubu:~$
=======
…export PATH=$PATH:$home/michel/Arduino…
La bonne syntaxe aurait plutôt été :
export PATH="$PATH:/home/michel/Arduino"
Mais comme abelthorne le fait justement remarquer, il faudrait savoir si c'était une ligne de commande entrée dans une fenêtre de terminal virtuel (ou autre) ou dans un fichier, lequel, et à quel endroit dans ce fichier a été placée cette ligne de commande.
Dernière modification par MicP (Le 18/08/2015, à 13:56)
Hors ligne
#14 Le 18/08/2015, à 19:52
- visual1956
Re : réinitialisation de la variable PATH
BONSOIR
Que de soutien !!
Pour répondre aux différentes questions
a) j"ai effectué la commande via une fenêtre virtuelle
b) en effet après un redémarrage j'ai retrouvé mon PATH correct
donc le problème technique est résolu mais je reste sur ma faim car j'ai horreur de ne pas comprendre
pourriez vous m'éclairer sur les aspects suivants :
pourquoi une action dans le terminal virtuel est différente d'une commande dans le terminal ?
comment mettre de manière définitive l'adresse de mon programme "arduino" qui se trouve dans /home/michel/Arduino ?
la syntaxe utilisée pour export .si je comprends bien "export" indique que l'on veut écrire dans un fichier mais j'aurais personnellement écrit export $PATH ="/home/michel/Aduino" sachant que ce qui existe entre les "" correspond au chemin à mémoriser
dans l'attente de votre aide
Hors ligne
#15 Le 18/08/2015, à 20:09
- vv221
Re : réinitialisation de la variable PATH
La meilleure méthode n’est pas de modifier ton $PATH, mais de créer un lien vers ton exécutable sous un chemin qui s’y trouve déjà (je conseille "~/bin").
Ce qui se fait par une commande de ce type (en adaptant le chemin bien sûr) :
ln -s ~/Arduino/mon_exécutable ~/bin
Jouer sur Ubuntu ? Facile !
Hors ligne
#16 Le 18/08/2015, à 21:28
- abelthorne
Re : réinitialisation de la variable PATH
pourquoi une action dans le terminal virtuel est différente d'une commande dans le terminal ?
Il n'y a aucune différence, tu as dû faire une fausse manip.
la syntaxe utilisée pour export .si je comprends bien "export" indique que l'on veut écrire dans un fichier mais j'aurais personnellement écrit export $PATH ="/home/michel/Arduino" sachant que ce qui existe entre les "" correspond au chemin à mémoriser
Non : export sert à régler une variable d'environnement, pas à écrire dans un fichier. Et on ne met pas le $ avec la commande export. Si tu écris export PATH="/home/michel/Arduino", tu n'ajoutes rien au PATH, tu remplaces sa valeur. Donc tu perds (dans le shell courant) la valeur d'origine du PATH. Comme expliqué plus haut, il faut plutôt utiliser une commande du genre export PATH=/home/michel/Arduino:$PATH : comme la nouvelle valeur sera interprétée avant le réglage (l'opération sera lue de droite à gauche, quoi), la valeur originale de $PATH sera remplacée avant de régler la nouvelle. Ce serait équivalent à export PATH=/home/michel/Arduino:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Et donc, les variables que tu règles sont locales au shell où tu le fais : si tu ouvres un terminal et que tu tapes export MACHIN=truc et que tu tapes echo $MACHIN, le terminal va t'afficher "truc". Mais si tu le fermes, que tu en rouvres un et que tu tapes à nouveau echo $MACHIN, le terminal va t'afficher une ligne vide puisque $MACHIN n'est plus définie (la valeur a été perdue en fermant le terminal où elle avait été réglée).
Note : les guillemets ne sont pas indispensables quand tu règles la valeur d'une variable mais ils peuvent être utiles s'il y a des caractères spéciaux et notamment des espaces dans la valeur que tu règles. Comme il n'y en a pas dans les chemins utilisés dans l'exemple ci-dessus, on peut s'en passer mais tu peux les mettre quand même si tu préfères.
Note 2 : $PATH correspond à l'ensemble des dossiers où le shell va aller chercher une commande quand tu la tapes sans préciser son chemin. C'est pour ça que si tu remplaces sa valeur au lieu de la récupérer pour ajouter un ou plusieurs dossiers, tu te retrouves dans l'impossibilité de lancer les commandes habituelles.
Il faut aussi savoir que si tu ne précises pas le chemin d'une commande, le shell va uniquement chercher dans les dossiers du PATH et jamais ailleurs, notamment dans le dossier courant. Si tu as une commande ma_commande dans ~/bin, que tu te places dans le dossier depuis un terminal (cd ~/bin) puis que tu tapes ma_commande, le shell ne va pas la trouver (si ~/bin n'a pas été rajouté dans le PATH, bien sûr). Il faut alors préciser qu'elle est dans le dossier courant en la lançant avec ./ma_commande pour qu'il la trouve. Le point (.) représente le dossier courant et le double-point (..) le dossier parent.
(Quand je parle de commande, c'est tout ce qui est exécutable : aussi bien les binaires que les scripts qui ont le flag exec.)
Dernière modification par abelthorne (Le 18/08/2015, à 21:36)
Hors ligne
#17 Le 20/08/2015, à 05:19
- MicP
Re : réinitialisation de la variable PATH
Il y a aussi une méthode qui consiste à installer les applications en utilisant la logithèque du système.
De cette façon, en installant le paquetage arduino, un raccourci sera créé et accessible depuis le menu de l'interface graphique et tous les fichiers sont installés correctement.
(par exemple, l'application arduino sera installée dans le répertoire /usr/share/, un script pour la lancer sera installé dans /usr/bin, etc.)
=======
michel@debG53SW:~$ echo $maVar
michel@debG53SW:~$ # ça n'a rien donné car la variable "maVar" n'a pas encore été définie.
michel@debG53SW:~$ maVar="hippopotamentutu"
michel@debG53SW:~$ echo $maVar
hippopotamentutu
michel@debG53SW:~$ # OK, la variable est bien définie et la valeur "hippopotamentutu" lui a été assignée.
michel@debG53SW:~$ echo $SHLVL
1
michel@debG53SW:~$ bash
michel@debG53SW:~$ echo $SHLVL
2
michel@debG53SW:~$ echo $maVar
michel@debG53SW:~$ # Et oui : Tant qu'elle n'a pas été "exportée", la variable "maVar" n'est pas accessible depuis le processus fils.
michel@debG53SW:~$ exit
exit
michel@debG53SW:~$ echo $SHLVL
1
michel@debG53SW:~$ export maVar
michel@debG53SW:~$ # Voilà : la variable "maVar" a maintenant été exportée.
michel@debG53SW:~$ bash
michel@debG53SW:~$ echo $SHLVL
2
michel@debG53SW:~$ echo $maVar
hippopotamentutu
michel@debG53SW:~$
Dernière modification par MicP (Le 20/08/2015, à 05:55)
Hors ligne