sfondo
Sto eseguendo un server SSH e ho questo utente che voglio eliminare. Non riesco a eliminare questo utente perché al momento sta eseguendo alcuni processi che devo prima uccidere.
Questa è la pipeline che sto utilizzando attualmente per scoprire tutti gli ID di processo dell'utente che sto utilizzando attualmente:
ps -u user | awk '{print $1;}'
L'output è simile al seguente:
PID
2121
2122
2124
2125
2369
2370
Voglio reindirizzare questo per kill -9
uccidere tutti i processi in modo da poter eliminare questo stupido utente in questo modo:
ps -u user | awk '{print $1;}' | sudo xargs kill -9
Ma questo non funziona a causa PID
dell'intestazione:
kill: failed to parse argument: 'PID'
La domanda
Sto pensando che ci debba essere un semplice comando Unix per rimuovere la prima riga di input.
Sono consapevole che posso usare tail
per questo, ma non voglio contare quante righe contiene l'input per capire esattamente quante voglio visualizzare.
Sto cercando qualcosa di simile head
o tail
invertito (invece di visualizzare solo la prima / ultima parte del flusso visualizza tutto tranne l'inizio / fine del flusso).
Nota
Sono riuscito a risolvere questo problema aggiungendo semplicemente | grep [[:digit:]]
dopo il mio awk
comando ma sto ancora cercando un modo per eliminare la prima riga di un file poiché penso che sarebbe abbastanza utile in altri scenari.
awk
comando).
NR
ad esawk 'NR>1 {print $1;}'
. Meglio ancora - usapgrep -u
opkill -u