Esse comportamento é totalmente normal, devido a como o bash gerencia o uso do pipe.
O pipe é implementado pelo bash usando o pipe
syscall. Depois dessa chamada, o bash bifurca e substitui a entrada padrão ( descritor de arquivo 0 ) com a entrada do processo correto ( grep
). O processo bash principal cria outro fork e passa o descritor de saída do fifo no lugar da entrada padrão ( file description 1 ) e lança o comando esquerdo.
O utilitário ps
é iniciado após o comando grep
, para que você possa vê-lo na saída.
Se você não estiver convencido, use set -x
para ativar o rastreamento de comandos. Por exemplo:
+ ps aux
+ grep --color=auto grep
+ grep --color=auto systemd
alexises 1094 0.0 0.8 6212 2196 pts/0 S+ 09:30 0:00 grep --color=auto systemd
Para mais explicações, você pode verificar essa parte do shell básico c: link