Jak znaleźć tty, z którego wykonywane jest określone polecenie „scp” cmd

11

Jak mogę dowiedzieć się, kto wykonał określone polecenie i który terminal został użyty do jego uruchomienia?


Oryginał :

Skąd mam wiedzieć, że dane polecenie cmd jest wykonywane przez kogo i wiedzieć o moim terminalu

Jeff Schaller
źródło
1
Czy możesz przeredagować to pytanie, aby było trochę jaśniejsze?
1
Czy masz na myśli: „Jakiego polecenia ps powinienem użyć, aby ustalić, kto używa scp?” To byłoby ps -ef | grep scp
Michael Todd
możliwy duplikat monitorowania aktywności na moim komputerze.
Gilles „SO- przestań być zły”

Odpowiedzi:

7

Aby zobaczyć, jakie polecenia są wykonywane, użyj „ps -ef”. Dzięki temu dowiesz się, co wszyscy robią, co zwykle stanowi zbyt wiele informacji.

Aby zawęzić listę i dowiedzieć się, kto uruchamia określone polecenie, możesz dodać filtr „grep” w następujący sposób:

ps -ef | grep scp

Zwróci to wszystkie polecenia scp, ale może również zwrócić polecenie grep szukające scp i wszelkich innych poleceń z osadzonymi w nich literami scp, ponieważ grep po prostu pasuje do ciągu. Być może będziesz potrzebować sprytnego wyrażenia podanego na grep (wiele razy wystarczy go zacytować i dodać spację:

ps -ef | grep "scp "

lub jeszcze lepiej wykorzystać wyrażenia regularne i:

ps -ef | grep "[s]cp "

Jeśli znasz użytkownika i chcesz po prostu wiedzieć, co on działa, to „ps -fu” jest twoim przyjacielem. Na przykład

ps -fu tom

Które można oczywiście połączyć z grep, aby uzyskać procesy SCP Toma:

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

Kolumna 6 to tty.


źródło
1
+1 za lewę „grep” [s] cp ”- to jest to, czego używam w skrypcie, który nazywam„ procname ”.
Jonathan Leffler
3

Możesz użyć, ttyaby znaleźć nazwę pliku terminala podłączonego do standardowego wejścia.

Dla tej ostatniej części pytania, sudoczy sui wtedy grep -c 'command' /home/username/.bash_history.

Alan Haggai Alavi
źródło