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


19

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

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


我可能是错的,但是将计算机的名称定义为网络名称意味着它没有固定名称,对吗?在计算机上安装Linux或OSX时,通常会选择该计算机的名称(这是我假设的默认网络名称)。例如,我的笔记本电脑可能命名为“ FooBar”,但是当我在工作时连接到网络时,会得到一个主机名,例如“ machine42.work.localnetwork”。
Sheljohn '16

@StephenKitt确实,在Linux系统中,这还有别的名字吗?
Sheljohn '16

4
@ Sh3ljohn osx服务于计算机名是什么目的?我认为linux系统中没有任何等效的东西。
Bibek_G

在安装该计算机时,您是否提供了主机名以外的其他名称?尝试在/ etc中搜索该名称:grep -ri 'name' /etc
ptman

@Bibek_G我想用它来从我的软件中识别正在运行的机器。UUID不足,因为同一磁盘上可能安装了多个操作系统,这些操作系统又在同一台计算机上运行。
Sheljohn

Answers:


31

运行Linux的计算机上与人类可读(和人工选择)名称最接近的等效项是存储在中的默认主机名/etc/hostname。在某些(不是全部)Linux发行版中,此名称在安装期间作为计算机的名称输入(但与Mac OS X的计算机名称不同,但具有网络主机名约束)。


但是,此文件通常用于设置hostnameuname -n,而@ Sh3ljohn明确希望避免输出这两个命令。
roaima

17

严格来说,在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租约时,就会发生这种情况。


“严格来说,在Linux中没有与网络无关的“计算机名称”之类的东西” -它不取决于服务吗?例如,我认为Windows的等效项是NetBIOS名称。它是没有域名部分的友好名称,它可能不同于域名的主机部分(是否完全合格)。

NetBIOS名称仍然是网络名称,即使它不同于域名也是如此。
德米特里·格里戈里耶夫

16

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

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

资料来源: [1]


我认为这不是我想要的;这需要管理员权限,并且会在您将操作系统安装到该计算机上时为您提供有关硬件的信息,而不是用户选择的名称。
Sheljohn

13
用户选择的名称?对我来说,这听起来像是主机名。
Bibek_G

2
对不起,我错了。无论如何,我都会留下答案。我知道,使用Linux发行版的唯一用户选择名称是主机名。
jschlichtholz's

@Bibek_G这就是为什么我找不到我的问题的答案的原因,在OSX上,这是两件事。我正在寻找在该计算机上安装Linux时输入的名称,我认为它将是默认的网络名称。
Sheljohn

@jschlichtholz当然,这个答案可能对其他人有用,但是正如我对Bibek_G所说的那样,我正在寻找默认的网络名称。
Sheljohn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.