hostnamectl to narzędzie z rodziny systemd, które służy do podglądu i zmiany nazwy hosta oraz kilku metadanych systemu. Zamiast grzebać ręcznie w /etc/hostname i mieć potem rozjazd między tym, co widzi powłoka, a tym, co raportuje sieć, jednym poleceniem ustawiasz nazwę trwale i spójnie. Działa na większości współczesnych dystrybucji (Ubuntu, Debian, Fedora, RHEL, Arch), o ile mają systemd. Co ważne, hostnamectl rozróżnia trzy rodzaje nazw: static (twoja docelowa, zapisana w pliku), pretty (ładna, z dowolnymi znakami, np. „Serwer Pawła”) i transient (tymczasowa, często z DHCP).
Składnia i najważniejsze opcje
Podstawowe wywołanie wygląda tak: hostnamectl [OPCJE] [KOMENDA] [ARGUMENT]
status— pokazuje nazwę hosta i info o systemie (kernel, architektura, system operacyjny). Domyślna komenda, gdy nic nie podasz.set-hostname NAZWA— ustawia nazwę hosta. Bez dodatkowych flag zmienia od razu static, pretty i transient.--static— operuje tylko na nazwie trwałej (tej z/etc/hostname).--pretty— operuje tylko na nazwie „ładnej”, która może zawierać spacje i znaki specjalne.--transient— operuje tylko na nazwie tymczasowej, nadpisywanej przez sieć.set-icon-name NAZWA— ustawia ikonę systemu wykorzystywaną przez niektóre interfejsy graficzne.set-chassis TYP— określa typ obudowy, np.laptop,server,vm,container.
Przykłady użycia
hostnamectl status— wyświetla pełną wizytówkę maszyny: nazwy hosta, ID, system, kernel i architekturę. Świetne na start, gdy logujesz się na nieznany serwer.hostnamectl set-hostname web-prod-01— ustawia trwałą nazwę hosta na web-prod-01 we wszystkich trzech wariantach naraz.hostnamectl set-hostname "Serwer Pawła" --pretty— zmienia tylko ładną nazwę, zostawiając techniczną w spokoju (bo spacje w nazwie static to proszenie się o kłopoty).hostnamectl --static set-hostname db-01— modyfikuje wyłącznie nazwę trwałą, gdy nie chcesz ruszać tego, co przyszło z DHCP.hostnamectl set-chassis server— oznacza maszynę jako serwer, co pomaga w inwentaryzacji i narzędziach monitorujących.
Częste błędy i pułapki
Najczęstsza pomyłka to oczekiwanie, że po zmianie nazwy zmieni się też znak zachęty w bieżącej sesji. Nie zmieni się — musisz się wylogować i zalogować ponownie albo otworzyć nową powłokę. Druga sprawa: zmiana set-hostname wymaga uprawnień roota, więc bez sudo dostaniesz błąd o braku autoryzacji. Pamiętaj też, żeby po zmianie nazwy zaktualizować wpis w /etc/hosts (linia z 127.0.1.1), bo inaczej niektóre programy będą długo czekać przy próbie rozwiązania nazwy. I rzecz oczywista, ale często zapominana: hostnamectl nie zadziała na systemach bez systemd (np. starsze Devuany czy Alpine z OpenRC) — tam zostaje ci ręczna edycja plików i polecenie hostname.
Powiązane komendy: hostname, uname, systemctl, nmcli.