Make `hostname -f` return fully qualified hostname
How can i make hostname
(i.e. the unix commandline tool hostname
, invoked in terminal) return a hostname including the domain information?
At the moment, hostname
, hostname -f
and hostname -s
return the same name, all without the domain information, but host <hostname>
returns the full hostname:
$ hostname
> jvf-imac
$ hostname -f
> jvf-imac
$ hostname -s
> jvf-imac
$ host jvf-imac
> jvf-imac.fritz.box has address 192.168.178.31
The question is not about how I can get the full hostname in general. Some scripts I use rely on hostname -f
to get the fully qualified hostname, so I need to make hostname -f
return the correct hostname. Anyone any idea?
Updates
System Overview
- System Version: OS X 10.10.5 (14F27)
- Kernel Version: Darwin 14.5.0
- Computer Name: jvf_imac
Content of resolv.conf (shortened)
domain fritz.box
nameserver 192.168.178.1
DNS Setup (shortened)
$ scutil --dns
resolver #1
search domain[0] : fritz.box
nameserver[0] : 192.168.178.1
if_index : 4 (en0)
flags : Request A records
reach : Reachable,Directly Reachable Address
resolver #2
domain : local
options : mdns
timeout : 5
flags : Request A records
order : 300000
resolver #3
domain : 254.169.in-addr.arpa ...
...
resolver #7
domain : b.e.f.ip6.arpa ...
DNS configuration (for scoped queries)
resolver #1
search domain[0] : fritz.box
nameserver[0] : 192.168.178.1
if_index : 4 (en0)
flags : Scoped, Request A records
reach : Reachable,Directly Reachable Address
OS X is different in this case in that it might change your settings when it gets a response from your router / DNS+DHCP.
If you aren't getting a FQDN out of hostname, you couod set a FQDN first.
The Mac tool is scutil
scutil --get HostName # same as hostname
scutil --get LocalHostName # same as hostname -s
scutil --get ComputerName
If you want jvf-imac.fritz.box then simply:
sudo scutil --set HostName jvf-imac.fritz.box
You could set the host name with sudo hostname ...
as well and it wouldn't be wrong. If I were to guess, you probably have fritz.box in /etc/resolv.conf
which is why the DNS lookup appends the domain name since you didn't specify one more fully.