实战

hostname                    # 看
hostname myserver           # 临时改(重启失效)
sudo hostname myserver

# 永久改
sudo hostnamectl set-hostname myserver

几种主机名

hostnamectl
# Static hostname: myserver       ← /etc/hostname
# Pretty hostname: My Server      ← 显示用
# Transient hostname: ...         ← 动态(如 DHCP 设的)
sudo hostnamectl set-hostname myserver --static    # 永久
sudo hostnamectl set-hostname "My Server" --pretty # 友好名

/etc/hostname / /etc/hosts

cat /etc/hostname           # 系统主机名
cat /etc/hosts              # 本地解析(127.0.0.1 一行通常含主机名)

改了 hostname 后**/etc/hosts 也得对应更新**——否则 sudo 等命令可能慢:

127.0.0.1   localhost
127.0.1.1   myserver       ← 加这行

看 FQDN

hostname -f                 # 全限定域名(如 myserver.example.com)
hostname -d                 # 域部分
hostname -i                 # IP(来自 /etc/hosts,不准)
hostname -I                 # 所有非回环 IP(更准)

  • sudo hostname newname 临时改——重启回去
  • 改完已打开的 shell 提示符不会变——重新登录或 exec bash
  • 改 hostname 可能让某些服务(如 PostgreSQL)启动失败——它们记了旧 hostname