Avancerade Mac-användare som använder kommandoraden kan ibland stöta på ett felmeddelande om att kommandot inte hittas när de försöker köra något på kommandoraden. Felet ”command not found” i Terminal kan dyka upp av flera anledningar i kommandoraden i MacOS och Mac OS X, vilket vi kommer att diskutera här, och naturligtvis kommer vi att erbjuda lösningar på dessa problem.
Varför du ser ”command not found”-felmeddelanden på kommandoraden
De fyra vanligaste orsakerna till varför du kan se ”command not found”-meddelandet på Mac-kommandoraden är följande:
- kommandosyntaxen har angetts felaktigt
- kommandot du försöker köra är inte installerat
- kommandot har raderats, eller ännu värre, systemkatalogen har raderats eller ändrats
- användarens $PATH är ofullständig, eller $PATH har felaktigt ställts in, återställts eller rensats – detta är den vanligaste orsaken till att ett meddelande ”command not found” visas
Troligtvis kan du lösa alla dessa problem och få det gemensamma att fungera som förväntat igen. Om du helt enkelt skrev in syntaxen fel så löser du det genom att skriva in den korrekt, enkelt! Utöver det börjar vi med den vanligaste orsaken, vilket är att användarens $PATH inte är korrekt inställd eller har återställts på något sätt.
Fixing ”Command Not Found” Terminal Messages in Mac OS with $PATH Setting
Den troligaste orsaken till att Mac-användare oväntat kan få se kommandot ”Command Not Found” i kommandoraden är att något har gått fel med användarens $PATH, eller att sökvägen där kommandot finns inte är inställd. Du kan kontrollera $PATH med ”echo $PATH” om du känner för det, annars kan du bara köra följande kommandon för att ställa in den standardiserade standardsökvägen som Mac OS använder i kommandoraden:
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Hit return and run your command again, it should work fine.
Förresten, även om vi fokuserar på Mac OS här, gäller samma idé även för andra unix- och linuxvarianter.
Observera att om det avsedda kommandot som du försöker använda ligger i en icke-standardiserad katalog eller på en annan plats (/usr/local/sbin/ etc) kan du alltid lägga till det nya $PATH på kommandoraden för att specificera var du ska leta vid behov.
Förut, där meddelandet ”command not found” dyker upp vid körning av enkla kommandon line ls och cd:
Efter, med dessa kommandon som fungerar framgångsrikt som förväntat:
Hur händer detta? Ibland kan det vara ett ofullständigt eller felaktigt export $PATH-kommando som körs, ett misslyckande med att justera miljövariabler, bland andra orsaker.
Du kan behöva uppdatera kommandoradsskalet för att ändringen ska träda i kraft. Om du startar om terminalen och får felet ”command not found” igen, lägg till export $PATH-kommandona i användarens .bash_profile, .profile eller relevant skalprofil om du använder ett alternativt skal i Terminal-appen.
”Command not found” because command is not installed? Använd HomeBrew
Om kommandot helt enkelt inte är installerat på Mac, för vanliga exempel som wget, htop eller de många andra användbara unix-kommandon som finns tillgängliga som Homebrew-paket och som annars inte är förinstallerade i Mac OS, är den enklaste lösningen att installera och använda Homebrew på Mac för att få tillgång till dessa kommandoradsverktyg. Homebrew är ändå ett bra verktyg, så om du ska spendera tid i terminalen vill du förmodligen ha det.
”Command not found” för att en systemkatalog saknas? Återställ de saknade systemfilerna
Varje gång då och då kan Mac-användare hamna i en situation där de av misstag eller oavsiktligt raderat systemfiler från Mac OS. Vanligtvis händer detta när någon experimenterar med rm/srm-kommandona och ett jokertecken, eller så blev de kanske överdrivet ivriga med papperskorgen när de var inloggade som root. I vilket fall som helst kan du här läsa hur du återställer raderade eller saknade systemfiler till Mac OS och Mac OS X – det innebär vanligtvis att du återställer från en säkerhetskopia eller installerar om själva systemprogramvaran.