ps axuwfw
Esta é uma combinação de várias opções no estilo BSD (todas na página de manual, man ps
):
-
a
: inclua processos de outros usuários -
x
: inclua processos sem terminal -
u
: mostra campos de informação orientados para o usuário -
w
: saída ampla (132 colunas em vez de 80) -
f
: "forest": visão em árvore dos processos -
w
: saída ainda maior (sem limite)
Em outras palavras, ele simplesmente mostra os processos atualmente em execução.
No entanto, se você ver antigo processos lá, verifique o campo "STAT" - se ele diz Z
, o processo foi encerrado, mas seu pai ainda não o "colheu"; o processo é um "zumbi". Isso geralmente indica que o processo pai está com um pouco de bugs ou travou / travou.
Além disso, observe que nem todos os sistemas operacionais aceitam essas opções. No SysV, pode ser ps -ef
.
ps axuwfw | grep -v grep | grep -i screen
O |
é um pipe. Ele redireciona a saída de um comando para a entrada do outro. Isso deve tornar mais óbvio que o acima não é apenas um comando mágico estranho; são três comandos conectados.
-
O primeiro comando,
ps axuwfw
, já foi explicado. -
grep
, é para pesquisar / filtrar texto.grep foo
imprimiria apenas linhas de entrada que contenham o texto "foo". Com a opção-v
, o segundo comando -grep -v …
- faz o oposto - imprime linhas que não correspondem . (Novamente, consulteman grep
ougrep --help
.)Essa chamada específica é necessária porque todos os processos em um pipeline são executados ao mesmo tempo, portanto, o
ps…
mostraria todos osgrep…
processos - eps axu | grep screen
faria com que ogrep…
também correspondesse à sua própria entrada além dos desejados. Então, um segundogrep…
é adicionado para ignorar explicitamente as linhas que têm "grep" nelas.(Claro, existem ferramentas melhores, como
pgrep -alf screen
, mas muitas pessoas ainda usam esse tipo deps|grep|grep…
pipeline só porque é fácil combinar sabendo apenasps
egrep
.) -
O terceiro comando,
grep -i screen
, apenas extrai linhas que contêm "tela".Conforme descrito na página de manual e na saída
grep --help
, adicionar a opção-i
torna a pesquisa insensível a maiúsculas e minúsculas, de modo que também gera linhas com "Tela" ou "SCREEN" nelas.
Em suma, o comando completo apenas imprime as ps…
linhas que falam sobre o programa "screen".
"The above two commands return 431 and 7 in the example from here…"
Eles não. Eles retornam informações sobre processos denominados "screen" ou "tmux". O número dado no exemplo é o contagem dos processos retornados.
O autor do slideshow não incluiu a saída completa (o que não é realmente relevante); eles incluíram apenas o total de contagens como um resumo, demonstrando que há 60 vezes mais usuários de "tela" do que usuários "tmux".
Se você quiser que o comando conte linhas para você, você pode a) adicionar a opção -c
(contagem) ao comando último grep…
, ou b) percorrê-lo por% código%. (Ou funciona.)
"…but in my system it returns garbage."
It returns some previously ran older makefile output and truncated process tree
Isso não é lixo - é exatamente a saída que você pediu.