Linux查看主机名和IP,详解使用hostname命令

在本指南中,详细记录了如何在Linux/Unix系统上使用hostname命令,检索和设置当前系统的主机、域名或节点名称。

hostname-command-in-Linux-Thumbnail.jpg

主机名是很重要的,因为大多数网络程序都会使用它们来识别你的机器。使用独特的主机名,能够快速识别和连接到网络中的机器。通常,像raspberrypi这样的主机名比本地分配的IP地址如 “192.168.0.175 “更容易追踪。

也可以使用hostname命令来计算出所有已经分配给你的机器的IP地址。当你在网络中管理多个Linux设备时,学习如何使用这个命令会很有用。

hostname命令的语法

hostname命令的语法比较简单易懂,该命令有两个可选的参数。

hostname [OPTIONS] [HOSTNAME/FILENAME]

第一个参数是选项参数。这些选项允许你控制hostname的行为,比如用它来设置主机名或检索分配给Linux机器的IP地址。

第二个参数只用于指定一个新的主机名,或者指定一个文件名来检索新的主机名。

检索当前主机名

最简单的方法是使用hostname命令来检索当前主机名。只需要输入命令,不需要指定任何参数。

hostname

从这个命令中,应该看到系统的主机名被打印到了终端上

$ hostname
labno3

大家可以看到,我们系统上设置的主机名设置为labno3

设置一个新的主机名

现在知道了如何检索主机名,看看如何设置一个新的主机名。要改变一个系统的主机名,必须有超级用户的权限。

hostname命令让设置主机名的过程变得相当简单。需要做的就是在命令后面指定一个新的主机名。

hostname NEWHOSTNAME

例如,如果我想把系统主机名改为 “labno3guide”,我可以使用以下命令。

sudo hostname labno3guide

使用文件设置主机名

使用hostname命令,还可以从文件中检索主机名。由于我要设置主机名,所以我需要root用户或有超级用户权限。

为此,使用文件选项(-F或–file)。这个选项将告诉工具期望输入一个文件。

当该工具读取文件时,它将寻找一个单一的行,忽略以标签(#)开头的行。

hostname -F FILENAME

例如,如果我有一个名为newhostnamefile的文件,其中有文本pimyhostname,可以使用以下命令。

sudo hostname -F newhostnamefile

现在主机名应该设置为文件中定义的主机名,在我的例子中就是pimyhostname。

忽略错误设置主机名

默认情况下,如果你使用文件选项来设置主机名,而该文件不包含任何文本,那么就会抛出一个错误说它是一个无效的主机名。

要阻止这种情况发生,你可以使用引导选项(-b或–boot)。

hostname -b[-F] HOSTNAME

如果没有指定有效的主机名,这个选项将使使用默认的主机名。

例如,如果我试图通过使用一个空文件来设置一个无效的主机名,命令将默认为最后一个有效的主机名。

$ hostname -bF exampleEmptyFile

使用hostname命令查看已分配的 IP 地址

在本节中,我们将向您展示如何使用主机名命令来查看分配给设备的IP地址。在我的Raspberry Pi项目中,我经常使用这种方法,因为它通常比通过路由器的接口找到它要快。

有两个不同的选项,可以用它来检索IP地址。这些选项的行为相当不同,所以确保你使用最适合你的需求。

检索主机名的IP

第一个选项是用来解析主机名的IP地址。

该选项由小写字母i(-i或–ip-address)定义。

hostname -i

使用时,该工具会自动尝试解析主机名的指向。如果系统无法解析主机名,则不会返回任何结果。

例如,如果我在Raspberry Pi上运行这个,我将得到回环的IP地址。

$ hostname -i
127.0.0.1

检索所有分配的IP地址

还可以使用hostname命令来检索已经分配给系统网络接口的所有IP地址。

第二个选项由大写字母I指定(-I或–all-ip-addresses)。

hostname -I

当你运行带有这个选项的命令时,它将对你的系统进行检查,以检索已经分配给它的IP地址,并将它们打印出来。

例如,在我网络上的本地设备上运行此功能,我检索到以下内容。

$ hostname -I
192.168.0.115

由此,可以看到,我可以使用本地IP地址192.168.0.115来访问我的设备。

获取缩短的主机名

要使用该命令检索缩短的主机名,可以使用短选项(-s或–short)。

hostname -s

这个选项将返回主机名,直到它到达点(.)字符为止。如果主机名没有点(.),它将打印整个主机名。

例如,如果我的主机名是labno3.hostname,我们将得到labno3的简称。

$ hostname -s
labno3

然而,如果我用连字符(-)代替点(.),我将从命令中得到labno3-hostname这个名字。

$ hostname -s
labno3-hostname

检索完整域名

也可以使用hostname命令来检索分配给系统的所有FQDN(完全域名)。

系统的FQDN是系统的解析器为指定主机名返回的名称。通常情况下,这些名称是主机名后的DNS域名。

例如,如果FDQN是hostname.example.com,hostname就是我的主机名,而.example.com就是我们的DNS域名。

为了检索这些名称,我需要使用all FDQNs选项(-A或–all-fdqns)。

hostname -A

如果您的系统现在有FQDN,您会收到如下的空白信息。

$ hostname -A

DNS域名

hostname命令在Linux/Unix系统中的另一个用途是检索当前的DNS域名。

为了获取这个值,我们需要利用domain选项(-d或-domain)。

hostname -d

DNS域名是完全域名的域名部分。

例如,如果我的FDQN为 “pimylifeup.example.com”,那么DNS域名就是 “example.com”。

显示FDQN

主机名命令的最后一个选项是display fdqn选项(-f, –fqdn或-long)

FDQN由短主机名和DNS域名组成。例如,”labno3.example.com “是一个完整域名。

hostname -f

希望在这个阶段,你现在已经知道如何在基于Linux/Unix的系统上使用hostname命令了。

如果你觉得有什么地方不对或者有什么反馈,欢迎在下面留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Linux查看主机名和IP,详解使用hostname命令

赞 (2)

评论

6+5=