如何找到执行特定 cmd“scp”的 tty

12 process forensics

如何找出谁执行了特定命令以及使用哪个终端来运行它?


原文

我如何知道特定的 cmd 由谁执行并了解我的终端

小智 7

要查看正在执行的命令,请使用“ps -ef”。这将告诉您每个人都在做什么,尽管这通常是太多信息。

要缩小范围以找出谁在运行特定命令,您可以添加一个“grep”过滤器,如下所示:

ps -ef | grep scp

这将返回所有 scp 命令,但它也可能返回查找 scp 的 grep 命令和任何其他嵌入了字母 scp 的命令,因为 grep 只是匹配字符串。所以你可能需要巧妙地使用给 grep 的表达式(很多时候你只需要引用它并添加一个空格:

ps -ef | grep "scp "

甚至更好地利用正则表达式和:

ps -ef | grep "[s]cp "

如果您认识用户并且只想知道他们正在运行什么,那么“ps -fu”就是您的朋友。例如

ps -fu tom

当然,可以结合 grep 来获取 tom 的 scp 进程:

ps -fu tom | grep "[s]cp "

第 6 列是 tty。


小智 3

您可以使用tty来查找连接到标准输入的终端的文件名。

对于你问题的后半部分,sudo或者su然后grep -c 'command' /home/username/.bash_history