Tente:
service --status-all |& grep network
Os aplicativos de linha de comando podem imprimir em dois fluxos de texto conhecidos como saída padrão (stdout) e erro padrão (stderr). Por padrão, o terminal apenas exibe a saída para ambos de forma idêntica.
Stdout recebe o número 1 e stderr recebe o número 2. Por padrão, os operadores de redirecionamento, como >
, |
e <
aplicam-se apenas ao stdout, número 1.
|&
canaliza stdout e stderr juntos para o processo no fluxo de entrada padrão (stdin) da direita, o que torna grep
funcionando conforme o esperado.
Eu não sei por que service --status-all
está imprimindo para stderr aqui, mas em geral, ter um stderr separado é muito útil, pois permite que você veja erros mesmo quando o stdout é silenciado.