hostsPlus v0.9.5发布 & 最佳实践

hostsplus

经过一段时间需求的积累及开发,hostsPlus v0.9.5版本终于面世了。

这个版本相对于之前的版本,功能和实用性上得到了很大提高。

文章后附带使用方法

v0.9.5更新日志

添加:

  1. 添加搜索和替换功能,并支持正则搜索
  2. 添加全局备份和恢复功能,方便重装系统时备份数据
  3. 添加远程Hosts功能,以支持公司内全局范围的Hosts共享
  4. 添加CDN一致性检测功能,发布时可轻松检测全球生效情况
  5. 添加由于hosts权限问题而写入失败的提醒
  6. Mac版本添加DNS切换支持

调整:

  1. codeMirror升级为v3.1

重点功能介绍

  1. 搜索和替换这个功能一直有非常多的用户反馈过,这次终于实现了,最大的缺陷解决了。搜索:Ctrl + F , 替换:Ctrl + H
  2. 备份和恢复之前有用户反馈重装系统时很不方便,现在有了备份和恢复功能,重装时可以方便的备份数据了
  3. 远程Hosts功能利用此功能,可以一定程度上实现hosts共享,比如公司某些公用hosts绑定的共享
  4. CDN一致性检测利用此功能可以对多个CDN节点进行内容一致性检测,主要用于提高发布阶段的数据检验效率
  5. 对Mac全支持此次实现了对Mac系统的全支持,包括DNS切换功能,强烈推荐Mac的同学们安装使用

最佳实践分享

这一章节介绍我所在公司的最佳实践应用场景。

首先了解一下以下信息:

  1. AENV是公司的环境管理平台,用来自动化部署应用环境
  2. AENV提供了所有应用的公用测试环境,用来做公用测试,以及解决某个应用测试时的依赖问题
  3. AENV提供了了一个测试用DNS,利用此DNS可以访问到所有公用测试环境,相当于在本地hosts中绑定了所有的公用绑定
  4. AENV提供了一个API接口,可以获得某个用户下所有项目环境的hosts绑定

hostsPlus使用方式:

  1. 利用hostsPlus可以方便的切换本地DNS测试DNS
  2. 利用hostsPlus的远程Hosts功能可以获取开发者相关的所有项目环境hosts分组绑定,并保持随时同步

基于以上两个功能,要想访问测试环境,只需要切换为测试DNS,并选择对应的项目环境Hosts绑定即可。

仅需四次鼠标点击,即可完成全部的绑定工作,极大的提高了开发测试效率。

基于远程Hosts的自动同步功能,更能做到项目Hosts绑定和环境管理系统的随时同步,环境一绑定,hostsPlus右键菜单中即可看到对应的环境名。

无论是开发、测试还是产品人员,都可以傻瓜式的在多个测试环境间切换,不用为复杂的环境绑定而苦恼。

Download – 下载

国内镜像下载:http://pan.baidu.com/s/1o6G88A2
包含所有系统版本

版本号:v0.9.5

Windows:hostsplus.v0.9.5.exe  (自备梯子)

Mac:hostsplus.v0.9.5.mac.zip  (自备梯子)

Linux i386:hostsplus.v0.9.5.linux_i386.zip  (自备梯子)

Linux a64:hostsplus.v0.9.5.linux_a64.zip  (64位版)  (自备梯子)

源码:https://github.com/yaniswang/hostsPlus

 

Windows安装方法

直接双击EXE文件运行

Mac安装方法

解压缩安装包后,执行以下命令:

  1. ./install_mac.sh

执行过程中,会提示输入root密码(如果你的账户密码为空,这个过程可能会无法完成)。

Linux安装方法

解压缩安装包后,进入到安装包路径下,执行以下命令:

  1. sudo chmod 777 *
  2. ./install_linux.sh

