Linux, コマンド · 1 min read · Sep 16, 2025

初心者のためのLinux lsofコマンドチュートリアル (15の例)

Linuxのlsofコマンドは、プロセスによって開かれているファイルに関する情報を出力します。この記事では、15のわかりやすい例を使ってLinux lsofツールについて説明します。このチュートリアルで紹介するすべての例は、Ubuntu 22.04 LTSでテストされていますが、Debian、Fedora、CentOSなどの他のLinuxディストリビューションでも動作します。

lsofコマンドについて

特定のプロセス(またはすべてのプロセス)によって開かれているファイルの名前をすぐに確認したい場合、lsofコマンドを使用できます。開かれたファイルは、通常のファイルやディレクトリ、ライブラリ、特別なファイルやブロックデバイス、キャラクタ特殊ファイル、実行中のテキスト参照、ストリームやネットワークファイルである可能性があります。また、ポート番号でプロセスをリストすることもできます。rootユーザーとしてログインしていない場合は、コマンドの前に「sudo」を付ける必要があるかもしれません。

Linux lsofコマンドのインストール

ほとんどのLinuxディストリビューションには、lsofがプリインストールされています。システムにまだインストールされていない場合は、次のコマンドを使用してlsofをインストールしてください。

UbuntuおよびDebianの場合:

$ sudo apt install lsof

CentOSおよびFedoraの場合:

$ dnf install lsof

1. すべてのオープンファイルをリストする方法

すべてのオープンファイルをリストするには、引数なしでlsofコマンドを実行します:

lsof

例えば、以下は私のシステムで上記のコマンドが生成した出力の一部のスクリーングラブです:

Linuxでのすべてのオープンファイルをリストする方法

最初の列はプロセスを表し、最後の列にはファイル名が含まれています。すべての列の詳細については、コマンドのmanページを参照してください。

2. 特定のユーザーに属するプロセスによって開かれたファイルをリストする方法

このツールは、特定のユーザーに属するプロセスによって開かれたファイルをリストすることもできます。この機能は、-uコマンドラインオプションを使用することでアクセスできます。

lsof -u [ユーザー名]

例えば:

lsof -u administrator

特定のユーザーに属するプロセスによって開かれたファイルをリストする方法

3. インターネットアドレスに基づいてファイルをリストする方法

このツールは、インターネットアドレスに基づいてファイルをリストすることができます。これは、-iコマンドラインオプションを使用して行うことができます。例えば、IPv4とIPv6のファイルを別々に表示することができます。IPv4の場合、次のコマンドを実行します:

lsof -i 4

例えば:

インターネットアドレスに基づいてファイルをリストする方法

同様に、IPv6の場合は次のコマンドを実行します:

lsof -i 6

例えば: lsof -i 6

LSOF IPv6リスナー

4. アプリケーション名によるすべてのファイルをリストする方法

-cコマンドラインオプションを使用すると、プログラム名によって開かれたすべてのファイルを取得できます。

$ lsof -c apache

完全なプログラム名を使用する必要はなく、「apache」という単語で始まるすべてのプログラムが表示されます。したがって、私たちの場合、’apache2’アプリケーションのすべてのプロセスがリストされます。

プログラム名によるオープンファイルを取得する

-cオプションは基本的に次の2つのコマンドのショートカットです:

$ lsof | grep apache

5. 特定のプロセスに特有のファイルをリストする方法

このツールは、プロセス識別(PID)番号に基づいて開かれたファイルを表示することもできます。これは、-pコマンドラインオプションを使用して行うことができます。

lsof -p [PID]

例えば:

lsof -p 856

特定のプロセスに特有のファイルをリストする方法

次に、出力から特定のPIDを除外することもできます。除外する特定のPIDを指定するには、^記号を前に付けてコマンドを実行します:

lsof -p [^PID]

例えば: lsof -p ^1

特定のプロセスに特有のファイルをリストする方法 - 結果

上記のスクリーンショットのように、ID 1のプロセスはリストから除外されています。

6. 特定のファイルを開いているプロセスのIDをリストする方法

