Як отримати ім'я комп’ютера (а не його ім'я хоста)?


19

Усі результати моїх пошукових запитів мають щось спільне з hostnameабо uname -n. Я шукав посібник для обох, шукав підступні варіанти, але не пощастило.

Я намагаюся знайти еквівалент OSX в scutil --get ComputerNameсистемах Linux. У Mac OS X ім'я комп'ютера використовується як читабельний людиною ідентифікатор для комп'ютера; він відображається на різних екранах управління ( наприклад, щодо управління запасами, віддаленого доступу на основі Bonjour, ...) і служить іменем хоста за замовчуванням (після фільтрації для обробки пробілів тощо).


Я можу помилятися, але визначити ім’я комп’ютера як його мережевого імені означає, що у нього немає фіксованого імені, правда? Встановлюючи на комп'ютері Linux або OSX, ви зазвичай вибираєте ім’я для цього комп’ютера (який я вважаю мережевим іменем за замовчуванням). Наприклад, мій ноутбук може бути названий "FooBar", але коли я підключаюся до мережі на роботі, я отримую ім'я хоста, наприклад "machine42.work.localnetwork".
Шельон

@StephenKitt Точно чи має це інше ім'я в системах Linux?
Шельохн

4
@ Sh3ljohn якій цілі служить ім'я комп’ютера osx? Я не думаю, що в системі Linux є еквівалент.
Bibek_G

Ви вказали якесь ім’я, крім імені хоста, коли встановили цей комп'ютер? Спробуйте пошукати це ім’я в / etc:grep -ri 'name' /etc
ptman

@Bibek_G Я хотів би скористатися цим, щоб визначити машину, на якій я працюю, від свого програмного забезпечення. UUID недостатній, оскільки на одному диску може бути встановлено кілька ОС, які в свою чергу працюють на одній машині.
Шельохн

Відповіді:


31

Найближчим еквівалентом читаного (і обраного людиною) імені для комп'ютера під управлінням Linux є ім'я хоста за замовчуванням, збережене в /etc/hostname. У деяких (не всіх) дистрибутивах Linux це ім'я вводиться під час встановлення як ім'я комп'ютера (але з обмеженнями мережевого імені хоста, на відміну від комп'ютерного імені Mac OS X).


Але цей файл часто використовується для встановлення hostnameта uname -n, і @ Sh3ljohn явно хотів уникнути виведення цих двох команд.
roaima

17

Власне кажучи, у Linux не існує такого поняття, як мережеве "ім'я комп'ютера", і я насправді не бачу мети називати комп'ютери, які не знаходяться в мережі.

Причина , чому ваш комп'ютер має різні рядки в /etc/hostname, /etc/hostsі в uname -nтому , що протокол DHCP має кошти , щоб забезпечити ім'я хоста разом з IP - адресою до нового хазяїна. "machine42.work.localnetwork" схоже на ім'я, яке обрав би сервер DHCP. Потім цей рядок зберігається та повертаєтьсяgethostname дзвінками.

Дивись також:

Як змінити ім'я комп’ютера? (tl; dr echo computername > /etc/hostname) - ось що відбувається, коли під час встановлення ви вибираєте ім'я.

Як змінити ім'я хоста без перезавантаження? (tl; dr hostname computername) - ось що відбувається, коли ви отримуєте DHCP-оренду з ім'ям хоста.


"Суворо кажучи, у Linux немає такого поняття, як мережеве" ім'я комп'ютера ". Це не залежить від служби? Наприклад, я думаю, що еквівалент Windows - це ім'я NetBIOS. Це дружнє ім’я без частин домену, і воно може відрізнятися від хост-частини доменного імені (повністю кваліфікованого чи ні).

Ім'я NetBIOS все ще є мережевим іменем, навіть якщо воно відрізняється від доменного імені.
Дмитро Григор’єв

16

Ви можете використовувати sudo dmidecode | grep -A3 '^System Information'команду. Ця команда зчитує інформацію з BIOS та обладнання. Приклад з моєї машини:

System Information
    Manufacturer: LENOVO
    Product Name: 20BHA06YGB
    Version: ThinkPad W540

Джерела: [1]


Я не думаю, що це те, що я шукаю; для цього потрібні права адміністратора і надається інформація про обладнання, а не про вибране користувачем ім'я під час встановлення ОС на цій машині.
Шельохн

13
вибране користувачем ім’я? це звучить як ім’я хоста.
Bibek_G

2
Вибачте, я помилився. Я все одно залишу відповідь. Єдине вибране користувачем ім'я, яке використовує дистрибутиви Linux, яких я знаю, - це ім'я хоста.
jschlichtholz

@Bibek_G Ось чому я не можу знайти відповіді на моє запитання, в OSX це дві різні речі. Я шукаю ім'я, яке я ввів, коли встановив Linux на цій машині, і я вважаю, що це мережеве ім'я за замовчуванням.
Шельон

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