Cara menemukan tty dari mana cmd "scp" tertentu dieksekusi

11

Bagaimana saya bisa mengetahui siapa yang menjalankan perintah tertentu dan terminal mana yang digunakan untuk menjalankannya?


Asli :

Bagaimana saya bisa tahu cmd tertentu dijalankan oleh siapa dan untuk mengetahui tentang terminal saya

Jeff Schaller
sumber
1
Bisakah Anda ulangi pertanyaan ini sehingga lebih jelas?
1
Apakah maksud Anda, "perintah ps apa yang harus saya gunakan untuk menentukan siapa yang menggunakan scp?" Itu akan menjadi id -ef | grep scp
Michael Todd
kemungkinan duplikat dari kegiatan pemantauan di komputer saya.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

7

Untuk melihat perintah apa yang sedang dieksekusi Anda menggunakan "ps -ef". Ini akan memberi tahu Anda apa yang dilakukan semua orang yang biasanya terlalu banyak informasi.

Untuk mempersempitnya untuk mengetahui siapa yang menjalankan perintah tertentu, Anda dapat menambahkan filter "grep" seperti:

ps -ef | grep scp

Ini akan mengembalikan semua perintah scp tetapi mungkin juga mengembalikan perintah grep mencari scp dan perintah lain dengan huruf scp yang tertanam di dalamnya karena grep hanya cocok dengan string. Jadi, Anda mungkin harus pandai dengan ungkapan yang diberikan kepada grep (sering kali Anda hanya perlu mengutipnya dan menambahkan spasi:

ps -ef | grep "scp "

atau lebih baik memanfaatkan ekspresi reguler dan:

ps -ef | grep "[s]cp "

Jika Anda tahu pengguna dan hanya ingin tahu apa yang mereka jalankan maka "ps -fu" adalah teman Anda. Misalnya

ps -fu tom

Yang tentu saja dapat dikombinasikan dengan grep untuk mendapatkan proses scp tom:

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

Kolom 6 adalah tty.


sumber
1
+1 untuk trik 'grep "[s] cp" - ini yang saya gunakan dalam skrip yang saya sebut' nama panggilan '.
Jonathan Leffler
3

Anda dapat menggunakan ttyuntuk mengetahui nama file terminal yang terhubung ke input standar.

Untuk bagian terakhir dari pertanyaan Anda, sudoatau sudan kemudian grep -c 'command' /home/username/.bash_history.

Alan Haggai Alavi
sumber