OSX-Terminal zeigt falschen Hostnamen an


30

Wenn ich Terminal öffne, erwarte ich, dass es zeigt, auf was meine PS1 eingestellt ist \h:\W \u\$.

Es zeigt jedoch nicht meinen Hostnamen an Eriks-MacBook, wie in den Systemeinstellungen angezeigt.

Stattdessen wird eine zufällige Zeichenfolge angezeigt unknownb88d120cd4b2.

Wie kann dies behoben oder zurückgesetzt werden?

Dieses Gerät ist brandneu und die Einstellungen wurden nicht geändert.


Geben Sie hostnamedie Eingabeaufforderung ein und drücken Sie die Eingabetaste. Was bekommst du?
Blender

unknownb88d120cd4b2: ~ erik $ hostname unknownb88d120cd4b2 unknownb88d120cd4b2: ~ erik $

Dies ist jedoch nicht der Name meines Computers in den Systemeinstellungen - Freigabe. Ich habe es von Standard auf "erik-mba" geändert, in der Hoffnung, dass das helfen würde, aber keine Würfel.

Antworten:


25

Gordon gibt eine gute Antwort auf die Herkunft Ihres Hostnamens.

Wenn der in den Systemeinstellungen -> Freigabe -> Computername festgelegte Name in Ihrer Eingabeaufforderung angezeigt werden soll, ersetzen Sie ihn \hdurch $(scutil --get ComputerName). ZB wird meine Eingabeaufforderung mit gesetzt

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

19

Das Terminal zeigt Ihnen die erste Bezeichnung Ihres BSD-Hostnamens an (vorausgesetzt, Ihre Shell ist BASH). Wenn Ihr BSD-Hostname lautet, yourhostname.mynetwork.comwird im Terminal nur Folgendes angezeigt yourhostname:

Woher kommt also der BSD-Hostname? Es kann von mehreren Orten kommen:

• aus der Akte: /etc/hostconfig

• sonst aus der Datei: /Library/Preferences/SystemConfiguration/preferences.plist( System ▸ System ▸ Hostname )

• ansonsten das Ergebnis einer umgekehrten DNS-Abfrage nach Ihrer primären IP-Adresse (sodass möglicherweise ein völlig anderer Hostname angezeigt wird, wenn Sie ein Internetcafé besuchen, als wenn Sie zu Hause verbunden sind)

• ansonsten Ihren "Bonjour" -Hostnamen in den Systemeinstellungen> Freigabe ( preferences.plisterneut ... System ▸ Netzwerk ▸ Hostnamen ▸ LocalHostName )

• Wenn keine der oben genannten Optionen festgelegt wurde, lautet der BSD-Hostname einfach localhost

Übrigens habe ich die gleiche Frage vor einiger Zeit hier beantwortet: Mac OS X Terminal - Woher kommt der Name der Eingabeaufforderung?


1
Ist es möglich, dass die umgekehrte DNS-Suche Vorrang vor allen anderen Konfigurationen auf meinem System hat?
Caesarsol

Ich habe auf meinem eigenen System überprüft: / etc / hostconfig existiert nicht. preferences.plist ▸ System ▸ System ▸ Hostname ist nicht definiert (obwohl Computername ). Reverse DNS Lookup gibt das Gibbern zurück, das ich in meinem Terminalfenster sehe. System ▸ Netzwerk ▸ Hostnamen ▸ LocalHostName ist definiert. Wenn Ihr System also dasselbe wie meins anzeigt , war die umgekehrte DNS-Suche die erste Übereinstimmung und hat Vorrang vor LocalHostName .
Edward Falk

12

OS X versucht eine Reihe von Dingen, um seinen "Hostnamen" zu finden. Leider kenne ich die genaue Liste (und Reihenfolge) nicht, aber ich denke, dass hier ein DNS-Name gefunden wird, der mit seiner IP-Adresse verknüpft ist, und der anstelle des Bonjour-Namens verwendet wird, der für sich selbst geworben wird (der in definierte) Einstellungen teilen).

Warum findet es einen DNS-Namen? Ich vermute, Ihr lokaler Router / DHCP-Server / DNS-Server weist ihm dynamisch eine zu, basierend auf seiner Ethernet-Hardwareadresse (vermutlich b8: 8d: 12: 0c: d4: b2). Möglicherweise können Sie die Einstellungen des Routers anpassen, um dies zu verhindern, oder Sie können die DHCP-Client-ID des Computers (in den Netzwerkeinstellungen unter Erweiterte Einstellungen) festlegen, um zu steuern, welchen Namen er Ihnen zuweist.


2
Das war sehr hilfreich für mich. Mein Computer zeigte dieses Verhalten, der springende Punkt war, dass es SPONTANEOUSLY geänderte Namen zu haben schien, da ich noch nie zuvor ein anderes gesehen hatte. Ich habe 90 Minuten damit verbracht, nach Viren und Festplattenproblemen zu suchen. Ich bin froh zu wissen, dass ich keine Zeit mehr verschwenden kann.
Verschwörungstheorie

1

Sie sind sich nicht sicher, ob Sie immer noch Probleme haben oder nicht. Dies scheint irgendwann zwischen Yosemite und Sierra behoben worden zu sein.

Bei neuen Computern beginne ich mit den Systemeinstellungen für die gemeinsame Nutzung und gebe den [neuen Namen] als gewünschten Computernamen ein. Ich gebe auch den [neuen Namen] in alle aktiven DHCP-Client-ID-Felder für jede Netzwerkschnittstelle ein. Nachdem ich das Terminal geöffnet habe, um zu bestätigen, dass ein ähnlicher Name angezeigt wird, sind einige Zeichen nicht zulässig, sodass das System den Namen gegebenenfalls ändert. Sie können den Namen mithilfe der folgenden Schritte ändern. Ersetzen Sie einfach den Block [Neuer Name] durch den gewünschten Computernamen.

  1. Öffnen Sie das Terminal
  2. Geben Sie an der Eingabeaufforderung Folgendes ein: sudo scutil --set HostName [neuer Name]
  3. Öffnen Sie ein neues Terminalfenster, um zu bestätigen, dass der neue Name akzeptiert wurde.

Wenn mir der Name nicht gefällt, gehe ich wie oben beschrieben vor, bevor ich ihn an Active Domain binde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.