18.04 Introduced cloud-init which can control setting of the hostname so hostnamectl changes it won't stick after a reboot if cloud-init is installed. TODO: how to check if it is installed, is it installed by default on the desktop image or just server?
It is safe to do, you just need to be sure you edit both the system hostname configuration file (/etc/hostname) and the hostname name resolution file (/etc/hosts).
From a terminal execute the following:
sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now
In addition to editing /etc/hosts and /etc/hostname, various services might have issues with the change as well. Mysql and postfix are installed by default in ubuntu. A broken postfix won't affect most ubuntu users, since it's a background email server that isn't used by much.
Postfix:
sudo editor /etc/postfix/main.cf
sudo service postfix restart
The default config for mysql doesn't use hostname, so it will work fine as-is. If you have customized it, edit the files in /etc/mysql/ and restart the service.
You may also want to edit /etc/motd (message of the day), which is shown on virtual terminals and remote logins. That one won't harm anything though.
Other services that you may have installed that would need fixing are apache, bind9, etc. In each case, find and edit the hostname in their config and restart the service.
The host name uniquely identifies your computer on the local network (and possibly on the Internet as well) so it's not a good idea to change it unless you know what you are doing.
But you can change the shell prompt not to display the .belkin (domain name part):
If you don't want to play with a text editor, Ubuntu Tweak (grab the deb from their website) has that as one of the little things you can play with (along with lots of other little tweaks that you might want to make but don't really want to play around with the terminal and the files themselves).
You need to edit the computer name in two files:
and
These will both need administrative access, so run
Replace any instances of the existing computer name with your new one. When complete run
The name will also be changed if you restart your computer.
See also:
hostnamectl set-hostname
on 13.10+ desktopThis is the best way if you have systemd (13.10 onwards) and if cloud-init is not active (see below):
It:
More info at: https://askubuntu.com/a/516898/52975
18.04 onwards: cloud-init
18.04 Introduced cloud-init which can control setting of the hostname so
hostnamectl
changes it won't stick after a reboot if cloud-init is installed. TODO: how to check if it is installed, is it installed by default on the desktop image or just server?If you want
hostnamectl
changes to stay after a reboot, then you'll need to edit the cloud-init config files, disable cloud-init's hostname set/update module:or disable cloud-init entirely:
See also: How do I change the hostname without a restart?
It's quite easy:
Edit
/etc/hostname
, make the name change, save the file.You should also make the same changes in
/etc/hosts
fileRun
sudo service hostname start
As long as you have no application settings depending on the 'old' hostname, you should be ok ;-)
It is safe to do, you just need to be sure you edit both the system hostname configuration file (/etc/hostname) and the hostname name resolution file (/etc/hosts). From a terminal execute the following:
In addition to editing /etc/hosts and /etc/hostname, various services might have issues with the change as well. Mysql and postfix are installed by default in ubuntu. A broken postfix won't affect most ubuntu users, since it's a background email server that isn't used by much.
Postfix:
The default config for mysql doesn't use hostname, so it will work fine as-is. If you have customized it, edit the files in /etc/mysql/ and restart the service.
You may also want to edit /etc/motd (message of the day), which is shown on virtual terminals and remote logins. That one won't harm anything though.
Other services that you may have installed that would need fixing are apache, bind9, etc. In each case, find and edit the hostname in their config and restart the service.
The host name uniquely identifies your computer on the local network (and possibly on the Internet as well) so it's not a good idea to change it unless you know what you are doing.
But you can change the shell prompt not to display the
.belkin
(domain name part):See the bash man page and specifically the section on prompting for more information.
Another better and safe way to rename hostname
Install ailurus
Add the PPA and update your repository
sudo add-apt-repository ppa:ailurus && sudo apt-get update
Install ailurus
sudo apt-get install ailurus
After installation it will be found under Applications>>System Tools>>Ailurus
Use the
hostname
command to change your hostnameHowever, this does not edit your hosts file, which you must do so as to make sure that your computer recognizes itself
And add a new entry for your hostname pointing to 127.0.0.1
You could remove the old entry as well, but I prefer to keep it there.
If you don't want to play with a text editor, Ubuntu Tweak (grab the deb from their website) has that as one of the little things you can play with (along with lots of other little tweaks that you might want to make but don't really want to play around with the terminal and the files themselves).
The following command change the hostname on the fly but to make it permanent, you have to edit
/etc/hostname
:Open a new terminal session and you'll see it right away.
With
systemd
in place, the proper way to do it is