วิธีค้นหา tty ที่มีการดำเนินการ cmd“ scp” ที่เฉพาะเจาะจง


11

ฉันจะรู้ได้อย่างไรว่าใครรันคำสั่งเฉพาะและเทอร์มินัลใดที่ใช้ในการรัน


ต้นฉบับ :

ฉันจะรู้ได้อย่างไรว่าคำสั่งเฉพาะเจาะจงถูกเรียกใช้โดยใครและจะรู้เกี่ยวกับเทอร์มินัลของฉัน


1
คุณสามารถเรียบเรียงคำถามนี้ใหม่เพื่อให้ชัดเจนขึ้นหรือไม่

1
คุณหมายถึง "ฉันควรใช้คำสั่ง ps เพื่อพิจารณาว่าใครกำลังใช้ scp อยู่หรือไม่" นั่นจะเป็น ps -ef | grep scp
Michael Todd

คำตอบ:


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 เพื่อให้ได้กระบวนการของทอม:

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

คอลัมน์ 6 คือ tty


1
+1 สำหรับเคล็ดลับ 'grep "[s] cp"' - เป็นสิ่งที่ฉันใช้ในสคริปต์ที่ฉันเรียกว่า "procname"
Jonathan Leffler

3

คุณสามารถใช้ttyเพื่อค้นหาชื่อไฟล์ของเทอร์มินัลที่เชื่อมต่อกับอินพุตมาตรฐาน

สำหรับส่วนหลังของคำถามของคุณsudoหรือแล้วsugrep -c 'command' /home/username/.bash_history

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.