Node.js os-Modul

Java FileNode.js integrierte Module


von Node.jsosDas os-Modul ist ein integriertes Kernmodul, das praktische Methoden und Eigenschaften im Zusammenhang mit dem Betriebssystem bereitstellt. Über dieses Modul können wir verschiedene Informationen über das Betriebssystem abrufen, auf dem Node.js aktuell ausgeführt wird, wie CPU-Architektur, Speichernutzung, Netzwerkschnittstellen usw.

Warum brauchen wir das os-Modul?

Bei der Entwicklung von Anwendungen müssen wir manchmal je nach unterschiedlichen Betriebssystemumgebungen verschiedene Operationen ausführen oder die Ressourcennutzung des Systems überwachen.osDas os-Modul bietet uns diese Möglichkeit und ermöglicht es uns, diese Systeminformationen einfach abzurufen.


Verwendung des os-Moduls

UmosUm das Modul zu verwenden, müssen wir es zuerst importieren:

const os = require('os');

Einführung in gängige Methoden

1. Betriebssysteminformationen abrufen

Beispiel

console.log(os.platform());  // Gibt die Betriebssystemplattform zurück, z. B. 'darwin', 'win32', 'linux'
console.log(os.type());      // Gibt den Namen des Betriebssystems zurück, z. B. 'Linux', 'Darwin', 'Windows_NT'
console.log(os.arch());      // Gibt die CPU-Architektur zurück, z. B. 'x64', 'arm'
console.log(os.release());   // Gibt die Betriebssystemversion zurück

2. Speicherinformationen abrufen

Beispiel

console.log(os.totalmem());  // Gibt den gesamten Systemspeicher zurück (Bytes)
console.log(os.freemem());   // Gibt den verfügbaren Systemspeicher zurück (Bytes)

// Für die Anzeige in MB umrechnen
console.log(`Gesamtspeicher: ${os.totalmem() / 1024 / 1024} MB`);
console.log(`Verfügbarer Speicher: ${os.freemem() / 1024 / 1024} MB`);

3. CPU-Informationen abrufen

Beispiel

console.log(os.cpus());      // Gibt ein Array von Objekten zurück, die Informationen über jede CPU/jeden Kern enthalten
console.log(os.loadavg());   // Gibt die durchschnittliche Last für 1, 5 und 15 Minuten zurück (nur Linux/Unix)

// Anzahl der CPU-Kerne abrufen
console.log(`Anzahl der CPU-Kerne: ${os.cpus().length}`);

4. Informationen zur Netzwerkschnittstelle abrufen

Beispiel

console.log(os.networkInterfaces());  // Gibt Informationen zu Netzwerkschnittstellen zurück

5. Benutzerbezogene Informationen abrufen

Beispiel

console.log(os.homedir());   // Gibt das Home-Verzeichnis des aktuellen Benutzers zurück
console.log(os.userInfo());  // Gibt Informationen über den aktuellen Benutzer zurück
console.log(os.hostname());  // Gibt den Hostnamen des Betriebssystems zurück

Praktische Anwendungsbeispiele

Beispiel 1: Systemüberwachungstool

Beispiel

const os = require('os');

function systemMonitor() {
  console.log('=== Systemüberwachung ===');
  console.log(`Betriebssystem: ${os.type()} ${os.release()}`);
  console.log(`CPU-Architektur: ${os.arch()}`);
  console.log(`Anzahl der CPU-Kerne: ${os.cpus().length}`);
  console.log(`Gesamtspeicher: ${(os.totalmem() / 1024 / 1024).toFixed(2)} MB`);
  console.log(`Verfügbarer Speicher: ${(os.freemem() / 1024 / 1024).toFixed(2)} MB`);
  console.log(`Systemlaufzeit: ${(os.uptime() / 60 / 60).toFixed(2)}Stunden`);
}

systemMonitor();

Beispiel 2: Netzwerk-IP-Adresse abrufen

Beispiel

const os = require('os');

function getLocalIP() {
  const interfaces = os.networkInterfaces();
  for (const interfaceName in interfaces) {
    for (const iface of interfaces[interfaceName]) {
      if (iface.family === 'IPv4' && !iface.internal) {
        return iface.address;
      }
    }
  }
  return '127.0.0.1';
}

console.log(`Local IP address: ${getLocalIP()}`);

Hinweise

  1. osDie vom os-Modul bereitgestellten Informationen sind schreibgeschützt und können nicht zum Ändern der Systemkonfiguration verwendet werden.
  2. Die von verschiedenen Betriebssystemen zurückgegebenen Informationen können variieren, insbesondere zwischen Windows und Unix-ähnlichen Systemen.
  3. Einige Methoden (wie z. B.loadavg()) möglicherweise nicht unter Windows verfügbar sind oder unterschiedliche Werte zurückgeben.
  4. Speicherinformationen werden in Bytes zurückgegeben und müssen normalerweise in besser lesbare Einheiten (wie MB oder GB) umgerechnet werden.

