Lists open files and the corresponding processes. In most cases, you need root privilege (or use sudo) because you want to list files opened by others.

# To find the processes that have a given file open:
lsof /path/to/file

# To find the process that opened a local internet port:
lsof -i :port

# To only output the process PID:
lsof -t /path/to/file

# To list files opened by the given user:
lsof -u username

# To list files opened by the given command or process:
lsof -c process_or_command_name

# To list files opened by the given PID:
lsof -p PID

# To get a list of used ports:
sudo lsof -iTCP -sTCP:LISTEN -P