Sobes.tech
Junior

Wie zeigt man in Linux die Liste der Dateideskriptoren an?

sobes.tech KI

Antwort von AI

Die Liste der Dateideskriptoren kann mit dem Befehl lsof angezeigt werden.

# Alle offenen Dateien und Deskriptoren für alle Prozesse anzeigen
lsof

# Offene Dateien und Deskriptoren für einen bestimmten Prozess nach PID anzeigen
# Ersetzen Sie <PID> durch die Prozess-ID
lsof -p <PID>

# Offene Dateien und Deskriptoren für alle Prozesse eines Benutzers anzeigen
# Ersetzen Sie <username> durch den Benutzernamen
lsof -u <username>

# Offene Dateien und Deskriptoren für einen bestimmten Befehl anzeigen
# Ersetzen Sie <command> durch den Befehl
lsof -c <command>

# Dateien und Deskriptoren im Zusammenhang mit Netzwerkverbindungen anzeigen
lsof -i

# Dateien und Deskriptoren im Zusammenhang mit einem bestimmten Port anzeigen
# Ersetzen Sie <port_number> durch die Portnummer
lsof -i :<port_number>

# Dateien und Deskriptoren im Zusammenhang mit einer bestimmten Datei oder einem Verzeichnis anzeigen
# Ersetzen Sie <file_or_directory> durch den Pfad zur Datei oder zum Verzeichnis
lsof <file_or_directory>

lsof zeigt Informationen in einem Spaltenformat:

  • COMMAND: Name des mit dem Prozess verbundenen Befehls.
  • PID: Prozess-ID.
  • USER: Benutzer, der den Prozess besitzt.
  • FD: Dateideskriptor. Kann sein:
    • cwd: Aktuelles Arbeitsverzeichnis.
    • rtd: Wurzelverzeichnis.
    • txt: Textdatei (ausführbarer Code).
    • mem: Speicherabbild der Datei.
    • mmap: In den Speicher abgebildete Datei.
    • <N>u: Dateideskriptor <N> im "Lesen/Schreiben"-Modus geöffnet.
    • <N>r: Dateideskriptor <N> im "Nur Lesen"-Modus geöffnet.
    • <N>w: Dateideskriptor <N> im "Nur Schreiben"-Modus geöffnet.
    • <N>l: Dateideskriptor <N> ist blockiert.
  • TYPE: Knotentyp:
    • REG: Reguläre Datei.
    • DIR: Verzeichnis.
    • CHR: Zeichenorientiertes Gerät.
    • BLK: Blockorientiertes Gerät.
    • FIFO: Benannter Kanal (Pipe).
    • SOCK: Socket.
  • DEVICE: Gerätenummer.
  • SIZE/OFF: Dateigröße oder Offset.
  • NODE: Inode-Nummer.
  • NAME: Dateiname.

Es ist auch möglich, das /proc-Dateisystem zu verwenden. Für jeden Prozess (PID) ist /proc/<PID>/fd/ ein Verzeichnis, das symbolische Links zu den Dateien enthält, die dieser Prozess geöffnet hat. Jeder Link ist nach der Nummer des Dateideskriptors benannt.

# Anzeigen der Dateideskriptoren für einen Prozess mit PID <PID>
# Ersetzen Sie <PID> durch die Prozess-ID
ls -l /proc/<PID>/fd/

Die Ausgabe von ls -l zeigt die Nummer des Deskriptors und die Datei, auf die er verweist.