Node.js os-Modul
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:
Einführung in gängige Methoden
1. Betriebssysteminformationen abrufen
Beispiel
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.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.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
5. Benutzerbezogene Informationen abrufen
Beispiel
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
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
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
osDie vom os-Modul bereitgestellten Informationen sind schreibgeschützt und können nicht zum Ändern der Systemkonfiguration verwendet werden.- Die von verschiedenen Betriebssystemen zurückgegebenen Informationen können variieren, insbesondere zwischen Windows und Unix-ähnlichen Systemen.
- Einige Methoden (wie z. B.
loadavg()) möglicherweise nicht unter Windows verfügbar sind oder unterschiedliche Werte zurückgeben. - Speicherinformationen werden in Bytes zurückgegeben und müssen normalerweise in besser lesbare Einheiten (wie MB oder GB) umgerechnet werden.
Methoden
| Methode | Beschreibung | Beispiel |
|---|---|---|
os.arch() | Gibt die CPU-Architektur des Betriebssystems zurück. | console.log(os.arch()); // 输出:'x64' |
os.constants | Gibt 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
| Eigenschaft | Beschreibung | Beispiel |
|---|---|---|
os.EOL | Gibt 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
// 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 ]
网络接口信息: {
...
Weitere Erweiterungen
Node.js integrierte Module