Nazwa mojego komputera w Preferencjach systemowych> udostępnianie jest ustawiona na „archos”, ale na terminalu jest wyświetlana jako „iphone”. Właśnie zaczęło to robić po załadowaniu Xcode do programowania iPhone'a.
Last login: Mon Nov 7 14:46:55 on ttys001
iphone:~ travis$
Wszelkie pomysły, co może być tego przyczyną?
Odpowiedzi:
Jest to całkowicie normalne, że tak się dzieje; po zdalnym zalogowaniu się terminal bash wykonuje odwrotne wyszukiwanie DNS. Będzie tak samo, jeśli nazwa hosta nie zostanie podana w sieci, z której się łączysz, i nie będzie odpowiedzi od serwera DHCP lub wyszukiwanie wsteczne w stosunku do zdalnego serwera DNS nie powiedzie się.
Możesz łatwo ominąć ustawienie domyślne, używając tego polecenia w terminalu:
Możesz to sprawdzić za pomocą:
(gdzie nn oznacza adres IP komputera Mac)
źródło
sudo scutil --set HostName ''
.HostName
nie jest wskazane, ponieważ tworzy osobną wartość, która następnie się utrzymuje, nawet gdy później spróbujesz zmienić nazwę hosta za pomocąSystem Preferences > Sharing
. Natomiast ustawienieLocalHostName
aktualizuje tę samą wartość i zwykle jest również pobierane przez powłokę ihostname
(ComputerName
wartość powinna być aktualizowana w tandemie). A może ustawienieHostName
zachowuje się inaczej w korzystny sposób?hostname -f
Możesz także zmienić niektóre inne rzeczy za pomocą polecenia scutil:
źródło
scutil
ustawićHostName
zarównoComputerName
iLocalHostName
zostały już ustawione na nową nazwę dla mnie (w Mavericks). Miło wiedzieć, że te inne ustawienia istnieją.HostName
, ponieważ spowoduje to utrzymanie tej wartości, nawet gdy później spróbujesz zmienić nazwę hosta za pomocą Preferencji systemowych . I odwrotnie,LocalHostName
jest on odbierany przez powłokę ihostname
dlategoHostName
nigdy nie jest potrzebny.sudo scutil --set LocalHostName ''
usuniętego LocalHostName, a teraz mój monit używa ComputerName, która ma poprawną wartość.Istnieją dwa potencjalne powody, dla których powłoka (
$HOSTNAME
zmienna,'\h'
in$PS1
) ihostname
narzędzie zgłaszają nazwę hosta, która różni się od podanej wSystem Preferences > Sharing
:sudo scutil --set HostName newName
był używany do ciągłej zmiany nazwy hosta - niestety ta wartość jest niezależna odLocalHostName
wartości ustawionej w Preferencjach systemowych za kulisami - nawet jeśliman hostname
sugeruje tę metodę, NIE UŻYWAJ Z tego powodu; uruchom,sudo scutil --set HostName ''
aby go usunąć , w którym momencieLocalHostName
należy ponownie zgłosić; w tle, zobacz ten post przez @Lauri Ranta.[ Aktualizacja: Poniższe informacje nie są już zgodne z OSX 10.10 ] Jeśli
/etc/hosts
plik zawiera wpis pasujący do adresu IP urządzenia, zostanie podana nazwa tego wpisu.Tylko jeśli żadna z powyższych odpowiedzi nie jest prawdziwa, powłoka i
hostname
odzwierciedla wartość ustawioną w Preferencjach systemowych.Jeśli chcesz zmienić nazwę hosta z powłoki , uruchom obie następujące opcje:
sudo scutil --set LocalHostName <newName>
sudo scutil --set ComputerName <newFriendlyName>
gdzie
<newFriendlyName>
może być bardziej przyjazna wersja (spacje, interpunkcja)<newName>
(tylko alfanumeryczne i myślniki).źródło
sudo scutil --set HostName ''
pierwszy (sprawa ma znaczenie) i upewniłeś się, że nie ma wpisu/etc/hosts
?scutil --get HostName
powinien zgłosićHostname: not set
.scutil --get HostName HostName: not set
/ etc / hosts wydaje się łagodny ...PS1
zmienna nie ma sztywno zakodowanej nazwy hosta, a nie używa\h
, prawda? Na marginesie:/etc/hosts
nie jest już konsultowany od OSX 10.10 (zaktualizowałem swoją odpowiedź).sudo scutil --set HostName ''
ponownie pozwala OS X na mapowanie nazwy komputera na jego adres IP (np. Teraz to działaping <computername>
).Oprócz wskazówki Jeffrey J. Hoovera (powyżej) ,
Dodałbym te dwa ostatnie kroki:
dscacheutil -flushcache
źródło
Zgadzam się, że wskazówka Jeffreya Hoovera była prawidłową odpowiedzią. Opróżnianie pamięci podręcznej DNS i ponowne uruchamianie komputera Mac jest również dobrym krokiem. Oto wariant odpowiedzi Jeffa Hoovera:
źródło
-
: musi być--set
do pracy. Ponadto, jak skomentowałem odpowiedź Jeffa: prawdopodobnie lepiej nie ustawiaćHostName
.Preferencje systemowe -> Udostępnianie -> Nazwa komputera -> ustaw na cokolwiek
Następnie uruchom ponownie komputer. Nie były potrzebne żadne polecenia konsoli. Działa dla OS X 10.10.2
źródło
hostname
zwróciło „MacBook-Pro”. Nawet to zmieniłem i nadal miałem problem. Nigdy wcześniej nie widziałem tego problemu. Tescutil
komendy pracowali dla mnie. Zastanawiam się, gdzie / jak masz to zrobić za pomocą interfejsu GUI.Jak wspomniano w osobnej odpowiedzi, inną opcją jest zastąpienie domyślnego monitu PS1, na przykład wykonanie następującego wiersza (lub dodanie go do pliku ~ / .bash_profile):
referencje:
https://superuser.com/a/414903/39364
http://www.cnet.com/news/keep-your-command-prompt-host-name-static-in-os-x-and-other-unix-systems/
źródło
Użyj tego
źródło
Miałem problem polegający na tym, że tylko sama powłoka (
zsh
w moim przypadku) nie wyświetlała prawidłowej nazwy komputera. Ponowne uruchomienie powłoki rozwiązało to:źródło
Oprócz poprzedniej odpowiedzi pamiętaj, że możesz użyć adresu statycznego w routerze. Musisz wprowadzić statyczny adres IP i adres MAC karty sieciowej, a następnie ustawić dla niej nazwę. Nazwa hosta zostanie automatycznie zaktualizowana do podanej nazwy. Otóż to.
źródło