由于某些网站(如 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 网站一小时,则必须等待一小时才能再次使用它。重启后,该设置仍会持续。
您可以在第二个链接的“安装”部分下找到它的下载。