Digamos que eu queira saber o PID do editor kate que está em execução no momento (o kate é apenas um exemplo, funciona conforme descrito para muitos programas). Então, eu executo ps aux | grep kate
.
Aqui está a saída:
seifert 35523 0.0 0.2 448724 25144 ? Sl 08:56 0:33 /bin/kate -b
seifert 1499179 0.0 0.0 12196 656 pts/0 S+ 21:52 0:00 grep --color=auto kate
A primeira linha é o que eu espero ver. Mas qual é o segundo?
Se você digitar
ps aux|grep kate
, isso iniciarágrep kate
,grep kate
será visto comogrep kate
(ou algo mais complexo se você tiver alguns aliases como neste exemplo). Egrep kate
irá selecionar a linha correspondente porque existe umakate
substring.Se você deseja obter
kate
o processo da lista de processos ANTES do comando grep,pgrep
pode ser o comando necessário.EDIT: Even
pgrep pgrep
não se encontra.Como posso evitar que 'grep' apareça nos resultados do ps?
Se você não quiser, veja o último comando grep que você será chamado como
ps aux | grep 'kate'
processo/comando na lista de processos que você pode usarvocê pode usar esses colchetes
[]
com todos os comandos/processos que estiver pesquisandops aux | grep '[c]ommand' or '[p]rocess'
Você também pode usar, para obter apenas o pid
pidof kate
ou
pgrep kate
ou
ps -ef | grep [k]ate
Isso porque ele retorna uma linha para o processo que você está procurando E para o comando que você acabou de inserir:
grep kate
.Então, se você quiser ter apenas uma resposta, use este comando:
pgrep -f
pesquisa o PID de um processo com base em seu comando completo de inicialização (parâmetros incluídos).