5

On my Fedora 19 system, I am able to change the system hostname with hostnamectl. This allows me to set several things, such as the static (normal) hostname, as well as a "pretty" hostname.

Is there a simple command that retrieves the pretty hostname, from a bash prompt?

hostname returns the static hostname, and the man page shows no options to recover the pretty one.

3 Answers 3

6

As per man hostnamectl:

The static host name is stored in /etc/hostname, see hostname(5) for more information. The pretty host name, chassis type and icon name are stored in /etc/machine-info, see machine-id(5).

Therefore, if you have set a pretty hostname using the command

hostnamectl set-hostname --pretty YourHostname

you can retrieve it using a tool like awk:

awk -F= '/PRETTY/ {print $2}' /etc/machine-info
7
  • @Evgeny Vereschagin Piping awk to sed is an ugly as it is redundant: awk -F= '/PRETTY/ {gsub(/"/,"");print $2}' /etc/os-release is simpler...
    – jasonwryan
    Aug 28, 2015 at 9:43
  • I agree. But that doesn't work with my example. Try hostnamectl set-hostname --pretty '"MyPretty\\Name"', awk -F= '/PRETTY/ {gsub(/"/,"");print $2}' /etc/machine-info. The result is wrong. Aug 28, 2015 at 10:14
  • @EvgenyVereshchagin Who would ever set '"MyPretty\\Name"' as a pretty name?
    – jasonwryan
    Aug 28, 2015 at 10:16
  • well. this is an extreme case. try sudo hostnamectl --pretty set-hostname "Lennart's Laptop" (example from the manpage) on Fedora 19. awk -F= '/PRETTY/ {gsub(/"/,"");print $2}' prints wrong result Lennart\'s Laptop. Aug 28, 2015 at 10:26
  • 1
    @EvgenyVereshchagin Yes: my point is that piping awk to sed is always wrong. If you want to post a sed answer, then you are welcome to do that...
    – jasonwryan
    Aug 28, 2015 at 19:14
5

hostnamectl --pretty will directly print the pretty hostname out. Tested on systemd version 239.

2
  • It does not work for me on v241 on Debian 10. I think you have to set it with that command first then it will show up.
    – fred
    Feb 11, 2021 at 23:17
  • Yes, pretty hostname is.really a usersapce thing, systemd use its own definition May 15, 2021 at 4:47
0

For my system, hostnamectl --static was the ticket. It is worth first running hostnamectl to see how your system is set up. From there, you can determine what steps make the most sense to make it pretty.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .