# hostnamectl — Hostnamen unter systemd verwalten

> Hostnamen auf systemd-Linux anzeigen und setzen: statischer, transienter und Pretty-Hostname sowie Chassis, Deployment und Maschineninfos.

Source: https://www.jpkc.com/db/cheatsheets/shell-system/hostnamectl/

<!-- PROSE:intro -->
hostnamectl ist das systemd-Werkzeug, mit dem du den Hostnamen deines Linux-Systems anzeigst und änderst – sauber an einer Stelle statt verstreut über `/etc/hostname` und `hostname`. systemd kennt dabei drei Ebenen: den **statischen** Hostnamen (dauerhaft, in `/etc/hostname`), den **transienten** (zur Laufzeit vom Kernel verwaltet) und den **Pretty**-Namen (frei formuliert, mit Leerzeichen und Umlauten). Dazu pflegst du Metadaten wie Chassis-Typ, Icon, Deployment-Umgebung und Standort. Dieser Guide zeigt dir die Befehle, die du im Server- und Desktop-Alltag wirklich brauchst.
<!-- PROSE:intro:end -->

## Status & Infos

`hostnamectl` — Zeigt den aktuellen Hostnamen und Systeminformationen.

```bash
hostnamectl
```

`hostnamectl status` — Zeigt den ausführlichen Hostname-Status (identisch zum Aufruf ohne Argumente).

```bash
hostnamectl status
```

`hostnamectl hostname` — Zeigt nur den aktuellen Hostnamen.

```bash
hostnamectl hostname
```

## Hostnamen setzen

`hostnamectl set-hostname '<name>'` — Setzt den statischen Hostnamen (bleibt über Neustarts erhalten).

```bash
sudo hostnamectl set-hostname webserver01
```

`hostnamectl set-hostname '<name>' --static` — Setzt ausschließlich den statischen Hostnamen.

```bash
sudo hostnamectl set-hostname webserver01 --static
```

`hostnamectl set-hostname '<name>' --pretty` — Setzt den Pretty-Hostnamen (frei formuliert, darf Leerzeichen enthalten).

```bash
sudo hostnamectl set-hostname 'Web Server 01 (Production)' --pretty
```

`hostnamectl set-hostname '<name>' --transient` — Setzt den transienten Hostnamen (geht beim Neustart verloren).

```bash
sudo hostnamectl set-hostname temp-hostname --transient
```

## Maschinen-Metadaten

`hostnamectl set-icon-name '<name>'` — Setzt den Icon-Namen der Maschine.

```bash
sudo hostnamectl set-icon-name computer-server
```

`hostnamectl set-chassis '<type>'` — Setzt den Chassis-Typ (desktop, laptop, server, vm, container).

```bash
sudo hostnamectl set-chassis server
```

`hostnamectl set-deployment '<env>'` — Setzt die Deployment-Umgebung (z. B. production, staging).

```bash
sudo hostnamectl set-deployment production
```

`hostnamectl set-location '<location>'` — Setzt die Standortbeschreibung.

```bash
sudo hostnamectl set-location 'Frankfurt DC, Rack 42'
```

<!-- PROSE:outro -->
## Fazit

hostnamectl ersetzt das händische Editieren von `/etc/hostname` durch ein konsistentes Kommando und unterscheidet sauber zwischen statischem, transientem und Pretty-Hostnamen – für den Alltag reicht meist `hostnamectl` zum Anzeigen und `set-hostname` zum Ändern. Schreibende Aktionen brauchen `sudo`, und das Werkzeug gibt es nur auf systemd-Systemen (auf anderen Init-Systemen oder in manchen Containern fehlt es). Bedenke außerdem: Auf produktiven Servern ist der Hostname oft mehr als Kosmetik – er taucht in Logs, Monitoring, TLS-Zertifikaten und Cluster-Mitgliedschaften auf. Eine Änderung kann also Folgewirkungen haben; plane sie auf laufenden Systemen bewusst und prüfe danach abhängige Dienste.

## Weiterführende Links

- [Arch-Wiki: Hostname](https://wiki.archlinux.org/title/Hostname) – kompakte Erklärung der Hostname-Ebenen und ihrer Konfiguration
- [systemd-Projektseite](https://systemd.io/) – offizielle Dokumentation rund um systemd und seine Werkzeuge
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [timedatectl](https://www.jpkc.com/db/cheatsheets/shell-system/timedatectl/) – Systemzeit, Zeitzone und NTP-Synchronisation unter systemd verwalten
- [systemctl](https://www.jpkc.com/db/cheatsheets/shell-system/systemctl/) – systemd-Dienste und Units steuern und abfragen
- [uname](https://www.jpkc.com/db/cheatsheets/shell-system/uname/) – Kernel- und Systeminformationen anzeigen

