经过一段时间需求的积累及开发,hostsPlus v0.9.5版本终于面世了。
这个版本相对于之前的版本,功能和实用性上得到了很大提高。
文章后附带使用方法
v0.9.5更新日志
添加:
- 添加搜索和替换功能,并支持正则搜索
- 添加全局备份和恢复功能,方便重装系统时备份数据
- 添加远程Hosts功能,以支持公司内全局范围的Hosts共享
- 添加CDN一致性检测功能,发布时可轻松检测全球生效情况
- 添加由于hosts权限问题而写入失败的提醒
- Mac版本添加DNS切换支持
调整:
- codeMirror升级为v3.1
重点功能介绍
- 搜索和替换这个功能一直有非常多的用户反馈过,这次终于实现了,最大的缺陷解决了。搜索:Ctrl + F , 替换:Ctrl + H
- 备份和恢复之前有用户反馈重装系统时很不方便,现在有了备份和恢复功能,重装时可以方便的备份数据了
- 远程Hosts功能利用此功能,可以一定程度上实现hosts共享,比如公司某些公用hosts绑定的共享
- CDN一致性检测利用此功能可以对多个CDN节点进行内容一致性检测,主要用于提高发布阶段的数据检验效率
- 对Mac全支持此次实现了对Mac系统的全支持,包括DNS切换功能,强烈推荐Mac的同学们安装使用
最佳实践分享
这一章节介绍我所在公司的最佳实践应用场景。
首先了解一下以下信息:
- AENV是公司的环境管理平台,用来自动化部署应用环境
- AENV提供了所有应用的公用测试环境,用来做公用测试,以及解决某个应用测试时的依赖问题
- AENV提供了了一个测试用DNS,利用此DNS可以访问到所有公用测试环境,相当于在本地hosts中绑定了所有的公用绑定
- AENV提供了一个API接口,可以获得某个用户下所有项目环境的hosts绑定
hostsPlus使用方式:
- 利用hostsPlus可以方便的切换
本地DNS
和测试DNS
- 利用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安装方法
解压缩安装包后,执行以下命令:
./install_mac.sh
执行过程中,会提示输入root密码(如果你的账户密码为空,这个过程可能会无法完成)。
Linux安装方法
解压缩安装包后,进入到安装包路径下,执行以下命令:
sudo chmod 777 *
./install_linux.sh
install_linux.sh脚本内容如下:
sudo ln -s /usr/lib/i386-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0
sudo chmod +x ./air_2.6_linux.bin
sudo ./air_2.6_linux.bin
sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
sudo chmod 777 /etc/hosts
sudo dpkg -i hostsplus.v0.9.3_a64.deb
sudo chmod 777 /opt/hostsPlus/share/ext/*
sudo cp /usr/share/applications/hostsplus.desktop ~/Desktop
sudo chmod 777 ~/Desktop/hostsplus.desktop
sudo cp /usr/share/applications/hostsplus.desktop ~/桌面
sudo chmod 777 ~/桌面/hostsplus.desktop
/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/