osx/linux 切换 hosts 的脚本

2015-09-03 23:15:25 +08:00
 bugsnail

在 osx/linux 开发有时候要随时切换 hosts ,不想用软件,就自己写了个顺手的 shell 脚本,分享大家的同时,也请指教!

地址: https://github.com/leo-yi/hostsChangeShell

3274 次点击
所在节点    程序员
18 条回复
skydiver
2015-09-04 00:00:11 +08:00
打码失败。。。
zhuangzhuang1988
2015-09-04 00:01:49 +08:00
http://oldj.github.io/SwitchHosts/ 这个挺不错的, GUI 的开源, python+wxPython 写的.
xmoon
2015-09-04 00:14:27 +08:00
神奇打码
bdbai
2015-09-04 00:41:05 +08:00
大数字杀毒 啧啧
cxbig
2015-09-04 03:12:32 +08:00
好复杂。。。只是切换的话一条 sed 不就解决了,封装成 alias 或 function ,关闭或打开无非就是加减一个#的事。
ilotuo
2015-09-04 03:22:21 +08:00
/go/分享创造 节点
话说这么简单功能真的需要这么多恶臭和判断么…
cheneyeah
2015-09-04 09:43:38 +08:00
author 打错了...
cattyhouse
2015-09-04 10:02:59 +08:00
感觉 LZ 只写了一半。。。而且判断超级简单的说,你这么切换了之后。。。想要还原的话怎么办,还要手动 cp 回去。。。 拉了屎却不擦屁股。

num=1
if [ $num -eq 1 ];then

这是一句废话。
直接 echo 不就行了?


其实非常简单的事情。。。
先备份原来的 hosts
cp /etc/hosts /etc/hosts.orig
再创建一个自定义的 hosts.my ,内容:
cat /etc/hosts.orig > /etc/hosts.my
cat >> /etc/hosts.my << EOF
xxxx google.com
xxxx facebook.com
xxxx xxxx
EOF

然后再弄两个 alias

alias hosts.orig="ln -sf /etc/hosts.orig /etc/hosts"
alias hosts.my="in -sf /etc/hosts.my /etc/hosts"

是不是拉屎了也擦屁股了?
cattyhouse
2015-09-04 10:10:45 +08:00
继续吐槽

echo 127.0.0.1 localhost > /etc/hosts 2>&1

不能这么 echo 的。。。 至少也要" " 用这个括号扩起来吧?用 echo 多行,可以这么干

echo "127.0.0.1 localhost
xxxx google.com
...
...
...
...
xxxx facebook.com" > /etc/hosts

或者最好:

cat > /etc/hosts << EOF
127.0.0.1 localhost
xxxx google.com
...
...
...
...

xxxx facebook.com
EOF
ksc010
2015-09-04 10:54:15 +08:00
bugsnail
2015-09-04 12:11:35 +08:00
@cattyhouse 随便看了一下 shell 的语法,多谢指教了~
bugsnail
2015-09-04 12:12:16 +08:00
@cheneyeah 绝对有代码洁癖!不过很提倡
bugsnail
2015-09-04 12:15:26 +08:00
@cxbig 这个思路不错,不过我目前这个自己够用了(其实是 shell 编程不会 orz...)
bugsnail
2015-09-04 12:16:13 +08:00
@zhuangzhuang1988 就是不想用软件,太麻烦了...
不过还是谢谢~
bugsnail
2015-09-04 12:21:09 +08:00
@cattyhouse 切换回之前的,多 cp 一个这样的 shell ,多一个别名,是一样的,当然可以设置 N 个....
pheyer
2015-09-04 13:29:01 +08:00
好像 OSX 下的 Alfred 也有相应的 WorkFlow ,更方便一些
cattyhouse
2015-09-04 13:30:44 +08:00
@bugsnail 这玩意不需要 shell ,只需要用 ln 就可以了,也就是 link 。
omph
2015-09-04 17:49:38 +08:00
缩进有问题,差评!
最好能 5 行搞定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/218145

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX