osx/linux 切换 hosts 的脚本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
bugsnail
0.07D
V2EX    程序员

osx/linux 切换 hosts 的脚本

  •  
  •   bugsnail 2015-09-03 23:15:25 +08:00 3649 次点击
    这是一个创建于 3744 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    18 条回复    2015-09-04 17:49:38 +08:00
    skydiver
        1
    skydiver  
       2015-09-04 00:00:11 +08:00
    打码失败。。。
    zhuangzhuang1988
        2
    zhuangzhuang1988  
       2015-09-04 00:01:49 +08:00   1
    http://oldj.github.io/SwitchHosts/ 这个挺不错的, GUI 的开源, python+wxPython 写的.
    xmoon
        3
    xmoon  
       2015-09-04 00:14:27 +08:00
    神奇打码
    bdbai
        4
    bdbai  
       2015-09-04 00:41:05 +08:00 via iPhone
    大数字杀毒 啧啧
    cxbig
        5
    cxbig  
       2015-09-04 03:12:32 +08:00   1
    好复杂。。。只是切换的话一条 sed 不就解决了,封装成 alias 或 function ,关闭或打开无非就是加减一个#的事。
    ilotuo
        6
    ilotuo  
       2015-09-04 03:22:21 +08:00 via Android
    /go/分享创造 节点
    话说这么简单功能真的需要这么多恶臭和判断么…
    cheneyeah
        7
    cheneyeah  
       2015-09-04 09:43:38 +08:00 via iPhone   1
    author 打错了...
    cattyhouse
        8
    cattyhouse  
       2015-09-04 10:02:59 +08:00   1
    感觉 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
        9
    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
        10
    ksc010  
       2015-09-04 10:54:15 +08:00 via iPhone
    bugsnail
        11
    bugsnail  
    OP
       2015-09-04 12:11:35 +08:00
    @cattyhouse 随便看了一下 shell 的语法,多谢指教了~
    bugsnail
        12
    bugsnail  
    OP
       2015-09-04 12:12:16 +08:00
    @cheneyeah 绝对有代码洁癖!不过很提倡
    bugsnail
        13
    bugsnail  
    OP
       2015-09-04 12:15:26 +08:00
    @cxbig 这个思路不错,不过我目前这个自己够用了(其实是 shell 编程不会 orz...)
    bugsnail
        14
    bugsnail  
    OP
       2015-09-04 12:16:13 +08:00
    @zhuangzhuang1988 就是不想用软件,太麻烦了...
    不过还是谢谢~
    bugsnail
        15
    bugsnail  
    OP
       2015-09-04 12:21:09 +08:00
    @cattyhouse 切换回之前的,多 cp 一个这样的 shell ,多一个别名,是一样的,当然可以设置 N 个....
    pheyer
        16
    pheyer  
       2015-09-04 13:29:01 +08:00
    好像 OSX 下的 Alfred 也有相应的 WorkFlow ,更方便一些
    cattyhouse
        17
    cattyhouse  
       2015-09-04 13:30:44 +08:00 via iPhone
    @bugsnail 这玩意不需要 shell ,只需要用 ln 就可以了,也就是 link 。
    omph
        18
    omph  
       2015-09-04 17:49:38 +08:00
    缩进有问题,差评!
    最好能 5 行搞定
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1008 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 22:46 PVG 06:46 LAX 14:46 JFK 17:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86