Comment trouver le tty à partir duquel un «scp» cmd particulier est exécuté

11

Comment savoir qui a exécuté une commande particulière et quel terminal a été utilisé pour l'exécuter?


Original :

Comment savoir si une cmd particulière est exécutée par qui et pour connaître mon terminal

Jeff Schaller
la source
1
Pouvez-vous reformuler cette question pour qu'elle soit un peu plus claire?
1
Voulez-vous dire, "quelle commande ps dois-je utiliser pour déterminer qui utilise scp?" Ce serait ps -ef | grep scp
Michael Todd
doublon possible de l' activité
Gilles 'SO- arrête d'être méchant'

Réponses:

7

Pour voir quelles commandes sont exécutées, vous utilisez "ps -ef". Cela vous dira ce que tout le monde fait, ce qui est généralement trop d'informations.

Pour le réduire pour découvrir qui exécute une commande particulière, vous pouvez ajouter un filtre "grep" comme ceci:

ps -ef | grep scp

Cela renverra toutes les commandes scp mais cela pourrait également renvoyer la commande grep recherchant scp et toute autre commande avec les lettres scp incorporées, car grep ne fait que correspondre à la chaîne. Donc, vous devrez peut-être devenir intelligent avec l'expression donnée à grep (la plupart du temps, il vous suffit de le citer et d'ajouter un espace:

ps -ef | grep "scp "

ou encore mieux tirer parti des expressions régulières et:

ps -ef | grep "[s]cp "

Si vous connaissez l'utilisateur et que vous voulez juste savoir ce qu'il exécute, alors "ps -fu" est votre ami. Par exemple

ps -fu tom

Qui peut, bien sûr, être combiné avec grep pour obtenir les processus scp de tom:

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

La colonne 6 est le tty.


la source
1
+1 pour l'astuce 'grep "[s] cp"' - c'est ce que j'utilise dans un script que j'appelle 'procname'.
Jonathan Leffler
3

Vous pouvez utiliser ttypour connaître le nom de fichier du terminal connecté à l'entrée standard.

Pour la dernière partie de votre question, sudoou supuis grep -c 'command' /home/username/.bash_history.

Alan Haggai Alavi
la source