commando’s niet gevonden op zsh

Ik gebruik de z Shell (zsh) in plaats van de standaard bash, en er gebeurt iets verkeerd, zodat alle commando’s die vroeger werkten niet meer worden herkend:

ls
zsh: command not found: ls
open -e .zshrc
zsh: correct 'open' to '_open' [nyae]? 

Ik weet niet hoe ik zshmoet resetten of hoe ik dit moet oplossen. Hier is de inhoud van de variabele $PATH:

echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate

Ik kan het bestand .bash_profileen het bestand .zshrcniet openen, het lijkt erop dat de enige oplossing is om de zshopnieuw in te stellen. Om het even welke ideeën?

BEWERKEN:

Ik heb zelfs geprobeerd zshte resetten zoals aangegeven in deze thread, maar kreeg altijd een command not found-fout:

exec zsh
zsh: command not found: zsh

dus wat is er aan de hand? waarom gaan alle commando’s verloren?


Antwoord 1, autoriteit 100%

Het is duidelijk dat je de variabele pathhebt verknoeid. (Uw huidige pathbevat geen locatie waar algemene hulpprogramma’s zich bevinden.)

Probeer:

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

Als alternatief, voor het “resetten” van zsh, specificeert u het volledige pad naar de shell:

exec /bin/zsh

of

exec /usr/bin/zsh

Antwoord 2, autoriteit 8%

Neem in je ~/.zsh-configuratiebestand het pad op naar je bash-padbestand dat je aliassen bevat. In mijn geval bevatte het de regel “source ~/.bash_profile” in ~/.zsh .


Antwoord 3, autoriteit 6%

  1. Gebruik een goede teksteditor zoals VS Code en open je .zshrc-bestand (zou in je homedirectory moeten staan. Als je het niet ziet, klik dan met de rechtermuisknop de bestandsmap bij het openen en kies de optie ‘verborgen bestanden weergeven’).

  2. vind waar het staat: export PATH=a-bunch-of-paths-separated-by-colons:

  3. voeg dit toe aan het einde van de regel, vóór het eind-quote: :$HOME/.local/bin

En het zou voor jou moeten werken.

Je kunt eerst testen of dit werkt door dit eerst in je terminal te typen: export PATH=$HOME/.local/bin:$PATH

Als de fout verdwijnt nadat u dit in de terminal typt en uw terminal normaal functioneert, zal de bovenstaande oplossing werken. Als dit niet het geval is, moet je de map zoeken waar je referentiefout zich bevindt (het ding niet gevonden), en het PATH hierboven vervangen door de PATH-TO-THAT-FOLDER.


Antwoord 4, autoriteit 3%

Je kunt een symbolische link maken in /usr/local/bin/

sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead

Antwoord 5, autoriteit 3%

Ik heb het probleem opgelost door het algemene tabblad terminalvoorkeuren te openen en de opdracht (volledig pad) te wijzigen in /bin/bashnaar standaard en vervolgens de ~/.zshrcbestand.

export PATH="all your path inside the quotes"

…zonder spaties tussen PATH="en sla het bestand op.

Nadat u het bestand heeft opgeslagen, wijzigt u de /bin/zshin uw opdracht of selecteert u standaard

…en herstart de terminal en je zou je zsh-shell weer moeten laten werken!


Antwoord 6, autoriteit 3%

Mijn oplossing:

Terug naar bash:

source .bashrc

volgende:

echo $PATH

kopieer dit:

/home/frank/.asdf/shims:/home/frank/....

terug naar de zsh:

source .zsh

open .zshrc:

en plak:

export PATH=/home/frank/.asdf/shims:/home/frank/....

terminal herstarten


Antwoord 7, autoriteit 2%

Voor mij leek het probleem op te lossen door gewoon mijn terminal opnieuw op te starten.


Antwoord 8, autoriteit 2%

De beste oplossing werkt voor mij voor een permanent veranderingspad

Open Finder-> ga naar map /Users/ /usr/local/bin

open .zshrc met TextEdit

.zshrc is een verborgen bestand, dus maak het zichtbaar met command+shift+. druk op

verwijder bestandsinhoud en typ

PATH exporteren=~/usr/bin:/bin:/usr/sbin:/sbin:$PATH

en opslaan

nu

zsh: opdracht niet gevonden Verdwenen


Antwoord 9, autoriteit 2%

