Lsof ist eins der klassischen Tools für Unix-Betriebssysteme, das es schon gab, als Linux noch in den Kinderschuhen steckte. Version 2 lief noch auf einem Dutzend Unix-Systemen, die es heute nicht mehr gibt. Version 3 war erstmals auch für Linux verfügbar.
Der Name ist Programm: LiSt Open Files, wobei das nur die halbe Wahrheit ist, denn neben Files listet Lsof auch Named Pipes und Sockets (bekanntlich ist Unix ja "everything a file", auf Sockets trifft das aber nicht wirklich zu – erst Plan9 hat damit Ernst gemacht). Im Folgenden listen wir die wichtigsten Anwendungsfälle des vielfältigen Tools stichpunktartig auf:
lsof /var/log/syslog
lsof +D /var/log
lsof -i:137 nur TCP: lsof -i tcp:137 nur UDP: lsof -i udp:137
lsof -c apache lsof -p 1234
lsof -u oliver
Per Default verknüpft Lsof mehrere Suchkriterien mit "oder". Um stattdessen mit "und" zu verknüpfen, verwenden Sie den Schalter "-a". Um die oben beschriebenen Filter wie UID, PID, Prozess- oder Usernamen zu negieren, setzen Sie davor ein Caret-Zeichen: "lsof -p ^1" listet alle offenen Dateien, außer die der Prozess-ID 1. "lsof -u ^root" zeigt offene Prozesse, außerdenjenigen des Root-Users.
Alle Optionen listet die Lsof-Manpage, die es auch online gibt.