GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでlsofコマンドを使用する方法

lsofコマンドの役割は、「開いているファイルの一覧表示」です。 システム内。開いているファイルは、必ずしもpdfまたはテキストファイルを意味するわけではなく、バックグラウンドでプロセスによって使用されるディスクファイルまたはパイプが含まれます。

このコマンドは、オペレーティングシステムのデバッガーとシステム管理者にとって便利なツールです。

lsofコマンドはプレインストールされたLinuxユーティリティですが、Ubuntu / Debianユーザーは、インストールされていない場合はaptを使用してインストールできます。

sudo apt install lsof

他のLinuxユーザーは、標準のインストールコマンドに続いてlsofを使用してインストールできます。 。

lsofの使用法に簡単に移りましょう コマンド:

システムで開いているすべてのファイルを一覧表示する

オプションを指定せずにlsofコマンドを実行すると、システムで開いているすべてのファイルを一覧表示できます。そうすることで、大量のデータで端末をフラッシュします。したがって、lessを使用することをお勧めします 任意のコマンドによってスローされるデータを制限するコマンド

sudo lsof | less

'ENTER'を押す または下矢印キーを押すと、リストの一番下に移動できます。

出力の各ファイルは、そのタイプと使用法に関する重要な情報を提供します。

  • コマンド –ファイルを開くプロセスに関連付けられたLinuxコマンド。
  • PID –ファイルを保持しているプロセスのプロセスID。
  • TID –それぞれのプロセスのスレッドID。
  • ユーザー –プロセスを管理するLinuxユーザー。
  • FD –プロセスがファイルに関連付けるために使用するファイル記述子。
    • cwd –現在の作業ディレクトリ
    • rtd –ルートディレクトリ
    • txt –コードのようなテキストプログラム
    • mem –メモリマップトファイル
  • タイプ –ファイルのタイプ
    • REG –通常のファイル
    • DIR –ディレクトリ
    • CHR –文字ファイル
    • リンク –シンボリックリンクファイル
  • デバイス –ファイルに関連するデバイス番号。
  • サイズ/オフ –ファイルのサイズまたはそのオフセット(バイト単位)。
  • ノード –iノード番号。
  • 名前 –ファイルの名前。

注: コマンドがroot権限を使用して実行されていない場合、iノードやデバイス番号などの一部の情報が編集される可能性があります。

man lsofを実行すると、ターミナルからアクセスできるマニュアルページからの出力について詳しく知ることができます。

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

lsof コマンドは、開いているファイルをフィルタリングするために適用できる多くのオプションをサポートしています。これらの1つは-uです 特定のユーザーの開いているファイルを表示するオプション。

sudo lsof -u <USER_NAME> | less

3番目の列は、ファイルを開く責任があるユーザーに基づいています。基本的な出力と同様に、端末は無意味なデータで混雑しているため、lessを使用します コマンドをお勧めします。

特定のディレクトリで開いているファイルを一覧表示する

ファイルはディレクトリ内に存在するため、特定のディレクトリで開いているファイルを抽出できるのは非常に簡単です。

lsof +D <DIR_NAME>

上の図では、Documentsフォルダーで現在開いているファイルをリストしています。開かれたファイルは通常のC++ファイルです。

lsofコマンドを使用して特定のファイルシステムで開いているファイルを一覧表示します

単一のディレクトリの代わりに、lsof コマンドは、特定のファイルシステムから開いているファイルを一覧表示できます。これは、ファイルシステムの名前をlsofの後に配置することで実現されます。 コマンド。

lsof <FILE_SYSTEM>

上の図では、開いているファイルを/procファイルシステムに表示しています。

特定のプロセスで開いているファイルを一覧表示する

プロセスIDを使用して、開いているファイルをフィルタリングできます。これは、-pを使用して実行できます。 オプション。

lsof -p <PID>

上記のターミナルのスニペットは、PIDが3404のプロセスで開いているファイルのリストを示しています。

注: キャレット記号(^) lsofのパラメータを無効にするために使用されます 指図。たとえば、lsof -p ^3404 、3404を除くすべてのPIDの開いているファイルのリストを表示します。

開いているネットワークファイルを一覧表示する

Linuxは、IPアドレスまたはネットワークインターフェイス構成を保存するためのさまざまなネットワークファイルを保存します。これらの種類の開いているファイルは、-iで除外できます。 フラグ。

lsof -i 

これらのファイルには、ネットワークプロトコルの種類などの特定の特性があります。開いているファイルは、次のような特定のパラメータを使用してさらにフィルタリングできます。

  • 「4」 –IPv4のネットワークファイル
  • 「6」 –IPv6のネットワークファイル
  • 「TCP」 –TCPのネットワークファイル
  • 「UDP」 –UDPのネットワークファイル
  • 「TCP:25」 –ポート番号25のTCPのネットワークファイル
  • 「TCP:1-25」 –ポート番号が1〜25のTCPのネットワークファイル

例:

lsof -i 6

lsofコマンドを使用してコマンドに基づいて開いているファイルを検索する

システムに何千ものファイルが開いているため、特定のコマンドを直線的に検索することは不可能のようです。したがって、lsof コマンドには-cがあります コマンドに基づいて開いているファイルを除外するオプション。

lsof -c <COMMAND>

結論

lsof コマンドは、システムの問題のデバッグとトラブルシューティングに効果的な多くのオプションをサポートしています。興味のある読者は、man lsofを実行して、ターミナルからマニュアルページにアクセスできます。 、コマンドの特権と出力に関する知識を深めるため。

質問やフィードバックについては、以下にコメントしてください。


Linux
  1. LinuxでTarコマンドを使用する方法

  2. LinuxでSuコマンドを使用する方法

  3. Linux で tar コマンドを使用する方法

  1. LinuxでDisownコマンドを使用する方法

  2. Linuxでmd5sumコマンドを使用する方法

  3. LinuxSSコマンドの使用方法

  1. Linuxでtouchコマンドを使用する方法

  2. Linuxheadコマンドの使用方法

  3. Linuxのdiffコマンドの使用方法