Op MacOS BigSur
Klik op Terminal>> Voorkeuren
verander de van /bin/zshin /bin/bash
Sluit en heropen de terminal

VAN

NAAR

Je kunt nu teruggaan naar het .zshrc-bestand om de laatste wijziging die je hebt aangebracht terug te draaien


Antwoord 10

Als je me leuk vindt, heb je twee terminals-apps, één is de standaardterminal met bash als de standaardshell en een andere iTerm 2 met zsh als shell. Om zowel commando’s als zsh in iTerm 2 van bash te hebben, moet je het volgende doen:

Ga op iTerm 2 naar voorkeuren (of commando ,). Ga vervolgens naar het tabblad profielen ga naar opdracht. Zoals u op de onderstaande afbeelding kunt zien, moet u de optie opdrachtselecteren en het pad van zsh shell plakken (om het pad te vinden, kunt u which zsh).

Op dit punt heb je de zsh ALLEEN als je standaardshell voor iTerm 2 en heb je bash als de globale standaardshell op de standaard mac-terminal-app. Vervolgens missen we nog steeds de commando’s van bash in zsh. Dus om dit te doen, moet je naar bash gaan (waar je commando’s werken) en de PATH-variabele van env ophalen (gebruik dit commando om dat te doen: env | grep PATH).

Zodra je dat hebt, ga je naar je iTerm 2 en plak je je pad op “tekst verzenden bij start”
optie.

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear

Heropen iTerm 2 en we zijn klaar!


Antwoord 11

Ik heb mijn probleem opgelost door opnieuw te installeren en/of toe te voegen aan het einde van het bestand ~/.zshrc:

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear

Oh My Zsh wordt geïnstalleerd door een van de volgende opdrachten in uw terminal uit te voeren. Je kunt dit via de opdrachtregel installeren met curl of wget.

krul:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

wget:

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Antwoord 12

Het herstarten van de terminal maakte ook de truc voor mij.


Antwoord 13

In mijn geval was het per ongeluk dat de becommentarieerde code op de allereerste regel niet werd becommentarieerd.

# If you come from bash you might have to change your $PATH.

De hash is verwijderd. Nadat het weer was toegevoegd, werkte het prima.

Ik heb dit zojuist hier gepost, dus misschien vindt iemand dit nuttig. Omdat het nog maar het begin van de regel is en per ongeluk kan worden verwijderd, zoals ik had gedaan. En het lijkt erop dat er geen oplossing is na verschillende manieren geprobeerd te hebben.


Antwoord 14

U moet het .zprofile-bestand maken en erin schrijven

cd /
touch .zprofile
vim .zprofile
//Put Your Path

afsluiten en opslaan
en voer deze code daarna in shell

source ~/.zshrc

15

Zoals anderen hebben gezegd, opnieuw opstarten van de terminal nadat u wijzigingen hebt ingesteld, moeten u opnieuw instellen en wijzigingen die u hebt aangebracht in uw ~ / .zshrc-bestand. Bijvoorbeeld na het toevoegen van functie om visuele studio te openen:

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
}

Ik was in staat om de trefwoordcode te gebruiken om het programma te openen vanaf de opdrachtregel.


16

Een manier om het .zshrc-bestand te bewerken zonder het te doen via ITERM2 of Native Terminal op MacOS is om een ​​terminal in een andere toepassing te gebruiken. Ik heb bijvoorbeeld de terminal gebruikt als onderdeel van VSCODE en was in staat om het bestand te vinden en te bewerken.


Antwoord 17

In mijn geval gebruikte ik de variabele pathin kleine letters!

Dus in /etc/profile.dvoerde ik een script uit dat gebruik maakte van de variabele path. Omdat het in kleine letters was, had ik nooit gedacht dat het de werkelijke variabele PATH zou kunnen verknoeien. Wees voorzichtig en gebruik de variabele pathniet in uw scripts.


Antwoord 18

Ik had een soortgelijk probleem toen ik ZSH op mijn ubuntu installeerde, ik kreeg de foutmelding zsh: command not found nodetoen ik probeerde om node of een ander commando uit te voeren.

De oplossing voor mij was om mijn ~/.zshrc-bestand te openen en de volgende code erop te schrijven:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Toen sloot en heropende ik mijn terminal en dat was het.


Antwoord 19

Verwijderen en opnieuw installeren van zsh werkte voor mij:

sudo yum remove zsh
sudo yum install -y zsh

Other episodes