Categories: Linux

Linux lsof command explained with 12 practical examples

The lsof is an acronym for List of open files that displays detailed info on which files are held open on a Linux system and which processes have opened them. It was developed and supported by Victor A. Abell.

This article will help you to understand the lsof command usage along with 12 practical examples.

All Open Files List using lsof

To view the list of the open files simply execute lsof and you will get the output like below where you can see a header like a command, Pid, User, FD, etc.

$ lsof

In the above example, most of the columns and their values are self-explanatory. So let’s see what actually FD is, Fd refers to File Descriptor and it contains values like:

  • cwd- current working directory
  • rtd - root directory
  • txt - text
  • mem - memory-mapped file

Open Files List for Specific User

You can specify the user using the -u option to the command which lets you list all the open files for that user.

$ lsof -u root

List Open File By Process Id

Suppose you know the pid of the specific process you can search the open file list based on pid using -p option along with the command trailing with pid value. You need to run the command as specified in the example given below.

# lsof -p 82

Specific Port Running Process

To check which process occupied the specific port you can list them using the -i option along with the port number at TCP/UDP. In the following example, let’s find which process has taken port 80.

# lsof -i:80

Display Specific Network Files (IPv4 & IPv6) List

In order to display the open files according to network files type, you need to specify the type trailing the -i option.

For IPv4 you need to run the command like the below.

# lsof -i 4

For, IPv6 run the command,

# lsof -i 6

Find processes that listen to a specific port range

If you want to display the list of the open files of the specific port range. You need to use -i trailing the command with a specific port range.

# losf -i TCP:1-100

Exclude the Specific User from the Open Files List

You can exclude the users from the output using the ‘^’ character to the command as given in the following example.

# lsof -i -u^sanju

List processes by directory path

To find a process running on a specific directory you can run a command with +D option trailing the path along with it. You have to execute the command in the following way.

# lsof +D /home/sanju

Display Network Connections

User -i option to the command in order to view the list of the network connection based on Listening & Established.

$ lsof -i

Kill Specific Process

Sometimes some processes may resist shutdown even if you close the process or some unknown process may take up the port where you want to run a specific program. In order to force the shutdown of the process, you can use the lsof command as it's easier to list the running process. So you need to run the command in the following way.

# kill -9 $(lsof -t -i:8080)

List Open Files Based on FD (File Descriptor)

You can filter the open files based on FD types, you need to use -d option along with FD type as mentioned in the example below.

# lsof -d rtd

List Open Files Based On Process Name

You can list the files according to the process name using the -c option with the command. Run the command in the following ways

# lsof -c nginx

Conclusion

I am grateful to you for giving your time to go through this article. I hope you gained some knowledge on how lsof command can be used. These are the things that I find useful during deploying the application.

Vitux Staff

Recent Posts

How to Install Magento 2 on AlmaLinux

Magento is a free and open-source e-commerce platform written in PHP. It is simple, easy…

1 year ago

How to Install ISPConfig Hosting Control Panel with Apache Web Server on Ubuntu 24.04

ISPConfig is an open-source control panel that allows users to manage multiple servers from a…

1 year ago

How to Test your Email Server (SMTP) Using the Telnet Command

As a Linux administrator, you may find it necessary to troubleshoot or test your Simple…

1 year ago

Managing Network Interfaces and Settings on Ubuntu 24.04 with nmcli

Ubuntu 24.04, like many modern Linux distributions, relies on the NetworkManager for managing network connections.…

2 years ago

Using Restic Backup on Ubuntu 24.04

Restic is a modern, open-source backup program designed for efficiency, security, and simplicity. It enables…

2 years ago

Installing phpMyAdmin on Rocky Linux 9 and Securing it with Let’s Encrypt SSL

phpMyAdmin is a popular free tool written in PHP intended to administer MySQL and MariaDB…

2 years ago