Methoden

Die gängigen Methoden und Eigenschaften von os sind wie folgt:

MethodeBeschreibungBeispiel
os.arch()Gibt die CPU-Architektur des Betriebssystems zurück.console.log(os.arch()); // 输出:'x64'
os.constantsGibt ein Objekt zurück, das betriebssystemspezifische Konstanten enthält (wie Fehlercodes, Signale usw.).console.log(os.constants.signals);
os.cpus()Gibt ein Array von Objekten zurück, von denen jedes Informationen über einen CPU-Kern enthält, wie Modell, Geschwindigkeit, Auslastung usw.console.log(os.cpus());
os.endianness()Gibt die Byte-Reihenfolge der CPU zurück (BEbedeutet Big-Endian-Byte-Reihenfolge,LEbedeutet Little-Endian-Byte-Reihenfolge).console.log(os.endianness()); // 输出:'LE'
os.freemem()Gibt die Menge an freiem Speicher des Systems zurück (in Bytes), die zur Überwachung der Systemressourcen verwendet werden kann.console.log(os.freemem());
os.homedir()Gibt den Pfad des Home-Verzeichnisses des aktuellen Benutzers zurück.console.log(os.homedir());
os.hostname()Gibt den Hostnamen zurück.console.log(os.hostname());
os.loadavg()Gibt ein Array zurück, das die durchschnittliche Last für 1, 5 und 15 Minuten enthält, nur auf Unix-Systemen gültig.console.log(os.loadavg());
os.networkInterfaces()Gibt ein Objekt zurück, das Adressinformationen für jede Netzwerkschnittstelle enthält, wie z. B.IP 地址、MAC 地址。console.log(os.networkInterfaces());
os.platform()Gibt die Betriebssystemplattform zurück, wie z. B.'darwin'、'win32'、'linux'usw.console.log(os.platform());
os.release()Gibt die Distributionsversion des Betriebssystems zurück.console.log(os.release());
os.tmpdir()Gibt den Standardpfad des temporären Dateiverzeichnisses des Betriebssystems zurück.console.log(os.tmpdir());
os.totalmem()Gibt den gesamten Systemspeicher (in Bytes) zurück.console.log(os.totalmem());
os.type()Gibt den Namen des Betriebssystems zurück, wie z. B.'Linux'、'Darwin'(macOS),'Windows_NT'usw.console.log(os.type());
os.uptime()Gibt die Betriebszeit des Betriebssystems in Sekunden zurück.console.log(os.uptime());
os.userInfo([options])Gibt detaillierte Informationen über den aktuellen Benutzer zurück, wie Benutzername, Home-Verzeichnis, UID, GID usw. Unterstützt die Konfiguration eines Optionsobjekts zum Festlegen der Zeichenkodierung (Standard ist'utf8')。console.log(os.userInfo());

Eigenschaften

EigenschaftBeschreibungBeispiel
os.EOLGibt die Zeilenende-Markierung für das aktuelle Betriebssystem zurück (\noder\r\n), was das plattformübergreifende Lesen und Schreiben von Dateien erleichtert.console.log(os.EOL); // Windows 输出:'\r\n',Linux 输出:'\n'

Beispiel

Erstellen Sie eine Datei main.js mit folgendem Code:

Beispiel

const os = require('os');

// Systemarchitektur abrufen
console.log('Systemarchitektur:', os.arch());

// CPU-Informationen abrufen
console.log('CPU-Informationen:', os.cpus());

// Freien Speicher abrufen
console.log('Freier Speicher:', os.freemem());

// Gesamten Speicher abrufen
console.log('Gesamter Speicher:', os.totalmem());

// Home-Verzeichnis abrufen
console.log('Home-Verzeichnis:', os.homedir());

// Systemplattform abrufen
console.log('Systemplattform:', os.platform());

// Systemnamen abrufen
console.log('Systemname:', os.type());

// Durchschnittliche Last abrufen (gilt nur für Unix-Systeme)
console.log('Durchschnittliche Last:', os.loadavg());

// Netzwerkschnittstelleninformationen abrufen
console.log('Netzwerkschnittstelleninformationen:', os.networkInterfaces());

Das Ergebnis der Codeausführung ist ähnlich wie folgt:

系统架构: arm64
CPU 信息: [
  {
    model: 'Apple M1',
    speed: 24,
    times: { user: 18515240, nice: 0, sys: 9460280, idle: 38401220, irq: 0 }
  }
...
]
空闲内存: 167411712
总内存: 8589934592
主目录: /Users/EXAMPLE
系统平台: darwin
系统名称: Darwin
平均负载: [ 11.4658203125, 4.49560546875, 3.35791015625 ]
网络接口信息: {
...

Node.js 工具模块Node.js-Hilfsmodule

Java FileNode.js integrierte Module

Weitere Erweiterungen