Hướng dẫn này giải thích cách lấy danh sách file mở (open files), socket và pipe trên Linux dùng lệnh lsof.
lsof là công cụ dòng lệnh Linux rất mạnh. Nó đi kèm hầu như mọi bản phân phối Linux và cho danh sách file mở, socket, và pipe.
Cách dùng cơ bản nhất là gõ tên lệnh rồi Enter, # lsof. Lệnh này trả về danh sách khá dài. Cách tốt hơn chạy lệnh với less – # lsof | less.

nhấp để phóng to
Dùng lsof với less cho phép cuộn đầu ra lên/xuống, dễ đọc hơn. Tất nhiên, lệnh làm nhiều hơn chỉ cho đầu ra chung. Nó có thể cứu cánh khi khắc phục sự cố.
Ví dụ, bạn có thể yêu cầu lsof liệt kê tất cả file mở bởi một tiến trình (process) cụ thể. Trước, lấy ID tiến trình dùng lệnh # ps -ef. Sau đó chạy # lsof -p 30646. -p là ID tiến trình, 30646 là ví dụ ID bạn thay bằng ID thực.

nhấp để phóng to
Bạn cũng tìm tất cả file mở, socket, v.v. từ phần hệ thống nào đó. Muốn thấy file từ thư mục /mnt, chạy # lsof /mnt. Hoặc tìm tiến trình mở bởi lệnh cụ thể, chạy # lsof -c mysql, với -c là "command", thay mysql bằng lệnh bạn muốn kiểm tra file:

nhấp để phóng to
Linux coi cổng, socket, thiết bị như file. Bạn cũng tìm tất cả kết nối dùng giao thức hoặc cổng cụ thể. Tìm tất cả kết nối SSH đang chạy đến máy dùng # lsof -i :22. Hoặc xem tất cả kết nối tcp trên máy chạy # lsof -i TCP:

nhấp để phóng to
lsof là lệnh khá thông minh với vài tùy chọn khác. Xem trang man của công cụ để biết thêm cách tối đa hóa dùng.