写Shell以交互方式变更Ubuntu的主机名

发布时间:2024年01月24日

以下是一个简单的 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

这个脚本会做以下操作:

  1. 提示用户输入新的系统名称(主机名)。
  2. 检查是否输入了新的主机名,如果没有输入则退出脚本。
  3. 备份当前的?/etc/hostname?文件。
  4. 使用?sed?命令更新?/etc/hostname?文件为新的主机名。
  5. 更新?/etc/hosts?文件中的主机名。
  6. 提示用户需要重启系统以应用更改。
  7. 提示用户是否立即重启,如果用户选择是,则执行?sudo reboot?命令进行重启。

要使用这个脚本,你需要将它保存为一个文件,例如?change_hostname.sh,然后赋予其执行权限:

1chmod +x change_hostname.sh

最后,运行脚本:

1./change_hostname.sh

?

文章来源:https://blog.csdn.net/weixin_42494218/article/details/135813443
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。