fundo
Estou executando um servidor SSH e tenho esse usuário que desejo excluir. Não consigo excluir este usuário porque ele está atualmente executando alguns processos que eu preciso eliminar primeiro.
Este é o pipeline que estou usando atualmente para descobrir todos os IDs de processo do usuário que estou usando:
ps -u user | awk '{print $1;}'
A saída é assim:
PID
2121
2122
2124
2125
2369
2370
Quero canalizar isso para kill -9matar todos os processos, para que eu possa excluir esse usuário estúpido como este:
ps -u user | awk '{print $1;}' | sudo xargs kill -9
Mas isso não funciona por causa do PIDcabeçalho:
kill: failed to parse argument: 'PID'
A questão
Estou pensando que deve haver um simples comando Unix para remover a primeira linha de entrada.
Estou ciente de que posso usar tailisso, mas não quero contar quantas linhas a entrada contém para descobrir exatamente quantas eu quero exibir.
Estou procurando algo parecido headou tailinvertido (em vez de exibir apenas a primeira / última parte do fluxo, ele exibe tudo, exceto o início / fim do fluxo).
Nota
Consegui resolver esse problema que simplesmente adicionei | grep [[:digit:]]após o meu awkcomando, mas ainda estou procurando uma maneira de excluir a primeira linha de um arquivo, pois acho que seria bastante útil em outros cenários.
awkcomando) funciona.
NRpor exemploawk 'NR>1 {print $1;}'. Melhor ainda - usepgrep -uorpkill -u