【Linux常用命令】查看主机名
主机名(英语:hostname),也称计算机名,是指分配给计算机的一串唯一标识码,用于在网络上唯一识别该计算机。通常由字母、数字组成,也可以包含一些特殊字符,如英文连字符(-)、英文句点(.)和下划线(_)。典型的主机名最多包含 253 个字符。
在大多数 Linux 发行版中,主机名通常存储在 /etc/hostname 文件中。默认情况下,通过 ssh
命令在终端成功连接到目标服务器时,也可以看到目标服务器的主机名。如以下命令可以看到目标服务器的主机名为 kafka-eagle。
1 | $ ssh hadoop@10.10.18.8 |
介绍完主机名的概念,接下来,我们一起了解在 Linux 操作系统中其他各种查找主机名的命令。
使用 hostname 命令
hostname
命令用于显示 Linux 系统的 DNS 名称和主机名。它还允许用户更改或设置主机名。
要在 Linux 中查找主机名,请运行不带任何选项的 hostname
命令:
1 | $ hostname |
从输出中可以看到,当前 Linux 系统的主机名是 kafka-eagle。
如果要显示完全限定域名(FQDN,Fully Qualified Domain Name),请运行:
1 | hostname --fqdn |
使用 hostnamectl 命令
hostnamectl
命令用于获取和设置 Linux 系统的主机名及其相关设置。
要显示 Linux 机器的主机名,请运行不带任何选项的 hostnamectl
命令:
1 | hostnamectl |
输出示例:
1 | $ hostnamectl |
与 hostname
命令不同,hostnamectl
显示了系统更多的详细信息,例如
- 系统类型(chassis,笔记本电脑或台式机等,具体值列表:”desktop”, “laptop”, “server”, “tablet”, “handset”, “watch”, “embedded”, “vm”, “container”);
- 引导和机器 ID(Machine ID、Boot ID);
- 操作系统信息(Operating System、CPE OS Name);
- 内核版本(Kernel);
- 处理器架构(Architecture)等。
如果只显示主机名,请使用 --static
选项:
1 | $ hostnamectl --static |
使用 uname 命令
uname
命令用于打印所有系统信息,例如主机名、内核版本、发布版本、操作系统和处理器架构等。
要使用 uname 命令查看主机名,请使用 -n 选项运行它:
1 | $ uname -n |
通过 cat 命令读取 /etc/hostname 文件获取主机名
如前所述,在大多数 Linux 发行版中,主机名存储在 /etc/hostname 文件中。要获取 Linux 系统的主机名,只需显示 /etc/hostname 文件的内容:
1 | $ cat /etc/hostname |
上面这些命令是在 Linux 中最常用的查找主机名的命令。下面列出的这些则是不常见的命令,以供参考。
使用 nmcli 命令
nmcli
命令用于控制 NetworkManager 并报告网络状态。使用 nmcli
,我们可以创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。
要使用 nmcli
命令检查 Linux 系统的主机名,请运行以下命令:
1 | $ nmcli general hostname |
使用 sysctl 命令
sysctl
命令用于在运行时列出和修改内核参数。
我们可以使用下面的 sysctl
命令行打印 Linux 系统的主机名:
1 | $ sysctl kernel.hostname |
使用 ProcFS 查找 Linux 中的主机名
Proc 文件系统(或简称 procfs)是由 Linux 内核维护的虚拟文件系统。它有时也被称为进程信息伪文件系统。它不包含“真实”文件,但包含运行时系统信息,例如系统内存、挂载的设备、硬件配置等。所有这些信息都可以在 Linux 中名为 /proc 的特殊目录下找到。
要使用 prcfs 确定 Linux 的主机名,请运行:
1 | $ cat /proc/sys/kernel/hostname |
小结
本文介绍了什么是主机名及如何查看 Linux 系统主机名的不同方法。
- 分配给计算机的一串唯一标识码,用于在网络上唯一识别该计算机;
- 由字母、数字、英文连字符、英文句点和下划线组成[A-Z, a-z, 0-9, -_.];
- 典型的主机名最多包含 253 个字符。
查看 Linux 系统主机名常用方法:
hostname
hostnamectl
uname -n
cat /etc/hostname
不常用方法:
nmcli general hostname
sysctl kernel.hostname
cat /proc/sys/kernel/hostname
(END)