Comment obtenir le nom de l'ordinateur (pas son nom d'hôte)?

19

Tous les résultats de mes recherches finissent par avoir quelque chose à voir avec hostnameou uname -n. J'ai recherché le manuel pour les deux, à la recherche d'options sournoises, mais pas de chance.

J'essaie de trouver un équivalent d'OSX scutil --get ComputerNamesur les systèmes Linux. Sous Mac OS X, le nom de l'ordinateur est utilisé comme identifiant lisible par l'homme pour l'ordinateur; il est affiché dans divers écrans de gestion ( par exemple sur la gestion des stocks, l'accès à distance basé sur Bonjour, ...) et sert de nom d'hôte par défaut (après filtrage pour gérer les espaces, etc.).

Sheljohn
la source
Je peux me tromper, mais définir le nom de l'ordinateur comme son nom de réseau signifie qu'il n'a pas de nom fixe, non? Lorsque vous installez un Linux ou OSX sur une machine, vous choisissez généralement un nom pour cet ordinateur (qui est le nom de réseau par défaut, je suppose). Par exemple, mon ordinateur portable peut être nommé "FooBar" mais lorsque je me connecte à un réseau au travail, j'obtiens un nom d'hôte tel que "machine42.work.localnetwork".
Sheljohn
@StephenKitt Exactement, cela a-t-il un autre nom dans les systèmes Linux?
Sheljohn
4
@ Sh3ljohn à quoi sert le nom d'ordinateur est osx servir? Je ne pense pas qu'il y ait d'équivalent dans le système Linux.
Bibek_G
Avez-vous donné un nom autre que le nom d'hôte lors de l'installation de cet ordinateur? Essayez de rechercher ce nom dans / etc:grep -ri 'name' /etc
ptman
@Bibek_G Je voudrais utiliser ceci pour identifier la machine sur laquelle je fonctionne à partir d'un de mes logiciels. L'UUID est insuffisant car plusieurs systèmes d'exploitation peuvent être installés sur le même disque et s'exécuter à leur tour sur la même machine.
Sheljohn

Réponses:

31

L'équivalent le plus proche d'un nom lisible par l'homme (et choisi par l'homme) pour un ordinateur exécutant Linux est le nom d'hôte par défaut stocké dans /etc/hostname. Sur certaines distributions Linux (pas toutes), ce nom est entré lors de l'installation comme nom de l'ordinateur (mais avec des contraintes de nom d'hôte réseau, contrairement au nom d'ordinateur de Mac OS X).

Stephen Kitt
la source
Mais ce fichier est souvent utilisé pour définir hostnameet uname -n, et @ Sh3ljohn voulait explicitement éviter la sortie de ces deux commandes.
roaima
17

À strictement parler, il n'y a pas de "nom d'ordinateur" non lié au réseau sous Linux, et je ne vois pas vraiment le but de nommer les ordinateurs qui ne sont pas sur le réseau.

La raison pour laquelle votre ordinateur a des chaînes différentes /etc/hostname, /etc/hostset uname -nc'est que le protocole DHCP a des fonctionnalités pour fournir un nom d'hôte ainsi qu'une adresse IP à un nouvel hôte. "machine42.work.localnetwork" ressemble exactement à un nom que le serveur DHCP choisirait. Cette chaîne est ensuite enregistrée et renvoyée par les gethostnameappels.

Voir également:

Comment changer le nom de l'ordinateur? (tl; dr echo computername > /etc/hostname) - c'est ce qui se produit lorsque vous choisissez un nom lors de l'installation.

Comment changer le nom d'hôte sans redémarrage? (tl; dr hostname computername) - c'est ce qui se produit lorsque vous obtenez un bail DHCP avec un nom d'hôte.

Dmitry Grigoryev
la source
"À strictement parler, il n'y a pas de" nom d'ordinateur "non lié au réseau sous Linux" - Cela ne dépend-il pas du service? Par exemple, je pense que l'équivalent de Windows est le nom NetBIOS. C'est le nom convivial sans les parties de domaine, et il peut être différent de la partie hôte d'un nom de domaine (pleinement qualifié ou non).
Le nom NetBIOS est toujours un nom de réseau, même s'il est différent d'un nom de domaine.
Dmitry Grigoryev
16

Vous pouvez utiliser la sudo dmidecode | grep -A3 '^System Information'commande. Cette commande lit les informations du BIOS et du matériel. Exemple de ma machine:

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

Sources: [1]

jschlichtholz
la source
Je ne pense pas que c'est ce que je recherche; cela nécessite des droits d'administrateur et vous donne des informations sur le matériel, pas sur un nom choisi par l'utilisateur au moment où vous avez installé le système d'exploitation sur cette machine.
Sheljohn
13
nom choisi par l'utilisateur? cela ressemble à un nom d'hôte pour moi.
Bibek_G
2
Désolé, je me suis trompé. Je laisserai quand même la réponse. Le seul nom choisi par l'utilisateur à l'aide des distributions Linux que je connais est le nom d'hôte.
jschlichtholz
@Bibek_G C'est pourquoi je ne trouve pas la réponse à ma question, sous OSX ce sont deux choses différentes. Je cherche le nom que j'ai entré lorsque j'ai installé Linux sur cette machine, qui je suppose serait le nom de réseau par défaut.
Sheljohn
@jschlichtholz Bien sûr, cette réponse pourrait être utile à quelqu'un d'autre, mais comme je l'ai dit à Bibek_G, je cherche alors quel pourrait être le nom de réseau par défaut.
Sheljohn