📚

lsof・ls・psの違いまとめ

に公開

lsof、ls、psはいずれもLinuxやmacOSなどUNIX系OSでよく使われるコマンドだが、扱う対象が異なる。

lsは「List」の略で、ディレクトリ内に存在するファイルやフォルダの一覧を表示するコマンドである。ファイルシステム上に「存在する」ファイルを確認するのが目的で、プロセスの状態とは関係がない。例えば「ls /var/log」とすれば、そのフォルダにあるファイルを一覧できる。

psは「Process Status」の略で、現在動作しているプロセスの一覧を表示する。システム上で実行中のプログラムやサービスを調べるのに使う。CPUやメモリの使用状況、プロセスID(PID)、実行ユーザーなどが分かる。「ps aux」とすれば全プロセスの詳細を確認できる。

lsofは「List Open Files」の略で、現在「開かれているファイル」を一覧表示する。UNIXではすべてがファイルとして扱われるため、普通のファイルだけでなく、ソケット、パイプ、デバイスファイルなども含まれる。lsofは「どのプロセスがどのファイルを開いているか」という関係を調べることができる点が特徴である。例えば「lsof -i :8080」で8080番ポートを使用しているプロセスを確認できる。

まとめると、lsは「存在しているファイルを見る」、psは「動作しているプロセスを見る」、lsofは「プロセスとファイルの対応関係を見る」ためのコマンドである。特にlsofはファイルロックの確認やポート競合の調査など、システムトラブル解決時に強力なツールとなる。

Discussion