OSX终端显示不正确的主机名


30

当我打开终端时,我希望它能显示我的PS1设置为\h:\W \u\$

但是,它没有显示我的主机名Eriks-MacBook,如系统偏好设置中所示。

相反,它显示了一个随机字符串unknownb88d120cd4b2

如何修复或重置?

这台机器是全新的,首选项/设置未更改。


hostname提示中输入,然后按Enter。你得到了什么?
Blender

unknownb88d120cd4b2:〜erik $主机名unknownb88d120cd4b2 unknownb88d120cd4b2:〜erik $

但这不是我的计算机的名字在System Prefs-Sharing中。我将其从默认值更改为“ erik-mba”,希望能有所帮助,但没有骰子。

Answers:


25

戈登为您的主机名来源提供了一个很好的答案

如果要在提示中显示在“系统偏好设置”->“共享”->“计算机名称”中设置的名称,请替换\h$(scutil --get ComputerName)。例如,我的提示设置为

PS1="[\u@:$(scutil --get ComputerName) \W]\\$ "

19

终端将显示BSD主机名的第一个标签(假设您的shell是BASH)。如果您的BSD主机名是,yourhostname.mynetwork.com那么终端将仅显示yourhostname-

那么BSD主机名从何而来?它可以来自几个地方:

•来自文件: /etc/hostconfig

•从其他文件:/Library/Preferences/SystemConfiguration/preferences.plist系统▸系统▸主机名

•否则,对主IP地址进行反向DNS查询的结果(因此,您访问网吧时可能会发现与在家连接时显示的主机名完全不同)

•否则在“ 系统偏好设置”>“共享”中preferences.plist再次输入“ Bonjour”主机名(再次... 系统▸网络▸主机名▸LocalHostName

•最后,如果未设置上述任何一项,则BSD主机名将简单地 localhost

顺便说一句,我刚才在这里回答了同样的问题:Mac OS X Terminal-提示名称从何而来


1
反向DNS查找是否有可能优先于系统上的所有其他配置?
caesarsol 2014年

我检查了自己的系统:/ etc / hostconfig不存在。preferences.plist▸ 系统▸系统▸主机名未定义(尽管计算机名已定义)。反向DNS查找返回我在终端窗口中看到的消息。系统▸网络▸主机名▸已定义LocalHostName。因此,如果您的系统显示与我的相同,则反向DNS查找是第一个匹配项,并且优先于LocalHostName
爱德华·福尔克

12

OS X尝试了多种方法来找到其“主机名”。不幸的是,我不知道确切的列表(和顺序),但是我认为这里正在发生的事情是,它发现一个与其IP地址相关联的DNS名称,并使用该名称代替Bonjour名称为其自身做广告(共享首选项)。

那么为什么要查找DNS名称呢?我的猜测是您的本地路由器/ DHCP服务器/ DNS服务器正在根据其以太网硬件地址(大概是b8:8d:12:0c:d4:b2)动态为其分配一个地址。您可能可以调整路由器的设置以停止此操作,或者可以设置计算机的DHCP客户端ID(在“网络偏好设置”中的“高级”设置中)以控制它为您分配的名称。


2
这对我最有帮助。我的机器正在显示这种行为,关键是,它似乎已经自发地更改了名称,因为我以前从未见过其他名称。因此,我浪费了90分钟检查病毒和磁盘等问题。很高兴知道我可以安全地停止浪费时间。
conspiritech

1

不知道您是否仍然遇到问题,这似乎在优胜美地和塞拉之间的某个时间已解决。

对于新计算机,我从共享系统偏好设置开始,输入[新名称]作为所需的计算机名称。我还在每个网络接口的所有活动DHCP客户端ID字段中输入[新名称]。完成后,我打开Terminal确认它报告了类似的名称,不允许使用某些字符,因此系统将在必要时修改名称。您可以按照以下步骤更改名称,只需将[新名称]块替换为所需的计算机名称即可。

  1. 开放终端
  2. 在提示符下输入以下 命令-sudo scutil --set HostName [新名称]
  3. 打开一个新的终端窗口,以确认新名称被接受。

如果该名称不符合我的喜好,则在将其绑定到Active Domain之前,请继续进行上述操作。

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.