ฉันจะรู้ได้อย่างไรว่าใครรันคำสั่งเฉพาะและเทอร์มินัลใดที่ใช้ในการรัน
ต้นฉบับ :
ฉันจะรู้ได้อย่างไรว่าคำสั่งเฉพาะเจาะจงถูกเรียกใช้โดยใครและจะรู้เกี่ยวกับเทอร์มินัลของฉัน
ฉันจะรู้ได้อย่างไรว่าใครรันคำสั่งเฉพาะและเทอร์มินัลใดที่ใช้ในการรัน
ต้นฉบับ :
ฉันจะรู้ได้อย่างไรว่าคำสั่งเฉพาะเจาะจงถูกเรียกใช้โดยใครและจะรู้เกี่ยวกับเทอร์มินัลของฉัน
คำตอบ:
หากต้องการดูว่าคำสั่งใดที่กำลังดำเนินการอยู่ให้ใช้ "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
คุณสามารถใช้tty
เพื่อค้นหาชื่อไฟล์ของเทอร์มินัลที่เชื่อมต่อกับอินพุตมาตรฐาน
สำหรับส่วนหลังของคำถามของคุณsudo
หรือแล้วsu
grep -c 'command' /home/username/.bash_history