#!/bin/bash
# 一键修改主机名脚本（安全版）

read -p "请输入新的主机名: " new_hostname

if [ -z "$new_hostname" ]; then
    echo "❌ 主机名不能为空"
    exit 1
fi

# 获取旧主机名
old_hostname=$(hostname)

# 修改主机名
sudo hostnamectl set-hostname "$new_hostname"

# 更新 /etc/hosts 中的 127.0.0.1 和 127.0.1.1 行，避免 sudo 报错
if grep -q "127.0.1.1" /etc/hosts; then
    sudo sed -i "s/127.0.1.1.*/127.0.1.1    $new_hostname/" /etc/hosts
else
    # 如果没有 127.0.1.1 行，则追加一行
    echo "127.0.1.1    $new_hostname" | sudo tee -a /etc/hosts
fi

# 确保 localhost 映射存在
if ! grep -q "127.0.0.1.*localhost" /etc/hosts; then
    echo "127.0.0.1    localhost" | sudo tee -a /etc/hosts
fi

echo "✅ 主机名已修改为: $(hostname)"
echo "⚠️ 建议重新连接 SSH 或重启服务器以确保完全生效"
