Komentoriviä käyttävät kokeneet Mac-käyttäjät saattavat joskus törmätä ”komentoa ei löydy” -virheilmoitukseen, kun he yrittävät suorittaa jotakin käskynhallintarivillä. ”Komentoa ei löydy” -virhe Terminaalissa voi tulla esiin useista syistä MacOS:n ja Mac OS X:n komentorivillä, kuten käsittelemme tässä, ja tietenkin tarjoamme ratkaisuja näihin ongelmiin.
Miksi näet ”komento ei löytynyt”-virheilmoituksia komentorivillä
Neljä yleisintä syytä, miksi Macin komentorivillä saattaa näkyä ”komento ei löytynyt”-ilmoitus, ovat seuraavat:
- Komennon syntaksi on kirjoitettu väärin
- Komentoa, jota yrität suorittaa, ei ole asennettu
- Komento on poistettu tai, mikä vielä pahempaa, järjestelmähakemisto on poistettu tai sitä on muutettu
- Käyttäjän $PATH on puutteellinen, tai $PATH on virheellisesti asetettu, nollattu tai tyhjennetty – tämä on yleisin syy nähdä ”komentoa ei löydy” -viesti
Suurimmaksi onneksi voit ratkaista kaikki nämä ongelmat ja saada yhteisen toimimaan taas odotetulla tavalla. Jos yksinkertaisesti kirjoitit syntaksin väärin, sen kirjoittaminen oikein ratkaisee asian, helppoa! Sen lisäksi aloitamme yleisimmästä syystä, joka on se, että käyttäjän $PATH ei ole asetettu oikein tai se nollattiin jotenkin.
Fixing ”Command Not Found” Terminal Messages in Mac OS with $PATH Setting
Todennäköisin syy siihen, miksi Mac-käyttäjät näkevät odottamatta komentorivin komentoa ei löydy -viestin, on se, että käyttäjän $PATH:n kanssa on mennyt jokin pieleen tai polkua, jossa komento sijaitsee, ei ole asetettu. Voit tarkistaa $PATH:n komennolla ”echo $PATH”, jos siltä tuntuu, muuten voit vain suorittaa seuraavat komennot asettaaksesi Mac OS:n käyttämän vakio oletuspolun komentoriville:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Paina return-näppäintä ja suorita komento uudelleen, sen pitäisi toimia hyvin.
Sivumennen sanoen, vaikka keskitymmekin tässä Mac OS:ään, sama ajatus pätee myös muihin unix- ja linux-lajikkeisiin.
Huomaa, että jos haluamasi komento, jota yrität käyttää, sijaitsee muussa kuin vakiomuotoisessa hakemistossa tai muussa sijainnissa (esim. /usr/local/sbin/ jne.), voit aina lisätä komentoriville tuon uuden $PATH:n määrittelemään, mistä komento etsiytyy tarvittaessa.
Ennen, jolloin ”komentoa ei löytynyt” -viesti näkyy suoritettaessa yksinkertaisia komentorivin komentoja ls ja cd:
Jälkeen, jolloin nuo komennot toimivat menestyksekkäästi odotetulla tavalla:
Miten tämä tapahtuu? Joskus syynä voi olla muun muassa epätäydellisen tai virheellisen export $PATH-komennon suorittaminen tai ympäristömuuttujien säätämisen epäonnistuminen.
Voi olla, että sinun on päivitettävä komentorivin komentotulkki, jotta muutos tulee voimaan. Jos käynnistät terminaalin uudelleen ja saat ”komentoa ei löydy” -virheen uudelleen, lisää export $PATH -komennot käyttäjän .bash_profile-, .profile- tai vastaavaan komentotulkkiprofiiliin, jos käytät vaihtoehtoista komentotulkkia terminaalisovelluksessa.
”Komentoa ei löydy”, koska komentoa ei ole asennettu? Käytä Homebrewia
Jos komentoa ei vain ole asennettu Maciin, esimerkiksi wget, htop tai monet muut hyödylliset unix-komennot, jotka ovat saatavilla Homebrew-paketteina ja joita ei muuten ole valmiiksi asennettu Mac OS:ään, yksinkertaisin ratkaisu on asentaa ja käyttää Homebrewia Macissa, jotta saat käyttöösi nämä komentoriviohjelmat. Homebrew on muutenkin loistava työkalu, joten jos aiot viettää aikaa terminaalissa, haluat todennäköisesti käyttää sitä.
”Komentoa ei löydy”, koska järjestelmähakemisto puuttuu? Palauta puuttuvat järjestelmätiedostot
Aina silloin tällöin Mac-käyttäjät saattavat joutua tilanteeseen, jossa he ovat vahingossa tai tahattomasti poistaneet järjestelmätiedostoja Mac OS:stä. Yleensä näin tapahtuu, kun joku kokeilee rm/srm-komentoja ja jokerimerkkiä, tai ehkä hänestä tuli liian innokas roskakorin kanssa, kun hän on kirjautunut sisään pääkäyttäjänä. Joka tapauksessa voit lukea täältä, miten voit palauttaa poistetut tai puuttuvat järjestelmätiedostot Mac OS:ään ja Mac OS X:ään – yleensä se edellyttää varmuuskopiosta palauttamista tai itse järjestelmäohjelmiston uudelleenasentamista.