Erkundung /Proc -Dateisystem unter Linux

Erkundung /Proc -Dateisystem unter Linux

Heute werden wir einen Blick in die /proc Verzeichnis und entwickeln Sie eine Vertrautheit damit. Der /proc Verzeichnis ist in allen vorhanden Linux Systeme unabhängig von Geschmack oder Architektur.

Ein Missverständnis, das wir sofort aufklären müssen, ist, dass die /proc Verzeichnis ist NICHT ein echter Dateisystem, im Sinne des Begriffs. es ist ein Virtuelles Dateisystem. In der Procfs sind Informationen zu Prozessen und anderen Systeminformationen. Es ist zugeordnet /proc und montiert an Stiefel Zeit.

Erkundung /Proc -Dateisystem

Zunächst gehen wir in die /proc Verzeichnis und schauen Sie sich um:

# CD /Proc

Das erste, was Sie bemerken werden, ist, dass es einige gibt vertraute klingende Dateien, und dann eine ganze Reihe von nummerierte Verzeichnisse. Der nummerierte Verzeichnisse vertreten Prozesse, besser bekannt als Pids, und in ihnen ein Befehl, der sie besetzt. Die Dateien enthalten Systeminformationen wie z Erinnerungy (meminfo), CPU -Informationen (cpuinfo) und verfügbar Dateisysteme.

Lesen Sie auch:  Linux -kostenloser Befehl zum Überprüfen des physischen Speichers und zum Austausch des Speichers

Schauen wir uns zuerst eine der Dateien an:

# Cat /Proc /Meminfo
Probenausgabe

was etwas ähnlich wie folgt zurückgibt:

MemTotal: 604340 kB MemFree: 54240 kB Buffers: 18700 kB Cached: 369020 kB SwapCached: 0 kB Active: 312556 kB Inactive: 164856 kB Active(anon): 89744 kB Inactive(anon): 360 kB Active(file): 222812 kB Inactive (Datei): 164496 KB uneizig: 0 kb mlockiert: 0 kb swaptotal: 0 kb swapfree: 0 kb schmutzig: 0 kb schreibback: 0 kb anonpages: 89724 kb kartiert: 18012 kb shmem: 412 kb slab: 50104 kb sreclaimable … 

Wie du sehen kannst, /proc/meminfo Enthält eine Reihe von Informationen über den Speicher Ihres Systems, einschließlich der verfügbaren Gesamtmenge (in KB) und die Menge kostenlos in den beiden oberen Zeilen.

Ausführen des CAT -Befehls auf einer der Dateien in /proc wird ihren Inhalt ausgeben. Informationen zu Dateien finden Sie auf der Mannseite, indem Sie ausgeführt werden:

# Mann 5 /Proc /

Ich werde Ihnen einen schnellen Überblick geben /procs Dateien:

  1. /proc/cmdline - Kernel -Befehlszeileninformationen.
  2. /Proc/Konsole - Informationen zu aktuellen Konsolen einschließlich TTY.
  3. /Proc/Geräte - Gerätefahrer, die derzeit für den laufenden Kernel konfiguriert sind.
  4. /proc/dma - Informationen zu aktuellen DMA -Kanälen.
  5. /proc/fb - Framebuffer -Geräte.
  6. /Proc/DateisystemS - Aktuelle Dateisysteme, die vom Kernel unterstützt werden.
  7. /proc/iomem - Aktuelle Systemspeicherkarte für Geräte.
  8. /proc/ioports - Registrierte Portregionen für die Eingabeausgangskommunikation mit dem Gerät.
  9. /proc/loadavg - Systemlastdurchschnitt.
  10. /proc/locks - Dateien, die derzeit vom Kernel gesperrt sind.
  11. /proc/meminfo - Informationen zum Systemspeicher (siehe oben Beispiel).
  12. /proc/miscus - Verschiedene Fahrer, die für verschiedene Major -Geräte registriert sind.
  13. /proc/module - Derzeit beladene Kernelmodule.
  14. /proc/montiert - Liste aller vom System verwendeten Reittiere.
  15. /proc/partitions - Detaillierte Informationen zu Partitionen, die dem System zur Verfügung stehen.
  16. /proc/pci - Informationen zu jedem PCI -Gerät.
  17. /proc/stat - Aufzeichnung oder verschiedene Statistiken vom letzten Neustart aufbewahrt.
  18. /Proc/Swap - Informationen zum Austauschplatz.
  19. /Proc/Verfügbarkeit - Verfügbarkeitsinformationen (in Sekunden).
  20. /proc/Version - Kernelversion, GCC -Version und Linux -Distribution installiert.

Innerhalb /procs nummerierte Verzeichnisse finden Sie einige Dateien Und Links. Denken Sie daran, dass die Zahlen dieser Verzeichnisse mit dem korrelieren PID des Befehls, der in ihnen ausgeführt wird. Lassen Sie uns ein Beispiel verwenden. Auf meinem System gibt es einen Ordnernamen /proc/12:

# CD /Proc /12 # ls
Probenausgabe
attr Coredump_filter io montiert oom_score_adj smaps wchan autodroup cpuset latenz montestats pagemap stack auxv cwd limits net persönlich cggroup Environ loginuid ns root statm clear_refs exe Maps numa_maps ontinfo -memdline fd mem_adj adj adj adj adj adj adj adj adj adj adj adj adj adj adj adj adj adj adj adj pledestat

Wenn ich renn:

# Cat/Proc/12/Status

Ich bekomme Folgendes:

Name: Xenwatch -Zustand: s (Schlaf) TGID: 12 PID: 12 PPID: 2 Tracerpid: 0 UID: 0 0 0 0 GID: 0 0 0 FDSIZE: 64 Gruppen: Threads: 1 Sigq: 1/4592 Sigpnd: 0000000000000000 SHDPNDNDE : 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0

Also, was bedeutet das?? Nun, der wichtige Teil ist an der Spitze. Aus der Statusdatei können wir sehen, dass dieser Prozess gehört Xenwatch. Sein aktueller Zustand ist Schlafen, und sein Prozess AUSWEIS Ist 12, offensichtlich. Wir können auch sehen, wer das betreibt, als Uid Und Gid Sind 0, Angeben, dass dieser Prozess zum der gehört Wurzel Benutzer.

In einem beliebigen nummerierten Verzeichnis haben Sie eine ähnliche Dateistruktur. Die wichtigsten und ihre Beschreibungen sind wie folgt:

  1. cmdline - Befehlszeile des Prozesses
  2. Umwelt - Umgebungsvariablen
  3. fd - Dateideskriptoren
  4. Grenzen - Enthält Informationen über die Grenzen des Prozesses
  5. Anschlüsse - Verwandte Informationen

Sie werden auch eine Reihe von Links im nummerierten Verzeichnis bemerken:

  1. CWD - Ein Link zum aktuellen Arbeitsverzeichnis des Prozesses
  2. exe - Link zur ausführbaren Datei des Prozesses
  3. Wurzel - Link zum Arbeitsverzeichnis des Prozesses

Dies sollte Ihnen damit beginnen, sich mit dem vertraut zu machen /proc Verzeichnis. Es sollte auch Einblicke geben, wie eine Reihe von Befehlen ihre Informationen erhalten, wie z Betriebszeit, LSOF, montieren, Und ps, nur um ein paar zu nennen.