Термінал OSX, що показує неправильне ім'я хоста


30

Коли я відкриваю термінал, я очікую, що він покаже, на що налаштований мій PS1 \h:\W \u\$.

Однак воно не відображає моє ім'я хоста Eriks-MacBook, як це відображено в системних налаштуваннях.

Натомість він показує випадковий рядок unknownb88d120cd4b2.

Як це можна виправити чи скинути?

Ця машина абсолютно нова, і налаштування / налаштування не змінено.


Введіть у hostnameрядок і натисніть клавішу Enter. Що ви отримуєте?
Блендер

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

Але це не те, що ім'я мого комп'ютера знаходиться в System Prefs - Спільний доступ. Я змінив його з типового на "ерік-мба", сподіваючись, що це допоможе, але без кісток.

Відповіді:


25

Гордон дає хорошу відповідь про походження вашого імені хоста.

Якщо ви хочете, щоб ім'я, яке ви вказали в системних налаштуваннях, -> Спільний доступ -> Ім'я комп'ютера відображалося у вашому запиті, замініть \hна $(scutil --get ComputerName). Наприклад, мій підказки встановлено на

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

19

Термінал показує вам першу мітку вашого імені хоста BSD (припустимо, що ваша оболонка - BASH). Якщо ваше ім'я хоста BSD - це yourhostname.mynetwork.comтермінал, відображатиметься лише yourhostname-

То звідки походить ім'я хоста BSD? Він може надходити з кількох місць:

• з файлу: /etc/hostconfig

• інше з файлу: /Library/Preferences/SystemConfiguration/preferences.plist( Система ▸ Система ▸ HostName )

• в іншому випадку результат зворотного запиту DNS для вашої основної IP-адреси (тому ви можете помітити зовсім інше ім’я хоста, яке відображається під час відвідування Інтернет-кафе, ніж при підключенні вдома)

• ще ваше ім'я хосту "Bonjour" в Налаштуваннях системи> Спільний доступ ( preferences.plistзнову ж таки ... Система ▸ Мережа ▸ Імена хосту ▸ ЛокальнаHostName )

• нарешті, якщо нічого з вищевказаного не встановлено, ім'я хоста BSD буде просто localhost

До речі, я відповів на те саме питання ще деякий час тому тут: Mac OS X Terminal - звідки походить назва підказки


1
чи можливо, що зворотний пошук DNS має перевагу над усіма іншими конфігураціями в моїй системі?
цезарсол

Я перевірив власну систему: / etc / hostconfig не існує. preferences.plist ▸ System ▸ System ▸ HostName не визначено (хоча ComputerName є). Зворотний пошук DNS повертає тремтіння, яке я бачу у своєму вікні терміналу. Система ▸ Мережа ▸ Імена хоста ▸ Визначено LocalHostName . Отже, якщо ваша система показує те саме, що і моя, то зворотний пошук DNS був першим збігом і має перевагу перед LocalHostName .
Едвард Фолк

12

OS X намагається здійснити ряд речей, щоб знайти своє "ім'я хоста". На жаль, я не знаю точного списку (і порядку), але я думаю, що тут відбувається те, що це виявлення імені DNS, пов’язаного з його IP-адресою, і використання цього замість імені Bonjour - це реклама для себе (той, який визначений у Налаштування спільного доступу).

То чому він знаходить ім'я DNS? Я здогадуюсь, що ваш локальний маршрутизатор / DHCP-сервер / DNS-сервер динамічно присвоює йому один на основі його апаратної адреси Ethernet (імовірно, b8: 8d: 12: 0c: d4: b2). Можливо, ви зможете відрегулювати налаштування маршрутизатора, щоб зупинити це, або, можливо, ви можете встановити ідентифікатор клієнта DHCP (у налаштуваннях мережі, розширені налаштування), щоб керувати тим, яке ім’я вам призначає.


2
Це мені найбільше допомогло. Моя машина проявляла таку поведінку, ключовим моментом було те, що, здавалося, вона SPONTANEOUSLY змінила назви, як я ніколи раніше не бачив іншого. Тож я просто витрачав 90 хвилин на перевірку вірусів і дисків і таке інше. Радий знати, що сміливо можу перестати витрачати час.
conspiritech

1

Не впевнений, у вас все ще виникають проблеми чи ні, це, здається, було зафіксовано колись між Йосемітом та Сьєрра.

Для нових комп’ютерів я починаю з налаштувань системи спільного доступу, вводячи [нове ім’я] у відповідності з потрібним ім'ям комп'ютера. Я також ввожу [нове ім’я] у всіх активних полях ідентифікатора клієнта DHCP для кожного мережевого інтерфейсу. Після того, як я зробив, що я відкриваю Terminal, щоб підтвердити, що він повідомляє про подібне ім'я, деякі символи заборонені, тому система змінює ім'я, якщо це необхідно. Ви можете змінити ім'я за допомогою наведених нижче кроків, просто замініть блок [нове ім’я] на потрібне ім’я комп'ютера.

  1. Відкритий термінал
  2. У відповідь на запит введіть наступний sudo scutil --set HostName [нове ім'я]
  3. Відкрийте нове вікно терміналу, щоб підтвердити прийняття нової назви.

Якщо ім'я мені не подобається, я переходжу до вищезазначеного, перш ніж прив’язувати його до Active Domain.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.