如何查找从中执行特定cmd“ scp”的tty


11

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


原件

我如何知道特定的cmd由谁执行以及如何知道我的终端


1
您可以改写这个问题,这样更清楚吗?

1
您的意思是,“我应该使用什么ps命令来确定谁在使用scp?” 就是ps -ef | grep scp
Michael Todd

Answers:


7

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

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

ps -ef | grep scp

这将返回所有scp命令,但也可能会返回grep命令以查找scp以及嵌入了字母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。


1
“ grep“ [s] cp”“技巧的+1-这就是我在称为“ procname”的脚本中使用的技巧。
乔纳森·勒夫勒

3

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.