以下是一个简单的 Bash 脚本,用于以交互方式更改 Ubuntu 20 系统的主机名:
1#!/bin/bash
2
3# 提示用户输入新的主机名
4read -p "请输入新的系统名称(主机名): " new_hostname
5
6# 检查是否输入了新的主机名
7if [ -z "$new_hostname" ]; then
8 echo "错误:未输入新的系统名称!"
9 exit 1
10fi
11
12# 备份当前的hostname文件
13sudo cp /etc/hostname /etc/hostname.bak
14
15# 更新 hostname 文件
16sudo sed -i 's/.*$/'"$new_hostname"'/' /etc/hostname
17
18# 更新 hosts 文件
19sudo sed -i "s/127.0.1.1.*$/127.0.1.1 $new_hostname/" /etc/hosts
20
21# 通知用户重启系统以应用更改
22echo "系统名称已更改为 '$new_hostname'。请重启系统以应用更改。"
23
24# 提示用户是否现在重启
25read -p "是否现在重启系统?(y/n): " restart_choice
26
27if [ "$restart_choice" == "y" ]; then
28 sudo reboot
29else
30 echo "你可以随时通过运行 'sudo reboot' 命令来重启系统。"
31fi
这个脚本会做以下操作:
/etc/hostname
?文件。sed
?命令更新?/etc/hostname
?文件为新的主机名。/etc/hosts
?文件中的主机名。sudo reboot
?命令进行重启。要使用这个脚本,你需要将它保存为一个文件,例如?change_hostname.sh
,然后赋予其执行权限:
1chmod +x change_hostname.sh
最后,运行脚本:
1./change_hostname.sh
?