1、命令简介
hostname:用于显示或设置系统的主机名。主机名是用来标识网络中的计算机的名称,它可以是一个单词、一个短语或者一个字符串。
2、命令语法
hostname [-a|--alias] [-d|--domain] [-f|--fqdn|--long] [-A|--all-fqdns] [-i|--ip-address] [-I|--all-ip-addresses] [-s|--short] [-y|--yp|--nis] hostname [-b|--boot] [-F|--file filename] [hostname] hostname [-h|--help] [-V|--version]
3、命令描述
hostname
用于显示系统的DNS名称,并显示或设置其主机名或NIS域名。
获取名称:在没有任何参数的情况下调用该程序会显示当前的名称:hostname
会打印系统的名称,该名称由gethostname(2)函数返回。
设置名称:当使用一个参数或使用--file选项调用时,命令会设置主机名或NIS/YP域名。hostname使用sethostname(2)函数,而domainname、ypdomainname和nisdomainname都使用setdomainname(2)。请注意,这仅在下次重启之前有效。要进行永久更改,请编辑/etc/hostname
。
注意:只有超级用户可以更改名称。
使用dnsdomainname命令无法设置FQDN或DNS域名(请参见下文的FQDN)。
通常在系统启动时会设置主机名,这在/etc/init.d/hostname.sh
中完成(通常通过读取包含主机名的文件的内容,例如/etc/hostname
)。
4、命令选项
选项 | 描述 |
-a, --alias | 显示主机的别名(如果使用)。 此选项已被弃用,不应再使用。 |
-A, --all-fqdns | 显示机器的所有FQDN(完全限定域名)。 此选项枚举所有已配置的网络接口上的所有已配置的网络地址, 并将其转换为DNS域名。 无法转换的地址 (即因为它们没有适当的反向IP条目)将被跳过。请注意,不同的地址可能解析为同一名称, 因此输出可能包含重复的条目。 请不要对输出的顺序做任何假设。 |
-b, --boot | 始终设置主机名; 这允许-F指定的文件不存在或为空, 在这种情况下,如果尚未设置主机名, 则将使用默认的主机名localhost。 |
-d, --domain | 显示DNS域名的名称。不要使用 domainname 命令获取DNS域名, 因为它将显示NIS域名而不是DNS域名。 请改用 dnsdomainname 。请参阅上面的FQDN部分中的警告, 并避免使用此选项。 |
-f, --fqdn, --long | 显示FQDN(完全限定域名)。 FQDN由短主机名和DNS域名组成。 除非您正在使用bind或NIS进行主机查找, 否则可以在/etc/hosts文件中更改FQDN和DNS域名(这是FQDN的一部分)。 请参阅上面的FQDN部分中的警告, 并在可能的情况下改用 hostname --all-fqdns 。 |
-F, --file filename | 从指定的文件中读取主机名。注释(以 # 开头的行)将被忽略。 |
-i, --ip-address | 显示主机名的网络地址。 请注意,这仅在可以解析主机名时才有效。 请避免使用此选项;改用 hostname --all-ip-addresses 。 |
-I, --all-ip-addresses | 显示主机的所有网络地址。 此选项枚举所有网络接口上的所有配置地址。 省略了环回接口和IPv6链路本地地址。 与选项-i相反,此选项不依赖于名称解析。 请不要对输出的顺序做任何假设。 |
-s, --short | 显示短主机名。这是主机名在第一个点处切割。 |
-V, --version | 在标准输出上打印版本信息并成功退出。 |
-y, --yp, --nis | 显示NIS域名。如果给定参数(或--file name), 则root用户也可以设置新的NIS域名。 |
-h, --help | 打印用法消息并退出。 |
5、使用示例
1)不带任何选项/参数的hostname命令显示由gethostname(2)函数返回的机器主机名
hostname kvm1
2)当带有一个参数或使用--file选项调用时,命令将设置主机名或NIS/YP域名。hostname命令使用sethostname(2)函数来设置机器的主机名。请注意,此更改在下次重启之前有效。要使更改永久生效,我们需要编辑/etc/hostname文件。请注意,只有超级用户才能更改主机名。
$ sudo hostname kvm1.cjavapy.com
[sudo] password for levi:
$ hostname
kvm1.cjavapy.com
3)使用-i选项显示分配给主机的IP地址或网络地址。请注意,这仅在主机名可以解析时有效。避免使用此选项;改用hostname --all-ip-addresses命令来显示主机的网络地址。
$ hostname -i
127.0.1.1
$
$ hostname --all-ip-address
192.168.0.4
4)使用-I选项显示主机机器的所有网络地址。
$ hostname -I
192.168.0.234 192.168.0.4
5)使用-s选项显示短主机名。
$ hostname -s
kvm1
6)使用-a选项显示分配给主机的别名,以便进行简单的引用。
$ hostname -a
7)使用-f或--fqdn选项显示主机机器的完全限定域名(FQDN)或长主机名。
$ hostname -f
kvm1.cjavapy.com
8)使用-d选项显示DNS域名的名称。
$ hostname -d
cjavapy.com