修改本地host绑定
这个需求其实挺常见的,简单写个脚本吧
写个脚本
使用说明:
- 将下面的脚本复制并粘贴到一个文本文件中,并保存为 manage_host_entry.sh。
- 修改脚本中的 IP_ADDRESS 和 DOMAIN_NAME 变量,将它们替换为您要操作的IP地址和域名。
- 在终端中导航到脚本所在的目录。
- 使用命令 chmod +x manage_host_entry.sh 使脚本可执行。
- 要添加绑定,运行脚本 sudo ./manage_host_entry.sh add。
- 要删除绑定,运行脚本 sudo ./manage_host_entry.sh remove。
- 输入您的管理员密码以允许脚本修改hosts文件。 请在进行任何修改之前备份您的hosts文件。如果出现问题,您可以使用备份文件进行恢复。
#!/bin/bash
# 定义要操作的IP地址和域名
IP_ADDRESS="192.168.1.1"
DOMAIN_NAME="w3cdoc.com"
# 检查是否提供了正确的参数
if [ "$#" -ne 1 ]; then
echo "使用方法: $0 add|remove"
exit 1
fi
ACTION=$1
# 检查是否以root权限运行脚本
if [ "$(id -u)" != "0" ]; then
echo "此脚本需要以root权限运行。请使用sudo运行此脚本。" 1>&2
exit 1
fi
# 备份当前的hosts文件
cp /etc/hosts /etc/hosts.backup
# 根据传入的参数执行对应的操作
case $ACTION in
add)
# 检查是否已存在相同的绑定
EXISTING_ENTRY=$(grep -F "$IP_ADDRESS $DOMAIN_NAME" /etc/hosts)
# 如果已存在,不再添加
if [ -n "$EXISTING_ENTRY" ]; then
echo "已存在相同的IP和域名绑定,无需再次添加。"
exit 0
fi
# 添加新的绑定到hosts文件
echo "$IP_ADDRESS $DOMAIN_NAME" | tee -a /etc/hosts > /dev/null
# 提示用户操作完成
echo "已成功添加绑定:$IP_ADDRESS 绑定到 $DOMAIN_NAME"
;;
remove)
# 删除对应的IP和域名绑定
sed -i.bak "/$IP_ADDRESS $DOMAIN_NAME/d" /etc/hosts
# 提示用户操作完成
echo "已成功删除绑定:$IP_ADDRESS 绑定到 $DOMAIN_NAME"
;;
*)
echo "无效的操作:$ACTION。请使用 add 或 remove。"
exit 1
;;
esac