GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wann kommt die Fehlermeldung „jobs :Not Found“?

Wann funktioniert der jobs Befehl gibt die Meldung jobs : not found aus ?
Warum funktioniert auch der Befehl man jobs weigern sich, einen Eintrag für den Befehl jobs anzuzeigen ?
P.S. :Ich kann die jobs erfolgreich ausführen Befehl auf dem Terminal

Akzeptierte Antwort:

jobs ist kein echter Befehl, sondern ein Befehl, der in die von Ihnen verwendete Shell integriert ist:

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

Wenn Sie versuchen, es ohne Shell auszuführen, erhalten Sie eine Fehlermeldung, da es keine ausführbare Binärdatei mit dem Namen jobs gibt .

Es hat auch keine Manpage, weil es nur ein eingebautes ist. Sehen Sie in man builtins nach wie Marco sagte, in man bash oder in der Manpage der jeweiligen Shell, die Sie verwenden, wenn Sie bash nicht verwenden .

BEARBEITEN:Um zu erklären, was das Ausführen eines Programms ohne Shell bedeutet:Wenn ein Prozess unter Linux einen anderen Prozess (fork und exec) starten möchte, kann er diesen Prozess entweder in eine Shell einschließen oder direkt ohne Shell starten. Zum Beispiel in perl Sie können das system verwenden Funktion zum Starten eines neuen Prozesses. Dies funktioniert gut mit echten Programmdateien wie echo (Ich habe die warnings geladen Modul auch hier, damit wir Fehlermeldungen sehen können):

[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

Aber das funktioniert nicht mit einer eingebauten Shell wie jobs , weil es keine Binärdatei jobs gibt :

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

Wenn Sie bereits in einer interaktiven Shell arbeiten, werden Sie natürlich nicht über dieses Problem stolpern. Dies ist jedoch in einigen anderen Situationen relevant, beispielsweise wenn Sie Gnome Alt verwenden +F2 Dialog ausführen. Es verpackt Ihren Befehl nicht in einer Shell, und daher funktionieren echte Binärdateien gut, während Sie versuchen, jobs auszuführen wird nur eine Fehlermeldung angezeigt.

Aus Ihrer ursprünglichen Fehlermeldung jobs : not found Ich hatte angenommen, dass man sich irgendwie nicht in einer Shell befindet, weil innerhalb einer Shell jobs sollte natürlich funktionieren.


Linux
  1. Metadatendatei stimmt nicht mit Prüfsumme überein – YUM-Fehler!

  2. Der Unterschied zwischen einem eingebauten Befehl und einem, der es nicht ist?

  3. Was genau passiert, wenn ich eine Datei in der Shell ausführe?

  4. Was ist der Unterschied zwischen dem Abrufen der Befehlsausgabe mit "command" und $(command) in der Shell??

  5. Warum funktioniert die Regex in Bash nur, wenn es sich um eine Variable handelt und nicht direkt?

Fix – MySQL ERROR 1819 (HY000):Ihr Passwort entspricht nicht den aktuellen Richtlinienanforderungen

Warum enthält die Bash-Übersetzungsdatei nicht alle Fehlertexte?

Warum verwendet niemand die True Bourne Shell als /bin/sh?

Gnome-Shell:Drücken der Supertaste funktioniert nicht?

Shell-Fehler „tar:nicht im Archiv gefunden“ bei Verwendung eines regulären Ausdrucks

Nach der Installation von Monit, wenn ich den Monit-Status myproc ausführe, erhalte ich einen Fehler beim Verbinden mit dem Monit-Daemon