ifconfig parece imprimir sua ajuda para stderr em vez de stdout . Como a canalização só passa a stdout para o próximo programa, grep não recebe a saída.
Uma maneira fácil de contornar isso é redirecionando stderr para stdout. Veja um exemplo de como fazer isso com a ajuda de ifconfig .
ifconfig --help 2>&1 | grep unix
produz a saída desejada
unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6)
Atualizar : 2>&1 é o que realmente redireciona ( > ) stderr ( 2 ) para a mesma saída ( & ) como stdout ( 1 ). Como geralmente stdout e stderr são impressos em seu terminal, você não vê a diferença, mas para a tubulação, o fluxo real é importante.