A parancssort használó Mac felhasználók időnként találkozhatnak a “command not found” hibaüzenettel, amikor megpróbálnak valamit futtatni a parancssorban. A “parancs nem található” hiba a Terminálban több okból is felbukkanhat a MacOS és a Mac OS X parancssorában, amint azt itt tárgyaljuk, és természetesen megoldást is kínálunk ezekre a problémákra.
Miért jelenik meg a “parancs nem található” hibaüzenet a parancssorban
A négy leggyakoribb ok, amiért a Mac parancssorában megjelenhet a “parancs nem található” üzenet, a következő:
- a parancs szintaxisát rosszul adta meg
- a parancs, amelyet megpróbál futtatni, nincs telepítve
- a parancsot törölték, vagy ami még rosszabb, a rendszer könyvtárát törölték vagy módosították
- a felhasználó $PATH-ja nem teljes, vagy a $PATH tévesen lett beállítva, visszaállítva vagy törölve – ez a leggyakoribb oka annak, hogy a ‘parancsot nem találták’ üzenet jelenik meg
Szerencsére mindezeket a problémákat meg lehet oldani, és a közös ismét a várt módon működhet. Ha egyszerűen csak rosszul írtad be a szintaxist, a helyes beírás megoldja ezt, egyszerű! Ezen túlmenően kezdjük a leggyakoribb okkal, ami az, hogy a felhasználó $PATH-ja nincs megfelelően beállítva, vagy valahogy vissza lett állítva.
“Command Not Found” terminálüzenetek javítása Mac OS-ben $PATH beállításával
A legvalószínűbb ok, amiért a Mac felhasználók váratlanul a parancssorban nem talált parancs üzenetet látnak, az, hogy valami elromlott a felhasználó $PATH-jával, vagy nincs beállítva az útvonal, ahol a parancs található. A $PATH-ot ellenőrizheted az “echo $PATH” paranccsal, ha van hozzá kedved, egyébként egyszerűen futtasd le a következő parancsokat, hogy beállítsd a Mac OS által használt szabványos alapértelmezett elérési utat a parancssorban:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Nyomd le a return gombot, és futtasd újra a parancsot, működnie kell.
Mellesleg, bár itt a Mac OS-re koncentrálunk, ugyanez az ötlet más unix és linux fajtákra is érvényes.
Megjegyezzük, ha a használni kívánt parancs nem szabványos könyvtárban vagy más helyen található (/usr/local/sbin/ stb.), mindig hozzáadhatod ezt az új $PATH-ot a parancssorban, hogy szükség esetén megadja, hol keresse.
Előtte, ahol a “command not found” üzenet jelenik meg az egyszerű parancssor ls és cd futtatásával:
Azután, ahol ezek a parancsok sikeresen működnek az elvárásoknak megfelelően:
Hogyan történik ez? Néha előfordulhat egy hiányos vagy hibás export $PATH parancs futtatása, a környezeti változók beállításának hibája, és egyéb okok között.
Elképzelhető, hogy frissítenie kell a parancssori héjat, hogy a módosítás érvénybe lépjen. Ha újraindítja a Terminált, és ismét megjelenik a “command not found” hiba, akkor adja hozzá az export $PATH parancsokat a felhasználó .bash_profile, .profile, vagy a megfelelő shell profiljához, ha alternatív shell-t használ a Terminál alkalmazásban.
“Command not found” because command isn’t installed? Használja a Homebrew
Ha a parancs egyszerűen nincs telepítve a Mac-en, olyan gyakori példák esetén, mint a wget, htop vagy a Homebrew csomagként elérhető sok más hasznos unix-parancs, amelyek egyébként nincsenek előre telepítve a Mac OS-ben, akkor a legegyszerűbb megoldás a Homebrew telepítése és használata a Mac-en, hogy hozzáférjen ezekhez a parancssori segédprogramokhoz. A Homebrew amúgy is nagyszerű eszköz, így ha a Terminálban fogsz időt tölteni, akkor valószínűleg szükséged lesz rá.
“Command not found” because a system directory is missing? A hiányzó rendszerfájlok visszaállítása
A Mac-felhasználók időről időre olyan helyzetbe kerülhetnek, hogy véletlenül vagy véletlenül törölték a Mac OS rendszerfájljait. Általában ez akkor történik, amikor valaki az rm/srm parancsokkal és egy jokerrel kísérletezik, vagy esetleg túlbuzgón kezelte a Trash kukát, amikor root felhasználóként bejelentkezett. Mindenesetre itt elolvashatja, hogyan lehet visszaállítani a törölt vagy hiányzó rendszerfájlokat a Mac OS és a Mac OS X rendszerben – ez általában a biztonsági mentésből történő visszaállítással vagy magának a rendszerszoftver újratelepítésével jár.