hostname 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于网络与主机命令族(见网络与主机命令族)。"这台机器叫什么"以及临时改名,都找它。
hostname 显示(或 root 临时修改)系统的主机名。现代系统更推荐用 hostnamectl 做永久修改,但 hostname 看名字、临时改仍常用。
一、基本用法
bash
hostname # 输出当前主机名,如 web-prod-01
hostname -I # 显示所有非回环 IPv4 地址(空格分隔)
hostname -f # 显示 FQDN(完全限定域名,如 host.example.com)
hostname -s # 只显示短名(去掉域名部分)
-I(大写 i)是看本机 IP 的快捷方式,比ip addr简洁(见ip)。-f需要 DNS/主机名解析能反查到域名,解析不到就只显示短名。
二、临时修改(需 root)
bash
sudo hostname temp-name # 临时改,重启后失效
# 永久修改请用:
sudo hostnamectl set-hostname web-prod-02
hostname 新名立刻生效但重启丢失——它只改内核里的名字,不写配置文件。要永久生效用hostnamectl set-hostname(写/etc/hostname并通知系统),老的发行版改/etc/hostname+/etc/hosts。
三、与 hostnamectl 关系
bash
hostname # 看当前(临时/永久合并后的生效值)
hostnamectl # 看静态主机名 + transient + 漂亮名,信息更全现代 systemd 系统里,
hostnamectl是"正主":管理静态(配置文件)、瞬态(运行时)、漂亮(展示用)三种主机名。hostname命令更多用于快速查看和脚本取名字。
四、实战:脚本取主机标识
bash
THIS_HOST=$(hostname -s) # 脚本里用短名做日志/路径标识多机脚本常用
hostname -s当实例标识,写日志、拼路径、区分节点。注意容器里 hostname 可能每次变(看编排配置)。
相关命令
一句话总结
hostname = 查看/临时设主机名:hostname 看当前名、-I 看本机 IP、-f 看 FQDN、-s 短名;hostname new 仅临时改、重启失效,永久用 hostnamectl set-hostname(见相关);脚本取实例标识常用 hostname -s。现代 systemd 下 hostnamectl 管三种主机名更全。