Cómo encontrar tty desde el cual se ejecuta un cmd particular "scp"

11

¿Cómo puedo averiguar quién ejecutó un comando en particular y qué terminal se utilizó para ejecutarlo?


Original :

¿Cómo puedo saber quién ejecuta un cmd particular y saber sobre mi terminal?

Jeff Schaller
fuente
1
¿Puedes reformular esta pregunta para que sea un poco más clara?
1
¿Quiere decir, "qué comando ps debo usar para determinar quién está usando scp?" Eso sería ps -ef | grep scp
Michael Todd
posible duplicado de la actividad
Gilles 'SO- deja de ser malvado'

Respuestas:

7

Para ver qué comandos se ejecutan, utilice "ps -ef". Sin embargo, esto le dirá lo que todos están haciendo, que generalmente es demasiada información.

Para reducirlo y descubrir quién ejecuta un comando en particular, puede agregar un filtro "grep" de esta manera:

ps -ef | grep scp

Esto devolverá todos los comandos scp, pero también puede devolver el comando grep buscando scp y cualquier otro comando con las letras scp incrustadas en ellos, ya que grep solo coincide con la cadena. Por lo tanto, es posible que deba ser inteligente con la expresión dada a grep (muchas veces solo necesita citarlo y agregar un espacio:

ps -ef | grep "scp "

o incluso mejor aprovechar las expresiones regulares y:

ps -ef | grep "[s]cp "

Si conoce al usuario y solo quiere saber qué está ejecutando, entonces "ps -fu" es su amigo. Por ejemplo

ps -fu tom

Que, por supuesto, se puede combinar con grep para obtener los procesos scp de tom:

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

La columna 6 es el tty.


fuente
1
+1 para el truco 'grep "[s] cp"': es lo que uso en un script que llamo 'procname'.
Jonathan Leffler
3

Puede usar ttypara averiguar el nombre del archivo del terminal conectado a la entrada estándar.

Para la última parte de tu pregunta, sudoo suy luego grep -c 'command' /home/username/.bash_history.

Alan Haggai Alavi
fuente