• 请不要在回答技术问题时复制粘贴 AI 生成的内容
bugsnail
0.07D
V2EX  ›  程序员

osx/linux 切换 hosts 的脚本

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

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