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