自动禁用和启用某些网站

自动禁用和启用某些网站

由于某些网站(如 Facebook)会分散我的注意力,我决定编辑/etc/hosts文件以(暂时)阻止这些网站,作为避免这些网站的额外方法。例如,我的主机文件如下所示:

127.0.0.1   localhost
127.0.1.1   user
127.0.0.1 www.facebook.com
127.0.0.1 www.youtube.com

但是,当我回到家时,我想访问这些网站,因此我通过再次打开文件手动注释掉这些网站,并逐一注释所有网站,如下所示:

127.0.0.1   localhost
127.0.1.1   user
#127.0.0.1 www.facebook.com
#127.0.0.1 www.youtube.com

我如何创建一个脚本来完成这项工作?注释掉 hosts 文件中包括的网站,并在需要时删除注释?

答案1

在我看来,寻求技术解决方案来解决这个问题是毫无意义的

sudo sed -i '/facebook/ s/^[^#]/#&/' /etc/hosts

如果任何包含该字符串的行的开头尚未有一个,则#在该行的开头插入一个;并且facebook

sudo sed -i '/facebook/ s/^#//' /etc/hosts

删除#包含该字符串的任何行的前导符facebook(如果有)。

答案2

你可以将它们全部写在一行上,就像这样:

127.0.0.1 www.facebook.com www.youtube.com

答案3

如果有应用程序可以为你实现自我控制,谁还需要自己进行自我控制呢?

http://www.omgubuntu.co.uk/2011/02/self-control-ubuntu

http://svn.jklmnop.net/projects/SelfControl.html

此应用会在您指定的时间内屏蔽您指定的所有网站。最棒的是,一旦设置,就无法撤消。如果您屏蔽 X 网站一小时,则必须等待一小时才能再次使用它。重启后,该设置仍会持续。

您可以在第二个链接的“安装”部分下找到它的下载。

相关内容