1 votes

Mon Bash ou zsh ou terminal ne fonctionne plus

Je sais que c'est probablement une solution simple.

Mais j'avais mon terminal parfaitement configuré, utilisant un profil bash par défaut. Puis j'ai installé iTerm et maintenant rien ne fonctionne.

Je ne peux même pas exécuter la commande ls quand je suis dans un répertoire.

Voici le résultat que j'obtiens lorsque j'ouvre une nouvelle fenêtre de terminal.

-bash: dirname: command not found
-bash: dirname: command not found

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
Name's-MacBook-Pro-2:~ name$ 

Même si j'essaie de définir la valeur par défaut sur zsh, j'obtiens :

-bash : chsh : commande non trouvée

Je ne sais vraiment pas ce qui s'est passé.

si je cours

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

puis tout fonctionne à nouveau. Mais si je redémarre le terminal, cela ne fonctionne pas à nouveau et je dois signaler à nouveau le chemin.

0voto

l3l_aze Points 113

Le fait que l'exportation de PATH avec les valeurs par défaut standardisées corrige temporairement le problème indique un mauvais système. export PATH="..." dans l'un des fichiers d'initialisation chargés par le Shell au démarrage.

Ils devraient être comme : export PATH="$PATH:/some/path" . Avec le $PATH partie manquante dans l'affectation, cela détruirait la valeur actuelle de la variable d'environnement PATH plutôt que d'en rajouter, et vous laisser dans une situation comme celle-ci.

/bin/echo $PATH devrait vous montrer la valeur de PATH. Si vous faites cela dans un nouveau Shell sans le correctif d'exportation manuel que vous utilisez, cela vous donnera un indice pour vous aider à trouver où le PATH est écrasé.

Des questions et réponses assez pertinentes sur Stack Overflow. et plus particulièrement cette réponse mène à :

Vérifiez ~/.bash_profile et s'il y a une ligne avec export PATH="..." qui n'inclut pas $PATH dans l'affectation, ajoutez-le. Assurez-vous juste de mettre un : entre les chemins, car c'est le séparateur. par exemple export PATH="$PATH:/some/path:another/path" ajouterait en toute sécurité les deux /some/path y another/path .

Si ~/.bash_profile contient l'un ou l'autre des éléments suivants source $HOME/.profile o source $HOME/.bashrc ou elle n'a pas été trouvée et corrigée en .bash_profile alors vérifiez également ces fichiers. Notez également que . est un alias pour source et on peut donc dire . $HOME/.profile etc.

La réponse ci-dessus indique également que dans Terminal et iTerm (avec les paramètres par défaut), les nouveaux shells sont des "shells de connexion" par défaut et ne lisent pas ~/.bashrc . Donc, si vous suivez les instructions pour un système d'exploitation autre que Mac (Linux, etc.), essayez d'ajouter ce qu'ils disent à ~/.bash_profile à la place.

Vous pourriez source $HOME/.bashrc dans votre ~/.bash_profile si vous souhaitez le faire, mais comme il n'est pas censé être chargé dans un Shell de connexion, cela peut conduire à des problèmes à un moment donné.

Aussi, juste au cas où, notez que ~ est seulement étendu à /home/{user} sur la ligne de commande. $HOME doit être utilisé pour le même effet dans scripts, mais peut aussi être utilisé depuis la ligne de commande.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X