GNU/Linux >> Znalost Linux >  >> Linux

Kdy se zobrazí chybová zpráva „pracovní místa:nenalezena“?

Kdy jsou jobs příkaz vydá zprávu jobs : not found ?
Proč také příkaz man jobs odmítnout zobrazit jakýkoli záznam pro příkaz jobs ?
P.S. :Jsem schopen úspěšně provádět jobs příkaz na terminálu

Přijatá odpověď:

jobs není skutečný příkaz, ale příkaz, který je zabudován do shellu, který používáte:

[email protected]:~$ type jobs
jobs is a shell builtin

Když se jej pokusíte spustit bez shellu, zobrazí se chybová zpráva, protože neexistuje žádný binární spustitelný soubor s názvem jobs .

Nemá také manuálovou stránku, protože je to jen vestavěná. Podívejte se do man builtins jak řekl Marco, v man bash nebo v manuálové stránce příslušného shellu, který používáte, pokud nepoužíváte bash .

EDIT:pro vysvětlení, co znamená spuštění programu bez shellu:když chce proces v Linuxu spustit jiný proces (fork a exec), může tento proces buď zabalit do shellu, nebo jej spustit přímo bez shellu. Například v perl můžete použít system funkci pro spuštění nového procesu. To funguje dobře se skutečnými programovými soubory, jako je echo (Načetl jsem warnings modul i zde, abychom viděli chybové zprávy):

[email protected] ~ % ll /bin/echo 
-rwxr-xr-x 1 root root 31K Jan 17  2013 /bin/echo*
[email protected] ~ % perl -Mwarnings -e 'system "echo", "test"'
test

Ale to nefunguje s vestavěným shellem, jako je jobs , protože neexistuje žádný binární soubor jobs :

[email protected] ~ % perl -Mwarnings -e 'system "jobs"'
Can't exec "jobs": No such file or directory at -e line 1.

Samozřejmě, když už pracujete v interaktivním prostředí, pravděpodobně o tento problém nezakopnete. Ale to je relevantní v některých jiných situacích, například když používáte Gnome Alt +F2 spustit dialog. Nezabaluje váš příkaz do shellu, a proto skutečné binární soubory fungují dobře, když se pokouší spouštět jobs zobrazí pouze chybovou zprávu.

Z vaší původní chybové zprávy jobs : not found Předpokládal jsem, že nějak nejste v shellu, protože uvnitř shellu jobs by samozřejmě mělo fungovat dobře.


Linux
  1. Soubor metadat neodpovídá kontrolnímu součtu – chyba YUM!

  2. Rozdíl mezi vestavěným příkazem a příkazem, který není?

  3. Co se přesně stane, když spustím soubor v prostředí Shell?

  1. Jaký je rozdíl mezi získáním výstupu příkazu pomocí `command` a $(command) v Shell?

  2. Proč nikdo nepoužívá The True Bourne Shell jako /bin/sh?

  3. Nastavení +a Nezruší nastavení příznaku -a?

  1. Registrované zpětné volání se neshoduje s poskytnutou URL – Fix WSO2 Error

  2. Nástroj pro získání řádků v jednom souboru, které nejsou v jiném?

  3. Chyba shellu „tar:nenalezen v archivu“ při použití regulárního výrazu