Имя компьютера OS X не соответствует тому, что отображается на терминале

Имя моего компьютера в системных настройках> для общего доступа установлено значение «archos», но отображается как «iphone» на терминале. Он только начал делать это после того, как я загрузил Xcode для разработки iPhone.

Last login: Mon Nov  7 14:46:55 on ttys001
iphone:~ travis$ 

Любые идеи, что может быть причиной этого?

96 голосов | спросил Travis Nelson 8 22011vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2011 09:58:20 +0400 2011, 09:58:20

10 ответов


77

Это нормально для этого; при входе в терминал Terminal удаленно выполняется обратный поиск DNS. Это будет только то же самое, если имя хоста не указано в сети, с которой вы подключаетесь, и ответа с сервера DHCP нет, или обратный поиск по удаленному DNS-серверу не удается решить.

Вы можете легко переопределить настройку по умолчанию, используя эту команду в терминале:

# sudo scutil --set HostName archos

Вы можете проверить это, используя:

# nslookup nn.nn.nn.nn
( or )
# host nn.nn.nn.nn

(где nn означает IP-адрес вашего Mac)

ответил l'L'l 8 22011vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2011 14:49:51 +0400 2011, 14:49:51
36

Вы также можете изменить некоторые другие вещи, используя команду scutil:

sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"
ответил Jeffrey J. Hoover 6 J0000006Europe/Moscow 2012, 21:23:49
13

Существует две потенциальные причины для оболочки ($HOSTNAME), '\h' в $PS1) и hostname, чтобы сообщить имя хоста, которое отличается от имени, указанного в System Preferences > Sharing:

  • sudo scutil --set HostName newName использовался для постоянного изменения имени хоста - к сожалению, это значение independent LocalHostName значение, установленное системными настройками за кадром - , хотя man hostname предлагает этот метод, НЕ ИСПОЛЬЗУЙТЕ ЭТО по этой причине; запустить sudo scutil --set HostName '', чтобы удалить его , после чего следует снова сообщить LocalHostName; для фона см. этот пост @Lauri Ranta.

  • [ Обновление: ниже для OSX 10.10 ]: Если ваш файл /etc/hosts содержит запись, которая соответствует IP-адресу вашего компьютера , , что будет указано имя записи .

Только если ни одно из приведенных выше значений не будет истинно, оболочка и hostname отражают значение, установленное с помощью системных настроек.


Если вы хотите изменить имя хоста из оболочки , запустите оба из следующих:

  • sudo scutil --set LocalHostName <newName>
  • sudo scutil --set ComputerName <newFriendlyName>

где <newFriendlyName> может быть более дружественной версией (пробелы, пунктуация) <newName> (только буквенно-цифровые символы и тире).

ответил mklement0 5 Mayam14 2014, 08:47:02
5

В дополнение к подсказке Джеффри Дж. Гувера (выше) ,

Я бы добавил эти последние два шага:

  • Пропустите кеш DNS, набрав: dscacheutil -flushcache
  • Перезагрузите Mac.
ответил Danger14 9 Mayam13 2013, 08:32:10
4

Я согласен, что совет Джеффри Гувера был правильным ответом. Промывка кеша DNS и перезапуск Mac - хороший шаг. Это вариант ответа Джеффа Гувера:

sudo -i
Password:

for n in HostName ComputerName LocalHostName; do
    scutil --set $n new_hostname
done

exit
ответил user67806 18 Jam1000000amSat, 18 Jan 2014 02:49:37 +040014 2014, 02:49:37
3

Как уже упоминалось в отдельном ответе, другой вариант заключается в том, чтобы переопределить запрос PS1 по умолчанию, например, выполнить следующую строку (или добавить ее в файл ~ /.bash_profile):

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

рефов:

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/

ответил rogerdpack 19 FriEurope/Moscow2014-12-19T22:53:04+03:00Europe/Moscow12bEurope/MoscowFri, 19 Dec 2014 22:53:04 +0300 2014, 22:53:04
3

Системные настройки -> Совместное использование -> Имя компьютера -> установите его на

Затем перезагрузите компьютер. Никаких команд консоли не было. Работает для OS X 10.10.2

ответил Terry Bu 17 FebruaryEurope/MoscowbTue, 17 Feb 2015 22:29:56 +0300000000pmTue, 17 Feb 2015 22:29:56 +030015 2015, 22:29:56
3

Используйте этот

sudo systemsetup -setcomputername $name
ответил Quanlong 3 ThuEurope/Moscow2015-12-03T07:47:07+03:00Europe/Moscow12bEurope/MoscowThu, 03 Dec 2015 07:47:07 +0300 2015, 07:47:07
2

У меня была проблема, что только сама оболочка (zsh в моем случае) не смогла показать правильное имя компьютера. Просто перезапустив оболочку, он решил:

exec /bin/zsh
ответил Magnus Gustavsson 17 MarpmTue, 17 Mar 2015 14:21:05 +03002015-03-17T14:21:05+03:0002 2015, 14:21:05
2

В дополнение к предыдущему ответу, помните, что вы можете использовать статический адрес в своем маршрутизаторе. Вы должны ввести статический IP-адрес и MAC-адрес сетевой карты, а затем указать для нее имя. Имя хоста будет автоматически обновляться до указанного имени. Вот и все.

ответил noun 12 SatEurope/Moscow2015-12-12T04:15:30+03:00Europe/Moscow12bEurope/MoscowSat, 12 Dec 2015 04:15:30 +0300 2015, 04:15:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132