Lý lịch
Tôi đang chạy một máy chủ SSH và có người dùng này mà tôi muốn xóa. Tôi không thể xóa người dùng này vì anh ta hiện đang chạy một vài tiến trình mà tôi cần phải giết trước.
Đây là đường ống tôi đang sử dụng hiện đang sử dụng để tìm hiểu tất cả id quá trình của người dùng tôi hiện đang sử dụng:
ps -u user | awk '{print $1;}'
Đầu ra trông như thế này:
PID
2121
2122
2124
2125
2369
2370
Tôi muốn đặt cái này để kill -9
tiêu diệt tất cả các quy trình để tôi có thể xóa người dùng ngu ngốc như thế này:
ps -u user | awk '{print $1;}' | sudo xargs kill -9
Nhưng điều này không hoạt động vì PID
tiêu đề:
kill: failed to parse argument: 'PID'
Câu hỏi
Tôi nghĩ rằng phải có một lệnh Unix đơn giản để loại bỏ dòng đầu vào đầu tiên.
Tôi biết rằng tôi có thể sử dụng tail
cho việc này nhưng tôi không muốn đếm có bao nhiêu dòng đầu vào chứa để tìm ra chính xác số lượng tôi muốn hiển thị.
Tôi đang tìm kiếm một cái gì đó giống head
hoặc tail
nhưng đảo ngược (thay vì chỉ hiển thị phần đầu tiên / cuối cùng của luồng, nó sẽ hiển thị mọi thứ trừ phần đầu / cuối của luồng).
Ghi chú
Tôi đã cố gắng giải quyết vấn đề này bằng cách thêm vào | grep [[:digit:]]
sau awk
lệnh của mình nhưng tôi vẫn đang tìm cách xóa dòng đầu tiên của tệp vì tôi nghĩ nó sẽ khá hữu ích trong các tình huống khác.
awk
lệnh) hoạt động.
NR
vdawk 'NR>1 {print $1;}'
. Tốt hơn nữa - sử dụngpgrep -u
hoặcpkill -u