Фон
Я использую сервер 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