Terminale OSX che mostra un nome host errato


30

Quando apro Terminal mi aspetto che mostri su cosa è impostata la mia PS1 \h:\W \u\$.

Tuttavia, non viene visualizzato il mio nome host Eriks-MacBook, come visualizzato nelle Preferenze di Sistema.

Invece, mostra una stringa casuale unknownb88d120cd4b2.

Come può essere risolto o ripristinato?

Questa macchina è nuova di zecca e le preferenze / impostazioni non sono state modificate.


Digitare nel hostnameprompt e premere Invio. Che cosa ottieni?
Blender

unknownb88d120cd4b2: ~ erik $ nomehost unknownb88d120cd4b2 unknownb88d120cd4b2: ~ erik $

Ma non è questo il nome del mio computer in Preferenze di sistema - Condivisione. L'ho cambiato dal valore predefinito a "erik-mba" sperando che potesse aiutare, ma senza dadi.

Risposte:


25

Gordon dà una buona risposta all'origine del tuo nome host.

Se desideri che il nome impostato in Preferenze di Sistema -> Condivisione -> Nome computer sia visualizzato nel tuo prompt, sostituiscilo \hcon $(scutil --get ComputerName). Ad esempio, il mio prompt è impostato con

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

19

Terminal ti mostra la prima etichetta del tuo nome host BSD (supponendo che la tua shell sia BASH). Se il tuo nome host BSD è yourhostname.mynetwork.comquindi Terminal visualizzerà solo yourhostname-

Quindi da dove viene il nome host BSD? Può venire da diversi posti:

• dal file: /etc/hostconfig

• altro dal file: /Library/Preferences/SystemConfiguration/preferences.plist( Sistema ▸ Sistema ▸ Nome host )

• altrimenti il ​​risultato di una query DNS inversa per il tuo indirizzo IP primario (quindi potresti notare un nome host totalmente diverso che appare quando visiti un internet café rispetto a quando sei connesso a casa)

• altrimenti il ​​tuo nome host "Bonjour" in Preferenze di Sistema> Condivisione (di preferences.plistnuovo ... Sistema ▸ Rete ▸ Nomi host ▸ NomeHost locale )

• infine, se nessuna delle precedenti è stata impostata, il nome host BSD sarà semplicemente localhost

A proposito, ho risposto alla stessa domanda qualche tempo fa qui: Terminale Mac OS X - da dove viene il nome del prompt


1
è possibile che la ricerca DNS inversa abbia la precedenza su tutte le altre configurazioni sul mio sistema?
Caesarsol,

Ho controllato sul mio sistema: / etc / hostconfig non esiste. preferenze.plist ▸ Sistema ▸ Sistema ▸ Nomehost non definito (sebbene ComputerName sia). La ricerca DNS inversa restituisce il gibbering che vedo nella finestra del mio terminale. Sistema ▸ Rete ▸ Nome host ▸ LocalHostName è definito. Quindi, se il tuo sistema mostra lo stesso mio, allora la ricerca DNS inversa è stata la prima corrispondenza e ha la precedenza su LocalHostName .
Edward Falk,

12

OS X prova diverse cose per trovare il suo "nome host". Sfortunatamente non conosco l'elenco esatto (e l'ordine), ma penso che ciò che sta accadendo qui sia che sta scoprendo un nome DNS associato al suo indirizzo IP, e usando quello al posto del nome Bonjour fa pubblicità per sé (quello definito in Preferenze di condivisione).

Allora perché trova un nome DNS? La mia ipotesi è che il tuo router locale / server DHCP / server DNS lo stia assegnando in modo dinamico, in base al suo indirizzo hardware Ethernet (presumibilmente b8: 8d: 12: 0c: d4: b2). Potresti essere in grado di regolare le impostazioni del router per impedirlo, oppure potresti probabilmente impostare l'ID client DHCP del computer (nelle Preferenze di rete, Impostazioni avanzate) per controllare il nome che ti assegna.


2
Questo mi è stato di grande aiuto. La mia macchina stava mostrando questo comportamento, essendo il punto chiave, sembrava che avesse cambiato SPONTANEAMENTE i nomi, come non ne avevo mai visto uno diverso prima. Quindi ho appena perso 90 minuti a cercare virus, problemi con il disco e simili. Sono contento di sapere che posso tranquillamente smettere di perdere tempo.
conspiritech,

1

Non sono sicuro se hai ancora problemi o no, questo sembra essere stato risolto qualche volta tra Yosemite e Sierra.

Per i nuovi computer, comincio con le Preferenze del sistema di condivisione, inserendo il [nuovo nome] come Nome computer desiderato. Inserisco anche il [nuovo nome] in tutti i campi ID client DHCP attivi per ciascuna interfaccia di rete. Dopo averlo fatto, apro Terminale per confermare che riporta un nome simile, alcuni caratteri non sono consentiti, quindi il sistema modificherà il nome se necessario. È possibile modificare il nome utilizzando i passaggi seguenti, è sufficiente sostituire il blocco [nuovo nome] con il nome del computer desiderato.

  1. Terminale aperto
  2. Al prompt inserire il seguente sudo scutil --set HostName [nuovo nome]
  3. Aprire una nuova finestra Terminale per confermare che il nuovo nome è stato accettato.

Se il nome non è di mio gradimento, procedo con quanto sopra prima di associarlo ad Active Domain.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.