Terminal OSX mostrando nome de host incorreto

30

Quando abro o Terminal, espero que ele mostre como está definido meu PS1 \h:\W \u\$.

No entanto, ele não está exibindo meu nome de host Eriks-MacBook, como exibido nas Preferências do Sistema.

Em vez disso, está mostrando uma sequência aleatória unknownb88d120cd4b2.

Como isso pode ser corrigido ou redefinido?

Esta máquina é totalmente nova e as preferências / configurações não foram alteradas.

Erik W
fonte
Digite hostnameo prompt e pressione enter. O que você ganha?
Blender
unknownb88d120cd4b2: ~ erik $ hostname unknownb88d120cd4b2 unknownb88d120cd4b2: ~ erik $
Mas não é esse o nome do meu computador em Preferências do Sistema - Compartilhamento. Eu mudei do padrão para "erik-mba" esperando que isso ajudasse, mas sem dados.

Respostas:

25

Gordon dá uma boa resposta para a origem do seu nome de host.

Se você deseja que o nome que você definiu em Preferências do Sistema -> Compartilhamento -> Nome do Computador seja exibido no prompt, substitua \hpor $(scutil --get ComputerName). Por exemplo, meu prompt é definido com

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

O Terminal está mostrando o primeiro rótulo do seu nome de host BSD (assumindo que seu shell seja BASH). Se o seu nome de host BSD for yourhostname.mynetwork.com, o Terminal exibirá apenas yourhostname-

Então, de onde vem o nome do host BSD? Pode vir de vários lugares:

• do arquivo: /etc/hostconfig

• mais do arquivo: /Library/Preferences/SystemConfiguration/preferences.plist( Sistema ▸ Sistema ▸ HostName )

• caso contrário, o resultado de uma consulta DNS reversa para o seu endereço IP principal (para que você observe um nome de host totalmente diferente quando você visita um cibercafé do que quando conectado em casa)

• senão o seu nome de host "Bonjour" em Preferências do sistema> Compartilhamento ( preferences.plistnovamente ... Sistema ▸ Rede ▸ Nomes de host ▸ LocalHostName )

• finalmente, se nenhuma das opções acima tiver sido definida, o nome do host BSD será simplesmente localhost

A propósito, eu respondi à mesma pergunta há algum tempo aqui: Terminal Mac OS X - de onde vem o nome do prompt

nome de usuário
fonte
1
é possível que a pesquisa reversa do DNS tenha precedência sobre todas as outras configurações no meu sistema?
caesarsol
Eu verifiquei no meu próprio sistema: / etc / hostconfig não existe. preferências.plist ▸ Sistema ▸ Sistema ▸ HostName não está definido (embora ComputerName esteja). A pesquisa reversa de DNS retorna a tagarelice que estou vendo na minha janela do terminal. Sistema ▸ Rede ▸ HostNames ▸ LocalHostName é definido. Portanto, se seu sistema estiver mostrando o mesmo que o meu, a pesquisa inversa de DNS foi a primeira correspondência e prevalecerá sobre LocalHostName .
Edward Falk
12

O OS X tenta várias coisas para encontrar seu "nome de host". Infelizmente, eu não sei a lista exata (e a ordem), mas acho que o que está acontecendo aqui é que ele está descobrindo um nome DNS associado ao seu endereço IP e, usando-o em vez do nome Bonjour, está anunciando por si mesmo (o definido em Preferências de compartilhamento).

Então, por que ele está encontrando um nome DNS? Meu palpite é que o seu roteador local / servidor DHCP / servidor DNS está atribuindo-o dinamicamente, com base em seu endereço de hardware Ethernet (presumivelmente b8: 8d: 12: 0c: d4: b2). Você poderá ajustar as configurações do roteador para impedir que isso seja feito ou provavelmente poderá definir o ID do cliente DHCP do computador (nas Preferências de rede, Configurações avançadas) para controlar o nome que ele atribui a você.

Gordon Davisson
fonte
2
Isso foi muito útil para mim. Minha máquina estava exibindo esse comportamento, o ponto principal, pois parecia ter mudado espontaneamente nomes, como eu nunca tinha visto antes. Então, perdi 90 minutos verificando vírus e problemas de disco e coisas do gênero. Fico feliz em saber que posso parar com segurança de perder tempo.
22133
1

Não tendo certeza se você ainda está tendo problemas ou não, isso parece ter sido corrigido em algum momento entre Yosemite e Sierra.

Para novos computadores, inicio com as Preferências do sistema de compartilhamento, inserindo o [novo nome] como o Nome do computador desejado. Também insiro o [novo nome] em todos os campos de identificação do cliente DHCP ativos para cada interface de rede. Depois de fazer isso, abro o Terminal para confirmar que ele informa um nome semelhante, alguns caracteres não são permitidos e o sistema modifica o nome, se necessário. Você pode alterar o nome seguindo as etapas abaixo. Basta substituir o bloco [novo nome] pelo nome do computador desejado.

  1. Terminal Aberto
  2. No prompt, digite o seguinte sudo scutil --set HostName [novo nome]
  3. Abra uma nova janela do Terminal para confirmar que o novo nome foi aceito.

Se o nome não é do meu agrado, prossigo com o descrito acima antes de vinculá-lo ao domínio ativo.

Wallace Karraker
fonte