是否有 bash 脚本通过从网站检索列表来更新主机文件?

是否有 bash 脚本通过从网站检索列表来更新主机文件?

我想使用 bash 脚本通过检索在线列表(例如,使用 Windows Subsystem for Linux (Debian) 在 Windows 10 上自动更新我的主机文件https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts)。

我知道有 Windows Powershell 脚本,例如:
https://github.com/robledosm/update-mvpsHosts/blob/master/update-mvpsHosts.ps1
https://github.com/chriskenis/POSH/blob/master/OS/Update-HostFile.ps1

但我想要一个 Linux 脚本,因为我已经有了基本的 Linux 知识。

有人可以指点我这样的脚本吗?

谢谢

编辑:BANJOSA 的答案确实是正确的。谢谢

答案1

从主机编辑系统文件时,适用于 Linux 的 Windows 子系统受到一定限制。要实现此目的,您需要运行世界SL行政人员特权。

一个非常粗略的脚本示例可能是:

#!/bin/bash

cd /mnt/c/Windows/System32/drivers/etc || { echo "Aborting all operations! Path does not exist."; exit 1; }
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts -o hosts_from_internet
sed -i 1,13d hosts_from_internet
cat hosts_from_internet >> hosts
awk '!seen[$0]++' hosts

光盘- 进入目录,如果不成功,则会中止并显示消息并停止脚本的执行。

卷曲- 将从您提供的链接下载列表并将其保存在文件中。

sed- 将从下载的文件中删除前 13 行。由于这些行只是注释,我假设您不希望它们出现在您的主机文件中。

- 将您下载的文件附加到您的主机文件中。

awk- 将检查主机文件是否有重复项并将其删除。当您多次运行脚本时这可能很有用。

相关内容