Cheatsheet: System- und Hardware-Informationen mit `uname` abfragen
August 17, 2018
Der uname-Befehl (Unix Name) ist ein Standard-Kommandozeilen-Werkzeug auf Unix-ähnlichen Systemen, das grundlegende Informationen über das System, den Kernel und die Hardware-Architektur ausgibt. Er ist besonders nützlich in Shell-Skripten, um plattformspezifische Logik zu implementieren.
1. Grundlegende Verwendung
Betriebssystem-Name anzeigen
uname
- Linux:
Linux - macOS:
Darwin - FreeBSD:
FreeBSD
Alle Informationen anzeigen
Die -a-Option gibt eine Zusammenfassung aller verfügbaren Informationen aus.
uname -a
Beispiel-Ausgabe (Linux):
Linux mein-server 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
2. Spezifische Informationen abfragen
| Flag | Beschreibung | Beispiel-Ausgabe |
|---|---|---|
-s | Kernel-Name: (Standard, wenn keine Flags) | Linux oder Darwin |
-n | Hostname: Der Netzwerk-Name des Systems. | mein-server |
-r | Kernel-Release: Die Version des Kernels. | 5.15.0-56-generic |
-v | Kernel-Version: Detailliertere Versionsinformationen. | #62-Ubuntu SMP Tue Nov 22 ... |
-m | Machine-Architektur: Die Hardware-Architektur. | x86_64, aarch64, armv7l |
-p | Prozessor-Typ: (oft unknown) | x86_64 oder unknown |
-o | Betriebssystem: | GNU/Linux |
3. Architektur ermitteln (32-bit vs. 64-bit)
Der uname -m-Befehl ist der gebräuchlichste Weg, um die CPU-Architektur zu ermitteln.
| Wert | Architektur |
|---|---|
x86_64 | 64-bit Intel/AMD |
i386, i686 | 32-bit Intel/AMD |
aarch64 | 64-bit ARM |
armv7l | 32-bit ARM |
Anwendungsbeispiel im Skript:
#!/usr/bin/env bash
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
echo "Führe 64-bit-optimierten Code aus..."
elif [ "$ARCH" = "aarch64" ]; then
echo "Führe ARM64-optimierten Code aus..."
else
echo "Diese Architektur ($ARCH) wird nicht vollständig unterstützt."
fi
4. Alternativen zu uname
arch: Ein einfacherer Befehl, der oft nur die Architektur ausgibt (z.B.x86_64).lscpu: Liefert sehr detaillierte Informationen über die CPU-Architektur, Anzahl der Kerne, Caches und mehr.$OSTYPE: Eine Bash/Zsh-Variable, die ebenfalls den Betriebssystemtyp anzeigt (siehe separater Guide).
Fazit
uname ist ein portables und zuverlässiges Werkzeug, um grundlegende Systeminformationen abzufragen. Insbesondere die Flags -s (Kernel-Name) und -m (Architektur) sind für das Schreiben von plattformübergreifenden Shell-Skripten unerlässlich.