このツールは、特定のファイルを開いているプロセスのIDをリストすることができます。これは、-tコマンドラインオプションを使用して行うことができます。

$ lsof -t [ファイル名]

例えば:

$ lsof -t /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0

特定のファイルを開いているプロセスのIDをリストする方法

7. ディレクトリ内のすべてのオープンファイルをリストする方法

必要に応じて、lsofにディレクトリのすべてのオープンインスタンス(それに含まれるすべてのファイルやディレクトリを含む)を検索させることもできます。この機能は、+Dコマンドラインオプションを使用してアクセスできます。

$ lsof +D [ディレクトリパス]

例えば:

$ lsof +D /usr/lib/locale

特定のディレクトリにlsofを制限する方法

8. すべてのインターネットおよびx.25(HP-UX)ネットワークファイルをリストする方法

これは、前述の-iコマンドラインオプションを使用することで可能です。ただし、引数なしで使用する必要があります。

$ lsof -i

すべてのインターネットおよびx.25(HP-UX)ネットワークファイルをリストする方法

9. どのプログラムがポートを使用しているかを調べる方法

コマンドの-iスイッチを使用すると、特定のポート番号をリッスンしているプロセスやアプリケーションを見つけることができます。以下の例では、ポート80を使用しているプログラムを確認しました。

$ lsof -i :80

ポート番号の代わりに、/etc/servicesファイルにリストされているサービス名を使用できます。HTTPS(443)ポートでリッスンしているアプリを確認する例:

$ lsof -i :https

結果:

オープンポートまたはサービスによるプロセスをリストする

上記の例は、TCPとUDPの両方を確認します。TCPまたはUDPのみを確認したい場合は、「tcp」または「udp」という単語を前に付けてください。例えば、ポート25 TCPを使用しているアプリケーションは:

$ lsof -i tcp:25

または、UDPポート53を使用しているアプリは:

$ lsof -i udp:53

10. ポート範囲に基づいてオープンファイルをリストする方法

このユーティリティは、特定のポートまたはポート範囲に基づいてオープンファイルをリストすることもできます。例えば、ポート1-1024のオープンファイルを表示するには、次のコマンドを使用します:

$ lsof -i :1-1024

ポート範囲に基づいてオープンファイルをリストする方法

11. 接続の種類(TCPまたはUDP)に基づいてオープンファイルをリストする方法

このツールは、接続の種類に基づいてファイルをリストすることができます。例えば、UDP特有のファイルの場合、次のコマンドを使用します:

$ lsof -i udp

接続の種類(TCPまたはUDP)に基づいてオープンファイルをリストする方法

同様に、lsofにTCP特有のファイルを表示させることもできます。

12. lsofにプロセスの親PIDをリストさせる方法

lsofに出力に親プロセスID(PPID)番号をリストさせるオプションもあります。問題のオプションは-Rです。

$ lsof -R

特定のPIDのPPID情報を取得するには、次のコマンドを実行できます:

$ lsof -p [PID] -R

例えば:

$ lsof -p 3 -R

lsofにプロセスの親PIDをリストさせる方法

13. ユーザーによるネットワークアクティビティを見つける方法

-iおよび-uコマンドラインオプションの組み合わせを使用することで、Linuxユーザーのすべてのネットワーク接続を検索できます。これは、ハッキングされた可能性のあるシステムを調査する際に役立ちます。この例では、ユーザーwww-dataのすべてのネットワークアクティビティを確認します:

$ lsof -a -i -u www-data

Linuxでのユーザーによるネットワークアクティビティを見つける

14. すべてのメモリマップファイルをリストする方法

このコマンドは、Linux上のすべてのメモリマップファイルをリストします。

$ lsof -d mem

メモリマップファイルを見つける

15. すべてのNFSファイルをリストする方法

-Nオプションは、すべてのNFS(ネットワークファイルシステム)ファイルのリストを表示します。

$lsof -N

結論

lsofは多くのオプションを提供していますが、ここで説明したものは、始めるのに十分なはずです。これらの練習が終わったら、ツールのmanページにアクセスしてさらに学んでください。ああ、疑問や質問がある場合は、下にコメントを残してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。