如何获取计算机名称(而不是其主机名)?

如何获取计算机名称(而不是其主机名)?

hostname我的所有搜索结果最终都与or有关uname -n。我查阅了两者的手册,寻找偷偷摸摸的选项,但没有运气。

我正在尝试找到与 OSX 相当的东西scutil --get ComputerName我正在尝试在 Linux 系统上。在 Mac OS X 上,计算机名称用作计算机的人类可读标识符;它显示在各种管理屏幕中(例如库存管理、基于 Bonjour 的远程访问...)并用作默认主机名(在过滤以处理空格等之后)。

答案1

对于任何运行 Linux 的计算机来说,与人类可读(和人类选择)的名称最接近的等效项是存储在/etc/hostname.在某些(不是全部)Linux 发行版上,此名称在安装过程中作为计算者的名称输入(但具有网络主机名限制,与 macOS 的计算机名称不同)。这可以是命名空间的,IE每个悉尼科技大学命名空间可以有不同的主机名。

运行 systemd 的系统区分三种不同的主机名,其中包括一个“漂亮的”人类可读的名称,该名称应该以与 macOS 的计算机名称类似的方式进行描述;这可以设置和检索使用hostnamectl--pretty选项。另外两个主机名是静态主机名(即上述默认主机名)和临时主机名(反映当前网络配置)。

Systemd 还支持机箱类型(例如“平板电脑”)和主机的图标;看systemd-hostnamed.service

答案2

你可以使用sudo dmidecode | grep -A3 '^System Information'命令。该命令从 BIOS 和硬件读取信息。我的机器的示例:

System Information
    Manufacturer: LENOVO
    Product Name: 20BHA06YGB
    Version: ThinkPad W540

资料来源: [1]

答案3

严格来说,Linux中不存在与网络无关的“计算机名称”,而且我实际上看不到为不在网络上的计算机命名的目的。

/etc/hostname您的计算机在、中具有不同字符串的原因/etc/hostsuname -nDHCP 协议具有向新主机提供主机名和 IP 地址的功能。 “machine42.work.localnetwork”看起来与 DHCP 服务器选择的名称完全相同。然后保存该字符串并返回gethostname来电。

也可以看看:

如何更改计算机名称?(tl;dr echo computername > /etc/hostname) - 这就是您在安装过程中选择名称时发生的情况。

如何在不重新启动的情况下更改主机名?(tl;dr hostname computername) - 这就是当您获得带有主机名的 DHCP 租约时会发生的情况。

答案4

一班轮:

hostnamectl | egrep -i "Static hostname" | awk '{print $NF}'

相关内容