Terminal OSX affichant un nom d'hôte incorrect

30

Lorsque j'ouvre le terminal, je m'attends à ce qu'il montre à quoi ma PS1 est configurée \h:\W \u\$.

Cependant, il n'affiche pas mon nom d'hôte Eriks-MacBook, comme indiqué dans les Préférences Système.

Au lieu de cela, il affiche une chaîne aléatoire unknownb88d120cd4b2.

Comment cela peut-il être corrigé ou réinitialisé?

Cette machine est neuve et les préférences / paramètres n'ont pas été modifiés.

Erik W
la source
Tapez hostnamedans l'invite et appuyez sur Entrée. Qu'est ce que tu obtiens?
Blender
unknownb88d120cd4b2: ~ erik $ hostname unknownb88d120cd4b2 unknownb88d120cd4b2: ~ erik $
Mais ce n'est pas le nom de mon ordinateur dans System Prefs - Sharing. Je l'ai changé par défaut en "erik-mba" en espérant que cela aiderait, mais pas de dés.

Réponses:

25

Gordon donne une bonne réponse à l'origine de votre nom d'hôte.

Si vous souhaitez que le nom que vous définissez dans Préférences Système -> Partage -> Nom de l'ordinateur apparaisse dans votre invite, remplacez \hpar $(scutil --get ComputerName). Par exemple, mon invite est définie avec

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

Terminal vous montre la première étiquette de votre nom d'hôte BSD (en supposant que votre shell est BASH). Si votre nom d'hôte BSD est yourhostname.mynetwork.comalors Terminal affichera uniquement yourhostname-

D'où vient donc le nom d'hôte BSD? Il peut provenir de plusieurs endroits:

• à partir du fichier: /etc/hostconfig

• sinon à partir du fichier: /Library/Preferences/SystemConfiguration/preferences.plist( Système ▸ Système ▸ HostName )

• sinon le résultat d'une requête DNS inversée pour votre adresse IP principale (vous remarquerez peut-être un nom d'hôte totalement différent lorsque vous visitez un cybercafé que lorsque vous êtes connecté à la maison)

• sinon votre nom d'hôte "Bonjour" dans Préférences Système> Partage ( preferences.plistencore une fois ... Système ▸ Réseau ▸ Noms d'hôte ▸ LocalHostName )

• enfin, si aucun des éléments ci-dessus n'a été défini, le nom d'hôte BSD sera simplement localhost

Soit dit en passant, j'ai répondu à la même question il y a quelque temps ici: Mac OS X Terminal - d'où vient le nom de l'invite

Nom d'utilisateur
la source
1
est-il possible que la recherche DNS inversée ait priorité sur toutes les autres configurations de mon système?
caesarsol
J'ai vérifié sur mon propre système: / etc / hostconfig n'existe pas. preferences.plist ▸ Système ▸ Système ▸ HostName n'est pas défini (bien que ComputerName le soit). La recherche DNS inversée renvoie le bavardage que je vois dans ma fenêtre de terminal. Système ▸ Réseau ▸ HostNames ▸ LocalHostName est défini. Donc, si votre système affiche la même chose que la mienne, la recherche DNS inversée était la première correspondance et a priorité sur LocalHostName .
Edward Falk
12

OS X essaie un certain nombre de choses pour trouver son "nom d'hôte". Malheureusement, je ne connais pas la liste exacte (et l'ordre), mais je pense que ce qui se passe ici, c'est qu'il découvre un nom DNS associé à son adresse IP, et en l'utilisant à la place du nom Bonjour, il se fait de la publicité (celui défini dans Partage des préférences).

Alors pourquoi trouve-t-il un nom DNS? Je suppose que votre routeur local / serveur DHCP / serveur DNS lui attribue dynamiquement un, en fonction de son adresse matérielle Ethernet (vraisemblablement b8: 8d: 12: 0c: d4: b2). Vous pouvez peut-être ajuster les paramètres du routeur pour l'empêcher de le faire, ou vous pouvez probablement définir l'ID client DHCP de l'ordinateur (dans les Préférences réseau, Paramètres avancés) pour contrôler le nom qu'il vous attribue.

Gordon Davisson
la source
2
Cela m'a été très utile. Ma machine affichait ce comportement, l'essentiel étant qu'il semblait avoir SPONTANÉMENT changé de nom, car je n'en avais jamais vu de différent auparavant. Je viens donc de perdre 90 minutes à vérifier les virus et les problèmes de disque et autres. Heureux de savoir que je peux arrêter de perdre du temps en toute sécurité.
conspiritech
1

Je ne sais pas si vous rencontrez toujours des problèmes ou non, cela semble avoir été résolu entre Yosemite et Sierra.

Pour les nouveaux ordinateurs, je commence par les préférences du système de partage, en entrant le [nouveau nom] comme nom d'ordinateur souhaité. J'entre également le [nouveau nom] dans tous les champs d'ID de client DHCP actifs pour chaque interface réseau. Après avoir fait cela, j'ouvre Terminal pour confirmer qu'il signale un nom similaire, certains caractères ne sont pas autorisés, le système modifiera le nom si nécessaire. Vous pouvez changer le nom en utilisant les étapes ci-dessous, remplacez simplement le bloc [nouveau nom] par le nom de votre ordinateur souhaité.

  1. Terminal ouvert
  2. À l'invite, entrez le suivant - sudo scutil --set HostName [nouveau nom]
  3. Ouvrez une nouvelle fenêtre de terminal pour confirmer que le nouveau nom a été accepté.

Si le nom ne me convient pas, je procède à ce qui précède avant de le lier à Active Domain.

Wallace Karraker
la source