「hostname」

  LINUX MANUAL PAGES

hostname,显示或者设置系统的主机名。

domainname,显示或者设置系统的NIS/YP域名。
ypdomainname – show or set the system’s NIS/YP domain name
nisdomainname – show or set the system’s NIS/YP domain name

dnsdomainname – show the system’s DNS domain name

命令行语法

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]

domainname [nisdomain] [-F file]
ypdomainname [nisdomain] [-F file]
nisdomainname [nisdomain] [-F file]

dnsdomainname

描述

GET NAME
当没有参数的时候,程序会显示当前的名:

对于hostname命令,会打印出gethostname(man 2 gethostname)函数的返回值。

对于domainname命令,会打印出系统的NIS域名,它使用的也是gethostname(man 2 gethostname)函数,但是ypdomainnamenisdomainname使用的是yp_get_default_domain(man 3 yp_get_default_domain)函数。

对于dnsdomainname命令,将会打印FQDN的域部分(Fully Qualified Domain Name)。hostname –fqdn将返回系统的完整FQDN名 (查看THE FQDN小节中的警告)。该命令不具备修改功能,只能用于查看相关的信息。

SET NAME
如果只有一个参数或者使用了–file选项,命令会设置hostname或者NIS/YP域名。
hostname命令使用了sethostname函数,而domainname,ypdomainname,nisdomainname使用setdomainname。
注意:只有重启之后才能生效。编辑/etc/hostname来持久化保存更改。

hostname会在系统启动的时候,执行 /etc/init.d/hostname.sh设置一次 (通过读取/etc/hostname中的内容)。

THE FQDN
系统的FQDN(完全限定域名)是resolver(3)为主机名返回的名称,例如ursula.example.com。它通常是主机名后跟DNS域名(第一个点后面的部分)。
可以使用hostname –fqdn或使用dnsdomainname的域名来检查FQDN。但是不能使用hostname和dnsdomainname来修改FQDN。

推荐设置FQDN的方法是使用/etc/hosts, DNS, or NIS将hostname作为全限定名的一个别名。例如:如果主机名为:”ursula”,在/etc/hosts中可以:

127.0.1.1 ursula.example.com ursula

技术上:FQDN是getaddrinfo(3)为gethostname(2)返回的主机名而返回的名称。DNS域名是第一个点后面的部分。

因此取决于resolver的配置,通常在/etc/host.conf 中。通常,hosts文件在DNS或NIS之前解析,所以最常见的是更改/ etc / hosts中的FQDN。

如果机器具有多个网络接口/地址或在移动环境中使用,那么它可能具有多个FQDN /域名,或者根本没有,因此避免使用主机名–fqdn,hostname –domain和dnsdomainname。hostname –ip地址也有相同的限制,因此也应该避免。

命令行选项及含义

-a, –alias
显示主机的别名。该选项已经被弃用了,不推荐使用。

-A, –all-fqdns
显示机器的所有FQDN。此选项枚举所有配置的网络接口上的所有配置的网络地址,并将其转换为DNS域名。无法翻译的地址(即因为没有适当的反向IP条目)被跳过。
注意,不同的地址可能会解析为相同的名称,因此输出可能包含重复的条目。不要对输出的顺序作任何假设。

-b, –boot
始终设置主机名了;这允许-F指定的文件不存在或为空,在这种情况下,如果尚未设置,将使用默认的主机名本地主机。

-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
显示主机名的网络地址。请注意,只有在主机名可以解析的情况下才有效。避免使用此选项;改用主机名–all-ip-addresses。

-I, –all-ip-addresses
显示主机的所有网络地址。
此选项枚举所有网络接口上的所有配置的地址。环回接口和IPv6链路本地地址会被忽略。与选项-i相反,此选项不依赖于名称解析。不要对输出顺序作任何假设。

-s, –short
显示简短的主机名。第一个之前的主机名。

-y, –yp, –nis
显示NIS域名。如果给定了一个参数、或者使用了–file选项,会设置一个新的NIS域名。

-h, –help / -V, –version
版本和帮助信息。

注意事项

查找FQDN时,将尝试地址族主机名,主机的别名和网络地址由解析器的配置决定。例如,在GNU Libc系统上,可以指示解析器先使用/etc/resolv.conf中的inet6选项来尝试IPv6查找。

相关文件

/etc/hostname
历史上,这个文件应该只包含hostname而不是完整的规范FQDN。现在大多数软件能够在该文件中处理一个完整的FQDN。系统初始化脚本在引导时读取该文件,设置主机名。

/etc/hosts
通常,这是通过将主机名别名化为FQDN来设置域名的地方。