Як знайти tty, з якого виконується конкретний cmd “scp”


11

Як я можу дізнатися, хто виконував певну команду і який термінал використовувався для її виконання?


Оригінал :

Як я можу знати, що конкретний cmd виконується ким і щоб знати про мій термінал


1
Чи можете ви перефразувати це питання, щоб воно було трохи зрозумілішим?

1
Ви маєте на увазі "яку команду ps потрібно використовувати, щоб визначити, хто використовує scp?" Це було б ps -ef | grep scp
Майкл Тодд

Відповіді:


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, щоб отримати процеси scp tom:

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

Стовпець 6 - це tty.


1
+1 для трюку "grep" [s] cp "'- це те, що я використовую в сценарії, який я називаю" пройменувати ".
Джонатан Леффлер

3

Ви можете ttyдізнатися ім'я файлу терміналу, підключеного до стандартного входу.

Для останньої частини вашого питання, sudoабо suі потім grep -c 'command' /home/username/.bash_history.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.