Comment puis-je réinitialiser $ PATH à sa valeur par défaut dans Ubuntu?


31

J'ai accidentellement supprimé tous les répertoires de $PATHtout en essayant d'en ajouter un nouveau ~/.bashrc. J'ai ouvert une nouvelle fenêtre de terminal lors de la modification et $PATHest maintenant vide. Je suis inquiet si je démarre à partir d'un autre lecteur pour trouver que $PATHje ne pourrai plus redémarrer sur ce lecteur.

En gros, quel est le résultat par défaut echo $PATH?


1
Commentez ou corrigez cette ligne d'exportation et vous devriez être prêt à partir.
Panther

~/.bashrcn'est pas le bon endroit pour définir les variables d'environnement. Vous devriez le faire à la ~/.profileplace.
geirha

Oui, je l'ai compris. PATH est toujours bien dans l'autre fenêtre de terminal qui était ouverte avant la nouvelle, donc la correction de la ligne d'exportation en ajoutant :$PATHà la fin a restauré le PATH. Et oui, ~/.profileil y a du code pour "définir le CHEMIN afin qu'il inclue le bac privé de l'utilisateur s'il existe" c'est à dire$HOME/bin
Cee

Réponses:


35

La réponse à votre question est:

PATH=$(getconf PATH)

et fonctionne sur tout système compatible POSIX. La réponse sélectionnée est la bonne façon d'augmenter le chemin sans effacer le contenu existant antérieur. Si vous utilisez bash, vous pourriez envisager:

PATH+=:$mynewdir

J'ai eu du mal à utiliser beaucoup de commandes ( sed: No such file or directorytype de problème) après avoir accidentellement réglé mon PATH sur rien pendant un processus très long (c'est-à-dire que je n'ai pas pu redémarrer). Je ne pouvais pas utiliser getconf. Pour réinitialiser mon chemin, j'ai utilisé $(export $(cat /etc/environment)":/usr/bin/additional:/usr/bin/paths"). Pour les curieux: /etc/environmentc'est là que la variable PATH est initialement définie dans de nombreuses versions Linux.
Nick Bull

2
Ce travail me surprendrait. Peut-être que "exporter" sans les éléments "$ (...)" environnants pourrait l'être, mais ce sera tout ce qui se passera. Utilisez "source / etc / ..". Quoi qu'il en soit, essayez "/ usr / bin / getconf" si vous ne pouvez même pas trouver "getconf".
Bruce

Préférez votre idée finale en utilisant le chemin complet beaucoup plus que le mien avec le recul! Merci pour la réponse
Nick Bull

1
Si la variable PATH est vide, alors PATH=$(getconf PATH)elle ne sera pas utile mais n'aboutira qu'àbash: getconf: No such file or directory
Max N

1
Si PATH est vide, notez le commentaire ci-dessus: essayez "/ usr / bin / getconf". Si cela ne fonctionne pas, vous devez savoir où votre système cache ses commandes POSIX et utiliser ce répertoire.
Bruce

17

Vous pouvez le trouver sur / etc / environment:

$ /usr/bin/cat /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Alors, il suffit de le source:

$ source /etc/environment 
$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

1
cat ne fonctionnera pas de la même manière que dans votre réponse, car il n'y a pas de $ PATH
Josef Klimuk

Tu as raison. Je viens de modifier la réponse. Merci!
Manuel Jesus Rodriguez

8

L'ajout de: $ PATH à la fin de la ligne d'exportation a corrigé le problème, par exemple export PATH=<directory to be added>:$PATH

J'ajoute cette ligne au ~/.bash_rcfichier au lieu du ~/.profilefichier afin que je puisse voir l'effet immédiatement dans un nouveau terminal et pour d'autres raisons en fonction des informations ici: https://superuser.com/questions/176404/linux-bash-not- chargement-profil-dans-nouvelle-session

Pour moi, la sortie par défaut de echo $PATHavant d'ajouter le nouveau répertoire est:

/ usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / jeux


3

Le chemin par défaut est

/home/_username_/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games 

J'espère que cela vous aide


Cela diffère de mon CHEMIN par défaut. Voir ci-dessous.
Cee
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.