Làm thế nào tôi có thể tìm ra ai đã thực thi một lệnh cụ thể và thiết bị đầu cuối nào được sử dụng để chạy nó?
Bản gốc :
Làm thế nào tôi có thể biết cmd cụ thể được thực hiện bởi ai và để biết về thiết bị đầu cuối của tôi
Làm thế nào tôi có thể tìm ra ai đã thực thi một lệnh cụ thể và thiết bị đầu cuối nào được sử dụng để chạy nó?
Bản gốc :
Làm thế nào tôi có thể biết cmd cụ thể được thực hiện bởi ai và để biết về thiết bị đầu cuối của tôi
Câu trả lời:
Để xem những lệnh nào đang được thực thi, bạn sử dụng "ps -ef". Điều này sẽ cho bạn biết những gì mọi người đang làm mặc dù thường là quá nhiều thông tin.
Để thu hẹp nó để tìm ra ai đang chạy một lệnh cụ thể, bạn có thể thêm bộ lọc "grep" như vậy:
ps -ef | grep scp
Điều này sẽ trả về tất cả các lệnh scp nhưng nó cũng có thể trả về lệnh grep đang tìm kiếm scp và bất kỳ lệnh nào khác với các chữ cái scp được nhúng trong chúng vì grep chỉ khớp với chuỗi. Vì vậy, bạn có thể cần phải thông minh với biểu thức được cung cấp cho grep (rất nhiều lần bạn chỉ cần trích dẫn nó và thêm một khoảng trắng:
ps -ef | grep "scp "
hoặc thậm chí tốt hơn tận dụng các biểu thức chính quy và:
ps -ef | grep "[s]cp "
Nếu bạn biết người dùng và chỉ muốn biết những gì họ đang chạy thì "ps -fu" là bạn của bạn. Ví dụ
ps -fu tom
Tất nhiên, có thể được kết hợp với grep để có được các quy trình scp của tom:
ps -fu tom | grep "[s]cp "
Cột 6 là tty.
Bạn có thể sử dụng tty
để tìm ra tên tệp của thiết bị đầu cuối được kết nối với đầu vào tiêu chuẩn.
Đối với phần sau của câu hỏi của bạn, sudo
hoặc su
sau đó grep -c 'command' /home/username/.bash_history
.