TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸

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

code
uname
  • Linux: Linux
  • macOS: Darwin
  • FreeBSD: FreeBSD

Alle Informationen anzeigen

Die -a-Option gibt eine Zusammenfassung aller verfügbaren Informationen aus.

code
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

FlagBeschreibungBeispiel-Ausgabe
-sKernel-Name: (Standard, wenn keine Flags)Linux oder Darwin
-nHostname: Der Netzwerk-Name des Systems.mein-server
-rKernel-Release: Die Version des Kernels.5.15.0-56-generic
-vKernel-Version: Detailliertere Versionsinformationen.#62-Ubuntu SMP Tue Nov 22 ...
-mMachine-Architektur: Die Hardware-Architektur.x86_64, aarch64, armv7l
-pProzessor-Typ: (oft unknown)x86_64 oder unknown
-oBetriebssystem: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.

WertArchitektur
x86_6464-bit Intel/AMD
i386, i68632-bit Intel/AMD
aarch6464-bit ARM
armv7l32-bit ARM

Anwendungsbeispiel im Skript:

code
#!/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.