lsofコマンドって何?lsコマンドとの違いについて解説!

lsofコマンドって聞いてすぐに出てきますか?

インフラエンジニアの方であれば、すぐに出てくる人も多いと思います。

しかし、インフラでの経験が少ない方であれば、以下のようになる方も多いと思います。

  • lsofコマンドって何?聞いたこともない。
  • lsコマンドと何が違うの?

今回はそんなlsofコマンドについて、lsコマンドとの違いについても交えながら解説していきます。

目次

lsofコマンドとは?

コマンドのイメージ画像

lsofは「List Open Files」の略称で、LinuxやUnix系システムで利用されるコマンドです。名前の通り、「プロセスが開いているファイル」を表示させるコマンドとなります。

システム上で開かれているファイルやネットワーク接続など、プロセスが利用しているリソースのリストを列挙するために使用されます。対象となるリソースはファイル、ディレクトリ、デバイス、プロセスなど幅広いものが含まれています。

lsofコマンドの基本的な使い方

lsofコマンドの基本構文は以下のようになります。

lsof [options] [path]

オプションを付与しない場合は全てのプロセスについて表示します。

例えば、指定されたパスのファイルを使用しているプロセスを表示させる場合、次のように実行します。

lsof /#該当ファイルパス/

オプション

lsofコマンドには多くのオプションがあります。以下のオプションはよく使用すると思われるオプションです。

オプション意味
-p指定したプロセスIDに関連するファイルを表示する。
-i指定したポート番号やポート範囲を利用しているプロセスを表示する。
-c指定したプロセス名(文字列)に関連するファイルを表示する。
-nホスト名の代わりにIPアドレスを表示する。
-u指定したユーザーが所有するファイルを表示する。
-tPID(プロセスID)のみを表示する。
-bカーネルロックやデバイスの操作を抑制します。

lsコマンドとの違い

冒頭部分でも少し触れましたlsコマンドとの違いについて説明します。

lsコマンドとlsofコマンドは、両方ともファイルシステムを対象としています。

しかし、それぞれ異なる目的で使用するので覚えておきましょう!

lsコマンド

ファイルやディレクトリのリストを表示するために使用されます。

しかし、該当のディレクトリ内のファイルやディレクトリを表示するためのもので、そのファイルが開かれているかどうか、またどのプロセスによって開かれているかについてはlsコマンドでは分かりません

lsofコマンド

ファイルがどのプロセスによって使用されているかを特定するために使用されます。

特定のファイルやリソースに関連するプロセスやプロセスIDを特定することができます。

例えば、削除したのにまだプロセスによって利用されているファイルなどを見つけることが可能になります!

実用の例について

lsofコマンドの実用例についていくつか紹介します。

ファイルの削除とプロセスの確認

不要なログファイルを削除しようとしたが、ディスク容量が解放されていないことを確認。ファイルがまだ何かによって使用されている可能性がある。

lsofコマンドを使用して、削除しようとしているファイルを使用しているプロセスを特定する。

実行結果に基づいて該当するプロセスを停止したリします。

lsof /path/file.log   #例

ポートの使用状況確認

該当ポートが既に使用されており、他のプロセスがそのポートを占有している可能性がある。

lsofコマンドを使用して、該当ポートを使用しているプロセスを特定する。

実行結果に基づいて競合するプロセスを特定して必要に応じ、終了させます。

lsof -i :port番号  #例

セキュリティとlsofについて

調査中に、不審なプロセスがどこかのファイルにアクセスしていることが判明。

lsofコマンドを使用して、不審なプロセスとそのアクセスしているファイルを特定する。

実行結果に基づいて、不審なプロセスが開いているファイルやリソースを特定することができる。

lsof -c 不審なプロセス名  #例

まとめ

今回は、lsofコマンドについてlsコマンドとの違いについて、交えながら解説しました。

ファイルやディレクトリの単純な一覧が知りたい場合は lsコマンド

ファイルがどのプロセスによって使用されているかを知りたい場合は lsofコマンド

ざっくりですが、今日初めてlsコマンドとの違いについて、知ったという方は上記のように覚えておきましょう!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次