les commandes ne se trouvent pas sur zsh
j'utilise le Shell z ( zsh
) au lieu de la bash par défaut, et quelque chose de mal se produit de sorte que toutes les commandes qui ont utilisé pour travailler ne sont plus reconnues:
ls
zsh: command not found: ls
open -e .zshrc
zsh: correct 'open' to '_open' [nyae]?
Je ne sais pas comment réinitialiser zsh
ou comment corriger cela. Voici le contenu de $PATH
variable:
echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate
je ne peux pas ouvrir le "151960920 fichier" ni .zshrc
fichier, semble la seule solution est de réinitialiser le zsh
. Des idées?
EDIT:
j'ai même essayé de réinitialiser zsh
comme indiqué dans ce fil , mais toujours obtenu command not found
erreur:
exec zsh
zsh: command not found: zsh
alors que ce passe? pourquoi toutes les commandes sont perdues?
11 réponses
il est évident que vous avez réussi à gâcher votre variable PATH
. (Votre PATH
actuel ne contient aucun emplacement où les utilitaires communs sont situés.)
, Essayez:
PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH
alternativement, pour" réinitialiser "zsh, spécifier le chemin complet vers le shell:
exec /bin/zsh
ou
exec /usr/bin/zsh
-
utilisez un bon éditeur de texte comme Sublime text et ouvrez votre fichier
.zshrc
(devrait être dans votre répertoire personnel. si vous ne le voyez pas, assurez-vous de faire un clic droit dans le dossier fichier lors de l'ouverture et choisissez l'option "Afficher les fichiers cachés"). -
trouvez où il est écrit:
export PATH=a-bunch-of-paths-separated-by-colons:
-
insérer ce qui suit à la fin de la ligne, avant la fin de la phrase:
:$HOME/.local/bin
et ça devrait marcher pour vous.
vous pouvez tester si cela fonctionnera en premier en tapant ceci dans votre terminal en premier: export PATH=$HOME/.local/bin:$PATH
si l'erreur disparaît après avoir tapé ceci dans le terminal et vos fonctions de terminal normalement, la solution ci-dessus fonctionnera. Si ce N'est pas le cas, vous devrez trouver le dossier où se trouve votre erreur de référence (la chose non trouvée), et remplacer le chemin ci-dessus par le CHEMIN-DE-CE-QUI-DOSSIER.
vous pouvez créer un lien symbolique dans /usr / local / bin /
sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead
pour moi, le redémarrage de mon terminal semblait régler le problème.
j'ai corrigé le problème en ouvrant l'onglet préférence générale du terminal et en changeant la commande (chemin complet) en /bin/bash
par défaut, puis en éditant le fichier ~/.zshrc
.
export PATH="all your path inside the quotes"
...sans aucun espace entre le PATH="
et enregistrer le fichier.
après avoir sauvegardé le fichier, changez le /bin/zsh
dans votre commande ou sélection par défaut
...et redémarrez le terminal et votre shell zsh devrait fonctionner à nouveau!
dans votre ~/.le fichier de configuration zsh inclut le chemin vers votre fichier de chemin bash qui contient vos alias. Dans mon cas, cela incluait la ligne "source~/.bash_profile" à l'intérieur de ~/.zsh .
comme d'autres l'ont dit, simplement redémarrer le terminal après que vous avez fait des changements devrait réinitialiser et des changements que vous avez faits à votre ~/.zshrc fichier. Par exemple, après avoir ajouté une fonction pour ouvrir visual studio:
function code {
if [[ $# = 0 ]]
then
open -a "Visual Studio Code"
else
local argPath=""
[[ = /* ]] && argPath="" || argPath="$PWD/${1#./}"
open -a "Visual Studio Code" "$argPath"
fi
}
j'ai pu utiliser le code de mot-clé pour ouvrir le programme à partir de la ligne de commande.
désinstaller et réinstaller zsh travaillé pour moi:
sudo yum remove zsh
sudo yum install -y zsh
si vous m'aimez bien, vous aurez deux terminaux app, l'un est le terminal par défaut avec bash comme shell par défaut et l'autre ITER 2 avec zsh comme shell. Pour avoir les deux commandes et zsh dans l'ITER 2 de bash, vous devez faire ce qui suit:
sur ITER 2, Allez à préférences (ou commande ,). Ensuite, allez à la profil "151990920 onglet" et descendez à commande . Comme vous pouvez le voir sur la l'image ci-dessous, vous devez sélectionner commande et coller le chemin de shell zsh (pour trouver le chemin, vous pouvez faire which zsh
).
à ce point, vous aurez le zsh comme shell par défaut seulement pour iTerm 2 et vous aurez bash comme shell par défaut global sur Mac terminal app par défaut. Ensuite, nous manquons toujours les commandes de bash en zsh. Pour ce faire, vous devez aller sur votre bash (où vos commandes fonctionnent) et obtenir la variable PATH d'env (utilisez cette commande pour faire cela: env | grep PATH
).
une fois que vous avez cela, allez à votre terme 2 et collez votre chemin sur " envoyer du texte au début" option.
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear
il suffit de rouvrir ITER 2 et nous sommes finis!
Un moyen de modifier l' .le fichier zshrc sans le faire par itérm2 ou terminal natif sur macOS est d'utiliser un terminal dans une autre application. Par exemple, j'ai utilisé le terminal comme partie de VSCode et j'ai pu trouver et éditer le fichier.