Réinitialisez votre chemin dès maintenant (c'est-à-dire avant toute sorte de déconnexion) avec:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Il ne récupère pas votre PATH complet mais les utilitaires de base seront à nouveau disponibles.
Voici un exemple du genre de chose qui se produit:
Vous aviez une variable PATH (appelée $ PATH lors de la lecture)
Quelque chose comme:
$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin
Vous avez essayé d'y ajouter, mais vous avez accidentellement utilisé
PATH=PATH:other_dir
au lieu de
PATH=$PATH:other_dir
et le résultat est que votre chemin est devenu
PATH:other_dir
puis tous les utilitaires comme ls et sed ne fonctionnent pas
Vous pouvez corriger l'ensemble minimal en faisant
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ce qui est particulièrement utile si un fichier de points de connexion gâche votre PATH
Vérifiez vos fichiers .bashrc et / ou .bash_profile pour tout changement de PATH.
Comme le dit Greg, vous pouvez également vous déconnecter (ou une option plus sûre, ouvrir une nouvelle fenêtre au cas où l'ouverture d'une nouvelle fenêtre serait cassée!), Puis faire écho à $ PATH depuis une nouvelle fenêtre.
La même chose se produit lorsque vous le faites path=
sans valeurs. Il efface votre chemin d'accès actuel et provoque ces problèmes. Texte fort
Quant à savoir pourquoi , lorsque vous rencontrez ces problèmes, cd fonctionne et ls ne fonctionne pas:
cd
est une commande "intégrée" qui n'a pas besoin de votre PATH pour trouver le programme
ls
est un programme et doit utiliser PATH pour trouver où il se trouve.
Vous pouvez le voir avec:
$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$
Aucune erreur signifie que la commande est intégrée
Avant de `` continuer '' (ou de vous déconnecter) ...
Assurez-vous de tester toutes les modifications (en particulier celles apportées à .bashrc, .profile, etc. qui exécutent les commandes de configuration de PATH) en ouvrant une nouvelle fenêtre ou en faisant source ~ / .bash_profile pour l'exécuter. Il est également recommandé de laisser la fenêtre et l'éditeur (lorsque vous modifiez le fichier .bash_profile) ouverts au cas où vos modifications ne fonctionneraient pas et vous empêcheraient d'ouvrir de nouvelles fenêtres pour modifier le fichier. Bien que vous puissiez toujours utiliser TextEdit ou un autre éditeur simple pour changer le fichier (en évitant la ligne de commande et vi par exemple). Attention à NE PAS redémarrer si / quand votre shell est cassé ou vous ne pourrez peut-être même pas vous connecter. et c'est vraiment vraiment mauvais (sans un autre compte à su
vous être arrosé). Cela m'est arrivé!
Mon correctif `` compte supplémentaire '' était également un épargnant de vie à l'époque et fortement recommandé pour tous (faites-le maintenant!)