Фон
Я запускаю 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