คู่มือนี้จะอธิบายวิธีดูรายการไฟล์ เฟอร์ (Sockets) และไปป์ (Pipes) ที่เปิดอยู่ใน Linux โดยใช้คำสั่ง lsof
lsof เป็นเครื่องมือ Command Line อันทรงพลังของ Linux มาพร้อมกับเกือบทุก Distribution และให้รายการไฟล์ เฟอร์ และไปป์ที่เปิดอยู่
การใช้งานพื้นฐานคือพิมพ์ชื่อคำสั่งตามด้วย Enter # lsof คำสั่งนี้จะคืนรายการค่อนข้างยาว วิธีที่ดีกว่าคือรันกับคำสั่ง less — # lsof | less

คลิกเพื่อขยาย
การใช้ lsof กับ less ช่วยให้คุณเลื่อนอ่าน Output ทั้งขึ้นและลง ได้ง่ายขึ้น ทั้งนี้ คำสั่งนี้ทำได้มากกว่แค่แสดง Output ทั่วไป มันสามารถช่วยชีวิตคุณในสถานการณ์ Troubleshooting ได้
ตัวอย่างเช่น คุณสามารถสั่งให้ lsof แสดงรายการไฟล์ที่เปิดอยู่ทั้งหมดซึ่งถูกเปิดโดย Process เฉพาะ ก่อนอื่น หา Process ID ด้วยคำสั่ง # ps -ef จากนั้นรันคำสั่ง # lsof -p 30646 ตัว -p ย่อมาจาก Process ID และ 30646 เป็นตัวอย่าง Process ID ที่คุณควรแทนที่ด้วยของคุณ

คลิกเพื่อขยาย
คุณยังสามารถค้นหาไฟล์ที่เปิดอยู่จากส่วนหนึ่งของระบบได้ เช่น ต้องการดูไฟล์ทั้งหมดจากไดเรกทอรี /mnt ให้รัน # lsof /mnt หรือหากต้องการหา Process ทั้งหมดที่ถูกเปิดโดยคำสั่งเฉพาะ ให้รัน # lsof -c mysql โดย -c ย่อมาจาก "command" และแทนที่ mysql ด้วยคำสั่งที่ต้องการตรวจสอบ:

คลิกเพื่อขยาย
Linux จัดการ Ports, Sockets และ Devices เป็นไฟล์ คุณยังสามารถค้นหาการเชื่อมต่อทั้งหมดที่ใช้โปรโตคอลหรือพอร์ตเฉพาะได้ ค้นหาการเชื่อมต่อ SSH ทั้งหมดที่เข้ามาที่เครื่องคุณด้วย # lsof -i :22 หรือถ้าต้องการดู TCP Connections ทั้งหมดบนคอมพิวเตอร์ ให้รัน # lsof -i TCP:

คลิกเพื่อขยาย
lsof เป็นคำสั่งฉลาดที่มี Option อื่นๆ อีกมาก อ่าน man page ของเครื่องมือนี้เพื่อข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานให้เกิดประโยชน์สูงสุด