jobs
não é um comando real, mas um comando embutido no shell que você está usando:
martin@dogmeat:~$ type jobs
jobs is a shell builtin
Quando você tentar executá-lo sem um shell, receberá uma mensagem de erro, porque não há um executável binário chamado jobs
.
Ele também não tem uma página de manual, porque é apenas um builtin. Procure em man builtins
como Marco disse, em man bash
ou na manpage do respectivo shell que você está usando se não estiver usando bash
.
EDIT: para explicar o que rodar um programa sem shell significa: quando um processo no Linux quer iniciar outro processo ( fork e exec ), ele pode envolver esse processo em um shell ou iniciá-lo diretamente sem um shell. Por exemplo, em perl
, você pode usar a função system
para iniciar um novo processo. Isso funciona bem com arquivos de programa reais como echo
(carreguei o módulo warnings
aqui também para que possamos ver mensagens de erro):
martin@martin ~ % ll /bin/echo
-rwxr-xr-x 1 root root 31K Jan 17 2013 /bin/echo*
martin@martin ~ % perl -Mwarnings -e 'system "echo", "test"'
test
Mas isso não funciona com um shell embutido como jobs
, porque não há arquivo binário jobs
:
martin@martin ~ % perl -Mwarnings -e 'system "jobs"'
Can't exec "jobs": No such file or directory at -e line 1.
É claro que quando você já está trabalhando em um shell interativo, você provavelmente não tropeçará nesse problema. Mas isso é relevante em algumas outras situações, por exemplo, quando você está usando o diálogo de execução do Gnome Alt + F2 . Ele não envolve seu comando em um shell e, portanto, binários reais, funcionam bem, enquanto que tentar executar jobs
mostrará apenas uma mensagem de erro.
Da sua mensagem de erro original, jobs : not found
, eu supus que você não está em um shell, porque dentro de um shell jobs
deve, é claro, funcionar bem.