我想创建一个可以永久更改我的Ubuntu主机名的shell脚本。每当我使用hostname New_hostname
命令时,它会在重新启动计算机后返回到原始主机名。
我发现我可以永久更改此内容的唯一方法是修改/etc/hostname
中的文件并保存。有没有办法只使用shell脚本才能做到这一点?我也有密码。
答案 0 :(得分:13)
hostnamectl
结合了通过hostname
命令设置主机名和编辑/etc/hostname
。不幸的是,编辑/etc/hosts
仍然需要单独完成。
hostnamectl set-hostname <new-hostname>
答案 1 :(得分:12)
类型
echo "myNewHostName" > /etc/hostname
在您附近有root权限的任何shell中..
您可能还想查看文件/etc/hosts
,参见http://pricklytech.wordpress.com/2013/04/24/ubuntu-change-hostname-permanently-using-the-command-line/
答案 2 :(得分:5)
如何在不重新启动系统的情况下更改Ubuntu服务器的主机名?
键入以下命令:
下一步编辑/ etc / hostname文件并更新主机名:
$ sudo nano /etc/hostname
最后,编辑/ etc / hosts文件并更新读取您的旧主机名的行:
$ sudo nano /etc/hosts
发件人:
127.0.1.1 newhost.example.com
收件人:
127.0.1.1 myhost.example.com
保存并关闭文件。
Ubuntu Linux使用hostnamectl更改主机名
$ hostnamectl
样本输出:
Static hostname: ip-10-x-xx-xxx.us-west-2.compute.internal
Transient hostname: newhost.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: ec23eca3540747b9c3648dc0fNXXXXXX
Boot ID: 603fff5ef0b040bbaXXXXXXXXe87bf5e
Virtualization: kvm
Operating System: Amazon Linux 2
CPE OS Name: cpe:2.3:o:amazon:amazon_linux:2
Kernel: Linux 4.14.133-113.112.amzn2.x86_64
Architecture: x86-64
设置或更改您的计算机名称
$ hostnamectl set-hostname 'myhost.example.com'
样本输出:
Static hostname: ip-10-x-xx-xxx.us-west-2.compute.internal
Transient hostname: myhost.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: ec23eca3540747b9c3648dc0fNXXXXXX
Boot ID: 603fff5ef0b040bbaXXXXXXXXe87bf5e
Virtualization: kvm
Operating System: Amazon Linux 2
CPE OS Name: cpe:2.3:o:amazon:amazon_linux:2
Kernel: Linux 4.14.133-113.112.amzn2.x86_64
Architecture: x86-64
ec2-user@host.example.com:~$ hostname
host.example.com
ec2-user@host.example.com:~$ sudo hostname myhost.example.com
ec2-user@host.example.com:~$ hostname
myhost.example.com
答案 3 :(得分:3)
在Ubuntu 18.04中重新引导后,将还原通过SSH更改的主机名。按以下方式进行永久更改。
sudo nano /etc/cloud/cloud.cfg
将 preserve_hostname 设置为 true
preserve_hostname:true
sudo nano /etc/hostname
设置新主机名
新主机名
hostnamectl set-hostname new-host-name
sudo reboot
答案 4 :(得分:1)
/ etc / hosts
127.0.0.1 persistent_host_name
/ etc / hostname
persistent_host_name
立即应用更改
$ sudo hostname persistent_host_name
检查更改
$ hostname
persistent_host_name
答案 5 :(得分:1)
如果您只想更改主机名,因为它会在终端中显示为命令提示符。然后,您可以将\h
中的PS1
替换为~/.bashrc
中的“ desired_host_name”
与~/.bashrc
类似,将此行放在文件末尾:
export PS2="continue-> ";
export PS1="\u@3050:~$ ";
答案 6 :(得分:0)
通常,您需要在这些文件中进行更改:
/etc/hostname
/etc/hosts
如果您使用的是某些高级打印机,请点击此处:
/etc/printcap
这就是为什么我建议手动执行此操作 - 但首先搜索旧的主机名。要查找/ etc中的所有匹配项:
sudo grep -iRI "_OLDHOSTNAME_" /etc 2>/dev/null
然后在每次出现时更改_OLDHOSTNAME_。 完成。
答案 7 :(得分:0)
在ubuntu机器中使用主机名permanet
转到:
#vim /etc/hostname
在要为机器设置的文件中键入主机名
然后保存和文件
保存文档后运行此命令
# hostname -F /etc/hostname
然后编辑 / etc / hosts 文件
#vim /etc/hosts
在文件中输入 ip 主机名
然后退出机器并重新登录机器
答案 8 :(得分:0)
主机名是用于标识网络上计算机的标签。您不应在同一网络中的两台不同计算机上使用相同的主机名。
使用hostnamectl命令更改主机名。如果要将主机名更改为new_hostname
sudo hostnamectl set-hostname new_hostname
它不会直接更改主机名。您要永久保存更改,则必须编辑cloud.cfg
文件
sudo nano /etc/cloud/cloud.cfg
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
保存文件并关闭编辑器。
您可以使用命令hostnamectl
验证更改,该命令将在静态主机名
PS:来源Link