# hostname - 显示和设置系统的主机名

hostname命令 用于显示和设置系统的主机名称。

  • 环境变量 HOSTNAME 也保存了当前的主机名。
  • 在使用 hostname 命令设置主机名后,系统并不会永久保存新的主机名,重启之后还是原来的主机名。如果需要永久修改主机名,需要修改 /etc/hosts 和 /etc/sysconfig/network 的相关内容并进行重启;也可以使用 hostnamectl 命令进行永久修改。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

hostname    [OPTION]
hostname [-b] {hostname|-F file}           # 设置主机名称(或从文件获取)
hostname [-a|-A|-d|-f|-i|-I|-s|-y]         # 显示格式化的名称
hostname                                   # 显示主机名称

{yp,nis,}domainname {nisdomain|-F file}    # 设置 NIS 主机名称(或从文件获取)
{yp,nis,}domainname                        # 显示 NIS 主机名称

dnsdomainname                              # 显示 DNS 主机名称

hostname -V|--version|-h|--help            # 打印信息并退出

# 选项

-v                     # 显示详细执行过程
-a, --alias            # 显示主机别名
-d, --domain           # 显示主机dns域名
-F file                # 从文件读取
-f, --fqdn, --long     # 显示完全格式的域名
-A, --all-fqdns        # 显示机器的全部FQDNs
-i, --ip-address       # 显示指定主机的ip地址
-I, --all-ip-address   # 显示主机所有的地址
-s, --short            # 以短格式显示,仅显示从第一个点分开的部分
-y, --yp, --nis        # 显示nis域名

-h, --help                           # 显示帮助文档
-V, --version                        # 显示命令版本信息

# FQDN

不能用此命令更改FQDN(由hostname-fqdn返回)或DNS域名(由dnsdomainname返回)。系统的FQDN是resolver为主机名返回的名称。技术上:FQDN是由gethostname(2)返回的主机名。DNS域名是第一个点之后的部分。因此,如何更改取决于配置文件(通常在“/etc/host.conf”中)。通常(如果在DNS或NIS之前解析主机文件),您可以在“/etc/host”中更改它。

如果一台机器有多个网络接口/地址,或者在移动环境中使用,那么它可能有多个FQDN/域名,或者根本没有。因此,避免使用“hostname -fqdn”、“hostname --domain”和“dnsdomainname”。“hostname --ip-address”地址也受到同样的限制,因此也应该避免。

# 举例

显示主机名

[root@localhost ~]$ hostname  #显示完整名字
localhost.localdomain
[root@localhost ~]$ hostname –s  #显示短格式名字
localhost       
[root@localhost ~]$ hostname –a   #显示主机别名
localhost.localdomain localhost4 localhost4.localdomain4 localhost.localdomain loc

显示主机ip

[root@localhost ~]$ hostname -i
127.0.0.1 127.0.0.1