install_linux.sh脚本内容如下:

  1. sudo ln -s /usr/lib/i386-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0
  2. sudo chmod +x ./air_2.6_linux.bin
  3. sudo ./air_2.6_linux.bin
  4. sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
  5. sudo chmod 777 /etc/hosts
  6. sudo dpkg -i hostsplus.v0.9.3_a64.deb
  7. sudo chmod 777 /opt/hostsPlus/share/ext/*
  8. sudo cp /usr/share/applications/hostsplus.desktop ~/Desktop
  9. sudo chmod 777 ~/Desktop/hostsplus.desktop
  10. sudo cp /usr/share/applications/hostsplus.desktop ~/桌面
  11. sudo chmod 777 ~/桌面/hostsplus.desktop
  12. /opt/hostsPlus/bin/hostsPlus

执行过程中,会提示输入root密码。

安装脚本会做如下事情:

  • 安装Air运行时
  • 关闭托盘图标白名单(ubuntu 12才需要,关闭后需要注销才生效)
  • 放开/etc/hosts文件的写权限
  • 安装hostsPlus
  • 将快捷方式复制到桌面

使用方法:

分组说明

新建分组

以如下格式设置可新建分组(快捷键: Ctrl + G):

# =组ID=
或
# = 组ID =
或
# ======组ID======

前后的等号可以是1个或者多个,具体视使用者偏好。

单个hosts文件中,多个组ID必需是唯一不重复的。

互斥分组

互斥分组即是多个组之间是相互排斥的,开启一个组,就必需关闭另外一个或多个组。

假如有如下环境:开发环境、测试环境、预发环境、生产环境。这几个环境的hosts绑定不可能同时生效,其中一个生效时,另外几个必需要处于关闭状态。

在这之前,我们切换开发环境,都是手工在hosts文件中通过注释的方式切换。现在,有了hostsPlus,你可以高效的完成这个过程。

那么,如何建立互斥分组呢?请看示例:

# =====组1(dev)=====
# =====组2(dev)=====
# =====组3(dev)=====

括号里为组name,相同name为互斥关系。

当打开组1时,另外两个组就会自动切换为关闭状态。

依赖分组

依赖分组是某一个分组被开启时,被依赖的分组也会同时被开启。

直接看示例:

# =====组1=====
# =====组2(?组1)=====

括号里开始处加问号,代表依赖某个组。上面的例子为组2依赖组1,组2开启时,组1自动开启。

组合使用

互斥和依赖可以组合起来使用,上例子:

# =====组1=====
# =====组2=====
# =====组3(dev)=====
# =====组4(dev)(?组1)(?组2)=====

组3和组4为互斥关系,组4依赖组1和组2。

快捷键列表

  • Ctrl + Tab : 切换hosts方案
  • Ctrl + Q : 切换启用状态
  • Ctrl + / : 切换注释状态
  • Ctrl + G : 新建分组
  • Ctrl + A : 全选
  • Ctrl + C : 复制
  • Ctrl + X : 剪切
  • Ctrl + V : 粘贴
  • Ctrl + Z : 撤销
  • Ctrl + Y : 恢复
  • Ctrl + S : 保存hosts编辑结果
  • Ctrl + F : 搜索
  • F3 : 搜索下一个
  • Shift + F3 : 搜索上一个
  • Ctrl + H : 替换
  • Ctrl + Shift + H : 全部替换
  • ESC : 隐藏到系统栏
  • F1 : 打开使用指南
  • F11 : 切换全屏

注:Mac系统里Ctrl键为Command键

DEMO示例

以下为示例文件,建议复制以下完整内容到编辑区域中(注意备份旧数据,或者在新建方案中测试),体验分组、互斥及依赖关系。

# 这里是顶部公用区,不属于任何分组

127.0.0.1   localhost

# ==================== 公共绑定 ====================
127.0.0.1   www.google.com

# ==================== 本地(style) ====================
127.0.0.2   www.google.com

# ==================== 预发(style)(?公共绑定) ====================
127.0.0.3   www.google.com

 

来源:http://yaniswang.com/frontend/2013/03/14/hostsplus-v0.9.5/