Linux の lsof コマンド

Abid Ullah 2023年6月20日
  1. Linux の lsof コマンド
  2. lsof コマンドを使用して Linux のポートを一覧表示する
  3. Linux で lsof コマンドを使用して開いているすべてのファイルを一覧表示する
  4. Linux で lsof コマンドを使用してユーザーが開いているすべてのファイルを一覧表示する
  5. Linux で lsof コマンドを使用してすべてのインターネット ファイルを一覧表示する
  6. Linux で lsof コマンドを使用して特定のプロセスごとにすべてのファイルを一覧表示する
  7. Linux で lsof コマンドを使用して特定のポートで実行されているプロセスを見つける
  8. Linux で lsof コマンドを使用してリッスン ポートを確認する
Linux の lsof コマンド

この Linux 記事では、Linux オペレーティング システムの lsof コマンドについて学習します。 Linux でこのコマンドをさまざまな目的に使用する方法について説明します。

lsof コマンドを使用して、Linux オペレーティング システムで使用されているポートを確認します。 この lsof コマンドを使用すると、ポートが Linux オペレーティング システムで使用されているかどうかを確認できます。

Linux での lsof コマンドとは何かから始めましょう。

Linux の lsof コマンド

lsof は、ポートが使用中かどうかを判断するために Linux で使用される List Open Files コマンドの略です。 このコマンドは、Linux のシステム ファイルで使用されているユーザーにプロセスを返します。

これは、ファイル システムが使用されたままでアンマウントできない理由を特定するのに役立ちます。

ご存じのとおり、Linux オペレーティング システムはすべてをファイルとフォルダーと見なします。 そのため、Linux システムで使用されるファイルまたはフォルダーは非常に重要です。

Linux オペレーティング システムで作業する場合、いくつかのファイルとフォルダーが使用されます。 これらのファイルまたはフォルダーの一部はユーザーに表示され、一部は表示されません。

lsof コマンドは、Linux オペレーティング システムで開かれているファイルまたはフォルダーのリストを提供します。 このコマンドは、システム内のどのプロセスによって開かれたファイルを見つけるための情報を提供します。

1 回実行するだけで、開いているすべてのファイルが出力コンソールに一覧表示されます。 lsof コマンドは、一般的な通常のファイルを一覧表示するだけでなく、ディレクトリ、共有ライブラリ、システム内の特別なファイル、および他の多くのものを一覧表示することもできます。

lsof コマンドは grep コマンドと組み合わせることができ、Linux での高度な検索とファイルの一覧表示に使用できます。

lsof コマンドを使用して Linux のポートを一覧表示する

lsof コマンドは、Linux システムで開いているすべてのファイルまたはフォルダーを一覧表示するのに役立ちます。 したがって、このコマンドを使用して、Linux システムの特定のポートで開いているすべてのプロセスを表示できます。

lsof コマンドを使用するには、ターミナルで次のコマンドを使用して、Linux システムにまだインストールされていない場合は lsof ユーティリティをインストールする必要があります。

$ sudo apt install lsof

Linux システムに lsof ユーティリティをインストールする

lsof コマンドのユーティリティをシステムにインストールした後、それを使用して Linux システムのファイルとポートを一覧表示できるようになりました。

Linux で lsof コマンドを使用して開いているすべてのファイルを一覧表示する

Linux ユーザーとして、特定のプロセスがファイルによって開かれているポート番号を知りたい場合があります。 すべての Linux オペレーティング システム ポートは、プロセス ID またはサービスに関連付けられています。

ファイルがプロセスを開くポートを特定するために使用できるさまざまな方法について説明します。

以下の例に示すように、lsof コマンドを使用しました。 Linux システムの任意のプロセスによって開かれたすべてのファイルが表示されます。

ご覧のとおり、下の画像に示すように、Linux システムのプロセスによって開かれたファイルの長いリストが表示されます。

コード例:

$ lsof

lsof コマンドを使用してファイルとポートを一覧表示する

