Linux lsof Tutorial for Beginners With Examples
lsof is great utility. lsof is list of open files. Before we delve into utilization of lsof, lets check if lsof is available in our environment or not.
lsof bash: lsof: command not found
Ok we got the error "bash: lsof: command not found". Lets install it first.
yum -y install lsof
If we just run lsof, we will get list of all the open files. Lets run lsof and pipe it to less. Checkout the snapshot below.
How to list files opened by specific user
Let say we want to list all the opened files by user root. Run following command.
lsof -u root | less
How to list opened files by ip address
For ipv4 addresses. use -i 4
lsof -i 4
For ipv6 addresses use -i 6 option
lsof -i 6
To find a specific ip address just pipe the result of above command to egrep as shown below.
lsof -i 4 | egrep '126.96.36.199'
Checkout more about how to use lsof to detect listening ports
How to list opened files by specific process id
lsof -p pid
lsof -p 12
The result of above command is shown in the snapshot below.
How to list process ids of opened file
Lets say we want to know the file which is opened and we want to find all the processes that are opened for a file.
example: find all the processes for the opened file /run/systemd/journal/socket
lsof -t /run/systemd/journal/socket
As we see in the above snapshot, the process ids associated with file /run/systemd/journal/socket are 1 and 528
How to find opened files for listening port range
Lets say we want to find all the files which are opened for the ports ranging from 8000 to 8005.
lsof -i :8000-8005
Please checkout the snapshot below to see the output of above command.
lsof is very useful command to find lot of detailed information about the opened files by different Linux processes. I hope above examples will help getting started.