MacOS奇怪的终端提示符,尝试重置终端

3

链接到终端图片

Last login: Mon Feb 27 14:57:49 on ttys000
engr2-2-79-41-dhcp:~ <censored>$

根据我连接的网络不同,我的终端每一行都列出奇怪的东西,比如“engr2-....”。 我无意中做了某些事情导致了这个问题。 一旦发生这种情况,git命令就停止工作了。 我尝试删除终端的配置文件,但这只重置了我的终端主题。


你有没有对bash配置文件(即.bashrc或.bash_profile)进行过任何更改,尝试使用PS1更改提示符? - Libin Varghese
1
那段文本是你的计算机主机名。这种行为是正常的。 - user149341
1个回答

9
你看到的是正常的情况,只是有点令人困惑。它显示的是计算机的主机名。标准提示信息中包含它,以便提供帮助。
在Unix命令行界面中,切换到其他目录(使用cd),其他用户帐户(使用su或sudo)甚至其他计算机(使用ssh)是很正常的。跟踪你所处的位置可能会让人感到困惑,因此标准shell提示信息包括你所在的位置和身份(计算机的主机名、当前用户名和当前目录);这有点类似于命令行版的GPS系统。
问题在于,它确定计算机的主机名的方式有时会引起更多的混乱。过程大致如下:
Bash shell:我需要在命令提示符中包含主机名。“嘿,操作系统:我们正在使用哪台计算机?”
操作系统:我的主机名?天啊,我不知道那是什么。我知道了,我会问DNS(域名服务)服务器,它是否有一个与我的IP地址相关的名称。“嘿,DNS,与2.2.79.41相关的名称是什么?”
DNS服务器:2.2.79.41?那没有一个特定的名称,它只是DHCP服务器分配给连接到工程网络的计算机的地址池的一部分。哦,我知道了,我会叫它engr2-2-79-41-dhcp。这总比没有好吧?
(还有一种变体,其中DNS服务器有一个注释,三年前DHCP服务器将该IP地址分配给了一个名为“Fred's Android phone”的设备,并且它认为同一设备肯定仍在那里,因此使用类似于freds-android-phone.lan的名称。)
...所以DNS将该名称发送给操作系统,操作系统将其传递给shell,shell将其显示在提示信息中,这会让你说“这是什么鬼?”。
请记住:这个过程的每个部分都在尽力提供最好的信息。没有任何问题,只是如果你不知道它在做什么或为什么,可能会感到困惑。
这就带来了你在git命令中遇到的问题:这并不是引起它的原因。它几乎肯定与之无关。忽略奇怪的提示信息,解决你的git设置问题。

它使用哪个DNS? - theonlygusti
@theonlygusti 无论在网络偏好设置中配置了什么,通常意味着它是您的 Mac 从本地网络上的 DHCP 服务器获取的内容。在普通的小型办公室/家庭设置中,它将是充当 DHCP 和 DNS 服务器的本地网络路由器。 - Gordon Davisson
这不是暗示当你改变网络时主机名也会跟着改变吗?有个人在apple.SE上评论说主机名不会改变。https://apple.stackexchange.com/questions/358605/my-hostname-is-not-my-laptop-name/358611#comment473533_358605 - theonlygusti
所以这个问题没有解决方案吗?我强制关闭了终端并重新启动,然后名称就消失了。这正常吗? - user0193
1
@user0193 这取决于你的网络设置是否正常。如果你真的想要“解决”它(再次强调,这并不是一个问题,只是有点困惑),你可以使用 sudo scutil --set HostName nameyouwanttouse 来覆盖主机名(参见这个问题)。 - Gordon Davisson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接