上の図は、開いているファイルの詳細があることを示しています。 詳細には、プロセス ID、プロセスに関連付けられたユーザー、FD (ファイル記述子)、およびファイル サイズが含まれます。

これにより、コマンド、プロセス ID、ユーザーなどによって開かれたファイルに関する詳細情報が得られます。

Linux で lsof コマンドを使用してユーザーが開いているすべてのファイルを一覧表示する

複数のユーザーが Linux システムを使用している場合。 次に、それぞれに異なる要件があり、異なるファイルを使用します。

特定のユーザーが開いたファイルのリストを見つけたい場合は、次のコマンドを使用します。

構文:

$ lsof -u username

コード例:

$ lsof -u abid

ユーザーが開いたすべてのファイルを一覧表示する lsof -u の使用

上の図は、コマンド lsof -u abidabid という名前のユーザーによって開かれたすべてのファイルを一覧表示することを示しています。

さまざまな種類のファイル (CHRREGDIR) も確認できます。 CHR は特殊文字ファイル、REG は通常のファイル、DIR はディレクトリです。

Linux で lsof コマンドを使用してすべてのインターネット ファイルを一覧表示する

すべてのインターネット ファイルとネットワーク ファイルを一覧表示するには、lsof コマンドで -i オプションを使用します。 次のように、ターミナルで lsof コマンドを使用します。

$ sudo lsof -i

lsof-i コマンドを使用してすべてのインターネット ファイルを一覧表示する

lsof -i コマンドを実行すると、出力にサービス名と数値ポートが表示されることがわかります。

Linux で lsof コマンドを使用して特定のプロセスごとにすべてのファイルを一覧表示する

たとえば、Mysql という特定のプロセスが実行されており、このプロセスによって開かれたすべてのファイルを見つけたいとします。 次のようなlsofコマンドを使用して、それを見つけることができます。

$ lsof -c Mysql

この lsof コマンドは、コマンドで指定された特定のプロセスによって開かれたすべてのファイルを一覧表示します。 このようにして、コマンドでプロセス名を指定するだけで、任意のプロセスによって開かれたファイルを見つけることができます。

Linux で lsof コマンドを使用して特定のポートで実行されているプロセスを見つける

ポートで実行中のすべてのプロセスを検出する場合は、次のlsofコマンドをオプション-iとともに使用します。 以下の例では、ポート 30 で実行中のすべてのプロセスを一覧表示します。

コード例に示すように、コマンドでポート番号を指定するだけで、特定のポートで実行されているプロセスを見つけることができます。

コード例:

$ sudo lsof -i :30

Linux で lsof コマンドを使用してリッスン ポートを確認する

Linux システムでは、ネットワーク ポートは、その番号、IP アドレス、および TCP や UDP などの通信に使用されるプロトコルのタイプによって識別されます。 Linux ではさまざまな方法でリッスン ポートを確認できます。この記事では、lsof コマンドを使用してリッスン ポートを確認します。

ご存じのように、lsof は Linux の強力なコマンドで、プロセスによって開かれたファイルに関する情報を提供できます。 Linux では、ターミナルの lsof コマンドを使用して、リッスンしているすべての TCP ポートを取得します。

システムで実行されているすべての TCP ポートを表示するために使用されるコマンド:

$ sudo lsof -nP -iTCP -sTCP:LISTEN

上記のコマンドでは、-n を使用して、ポート番号を名前に変更しませんでした。 また、-p を使用して、ポートの数値アドレスを表示しました。

-iTCP -sTCP:LISTEN を使用して、TCP 状態のネットワーク ファイルのみを表示しました。

出力:

すべての TCP ポート リストを表示するために使用される lsof コマンド

ターミナルで上記のコマンドを使用すると、Linux システムで実行されているすべての TCP ポートが出力に表示されます。

この記事が、Linux で lsof コマンドを使用してプロセスまたはファイルを一覧表示する方法を理解するのに役立つことを願っています。

著者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn