Terminal OSX mostrando o nome do host incorreto

27

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

No entanto, ele não está exibindo meu nome de host Eriks-MacBook , conforme exibido em Preferências do sistema.

Em vez disso, mostra uma string aleatória unknownb88d120cd4b2 .

Como isso pode ser corrigido ou redefinido?

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

    
por Erik W 14.11.2011 / 05:24

4 respostas

23

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

Se você quiser o nome que você definiu nas Preferências do Sistema - > Compartilhamento - > Nome do computador para aparecer no seu prompt, substitua \h por $(scutil --get ComputerName) . Por exemplo, meu prompt é definido com

PS1="[\u@:$(scutil --get ComputerName) \W]\$ "
    
por 20.04.2012 / 23:12
18

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

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

• do arquivo: /etc/hostconfig

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

• senão o resultado de uma consulta DNS reversa para o seu endereço IP principal (assim, você pode notar um nome de host totalmente diferente aparecendo quando visita um cybercafé do que quando conectado em casa)

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

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

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

    
por 29.05.2012 / 20:32
11

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

Então, por que está encontrando um nome DNS? Meu palpite é que seu servidor DHCP / roteador local / servidor DNS está atribuindo dinamicamente um, baseado em seu endereço de hardware ethernet (presumivelmente b8: 8d: 12: 0c: d4: b2). Você pode ajustar as configurações do roteador para impedi-lo de fazer isso ou provavelmente definir o ID do cliente DHCP do computador (nas configurações de Preferências de rede, Avançado) para controlar o nome que você atribui a você.

    
por 15.11.2011 / 02:41
1

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

Para novos computadores, inicio com as Preferências do Sistema de Compartilhamento, inserindo o [novo nome] como o Nome do Computador desejado. Eu também insiro o [novo nome] em todos os campos ativos do ID do Cliente DHCP para cada interface de rede. Depois que eu fizer isso, eu abro o Terminal para confirmar que ele reporta um nome similar, alguns caracteres não são permitidos, então o sistema irá modificar o nome se necessário. Você pode alterar o nome usando as etapas abaixo, basta substituir o bloco [novo nome] pelo nome do computador desejado.

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

Se o nome não for do meu agrado, prossigo com o que precede antes de ligá-lo ao Active Domain.

    
por 22.04.2017 / 00:39