"-Bash: ls: commande introuvable"


30

J'ai installé la dernière mise à jour d'OS X Lion (10.7). Après cela, mon terminal ne reconnaîtra pas les commandes normales. J'ai tapé lset obtenu:

-bash: ls: command not found

J'ai pensé que j'essaierais d'ajouter usr / bin à mon chemin, mais je ne trouve pas .bash_profile pour le modifier car la saisie edit .bash_profilene fonctionnera pas. Je ne peux pas configurer le Finder pour afficher tous les fichiers car mon terminal ne reconnaîtra pas les commandes nécessaires pour le faire.

Qu'est-ce que je dois faire?


2
Obtenons un chemin et voyons ce qui secoue. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bincollez la partie sombre (ou tapez TRÈS ATTENTIVEMENT) - puisque deux commandes sont manquantes - quelque chose a bouleversé votre chemin. Avant de faire quelque chose de grand, lancer une sauvegarde peut être prudent.
bmike

1
@bmike merci! ajouté à .bash_profile et tout fonctionne maintenant. a dû ouvrir .bash_profile comme ceci: /usr/bin/vi ~/.bash_profileMettez cela comme réponse et je peux accepter!
LuxuryMode

Réponses:


42

Depuis deux commandes manquent quelque chose "piétiné" votre chemin.

Avant de faire quelque chose de grand, lancer une sauvegarde peut être prudent.

Le chemin par défaut sur Mac OS X 10.7 (Lion) ressemble à ceci:

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

Si vous réinitialisez le chemin d'accès en tapant ce qui précède dans une fenêtre shell, puis en le tapant, export PATHcela devrait corriger cette fenêtre.

Vous pouvez donc commencer par là et voir ce qui pourrait ne pas fonctionner et le corriger dans vos fichiers dot de démarrage ou ailleurs, il est défini.

Cette rupture est presque toujours quelque chose que vous devez corriger dans vos fichiers dot. Pour bash, éditez et corrigez .bash_profileet / ou .bashrcen annulant une modification récente, il suffit de définir à nouveau le $ PATH dont vous avez besoin. L'erreur habituelle assigne un nouveau chemin et ne fait pas référence à la valeur précédente de la variable sur le côté droit du =


2
Pour moi, cela fournit une solution temporaire.
Etienne Low-Décarie

2
Merci! J'ai plissé un peu quand ça lsn'a pas fonctionné après la mise à jour .bash_profile😂
Adrian

Ouais @Adrian une erreur de syntaxe ou un CHEMIN vide peut provoquer une anxiété intense 😅🤭🤬🔥
bmike

Cela a donné une solution temporaire. J'ai dû refaire toutes les étapes une fois que j'ai redémarré le CMD
Pawan

Cela fonctionne toujours pour Mac OS 10.14.3
Stephen Romero

11

Cela devrait résoudre le problème de manière complète et permanente.

Tout d'abord, exportez les chemins d'environnement en utilisant la commande ci-dessous dans le terminal.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

vous avez maintenant les commandes que vous voulez. (par exemple, essayez ls. Vous verrez que la commande fonctionne). Mais ce n'est que pour la session en cours. Si vous fermez le terminal et en ouvrez un nouveau, vous aurez le problème précédent. Pour rendre ce changement permanent, utilisez la commande ci-dessous,

aller au répertoire personnel

cd ~

