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 -9
matar 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 PID
cabeç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 tail
isso, mas não quero contar quantas linhas a entrada contém para descobrir exatamente quantas eu quero exibir.
Estou procurando algo parecido head
ou tail
invertido (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 awk
comando, mas ainda estou procurando uma maneira de excluir a primeira linha de um arquivo, pois acho que seria bastante útil em outros cenários.
awk
comando) funciona.
NR
por exemploawk 'NR>1 {print $1;}'
. Melhor ainda - usepgrep -u
orpkill -u