What is the Solaris equivalent of the Linux hostname -f command? On Solaris, when I type hostname, I receive the short name but I need to get the FQDN.

Typing hostname -f sets the short name to be "-f", and the manpage for hostname is pitiful.

  • /etc/nodename just lists shortname for the server. The /etc/hostname.* files are all giving me an error when I try to cat them :( – Matthew Nov 18 '11 at 18:48
  • What errors do you get with /etc/hostname.if? If those are corrupted then you have bigger problems. – James O'Gorman Dec 6 '11 at 20:27
  • This question has also been asked before. Here's the previous answer: serverfault.com/questions/229706/… – scottm32768 Mar 20 '13 at 2:02

This is likely to work:

perl -mNet::Domain -e 'print Net::Domain::hostfqdn(), "\n"'

but it's not guaranteed. You can view the module source:

perldoc -m Net::Domain

to see how it works (if you know Perl well enough).


If you are on a system that the DNS knows about, you could try this:

bash-3.00# nslookup `hostname` | grep 'Name:' | awk '{print $2}'

or, as suggested by a commenter, use "host" instead of nslookup:

host $(hostname) | cut -d" " -f1

I tested this successfully on Linux, Solaris, AIX, and HP-UX.

  • nslookup has been deprecated for a long time. host or dig are preferred and would involve fewer pipes: host $(hostname) | cut -d" " -f1 – James O'Gorman Dec 6 '11 at 20:26
  • @JamesO'Gorman nslookup is part of the POSIX standard, only a hairbrain OS wouldn't include it these days. – Chris S Mar 20 '13 at 4:04
  • @ChrisS True, and nslookup generally still comes with host and dig in the BIND utilities package (OS/distro dependent) but the output from dig is BIND zonefile-compatible and host is slightly easier to parse, therefore I'd say it's better to use host or dig if you can. – James O'Gorman Mar 21 '13 at 9:03
check-hostname | awk '{ print $NF }'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.