Фон
Я использую сервер SSH, и у меня есть этот пользователь, которого я хочу удалить. Я не могу удалить этого пользователя, потому что в настоящее время он запускает несколько процессов, которые мне нужно убить в первую очередь.
Это конвейер, который я сейчас использую, чтобы узнать все идентификаторы процессов пользователя, которого я сейчас использую:
ps -u user | awk '{print $1;}'
Вывод выглядит так:
PID
2121
2122
2124
2125
2369
2370
Я хочу передать это, чтобы kill -9
убить все процессы, чтобы я мог удалить этого глупого пользователя следующим образом:
ps -u user | awk '{print $1;}' | sudo xargs kill -9
Но это не работает из-за PID
заголовка:
kill: failed to parse argument: 'PID'
Вопрос
Я думаю, что должна быть простая команда Unix, чтобы удалить первую строку ввода.
Я знаю, что могу использовать tail
для этого, но я не хочу подсчитывать, сколько строк содержит вход, чтобы точно определить, сколько я хочу отобразить.
Я ищу что-то вроде head
или tail
но перевернутый (вместо отображения только первой / последней части потока, он отображает все, кроме начала / конца потока).
Заметка
Мне удалось решить эту проблему, просто добавив | grep [[:digit:]]
после моей awk
команды, но я все еще ищу способ удалить первую строку файла, так как я думаю, что было бы весьма полезно в других сценариях.
awk
команда) работает.
NR
напримерawk 'NR>1 {print $1;}'
. Еще лучше - используйтеpgrep -u
илиpkill -u