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/hosts
是uname -n
DHCP 协议具有向新主机提供主机名和 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}'