Contexte
J'utilise un serveur SSH et j'ai cet utilisateur que je souhaite supprimer. Je ne peux pas supprimer cet utilisateur car il exécute actuellement quelques processus que je dois d'abord tuer.
Voici le pipeline que j'utilise actuellement pour trouver tous les identifiants de processus de l'utilisateur que j'utilise actuellement:
ps -u user | awk '{print $1;}'
La sortie ressemble à ceci:
PID
2121
2122
2124
2125
2369
2370
Je veux diriger ceci pour kill -9
tuer tous les processus afin que je puisse supprimer cet utilisateur stupide comme ceci:
ps -u user | awk '{print $1;}' | sudo xargs kill -9
Mais cela ne fonctionne pas à cause de l'en- PID
tête:
kill: failed to parse argument: 'PID'
La question
Je pense qu'il doit y avoir une simple commande Unix pour supprimer la première ligne d'entrée.
Je suis conscient que je peux l'utiliser tail
pour cela, mais je ne veux pas compter le nombre de lignes que l'entrée contient pour déterminer exactement combien je veux afficher.
Je cherche quelque chose comme head
ou tail
mais inversé (au lieu d'afficher uniquement la première / dernière partie du flux, il affiche tout sauf le début / la fin du flux).
Remarque
J'ai réussi à résoudre ce problème que j'avais en ajoutant simplement | grep [[:digit:]]
après ma awk
commande, mais je cherche toujours un moyen de supprimer la première ligne d'un fichier car je pense qu'il serait très utile dans d'autres scénarios.
awk
commande) fonctionne.
NR
par exempleawk 'NR>1 {print $1;}'
. Mieux encore - utilisezpgrep -u
oupkill -u