ouvrir le fichier .bash_profile dans nano / vim (j'utilise nano ici)

nano .bash_profile

Cela ouvrira l'éditeur nano. Dans une nouvelle ligne, collez ce qui suit;

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

appuyez sur 'control' + 'o' pour sauvegarder (WriteOut) et 'control' + 'x' pour quitter nano.

Terminé ! Essayez maintenant les commandes.


3

Cela me semble /etc/profilene pas avoir été exécuté au démarrage du shell. Il s'agit du fichier de démarrage global responsable de l'initialisation de PATH. Vérifiez s'il /etc/profileexiste et s'il est lisible et exécutable avec la commande suivante:

. /etc/profile

S'il n'est pas là, vous devrez le restaurer à partir d'une sauvegarde ou d'une autre machine sur laquelle Lion est installé, ou réinstaller Lion. S'il existe mais n'est pas exécutable, essayez d'utiliser l'Utilitaire de disque pour réparer les autorisations de disque.

S'il existe et qu'il est exécutable (et qu'il contient du code), il se peut qu'il ne soit pas exécuté quand il est censé le faire ou que votre script de démarrage le remplace d'une manière ou d'une autre. Comme solution de contournement, essayez de mettre . /etc/profileau début de votre ~/.bash_profilepour vous assurer qu'il est exécuté. Si vous rencontrez toujours le problème, ajoutez echo $PATHaprès l'avoir exécuté pour voir si PATH a été correctement initialisé. Si c'était le cas, quelque chose dans votre script le modifie.

Voici le contenu par défaut de /etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helperconstruit le CHEMIN par défaut. Vous pourriez essayer de courir

unset PATH; /usr/libexec/path_helper -s

pour voir ce qu'il produit.

Dans tous les cas, si le problème ne se trouve pas dans vos scripts de démarrage, veuillez contacter le support Apple http://www.apple.com/support/contact/ ou signaler un bug sur https://bugreport.apple.com / pour signaler à Apple qu'il y a un problème.


unset PATH; /usr/libexec/path_helper -sme montre CHEMIN qui n'est pas contenu dans mon /etc/profile. Aucune suggestion?
Etienne Low-Décarie

L'exécution . /etc/profilerésout temporairement le problème. J'ai collé dans le haut de mon ~/.bash_profile, mais il semble que cela ne soit pas exécuté non plus.
Etienne Low-Décarie

1
Consultez la page de manuel de bash pour la liste complète des fichiers de démarrage et l'ordre dans lequel ils sont recherchés. Si vous avez un fichier de connexion, il a priorité sur le profil, par exemple. Recherchez d'autres fichiers de démarrage.
Chris Page

1

Pour vérifier qu'il s'agit bien d'un problème avec votre chemin, quel est le résultat /bin/ls?

Si cela fonctionne, que vous devez restaurer votre chemin d'accès /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin, vous pouvez utiliser par exemple VIle chemin d'accès (sur mon mac) /usr/bin/vi.


0

J'ai pensé partager l'erreur qui m'a conduit à cette erreur - au moins dans mon cas,

Lorsque j'ai ajouté un nouveau PATHdans ~/.bash_profile, j'ai oublié d'ajouter :$PATHà la fin du chemin que je viens d'ajouter.

J'ai utilisé le correctif temporaire (la commande suivante dans le terminal) que les maîtres ici ont déjà indiqué pour revenir à bash_profile car je ne pouvais pas utiliser les commandes vi pour l'ouvrir en premier lieu.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Une fois entré, j'ai rectifié mon erreur.

(Les données négatives comptent!)


-1

J'essayais de définir mon chemin maven pour les variables d'environnement lorsque cela s'est produit. J'ai donc simplement déplacé mon fichier .profile et .bash_profile dans la corbeille et réessayé et cela a fonctionné.


-1

La réinitialisation de votre terminal fonctionnera. Il réinitialisera vos configurations de base.

Réinitialisez votre terminal. Dans la navigation supérieure, accédez à Shell >> Réinitialiser.

entrez la description de l'image ici


1
Comment la réinitialisation du terminal résout-elle un problème bash?
nohillside

-2

Il semble que votre variable PATH soit corrompue. Vérifiez si par hasard vous modifiez la variable PATH dans votre script ou vérifiez simplement le PATH en disant echo $ PATH et vous pouvez vous assurer que rien n'est corrompu.


-3

vous pouvez exporter le chemin comme suit:

export PATH = $ PATH: / bin: / usr / local / bin


3
Bienvenue sur Ask Different! Cette question a déjà une réponse acceptée et votre réponse n'est pas matériellement différente de la réponse acceptée. Veuillez consulter la FAQ suivante sur la façon de fournir une bonne réponse: apple.stackexchange.com/help/how-to-answer
fsb
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.