J'utilise le shell z (zsh
) à la place du bash par défaut, et il se produit un problème qui fait que toutes les commandes qui fonctionnaient auparavant 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
ni comment résoudre ce problème. Voici le contenu de la variable $PATH
:
echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate
Je ne peux pas ouvrir le fichier .bash_profile
ni le fichier .zshrc
. Il semble que la seule solution consiste à réinitialiser le zsh
. Des idées?
MODIFIER:
J'ai même essayé de réinitialiser zsh
comme indiqué dans ce fil , mais toujours avec l'erreur command not found
:
exec zsh
zsh: command not found: zsh
alors que se passe-t-il? pourquoi toutes les commandes sont perdues?
Il est évident que vous avez réussi à modifier votre variable PATH
. (Votre PATH
actuelle ne contient aucun emplacement où se trouvent des utilitaires communs.)
Essayer:
PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH
Sinon, pour "réinitialiser" zsh, spécifiez le chemin complet du shell:
exec /bin/zsh
ou
exec /usr/bin/zsh
Utilisez un bon éditeur de texte tel que Sublime text et ouvrez votre fichier .zshrc
(il devrait se trouver dans votre répertoire personnel. Si vous ne le voyez pas, veillez à cliquer avec le bouton droit de la souris sur le dossier de fichiers lors de l'ouverture et à choisir l'option "Afficher les fichiers cachés" ).
trouver où il est écrit: export PATH=a-bunch-of-paths-separated-by-colons:
insérez-le à la fin de la ligne, avant la fin de la citation: :$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 que vous l'ayez entrée dans le terminal et que votre terminal fonctionne normalement, la solution ci-dessus fonctionnera. Si ce n'est pas le cas, vous devrez trouver le dossier dans lequel se trouve votre erreur de référence (l'élément introuvable) et remplacer le PATH ci-dessus par le chemin PATH-TO-THAT-FOLDER.
Vous pouvez créer un lien symbolique dans/usr/local/bin /
Sudo ln -s $HOME/.composer/vendor/bin/Homestead /usr/local/bin/Homestead
Dans votre fichier de configuration ~/.zsh, incluez le chemin de votre fichier de chemin bash contenant vos alias. Dans mon cas, cela incluait la ligne "source ~/.bash_profile" à l'intérieur de ~/.zsh.
Pour moi, le simple redémarrage de mon terminal semblait résoudre le problème.
Si vous m'aimez bien, vous disposerez de deux terminaux, l'un est le terminal par défaut avec bash comme shell par défaut et un autre iTerm 2 avec zsh comme shell. Pour avoir les deux commandes et zsh dans iTerm 2 à partir de bash, vous devez procéder comme suit:
Sur iTerm 2, accédez aux préférences (ou à la commande). Ensuite, allez dans l'onglet profil et descendez dans commande. Comme vous pouvez le voir sur l'image ci-dessous, vous devez sélectionner l'option commande et coller le chemin du shell zsh (pour trouver le chemin, vous pouvez utiliser which zsh
).
À ce stade, vous aurez le zsh comme shell par défaut UNIQUEMENT pour iTerm 2 et vous aurez bash comme shell par défaut global pour l'application de terminal mac par défaut. Ensuite, il nous manque encore les commandes de bash en zsh. Donc, pour ce faire, vous devez aller sur votre bash (où vos commandes fonctionnent) et obtenir la variable PATH de env (utilisez cette commande pour le faire: env | grep PATH
).
Une fois que vous avez cela, allez dans votre iTerm 2 et collez votre chemin sur l'option "envoyer le texte au début"
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear
Il suffit de rouvrir iTerm 2 et nous avons terminé!
J'ai résolu le problème en ouvrant l'onglet Général des préférences de terminal, en modifiant la commande (chemin complet) en /bin/bash
en valeur par défaut, puis en modifiant le fichier ~/.zshrc
.
export PATH="all your path inside the quotes"
... sans espace entre le PATH="
et enregistrez le fichier.
Après avoir enregistré le fichier, modifiez le /bin/zsh
dans votre commande ou sélectionnez par défaut
... et redémarrez le terminal et votre shell zsh devrait à nouveau fonctionner!
Dans mon cas, c'est par erreur que le code commenté a été décommenté dès la première ligne.
# If you come from bash you might have to change your $PATH.
Le hash a été enlevé. Après l'ajout, ça a bien fonctionné.
Je viens de poster ceci ici afin que quelqu'un puisse trouver cela utile. Parce que c'est juste le début de la ligne et peut être supprimé par erreur comme je l'avais fait. Et il semble qu'il n'y ait pas de solution après avoir essayé plusieurs manières.
Comme d'autres l'ont déjà dit, il suffit de redémarrer le terminal une fois les modifications apportées pour réinitialiser les modifications apportées au fichier ~/.zshrc. 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="$1"
[[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}"
open -a "Visual Studio Code" "$argPath"
fi
}
J'ai pu utiliser le code mot clé pour ouvrir le programme à partir de la ligne de commande.
Redémarrer le terminal a également fait l'affaire pour moi.
Un moyen de modifier le fichier .zshrc sans le faire via iTerm2 ou Terminal natif sur macOS consiste à utiliser un terminal dans une autre application. Par exemple, j'ai utilisé le terminal dans le cadre de VSCode et j'ai pu trouver et éditer le fichier.
Désinstaller et réinstaller zsh a fonctionné pour moi:
Sudo yum remove zsh
Sudo yum install -y zsh