GNU/Linux >> Znalost Linux >  >> Linux

Odstraňování problémů s chybou „Bash:Příkaz nenalezen“ v Linuxu

Tento tutoriál pro začátečníky ukazuje, jak opravit chybu Bash:command not found na Debianu, Ubuntu a dalších distribucích Linuxu.

Když používáte příkazy v Linuxu, očekáváte, že uvidíte výstup. Někdy však narazíte na problémy, kdy terminál zobrazí chybu „příkaz nenalezen“.

Neexistuje žádné přímé a jediné řešení této chyby. Musíte udělat trochu odstraňování problémů sami.

Není to příliš těžké, upřímně. Chyba dává určitou nápovědu, když říká „bash:příkaz nenalezen“. Váš shell (nebo systém Linux) nemůže najít zadaný příkaz.

Mohou existovat tři možné důvody, proč nemůže příkaz najít:

  • Je to překlep a název příkazu je špatně napsaný
  • Příkaz není ani nainstalován
  • Příkaz je v podstatě spustitelný skript a jeho umístění není známo

Pojďme se podrobně zabývat každou možnou hlavní příčinou.

Oprava chyby „bash:příkaz nenalezen“

Metoda 1:Znovu zkontrolujte název příkazu (ne, vážně)

Dělat chyby, zvláště při psaní, je lidské. Je možné, že zadaný příkaz obsahuje překlep (pravopisnou chybu).

Měli byste věnovat zvláštní pozornost:

  • Správný název příkazu
  • Mezery mezi příkazem a jeho možnostmi
  • Použití 1 (číslice jedna), I (velké i) a l (malé L)
  • Použití velkých a malých písmen

Podívejte se na příklad níže, kde jsem špatně napsal společný příkaz ls.

Takže se dvakrát ujistěte, co píšete.

Metoda 2:Ujistěte se, že je příkaz nainstalován ve vašem systému

Toto je další častý důvod chyby příkazu nenalezen. Nemůžete spustit příkaz, pokud ještě není nainstalován.

Zatímco vaše linuxová distribuce je standardně dodávána s velkým počtem nainstalovaných příkazů, není možné předinstalovat všechny nástroje příkazového řádku v systému. Pokud příkaz, který se pokoušíte spustit, není populární, běžný příkaz, budete jej muset nejprve nainstalovat.

K instalaci můžete použít správce balíčků vaší distribuce.

V některých případech mohou být oblíbené příkazy přerušeny a možná je již nebudete instalovat. K dosažení výsledku budete muset najít alternativní příkaz.

Vezměte si příklad příkazu ifconfig. Tento zastaralý příkaz byl použit pro získání IP adresy a dalších informací o síťovém rozhraní. Starší návody na webu stále zmiňují použití tohoto příkazu, ale v novějších verzích Linuxu jej již nelze použít. Byl nahrazen nástrojem ip.

Občas váš systém nenajde ani extrémně běžné příkazy. To je často případ, kdy provozujete distribuci Linuxu v kontejnerech Docker. Aby se zmenšila velikost bitové kopie operačního systému, kontejnery často neobsahují ani ty nejběžnější linuxové příkazy.

To je důvod, proč uživatel Docker narazí na věci, jako je chyba příkazu ping nenalezena atd.

Takže řešením je buď nainstalovat chybějící příkaz, nebo najít nástroj, který by mohl udělat to samé, co jste se snažili udělat s chybějícím příkazem.

Metoda 3:Ujistěte se, že příkaz je skutečný, nikoli alias

Doufám, že jste si vědomi konceptu aliasů v Linuxu. Můžete nakonfigurovat své vlastní kratší příkazy, které nahradí psaní delšího příkazu.

Některé distribuce, jako je Ubuntu, automaticky poskytují příkazy jako ll (který je s aliasem ls -l), la (s aliasem ls -a) a tak dále.

Představte si, že jste zvyklí psát ll a la na svém osobním systému a přihlásíte se k jinému systému Linux a zjistíte, že příkaz ll neexistuje. Nemůžete ani nainstalovat příkaz ll, protože to není skutečný příkaz.

Pokud tedy nemůžete najít příkaz a nelze jej ani nainstalovat, měli byste zkusit vyhledat na internetu, zda tento příkaz vůbec existuje. Pokud ne, pravděpodobně to byl alias na nějakém jiném systému.

Metoda 4:Zkontrolujte, zda se jedná o spustitelný skript se správnou cestou

Toto je běžná chyba, kterou nováčci Linuxu dělají při spouštění skriptu shellu.

I když jste ve stejném adresáři a pokusíte se spustit spustitelný skript pouze podle jeho názvu, zobrazí se chyba.

[email protected]:~/scripts# sample
-bash: sample: command not found

Musíte buď specifikovat interpret shellu explicitně, nebo jeho absolutní cestu.

Pokud jste v nějakém jiném adresáři a pokusíte se spustit skript shellu bez zadání správné cesty k souboru, bude si stěžovat, že soubor nenašel.

Přidání do PATH

V některých případech si stáhnete celý software v souboru tar, rozbalíte jej a najdete spustitelný soubor spolu s dalšími soubory programu. Chcete-li program spustit, musíte spustit spustitelný soubor.

K tomu ale musíte být ve stejném adresáři nebo zadat celou cestu ke spustitelnému souboru. To je únavné.

Zde můžete použít proměnnou PATH. Tato proměnná má kolekci adresářů a tyto adresáře obsahují binární (spustitelné) soubory různých příkazů Linuxu. Když spustíte příkaz, váš systém Linux zkontroluje zmíněné adresáře v proměnné PATH, aby hledal spustitelný soubor tohoto příkazu.

Umístění binárního souboru příkazu můžete zkontrolovat pomocí which příkaz:

Pokud chcete spustit spustitelný soubor nebo skript odkudkoli v systému, musíte do této proměnné PATH přidat umístění souboru.

Proměnnou PATH je pak třeba přidat do rc souboru shellu, aby změny provedené v proměnné PATH byly trvalé.

Tady dostanete podstatu. Je důležité, aby váš systém Linux věděl o umístění spustitelného skriptu. Buď zadáte cestu při jejím spuštění, nebo přidáte její umístění do proměnné PATH.

Pomohlo vám to?

Chápu, že když jste v Linuxu noví, věci mohou být ohromující. Ale když pochopíte hlavní příčinu problému, postupně to zlepší vaše znalosti.

Zde neexistuje žádné přímé řešení pro „chybu příkazu nenalezena“. Dal jsem vám několik rad a tipů, které by vám měly pomoci při odstraňování problémů.

Pokud máte stále pochybnosti nebo potřebujete pomoc, dejte mi prosím vědět v sekci komentářů.



Linux
  1. [Opraveno] bash:sudo:příkaz nenalezen

  2. Příkaz yum-config-manager nenalezen [Opravit]

  3. c_rehash :Chyba příkazu nenalezena – Řešení

  1. bash sh - příkaz nenalezen

  2. bash - příkaz make nenalezen

  3. sshpass:Chyba příkazu nenalezena

  1. Jak opravit chybu Příkaz nenalezen v Linuxu

  2. Příkaz nenalezen v Bash Opraveno

  3. bash:netstat:příkaz nenalezen.