Was ist der Unterschied zwischen "Hostname" und "Uname -n"?


8

Auf meinem Server geben beide den Hostnamen zurück:

$ ubuntu@mt-solo:~$ uname -n
myserver
$ ubuntu@mt-solo:~$ hostname
myserver

Ist das immer so?

Antworten:


9

Unter Linux sind sie gleichwertig. Einer wird nur in das unameDienstprogramm und der andere in das hostnameDienstprogramm eingebrannt .

uname -n

Druckt den Netzwerkknoten-Hostnamen oder "Knotennamen".

hostname

Gibt ohne Argumente den Namen des Systems aus, der von der Funktion gethostname () zurückgegeben wird.

Die uname()Funktionsdokumentation enthält folgende Informationen:

Beachten Sie, dass es keinen Standard gibt, der besagt, dass der durch sethostname (2) festgelegte Hostname dieselbe Zeichenfolge ist wie das von uname () zurückgegebene Knotennamenfeld der Struktur (tatsächlich erlauben einige Systeme einen 256-Byte-Hostnamen und einen 8-Byte-Knotennamen ), aber das gilt unter Linux. Gleiches gilt für setdomainname (2) und das Feld domainname.

(Beachten Sie, dass Linux sethostname()Hostnamen auf 64 Bytes begrenzt.)

Ein weiterer Beweis dafür, dass sie unter GNU / Linux genau gleich sind, stammt aus der gethostname()Funktionsdokumentation :

Die GNU C-Bibliothek verwendet nicht den Systemaufruf gethostname (). Stattdessen wird gethostname () als Bibliotheksfunktion implementiert, die uname (2) aufruft und bis zu len Bytes aus dem zurückgegebenen Knotennamenfeld in name kopiert .

Grundsätzlich hostnamebeinhaltet ein interner Aufruf an uname.


1
Beeindruckend. Konnte nicht um eine umfassendere Antwort bitten.
Steve Bennett
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.