Wie erhalte ich den Computernamen (nicht den Hostnamen)?

18

Alle Ergebnisse meiner Suche haben etwas mit hostnameoder zu tun uname -n. Ich habe das Handbuch für beide nachgeschlagen und nach hinterhältigen Optionen gesucht, aber kein Glück.

Ich versuche, ein Äquivalent zu OSX scutil --get ComputerNameauf Linux-Systemen zu finden. Unter Mac OS X wird der Computername als lesbare Kennung für den Computer verwendet. Es wird in verschiedenen Verwaltungsbildschirmen angezeigt ( z. B. in der Bestandsverwaltung, Bonjour-basiertem Remotezugriff usw.) und dient als Standardhostname (nach Filterung zur Behandlung von Leerzeichen usw.).

Sheljohn
quelle
Ich könnte mich irren, aber die Definition des Computernamens als Netzwerkname bedeutet, dass er keinen festen Namen hat, oder? Wenn Sie Linux oder OSX auf einem Computer installieren, wählen Sie normalerweise einen Namen für diesen Computer (der von mir angenommene Standard-Netzwerkname). Zum Beispiel könnte mein Laptop "FooBar" heißen, aber wenn ich mich bei der Arbeit mit einem Netzwerk verbinde, erhalte ich einen Hostnamen wie "machine42.work.localnetwork".
Sheljohn
@StephenKitt Genau, hat dies in Linux-Systemen einen anderen Namen?
Sheljohn
4
@ Sh3ljohn Welchem ​​Zweck dient der Computername osx? Ich glaube nicht, dass es im Linux-System ein Äquivalent gibt.
Bibek_G
Haben Sie bei der Installation dieses Computers einen anderen Namen als den Hostnamen angegeben? Versuchen Sie, in / etc nach diesem Namen zu suchen:grep -ri 'name' /etc
ptman
@Bibek_G Hiermit möchte ich die Maschine identifizieren, auf der ich mit einer Software von mir arbeite. Die UUID ist nicht ausreichend, da möglicherweise mehrere Betriebssysteme auf derselben Festplatte installiert sind, die wiederum auf demselben Computer ausgeführt werden.
Sheljohn

Antworten:

31

Das nächste Äquivalent zu einem von Menschen lesbaren (und von Menschen gewählten) Namen für einen Computer unter Linux ist der Standard-Hostname, der in gespeichert ist /etc/hostname. Bei einigen (nicht allen) Linux-Distributionen wird dieser Name während der Installation als Computername eingegeben (jedoch mit Einschränkungen hinsichtlich des Netzwerkhostnamens im Gegensatz zum Computernamen von Mac OS X).

Stephen Kitt
quelle
Diese Datei wird jedoch häufig zum Setzen von hostnameund verwendet uname -n, und @ Sh3ljohn wollte ausdrücklich die Ausgabe dieser beiden Befehle vermeiden.
Roaima
17

Genau genommen gibt es unter Linux keinen netzwerkunabhängigen "Computernamen", und ich kann den Zweck der Benennung von Computern, die sich nicht im Netzwerk befinden, eigentlich nicht erkennen.

Der Grund , warum Ihr Computer verschiedene Strings in hat /etc/hostname, /etc/hostsund uname -nist , dass DHCP - Protokoll Einrichtungen hat einen Hostnamen zusammen mit IP - Adresse an einen neuen Wirt zu liefern. "machine42.work.localnetwork" sieht genauso aus wie ein Name, den der DHCP-Server auswählen würde. Diese Zeichenfolge wird dann gespeichert und von gethostnameAufrufen zurückgegeben.

Siehe auch:

Wie ändere ich den Computernamen? (tl; dr echo computername > /etc/hostname) - das passiert, wenn Sie während der Installation einen Namen auswählen.

Wie ändere ich den Hostnamen ohne Neustart? (tl; dr hostname computername) - das passiert, wenn Sie eine DHCP-Lease mit einem Hostnamen erhalten.

Dmitry Grigoryev
quelle
"Genau genommen gibt es unter Linux keinen netzwerkunabhängigen" Computernamen " - Kommt es nicht auf den Dienst an? Ich denke zum Beispiel, dass das Windows-Äquivalent der NetBIOS-Name ist. Es ist der Anzeigename ohne die Domänenteile und kann sich vom Host-Teil eines Domainnamens unterscheiden (voll qualifiziert oder nicht).
NetBIOS-Name ist immer noch ein Netzwerkname, auch wenn er sich von einem Domänennamen unterscheidet.
Dmitry Grigoryev
16

Sie könnten den sudo dmidecode | grep -A3 '^System Information'Befehl verwenden. Dieser Befehl liest Informationen aus dem BIOS und der Hardware. Beispiel von meiner Maschine:

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

Quellen: [1]

jschlichtholz
quelle
Ich glaube nicht, dass ich das suche. Dies erfordert Administratorrechte und gibt Ihnen Informationen über die Hardware und nicht über einen vom Benutzer gewählten Namen zum Zeitpunkt der Installation des Betriebssystems auf diesem Computer.
Sheljohn
13
Vom Benutzer gewählter Name? das klingt für mich nach hostname.
Bibek_G
2
Entschuldigung, das habe ich falsch verstanden. Ich werde die Antwort trotzdem hinterlassen. Der einzige vom Benutzer gewählte Name, der die mir bekannten Linux-Distributionen verwendet, ist der Hostname.
Jschlichtholz
@Bibek_G Aus diesem Grund kann ich keine Antwort auf meine Frage finden. Unter OSX sind dies zwei verschiedene Dinge. Ich suche nach dem Namen, den ich bei der Installation von Linux auf diesem Computer eingegeben habe. Ich gehe davon aus, dass dies der Standard-Netzwerkname ist.
Sheljohn
@jschlichtholz Natürlich könnte diese Antwort für jemand anderen nützlich sein, aber wie ich zu Bibek_G sagte, suche ich nach dem Standard-Netzwerknamen.
Sheljohn