En los sistemas operativos de la familia Unix (Linux, *BSD), el archivo /etc/hostname
se utiliza históricamente para establecer el nombre de host del sistema. Se supone que este archivo debe contener sólo el nombre de host (el cual se visualiza por ejemplo en el prompt de las shells, en logs, etc.) y no el nombre calificado completo (nombre de host + dominio). Aunque en la actualidad, la mayoría de los programas son capaces de obtener correctamente el nombre de host aunque se haya configurado el nombre completo. Este archivo se lee durante el inicio para setear el hostname del sistema.
Por otro lado, el archivo /etc/hosts
es donde usualmente se configura el nombre de dominio haciendo un alias al nombre de host.
El comando hostname
se utiliza para visualizar y setear el nombre de host del sistema y dominio.
Cuando se ejecuta sin parámetros, hostname
muestra el nombre de host actual del sistema:
root@hal9000:~# hostname hal9000
Esto equivale a mostrar el nombre corto (sin dominio) empleando la opción -s
:
root@hal9000:~# hostname -s hal9000
Si se incluye un parámetro, se setea como nuevo nombre de host:
root@hal9000:~# hostname temp666 root@hal9000:~# hostname temp666
Pero este cambio es efectivo sólo hasta el siguiente reinicio. Si se desea cambiar el nombre de host permanentemente será necesario editar el archivo /etc/hostname
:
root@hal9000:~# cat /etc/hostname hal9000
La opción -A
permite visualizar el nombre calificado completo (FQDN):
root@hal9000:~# hostname -A hal9000.linuxito.com
Notar que el nombre de dominio no estaba configurado en el archivo /etc/hostname
. Esto se debe a que la opción -A
hace que hostname
resuelva todos los FQDN para todas las direcciones de red configuradas en todas las interfaces. Las direcciones que no pueden ser traducidas a nombres mediante resolución inversa simplemente son ignoradas.
Otra opción interesante es -I
, la cual muestra todas las direcciones de red configuradas en el host:
root@hal9000:~# hostname -I 192.168.100.56 10.6.140.56
Para más información, consultar la página de manual:
man hostname