繁体   English   中英

mac终端计算机名乱码

[英]mac terminal computer name is garbled

当我使用终端输入zsh时,我的计算机名称是乱码,n3-85-8而不是MacBook-Pro。 有时例如 bash。 有谁知道为什么? 以及如何解决它。 在此处输入图像描述

这里发生了两种影响:

  • Bash 仅在 shell 启动时读取主机名(如提示所示)一次,这意味着您仅在启动新的 shell 时才能看到更改,而不是在您的主机名更改时。
  • 默认情况下,macOS 根据网络配置更改自己的主机名

您可以将您的计算机配置为不更改其主机名(例如参见此问题)。 或者,您可以在提示中配置 bash 以使用计算机的持久LocalHostName 当您连接到不同的网络时,此值不会更改。

您可以编辑您的~/.bashrc (或相关文件)以具有如下行:

PS1=$(scutil --get LocalHostName)':\W \u\$'

扩展 Grisha 的出色答案,有几个不同的主机名。 通常相同,但可能会有所不同以适应不同的命名约束。 whatami function(下)可以帮助您在PS1提示符中选择您想要的那个。

这是一个 Bash function 来帮助评估不同的名称。

function whatami {
    local cn=$(scutil --get ComputerName)
    local lhn=$(scutil --get LocalHostName)
    local hn=$(scutil --get HostName)
    local nbn=$(/usr/libexec/PlistBuddy -c "Print :NetBIOSName" /Library/Preferences/SystemConfiguration/com.apple.smb.server.plist)
    printf '\e[1mComputerName\e[0m: '"$cn"'\n'
    printf '\e[1mLocalHostName\e[0m (Bonjour): '"$lhn"'\n'
    printf '\e[1mHostName\e[0m: '"$hn"'\n'
    printf '\e[1mNetBIOSName\e[0m (SMB): '"$nbn"'\n'
    printf '\e[1mIP Address\e[0m: '
    for x in $(ifconfig -l); do ipconfig getifaddr $x; done
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM