Terminal OSX pokazuje niepoprawną nazwę hosta

30

Kiedy otwieram Terminal, spodziewam się, że pokaże, co jest ustawione na moim PS1 \h:\W \u\$.

Jednak nie wyświetla mojej nazwy hosta Eriks-MacBook, jak pokazano w Preferencjach systemowych.

Zamiast tego pokazuje losowy ciąg unknownb88d120cd4b2.

Jak można to naprawić lub zresetować?

To urządzenie jest fabrycznie nowe, a preferencje / ustawienia nie zostały zmienione.

Erik W.
źródło
Wpisz hostnameznak zachęty i naciśnij klawisz Enter. Co dostajesz?
Blender
unknownb88d120cd4b2: ~ erik $ nazwa hosta unknownb88d120cd4b2 nieznanyb88d120cd4b2: ~ erik $
Ale nie tak nazywa się mój komputer w System Prefs - Sharing. Zmieniłem go z domyślnego na „erik-mba”, mając nadzieję, że to pomoże, ale żadnych kości.

Odpowiedzi:

25

Gordon daje dobrą odpowiedź na pochodzenie twojej nazwy hosta.

Jeśli chcesz nazwę, która będzie ustawiona w oknie Preferencje systemowe -> Udostępnianie -> Nazwa komputera, aby pokazać się w swoim wierszu, wymienić \hsię $(scutil --get ComputerName). Np. Mój monit jest ustawiony na

PS1="[\u@:$(scutil --get ComputerName) \W]\\$ "
ajs
źródło
19

Terminal pokazuje pierwszą etykietę twojej nazwy hosta BSD (zakładając, że twoja powłoka to BASH). Jeśli nazwa hosta BSD to: yourhostname.mynetwork.comTerminal wyświetli tylko yourhostname-

Skąd więc pochodzi nazwa hosta BSD? Może pochodzić z kilku miejsc:

• z pliku: /etc/hostconfig

• else z pliku: /Library/Preferences/SystemConfiguration/preferences.plist( System ▸ System ▸ HostName )

• w przeciwnym razie wynik zapytania zwrotnego DNS dla twojego podstawowego adresu IP (więc możesz zauważyć zupełnie inną nazwę hosta wyświetlaną podczas wizyty w kawiarence internetowej niż w przypadku połączenia w domu)

• w przeciwnym razie twoja nazwa hosta „Bonjour” w Preferencjach systemowych> Udostępnianie ( preferences.plistponownie ... System ▸ Sieć ▸ Nazwy hostów ▸ LocalHostName )

• wreszcie, jeśli żadna z powyższych opcji nie została ustawiona, nazwa hosta BSD będzie po prostu localhost

Nawiasem mówiąc, odpowiedziałem tutaj na to samo pytanie: Terminal Mac OS X - skąd pochodzi nazwa zachęty

Nazwa Użytkownika
źródło
1
czy jest możliwe, że odwrotne wyszukiwanie DNS ma pierwszeństwo przed wszystkimi innymi konfiguracjami w moim systemie?
caesarsol
Sprawdziłem we własnym systemie: / etc / hostconfig nie istnieje. preferencje.plist ▸ System ▸ System ▸ Nazwa hosta nie jest zdefiniowana (chociaż nazwa komputera to). Odwrotne wyszukiwanie DNS zwraca bełkot, który widzę w oknie terminala. System ▸ Sieć ▸ Nazwy hosta ▸ Nazwa hosta lokalnego jest zdefiniowana. Więc jeśli twój system pokazuje to samo co mój, to odwrotne wyszukiwanie DNS było pierwszym dopasowaniem i ma pierwszeństwo przed LocalHostName .
Edward Falk,
12

OS X próbuje wielu rzeczy, aby znaleźć swoją „nazwę hosta”. Niestety nie znam dokładnej listy (i kolejności), ale myślę, że dzieje się tutaj to, że odkrywa nazwę DNS powiązaną z jej adresem IP i używa jej zamiast nazwy Bonjour, jest to reklama sama dla siebie (ta zdefiniowana w Udostępnianie preferencji).

Więc dlaczego znajduje nazwę DNS? Domyślam się, że lokalny router / serwer DHCP / serwer DNS dynamicznie przypisuje mu jeden na podstawie adresu sprzętowego Ethernet (prawdopodobnie b8: 8d: 12: 0c: d4: b2). Możliwe, że możesz zmienić ustawienia routera, aby przestał to robić, lub prawdopodobnie możesz ustawić identyfikator klienta DHCP komputera (w Preferencjach sieciowych, Ustawienia zaawansowane), aby kontrolować, jaką nazwę mu przypisuje.

Gordon Davisson
źródło
2
To było dla mnie najbardziej pomocne. Moja maszyna wykazywała takie zachowanie, a kluczową sprawą było to, że SPONTANICZNIE zmieniła nazwy, ponieważ nigdy wcześniej nie widziałam innego. Właśnie zmarnowałem 90 minut na sprawdzanie wirusów i problemów z dyskami. Cieszę się, że mogę bezpiecznie przestać marnować czas.
conspiritech
1

Nie jestem pewien, czy nadal masz problemy, czy nie, wydaje się, że zostało to naprawione między Yosemite a Sierra.

W przypadku nowych komputerów zaczynam od Preferencji systemu udostępniania, wpisując [nową nazwę] zgodnie z żądaną nazwą komputera. Wprowadzam również [nowa nazwa] we wszystkich aktywnych polach identyfikatora klienta DHCP dla każdego interfejsu sieciowego. Po tym, jak otworzę Terminal, aby potwierdzić, że zgłasza podobną nazwę, niektóre znaki są niedozwolone, więc system zmodyfikuje nazwę w razie potrzeby. Możesz zmienić nazwę, wykonując poniższe czynności, po prostu zastąp blok [nowa nazwa] żądaną nazwą komputera.

  1. Otwórz terminal
  2. Po znaku zachęty wpisz następujący sudo scutil - ustaw nazwę hosta [nowa nazwa]
  3. Otwórz nowe okno Terminalu, aby potwierdzić, że nowa nazwa została zaakceptowana.

Jeśli nazwa mi się nie podoba, kontynuuję powyższe, zanim powiążę ją z domeną aktywną.

Wallace Karraker
źródło