24 votes

Comment réinitialiser $PATH?

J'essayais d'ajouter quelque chose à $PATH et ça a complètement mal tourné. Maintenant, je ne peux pas exécuter de commandes telles que ls. J'ai regardé cette réponse et j'ai utilisé les lignes suivantes :

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
PATH=$PATH:~/bin

Ces lignes résolvent le problème temporairement ; cependant, lorsque je redémarre le terminal, il semble oublier ces modifications.

Comment puis-je réinitialiser définitivement mon $PATH ?

Je lance la version la plus récente de Mountain Lion.

5 votes

Résolu : /bin/rm ~/.bash_profile

2 votes

Bonne question. Vous pourriez toujours mettre votre correction dans une réponse.

0 votes

Aussi demandé sur superuser

23voto

beroe Points 3151

La réponse suggérée de supprimer .bash_profile n'est pas une bonne idée en général. Il y a d'autres choses qui peuvent être définies dans ce fichier en plus des définitions de PATH.

Si vous voulez annuler les effets de votre expérimentation, il vous suffit de supprimer ou de commenter cette ligne PATH avec un #.

Vous ne voulez pas éditer le PATH à partir de zéro, mais y ajouter, comme vous l'avez fait avec votre deuxième ligne. La méthode préférée pour ajouter quelque chose à votre chemin serait :

export PATH=$PATH:$HOME/bin

ÉDITER Puisque votre PATH est corrompu, vous n'avez pas accès aux commandes habituelles pour effectuer ces changements. Pour une solution temporaire, vous pouvez définir un nouveau chemin minimal dans une fenêtre Terminal (pas dans votre .bash_profile) en tapant :

PATH=/bin:/usr/bin

Cela vous donnera temporairement accès à nano ls mv vi cat et rm -- les outils de base pour vérifier et éditer votre .bash_profile et résoudre votre problème...

Répétez, ne mettez pas cette définition de PATH n'importe où sauf pour la durée de la session pendant laquelle vous effectuez vos corrections.

0 votes

Pour les nouveaux OS, vos paramètres seront dans .zshrc à la place. Vérifiez quel shell est utilisé en utilisant echo $SHELL

0 votes

Il ne devrait pas être nécessaire d'exporter explicitement la variable; cette variable particulière sera déjà exportée par votre shell, donc il n'est pas nécessaire de le refaire.

15voto

rjferguson Points 229

Je recommande :

source /etc/profile

C'est ce que Mac utilise pour définir le chemin initial, et cela remettra tout en place à l'exception des éléments que vous ajoutez pour votre utilisateur.

Je modifie une bonne partie du chemin dans mon ~/.bash_profile, et j'ai placé cela en haut du fichier car j'avais des problèmes pour recharger mon profil pendant que je travaillais après avoir ajusté un alias là-dedans ou quelque chose, et cela ajoutait des références dupliquées à mon chemin. Au lieu de vérifier s'il est déjà ajouté, je réinitialise simplement mon chemin à la version de base et ré-apporte les éléments que je veux.

MISE À JOUR : En passant à zsh, j'ai changé mon .bash_profile en .zshrc puis j'ai changé mon alias de rechargement de profil pour sourcer le /etc/zprofile, qui réinitialise le chemin à zero comme décrit précédemment pour bash. Voici l'alias que j'ai défini pour pouvoir recharger rapidement mon profil :

alias reloadprofile='source /etc/zprofile && source ~/.zshrc'

Je crois que vous pouvez accomplir la même chose en appelant exec zsh, qui remplace l'instance actuelle par une nouvelle et recharge le fichier .zshrc, mais je n'ai pas assez expérimenté avec cela pour en être totalement sûr.

1 votes

J'ai dû modifier un peu cela pour que cela fonctionne pour moi. J'ai créé deux alias - alias bashr='. ~/.zshrc' et alias loadDefaultPath='. /etc/zprofile'. Ensuite, dans .zshrc, j'exécute export PATH="", loadDefaultPath, et export PATH="${PATH}". Pour clarification . est la même chose que source dans les alias que j'ai définis ci-dessus.

3voto

Graham Miln Points 39606

Supprimez votre profil bash pour restaurer le $PATH par défaut. Entrez la commande suivante dans Terminal.app :

/bin/rm ~/.bash_profile

Le changement prendra effet lors de la prochaine session shell ou terminal.

0 votes

En répondant, sur la base des commentaires du demandeur original, pour supprimer la question de la file d'attente des non répondus.

6 votes

Eh bien, si vous voulez conserver d'autres contenus de votre profil, un simple /bin/mv ~/.bash_profile ~/bash_profile pourrait être mieux

1 votes

Il s'agit de la réponse la plus simple que j'ai trouvée sur l'ensemble des sites SE. Merci!

3voto

John Y Points 256

Le $PATH par défaut d'OSX est généré à partir du contenu du fichier /etc/paths, il est assez simple à modifier.

1 votes

Modifier /etc/paths comporte le risque que les changements soient écrasés par la prochaine mise à jour de OS X, cela ne fonctionne pas non plus pour les chemins spécifiques à un utilisateur tels que ~/bin.

0 votes

C'est vrai, bien que je traite généralement ceux-ci dans mes fichiers .rc plus tard. Je n'ai pas encore réinitialisé mon /etc/paths par une mise à jour (depuis plusieurs années maintenant que j'utilise brew).

0 votes

Actuellement, je travaille sur une provisioning de boxen que j'espère me rendra impénétrable aux futures mises à jour d'écrasement.

-1voto

Ces méthodes sont formidables! Si vous avez ce problème avec zsh, supprimez ~/.zshrc. Cela va supprimer vos paramètres zsh cependant.

2 votes

Vous préférerez plutôt conserver une copie /bin/mv ~/.bash_profile{,.bck}

0 votes

Mieux vaut simplement modifier vos paramètres. C'est comme suggérer que pour supprimer un fichier, vous pourriez simplement reformater votre disque dur.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X