osx/linux 切换 hosts 的脚本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
bugsnail
0.07D

osx/linux 切换 hosts 的脚本

  •  
  •   bugsnail Sep 3, 2015 3880 views
    This topic created in 3888 days ago, the information mentioned may be changed or developed.

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

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

    18 replies    2015-09-04 17:49:38 +08:00
    skydiver
        1
    skydiver  
       Sep 4, 2015
    打码失败。。。
    zhuangzhuang1988
        2
    zhuangzhuang1988  
       Sep 4, 2015   1
    http://oldj.github.io/SwitchHosts/ 这个挺不错的, GUI 的开源, python+wxPython 写的.
    xmoon
        3
    xmoon  
       Sep 4, 2015
    神奇打码
    bdbai
        4
    bdbai  
       Sep 4, 2015 via iPhone
    大数字杀毒 啧啧
    cxbig
        5
    cxbig &nsp;
       Sep 4, 2015   1
    好复杂。。。只是切换的话一条 sed 不就解决了,封装成 alias 或 function ,关闭或打开无非就是加减一个#的事。
    ilotuo
        6
    ilotuo  
       Sep 4, 2015 via Android
    /go/分享创造 节点
    话说这么简单功能真的需要这么多恶臭和判断么…
    cheneyeah
        7
    cheneyeah  
       Sep 4, 2015 via iPhone   1
    author 打错了...
    cattyhouse
        8
    cattyhouse  
       Sep 4, 2015   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  
       Sep 4, 2015
    继续吐槽

    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  
       Sep 4, 2015 via iPhone
        11
    bugsnail  
    OP
       Sep 4, 2015
    @cattyhouse 随便看了一下 shell 的语法,多谢指教了~
    bugsnail
        12
    bugsnail  
    OP
       Sep 4, 2015
    @cheneyeah 绝对有代码洁癖!不过很提倡
    bugsnail
        13
    bugsnail  
    OP
       Sep 4, 2015
    @cxbig 这个思路不错,不过我目前这个自己够用了(其实是 shell 编程不会 orz...)
    bugsnail
        14
    bugsnail  
    OP
       Sep 4, 2015
    @zhuangzhuang1988 就是不想用软件,太麻烦了...
    不过还是谢谢~
    bugsnail
        15
    bugsnail  
    OP
       Sep 4, 2015
    @cattyhouse 切换回之前的,多 cp 一个这样的 shell ,多一个别名,是一样的,当然可以设置 N 个....
    pheyer
        16
    pheyer  
       Sep 4, 2015
    好像 OSX 下的 Alfred 也有相应的 WorkFlow ,更方便一些
    cattyhouse
        17
    cattyhouse  
       Sep 4, 2015 via iPhone
    @bugsnail 这玩意不需要 shell ,只需要用 ln 就可以了,也就是 link 。
    omph
        18
    omph  
       Sep 4, 2015
    缩进有问题,差评!
    最好能 5 行搞定
    About     Help     Advertise     Blog     API     FAQ     Solana     5684 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 125ms UTC 09:01 PVG 17:01 LAX 02:01 JFK 05:01
    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