tło
Korzystam z serwera SSH i mam tego użytkownika, którego chcę usunąć. Nie mogę usunąć tego użytkownika, ponieważ obecnie uruchomił kilka procesów, które muszę najpierw zabić.
Jest to potok, którego używam obecnie, aby znaleźć wszystkie identyfikatory procesów użytkownika, którego aktualnie używam:
ps -u user | awk '{print $1;}'
Dane wyjściowe wyglądają następująco:
PID
2121
2122
2124
2125
2369
2370
Chcę to potokować, kill -9
aby zabić wszystkie procesy, aby móc usunąć tego głupiego użytkownika w następujący sposób:
ps -u user | awk '{print $1;}' | sudo xargs kill -9
Ale to nie działa z powodu PID
nagłówka:
kill: failed to parse argument: 'PID'
Pytanie
Myślę, że aby usunąć pierwszy wiersz danych wejściowych, musi istnieć proste polecenie uniksowe.
Wiem, że mogę to wykorzystać, tail
ale nie chcę liczyć, ile wierszy zawiera dane wejściowe, aby dowiedzieć się dokładnie, ile chcę wyświetlić.
Szukam czegoś podobnego head
lub tail
odwróconego (zamiast wyświetlać tylko pierwszą / ostatnią część strumienia wyświetla wszystko oprócz początku / końca strumienia).
Uwaga
Udało mi się rozwiązać ten problem miałem po prostu dodając | grep [[:digit:]]
po moim awk
dowództwem, ale ja wciąż szuka sposobu, aby usunąć pierwszy wiersz pliku, jak myślę, byłoby bardzo przydatne w innych scenariuszach.
awk
polecenie).
NR
npawk 'NR>1 {print $1;}'
. Jeszcze lepiej - użyjpgrep -u
lubpkill -u