Qual é a diferença entre 'hostname' e 'uname -n'?

6

No meu servidor, ambos retornam o nome do host:

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

Este é sempre o caso?

    
por Steve Bennett 13.05.2013 / 04:10

1 resposta

8

No Linux, eles são equivalentes. Um é apenas cozido no utilitário uname e o outro no utilitário hostname .

uname -n

Imprime o nome do host do nó da rede ou "nome do nó".

hostname

Sem nenhum argumento, imprime o nome do sistema conforme retornado pela função gethostname ().

A % documentação da funçãouname() inclui as seguintes informações:

Note that there is no standard that says that the hostname set by sethostname(2) is the same string as the nodename field of the struct returned by uname() (indeed, some systems allow a 256-byte hostname and an 8-byte nodename), but this is true on Linux. The same holds for setdomainname(2) and the domainname field.

(Observe que o sethostname() do Linux limita nomes de host a 64 bytes)

Outra evidência de que no GNU / Linux, eles são exatamente os mesmos, vem da % documentação da funçãogethostname() :

The GNU C library does not employ the gethostname() system call; instead, it implements gethostname() as a library function that calls uname(2) and copies up to len bytes from the returned nodename field into name.

Basicamente, hostname inclui uma chamada interna para uname .

    
por thomasrutter 13.05.2013 / 04:17

Tags