+****************************************************
+
+#### A ####
+### 1. APM:高级电源管理
+### 2.
+#### B ####
+### 1. Backbone:骨干
+>是一个网络的一部分,其作为所有网络运输的一个基本通道,其需要非常高的带宽。一个骨干网络的服务提供者连接许多企业子网和较小服务提供者的网络。一个企业骨干网络连接许多局域网和数据中心。
+
+### 2. B channel(Bearer channel):承载信道
+>承载信道(Bearer Channel),也叫做B channel,是一个全双工DS0时间槽(64-kbps),其携带模拟语音或数字资料通过综合服务数字网(ISDN)。
+
+### 3. Backchannel:反向通道
+>是指当其他实时在线会话在进行中时,习惯使用网络化的计算机来维持一个实时的在线会话。
+
+### 4. Back End:后台
+>在一个计算机系统中,是指为一个前台作业提供服务的一个节点或软件程序。前台直接影响用户,后台可能与其他系统相连接,如数据库和其它系统。
+
+### 5. Back-haul:回程线路
+>是一个通信信道,它使携带信息流到远于最终目的地的地方,然后将它送回。这样做是因为传输到更远的远程区域的代价要远比直接发送的代价低地多。
+
+### 6. Backoff:退避
+>是指当一个主机已经在有MAC 协议的网络中经历了一个冲突之后试图去重发之前的等待时期。这个退避时间通常是任意的来最小化相同节点再次冲突的可能性。在每次冲突后增加退避时期也能帮助预防重复碰撞,特别当这个网络负担很重时。
+
+### 7. Backplane:附加卡
+>在许多网络中是一个物理接口模块,例如,连接在一个界面处理器或卡和在一个总线机箱内数据总线和功率分配总线之间的一个路由器或转换器。
+
+### 8. Back Pressure:背压
+>在计算机系统中,是指网络拥塞信息逆流通过一个Internet网络。
+
+### 9. Balun(balanced-unbalanced):不平衡变压器
+>意味着平衡-非平衡。不平衡变压器是一个设计用来转换平衡和不平衡之间的电信号的设备。
+
+### 10. Baseband:基带
+>是一种类型的网络技术,在那里仅仅一种载波频率被使用。在一个基带网中,信息在传送介质中以数字的形式被携带在一个单一的多元信号通道中。
+
+### 11. Bastion Host:防御主机
+>是在内部网络和外部网络之间的一个网关,它被设计来防御针对内部网络的攻击。这个系统在非武装区(DMZ)的公共一边,不被防火墙或过滤路由器保护,它对攻击是完全暴露的。
+
+### 12: Bc(Committed Burst):约定资讯讯务
+>是一个用在帧中继系统的术语,是一个帧中继交互网约定接受和传输和通过一个帧中继网络数据链路控制(DLC)和一个特殊的时帧的最大数据量(用比特表示)。
+
+### 13. BCP(Best Current Practices):最优现行方法
+>是副系列的IETF RFCs,其被用于描述在Internet上的最优配置技术。
+
+### 14. BCU(Balanced Configuration Unit):平衡配置单元
+>是一个综合的IBM解决方法,它由软件和硬件组成。BCUs是综合的和测试作为数据仓库系统的预配置功能块。
+
+### 15. BECN(Backward Explicit Congestion Notification):显式拥塞通知
+>是在帧中继报头的一个1比特域,其发信号到任何接收帧的事物(转换器和数据终端设备),拥塞就发生在帧的反面(后面)。帧中继转换器和数据终端设备可能遵照显式拥塞通知位来减慢那个方向的数据传输率。
+
+### 16. BER(Bit Error Rate):误码率
+>是接收到的位包含错误的比率。BER通常被表示成十足的负面力量。
+
+### 17. BIP(Bit Interleaved Parity):位交叉奇偶校验
+>一个用在ATM中的术语,是一个通常用来检测链接错误的一种方法。一个检测位或字被嵌入到以前发生阻塞或帧的链接中。位错误在有效载荷中能够作为维护信息被删除和报告。
+
+#### C ####
+
+#### D ####
+### 1. daemon:守护进程
+### 2.
+#### F ####
+
+#### G ####
+
+#### H ####
+### 1. Home Directory:家目录
+#### I ####
+
+#### J ####
+
+#### K ####
+
+#### L ####
+### 1. LTS(Long Term Support):长期支持
+>该缩写词多见于操作系统发行版或者软件发行版名称中,表明该版本属于长期支持版。
+
+#### M ####
+
+#### N ####
+
+#### O ####
+
+#### P ####
+### 1.P-code(Pseudo-code):伪代码语言
+>一种解释型语言,执行方式介于编译型语言和解释型语言之间。和解释型语言一样,伪代码编程语言无需编译,在执行时自动转换成二进制形式。然而,和编译型语言不同的是,这种可执行的二进制文件是以伪代码的形式而不是机器语言的形式存储的。伪代码语言的例子有 Java、Python 和 REXX/Object REXX。
+
+### 2. PAM(Pluggable Authentication Modules):可插拔认证模块
+>用于系统安全性的可替换的用户认证模块,它允许在不知道将使用何种认证方案的情况下进行编程。这允许将来用其它模块来替换某个模块,却无需重写软件。
+
+### 3. Port/Ported/Porting:移植
+>一个过程,即获取为某个操作系统平台编写的程序,并对其进行修改使之能在另一 OS 上运行,并且具有类似的功能。
+
+### 4. POSIX(Portable Operating System Interface for uniX):UNIX 可移植操作系统接口
+>一组编程接口标准,它们规定如何编写应用程序源代码以便应用程序可在操作系统之间移植。POSIX 基于 UNIX,它是 The Open Group 的 X/Open 规范的基础。
+
+#### Q ####
+
+#### R ####
+### 1. RCS(Revision Control System):修订控制系统
+>一组程序,它们控制组环境下文件的共享访问并跟踪文本文件的变化。常用于维护源代码模块的编码工作。
+
+### 2. RFS(Remote File Sharing):远程文件共享
+>一个程序,它让用户访问其它计算机上的文件,就好象文件在用户的系统上一样。
+
+#### S ####
+### 1. shebang [ʃɪ'bæŋ]:释伴
+>Shebang(也称为Hashbang)是一个由井号和叹号构成的字符序列(#!),出现在文本文件的第一行的前两个字符,后跟解释器路径,如:#!/bin/sh,这通常是Linux中shell脚本的标准起始行。
+>长期以来,shebang都没有正式的中文名称。Linux中国翻译组将其翻译为:释伴,即解释伴随行的简称,同时又是shebang的音译。
+
+### 2. Spool(Simultaneous Peripheral Operation On-Line):假脱机
+>将数据发送给一个程序,该程序将该数据信息放入队列以备将来使用(例如,打印假脱机程序)
+
+### 2. Steganography:隐写术
+>将一段信息隐藏在另一段信息中的做法。一个示例是在数字化照片中放置不可见的数字水印。
+
+### 3. Swap:交换
+>暂时将数据(程序和/或数据文件)从随机存取存储器移到磁盘存储器(换出),或反方向移动(换入),以允许处理比物理内存所能容纳的更多的程序和数据。
+
+#### T ####
+### 1. Time-sharing:分时
+>一种允许多个用户分享处理器的方法,它以时间为基础给每个用户分配一部分处理器资源,按照这些时间段轮流运行每个用户的进程。
+
+### 2. TL;DR:长篇摘要
+>Too Long;Didn't Read的缩写词,即太长,未阅的意思。该词多见于互联网社区论坛中,用于指出该文太长,没有阅读,或者标示出一篇长文章的摘要。在论坛回复中,该缩写词也多作为灌水用。因此,Linux中国翻译组将其翻译为:长篇摘要。
+
+#### U ####
+
+#### V ####
+### 1. VRML(Virtual Reality Modeling Language):虚拟现实建模语言
+>一种主要基于 Web 的语言,用于 3D 效果(如构建遍历)。
+
+#### W ####
+### 1. Wrapper:封装器
+>用于启动另一个程序的程序。
+
+#### X ####
+
+#### Y ####
+
+#### Z ####
\ No newline at end of file
diff --git a/published/20141204 Intense Gameplay--Try these 13 Roguelike games.md b/published/20141204 Intense Gameplay--Try these 13 Roguelike games.md
new file mode 100644
index 0000000000..f271a53e1f
--- /dev/null
+++ b/published/20141204 Intense Gameplay--Try these 13 Roguelike games.md
@@ -0,0 +1,401 @@
+想找点激烈的游戏?那就试试这 13 款 Roguelike 游戏吧!
+================================================================================
+Roguelike 是角色扮演游戏的一个子类。从字面上看,它的意思是 “像 Rogue 的游戏”。Rogue 是一个关于地下城冒险的视频游戏,于 1980 年第一次发行,以极其上瘾而著称。这个游戏的目标是取得深藏于第 26 层的 "Amulet of Yendor",再返回到顶层逃出生天。
+
+Roguelike 的准确定义并不存在,但这类游戏通常具有下面的特点:
+
+- 奇幻的叙事背景;
+- 用程序产生关卡。游戏中的绝大多数场景在开始新的游戏时由游戏自动创建。这样做是为了鼓励玩家不断重玩;
+- 回合制的地下城探险和战斗;
+- 随机生成的基于贴片的图形环境;
+- 随机发生战斗;
+- 永久死亡 :在游戏中,死亡真的存在,一旦你的角色死了,那就真的结束了;
+- 高难度。
+
+这篇文章精心挑选了一些可运行在 Linux 平台下的 roguelike 游戏。假如你喜欢激烈、易上瘾的游戏,可以尝试这 13 款游戏。不要因它们原始的画质而退缩,一旦你沉浸其中,你将很快忘记画面的简陋。所有的这些都可以免费下载,并且几乎所有的游戏都是在开源协议下发行的。
+
+----------
+
+###Dungeon Crawl Stone Soup
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-Dungeon1.png)
+
+Dungeon Crawl Stone Soup 是一个开源的,单用户角色扮演类的 roguelike 游戏,玩家要在遍布危险而充满敌意的怪兽的地下城中进行探险和寻找宝藏,并在任务中拯救传说中的神秘 Zot 宝珠。
+
+Dungeon Crawl Stone Soup 是 Linley 开发的 Dungeon Crawl 游戏的延续。它是公开开发的,并邀请 Crawl 社区的人员来参与其中。
+
+Dungeon Crawl 有着超棒且深层次的战术游戏环节,创新的魔法和信仰系统,以及数量宏大的和你战斗的怪兽。Crawl 也是最难以攻陷的 roguelike 游戏之一。当你最终在游戏中通关,将胜利宣言张贴在 rec.games.roguelike.misc 时,你才会知道这有多么令人骄傲!
+
+特点包括:
+
+- 丰富多彩的、富含深层次战术的 roguelike 游戏;
+- 手绘地图;
+- 无数的金库;
+- 漂亮的界面;
+- 创新的魔法和信仰系统;
+- 各种神灵,角色,物品和聪明的怪兽;
+
+- 网站: [crawl.develz.org][1]
+- 开发者: Stone Soup 开发小组
+- 协议: Crawl General Public License
+- 版本号: 0.15.2
+
+----------
+
+###Dwarf Fortress
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-DwarfFortress.png)
+
+Dwarf Fortress 是一个单人魔幻游戏,与 NetHack 类似。你可以在一个随机生成的持久的世界中,控制一个矮人哨兵或一个冒险者。
+
+这个游戏的特色有:三种游戏模式(矮人要塞,冒险者,传说模式),一个独特的随机生成的世界(由地形,野生生物和传奇生物等组成), 阴森的战斗机制以及各种邪恶鱼群。
+
+特点包括:
+
+- 在这个世界里,你想玩多久都可以。可以经历许多次游戏,记录历史事件,对更改进行跟踪等;
+- 当你扮演的矮人在山群中寻找宝藏时,你可以对他们下达命令
+ - 用各种材料来手工制作珍宝、物品,并可以用贵重金属、宝石等来改进它们;
+ - 通过各种手段保护你自己,防御来自敌对文明的袭击;
+ - 支持贵族,他们会管理你的民众
+ - 让你的矮人高兴起来,了解他们工作和休闲时的想法;
+ - 不同的 Z 坐标可以使你在多个层级上建造你的堡垒。建立塔台或征服地下深处;
+ - 建立水闸来灌溉作物或用水淹没你的对手;
+- 扮演一个探险者并进行探索,为荣誉而战或复仇
+ - 与以前的游戏中的对手相遇;
+ - 在你经过的旅途中营救小城里的人们;
+ - 没有繁琐的情节,只需要探索;
+ - 无缝连接的漫游游戏世界-总共达到 197376 x 197376 平方 -可以在区域地图上更快速地穿行;
+ - 接受小镇或文明社会的领导所委托的任务;
+ - 可以找到你以前的角色,以一个新的角色带上他们来一场新的冒险,或者直接重新激活并使用他们;
+ - 通过 Z 轴使得你可以在各个地下城的不同层级间和结构间平滑的上下移动来和对手战斗;
+- 战斗模式是通过技巧、身体部位、搏斗、在不同区域间蓄势和躲避,体验流血、疼痛,恶心及其他感受;
+- 一个动态的天气模型跟踪风,湿度及空气流动,以创造冷暖气流锋面、风、暴风雨雪;
+- 超过 200 种岩石和矿物类型被引入到了游戏世界,它们被放置在合适的地理环境中;
+- 通过可更改的文本文件来添加生物,武器,植物,金属和其他对象;
+- 以 16 色(包括黑色)渲染的扩展 ASCII 字符集,以及 8 种背景颜色(包括黑色);
+
+- 网站: [www.bay12games.com/dwarves/][2]
+- 开发者: Tarn Adams
+- 协议: 免费软件
+- 版本号: 0.40.19
+
+----------
+
+###Ancient Domains of Mystery
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-ADOM.png)
+
+Ancient Domains of Mystery (ADOM) 是一个 rogue-like 游戏,从 1994 年至今一直在不断开发。
+
+它是一个包含复杂地下城的单用户游戏。你控制一个用种族、类别、属性、技巧和装备等描述的虚构角色。这个虚构角色正尝试着达到一个特定的目标(参考下面的介绍)并在一个困难的任务中取胜。为了完成任务,你必须在以前没有发现的隧道和地下城中探险,和丑陋的怪兽战斗,解开一系列遗忘的秘密,并找到宝藏。
+
+在游戏期间,你在每次游戏时随机生成的各层地下城中探索。你也可能遇到某个特定的关卡,其中有着特定的挑战或者围绕某个特定主题而生成。
+
+特点包括:
+
+- 拥有上百个地点的巨大游戏世界,例如城堡、随机生成的地下城、主题寺庙、墓地、古代遗迹、塔台和其他名胜;
+- 各种各样的种族(矮人、drakeling、雾精灵、hurthling、兽人、巨魔、ratling 等等)(LCTT注:种族信息可以参考[这里](http://ancardia.wikia.com/wiki/Race) 和丰富的职业(战士、 元素法师、 刺客、 混沌骑士,决斗士等等)带来无限的游戏乐趣;
+- 上百个怪兽和物品,其中的许多带有随机的增强特性;
+- 迫使你在对力量的欲望和对诅咒的恐惧之间进行权衡的腐败体系;
+- 法术、祈祷、思想技艺、炼金术、手工艺和更多;
+- 多样的任务和分支故事主线;
+- 许多完全不同的结局,可能改变现实本身。
+
+- 网站: [www.adom.de][3]
+- 开发者: Thomas Biskup
+- 协议: Postcardware
+- 版本号: 1.20 Prelease 20
+
+----------
+
+###Tales of Maj’Eyal (ToME)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-ToME.png)
+
+Tales of Maj’Eyal (ToME) (注:中文译名为 马基埃亚尔的传说) 是一个免费、开源的 roguelike 角色扮演游戏,包含特色的战术回合制战役和先进角色构建。它作为运行在 T-Engine 4.0 中的一个模块而被创造。
+
+现在处于王权世纪(Age of Ascendancy),在长达一万年的冲突痛苦和混乱之后,我们所知的世界终于进入了一个相对和平的时期。 “魔法大爆裂(Spellblaze)” 留下的影响已经大为减缓, 大地的伤痕也慢慢地开始愈合。在薪火世纪(Age of Pyre)之后,各个文明也纷纷开始重建家园。(注:翻译来源于 [这里](http://www.qiyun.org/zhuanti/majiaiyaerdechuanshuo.htm))
+
+特点包括:
+
+- 适合于那些没有 rogueline 体验的玩家;
+- 同时支持图形界面和 ASCII 模式;
+- 某些角色拥有多达 40 种的能力;
+- 天赋系统;
+- 战役引擎;
+- 在线的持久状态/成就追踪;
+- IRC 聊天客户端;
+- 可扩展,可修改;
+- 充满激情的音乐;
+- 可解锁新的种族,类别,起始点,游戏模式和特点等;
+
+- 网站: [te4.org][4]
+- 开发者: ToME 开发团队
+- 协议: GNU GPL v3.0
+- 版本号: 1.2.5
+
+----------
+
+###Cataclysm Dark Days Ahead
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Cataclysm.png)
+
+Cataclysm 是一个开源的 “后末世” roguelike 游戏,背景设定在由怪兽和僵尸带来的毁灭性的瘟疫后虚构的新英格兰(New England) 乡村。它是 Whale 开发的原有 Cataclysm 的继续,拓展了更多新的生物,建筑,游戏机制和其他特点。
+
+尽管有些人描述它为一个 “僵尸游戏”,但 Cataclysm 远比一个“僵尸游戏”包含更多内容。玩家要在一个由程序生成的严酷、持久的世界中艰难生存下去。在一个死寂的文明世界中搜寻剩下的食物和装备,或者假如你足够幸运,搞到一辆装满汽油的汽车逃离 Dodge --这个如地狱一般的地方。从僵尸到巨型昆虫或机器人杀手以及更加奇怪和致命的东西,你要通过战斗来击败它们或逃离,以及和那些想要抢夺你的东西的那些同你一样的人战斗。
+
+在许多方面上, Cataclysm 与大多数的 roguelike 游戏不同。它被设定在一个没有边界的三维世界里,而不是设定在一个垂直、线性的地下城中。这意味着相比于大多数的 roguel 游戏,探险将占一个更大的比重,而且这个游戏将具有更大的自由度。由于地图是如此的巨大,在每次游戏之间,它可以完全保持原样。假如你死了,并以一个新的角色开始,你的新游戏将会设定在同你最近呆过的游戏世界相同的世界里。同许多 roguelike 游戏一样,你可以获得先前角色的战利品;而与大多数 roguelike 不同的是,你也可以重新踏上先前角色的轨迹,并且对世界做出的任何戏剧性改变将会维持到你的下一次游戏。
+
+特点包括:
+
+- 详细的角色创建,提供了数量众多的特性来选择;
+- 防御模式,这是一个有着快节奏作战的休息模式;
+- Bionics;类似于在许多其他游戏里的魔法系统;
+- 基因突变, 有好的和坏的变化;
+- 无界的,完全随机的世界地图,可以在角色交替时保持不变;
+- 创造物品
+ - 新的制作方法可能需要通过练习或从书本中获得来磨练你的知识;
+- 逼真的火、烟和其他动态的地图特效;
+- 昼/夜循环,需要睡觉。假如你必须的话,可以使用咖啡因来保持更长时间的清醒,但这不健康;
+- 超过 300 种物品类型,包括众多的现实世界的枪支,药品和工具;
+ - 许多药品是上瘾的,并需要持续使用来避免负面效果;
+- 通过修补门、窗、建造陷阱和巩固你的家的基石来防止一个僵尸的突然造访;
+- 能够构建你自己的木屋,包括墙和屋顶;
+- 可以驾驶在“后末世”发现的汽车兜风;
+ - 这个可以根据你的需求来修改,或甚至你可以自己制造一辆;
+- 温度系统,太冷或太热都非常危险;
+- 初步支持贴片界面;
+- 根据选项生成世界,以及各种编辑方式;
+
+- 网站: [en.cataclysmdda.com][5]
+- 作者: Kevin Granade 及其他
+- 协议: Creative Commons Attribution-ShareAlike 3.0 Unported License
+- 版本号: 0.B
+
+----------
+
+###Goblin Hack
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-GoblinHack.png)
+
+Goblin Hack 是一个开源 roguelike 游戏,基于 OpenGL 的平滑滚动的ASCII 图形界面。这个游戏受 NetHack 外观的启发,但更加快速且使用更少的按键。
+
+Goblin Hack 有一个简洁的界面,在今天这个过度强调渲染的游戏世界中,似乎它对所有年龄段的玩家都有吸引力,并启发了这些玩家的想象力。
+
+在被投进一个随机的正在生成的地下城之前,玩家可以从几个角色类别中选择一个角色。
+
+特点包括:
+
+- 令人印象深刻的界面(相比于许多其他的 roguelike 游戏);
+- 简洁的界面;
+- 在被投进一个随机的正在生成的第一层地下城之前,玩家可以从几个角色类别中选择一个角色;
+- 手动保存游戏;
+
+- 网站: [goblinhack.sourceforge.net][6], [github.com/goblinhack/goblinhack][7]
+- 作者: Neil McGill
+- 协议: GNU GPL v2
+- 版本号: 1.19
+
+----------
+
+###SLASH'EM
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-SlashEM.png)
+
+Super Lotsa Added Stuff Hack - Extended Magic (SLASH'EM) 是一个角色扮演游戏,在其中你控制一个单独的角色。SLASH'EM 是 NetHack 的一个变种。它拥有一个和 Rogue、ADOM、Anghand 及 NetHack 相似的界面和游戏玩法。你通过键盘来控制角色的动作,以一个俯视的视角来查看这个世界。
+
+背景: Amulet of Yendor 已被偷走,不仅如此,偷走 amulet 的 Wizard of Yendor(坏蛋)似乎深藏于 Dungeons of Doom(危险的地方)。
+
+特点包括:
+
+- 提供额外的特色、怪兽和项目;
+- 新颖的特点包括僧人职业和类似推箱子的关卡;
+- 主地下城比在 NetHack 中的要大很多;
+
+- 网站: [www.slashem.org][8]
+- 开发者: Slash'EM 开发团队
+- 协议: MIT License, NetHack General Public License
+- 版本号: 0.0.7E7F3
+
+----------
+
+###NetHack
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-NetHack.jpg)
+
+NetHack 是一个极简,但又非常吸引人的具有地下城与龙风格的冒险游戏。“net”元素指的是它的发展已经根据网络进行了调整,“hack”元素指的是角色扮演游戏的一种类型,以乱砍、猛砍著称,着眼于战斗。
+
+在 NetHack 中,你扮演凶猛的战士、巫师或许多其他职业中的一种,一路战斗着,为你的神灵获取 Amulet of Yendor(可以说这是一个倒退!)。在这个过程中,你可能会遇到一个或两个 quantum mechanic(LCTT 译注:从[这里](http://nethack.wikia.com/wiki/Quantum_mechanic)得知,这指的是一种怪兽),或者可能遇到一个小型的太空舰队,抑或是 —— 假如你*足够*幸运会遇到 —— Ravenous Bugblatter Beast of Traal。(LCTT 译注:我参考了[这里](http://nethack.wikia.com/wiki/Douglas_Adams))。
+
+特点包括:
+
+- 45-50 个关卡, 其中的大多数随机生成;
+- 各种各样的物品:武器、盔甲、卷轴、药水、戒指、宝石和各种各样的工具,如钥匙和灯;
+- 祝福和诅咒;
+- 永久死亡: 若没有对当前的保存文件进行备份,失效的角色就找不回来了;
+- 界面:
+ - 文本模式;
+ - 图形化界面, 使用 X、Qt 工具集或 GNOME 库;
+
+- 网站: [www.nethack.org][9]
+- 开发者: NetHack 开发团队
+- 协议: NetHack 通用公共许可证
+- 版本号: 3.4.3
+
+----------
+
+###Ascii Sector
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-AsciiSector.png)
+
+Ascii Sector 是一个免费的太空战斗/探险/交易游戏,它基于经典的电脑游戏 `Wing Commander: Privateer`,后者由 Origine Systems 公司于 1993 年发布。
+
+在 Ascii Sector 中,刚开始你将驾驶一艘简易的飞船,然后可以通过接受任务或者贩卖物品来挣得足够多的钱以升级你的飞船或重新再买一艘。不管是在太空中,还是在地面上,抑或是在飞船上,你可以专注于致命的战斗;并且通过使用 Ascii Sector 的脚本语言,你还可以为游戏创造自己的任务或享受其他玩家创造的任务。
+
+特点包括:
+
+- 使用 ANSI 字符集生成图形界面;
+- 真正的深入到游戏中;
+- 提供各种基地,任务,商品和飞船;
+- 飞船型号包括: Broadsword, Centurion, Demon, Dralthi, Drayman, Galaxy, Gladius, Gothri, Kamekh, Nexus, Orion, Paradign, Stileto, Talon, Tarsus 和 Ulysses;
+- 四个象限: Alizarin, Crimson, Mauve, 和 Viridian;
+- 可下载的任务;
+- 任务可用脚本编辑;
+- Ascii Sector 任务语言,在 Ascii Sector 宇宙中创造你自己的故事;
+- 可以袭击或抢劫星球上的 NPC(非玩家控制角色);
+- 可以到处移动的持久性舰队、可以改变系统的控制、引来敌人的舰队、回基地修复或重建;
+- 可以登录系统受损的飞船;
+- 可下载高质量的音乐文件;
+
+- 网站: [www.asciisector.net][10]
+- 开发者: Christian Knudsen
+- 协议: 免费软件
+- 版本号: 0.7.1.4
+
+----------
+
+###Angband
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Angband.png)
+
+Angband 是一个免费、单用户、使用 ASCII 字符图形化的地下城探险游戏,在其中你将以一个冒险者的角色探索一个深深的地下城,与怪兽战斗,获得你能取得的最好武器,准备着与黑暗之主 Morgoth 的最后决战。从上世纪九十年代开始,它一直在持续地开发着。
+
+Angband 沿袭了 Rogue 和 NetHack 的风格路线。它由 Moria 和 Umoria 游戏衍生而来,基于 Rogue 回合制。它经常被描述为一个 “roguelike”游戏,因为它的外观和游戏体验与 Rogue 非常相似。很多游戏中的新生物、物品都来自 J.R.R Tolkien 的画作,尽管有些野兽直接来源于经典的神话、龙与地下城、Rolemaster,或 Angband 的原开发者的脑海中。
+
+特点包括:
+
+- 100 层地下城;
+- 随机产生的新关卡;
+- 可以选择成为人类、半精灵、精灵、霍比特人、地精、矮人,半兽人,半巨魔, 登丹人 ,高等精灵,或者狗头人;
+- 神器;
+- 施法;
+- 怪物;
+- 怪物坑;
+- 怪物巢穴;
+
+- 网站: [rephial.org][11]
+- 开发者: Angband 开发小组
+- 协议: GNU GPL v2
+- 版本号: 3.5.0
+
+----------
+
+###UnNetHack
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-UnNetHack.png)
+
+UnNetHack 是 NetHack 的一个分支版本。NetHack 最开始于 1987 年发行,并且许多游戏玩家认为它是计算机世界所能提供的最好游戏体验的游戏之一。
+
+特点包括:
+
+- 增加了许多针对 NetHack 的增强,如额外的怪兽、更多的关卡、许多新的元素、更多的危险、更具挑战性的游戏,以及最重要的,相比普通的 NetHack,它更具娱乐性;
+- 帮助新手开始的教程;
+
+- 网站: [sourceforge.net/apps/trac/unnethack][12]
+- 作者: Patric Mueller
+- 协议: Nethack General Public License
+- 版本号: 5.1.0
+
+----------
+
+###Hydra Slayer
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-HydraSlayer.png)
+
+Hydra Slayer 是一个专注于杀死九头蛇的开源 Roguelike 游戏。它受到了希腊神话、地下城探险、MathRL seven day roguelike ,和一些关于勇者杀死多头野兽的数字谜题等启发。
+
+特点如下:
+
+- 独特的游戏机制;
+- 混合希腊神话和数字迷宫的主题;
+- 传统的 roguelike ASCII 字符界面或贴片/3D 界面;
+- 5 种人物角色,具有极为不同的战术、力量及弱点;
+- 28 种敌人类型:
+ - 10 种基本的九头蛇类型(每种类型都有两种变种);
+ - 8 种特殊类型的敌人;
+ - 可用作战术工具的无害蘑菇;
+- 28 种装备(并包括材料和装备的大小/力量的变种);
+- 15 种武器材料;
+- 18 种非装备物品;
+- 3 种可供选择的地图;
+- 8 种关卡拓扑结构(包括莫比乌斯带和克莱因瓶);
+- 11 个关卡生成器;
+- 2 种结局;
+
+- 网站: [www.roguetemple.com/z/hydra][13]
+- 开发者: Zeno Rogue
+- 协议: GNU GPL v2
+- 版本号: 16.1
+
+----------
+
+###Brogue
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Brogue.png)
+
+Brogue 是一个开源的 Roguelike 游戏,它可以运行在 Mac OS X, Windows, Linux, iOS 和 Android 等平台下。
+
+Brogue 是 Rogue 的一个直系分支,后者是一个最早由 Michael Toy 和 Glenn Wichman 于 1980 年左右开发的地下城探险视频游戏。与其他受欢迎的现代 Roguelike 游戏不同, Brogue 追求简单而不是复杂性,同时尽力确保游戏的不同组成之间的联系是有趣且纷繁多彩。
+
+这个游戏的目标是取得深藏于地下第 26 层的 "Amulet of Yendor",再返回到地面逃出生天。对于那些技术娴熟且想进一步探险的人来说,位于 26 层之下的每层均包含 3 颗 lumenstone (流明石)(LCTT 译注:此处与我在[这里](http://brogue.wikia.com/wiki/Lumenstone)看到的有些出入),获得它们,将在胜利的基础上被授予额外的得分。
+
+Brogue 是一个富有挑战性的游戏,但玩起来非常有趣。尽量不要因游戏的高难度而灰心;试玩一段时间之后,你会发现它变得非常吸引人。
+
+特点如下:
+
+- 追求简单而非复杂;
+- 对用户友好;
+- 相比于 Rogue, Brogue 关卡生成更加复杂;
+- 移除了 XP 和 水平系统 ;
+- 陷阱,防护性物品;
+- 额外的怪兽类型和魔法物品;
+
+- 网站: [sites.google.com/site/broguegame][14]
+- 作者: Brian Walker
+- 协议: GNU Affero GPL
+- 版本号: 1.7.3
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/201412031524381/RoguelikeGames.html
+
+作者:Frazer Kline
+译者:[FSSlc](https://github.com/FSSlc)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://crawl.develz.org/
+[2]:http://www.bay12games.com/dwarves/index.html
+[3]:http://www.adom.de/
+[4]:http://te4.org/
+[5]:http://en.cataclysmdda.com/
+[6]:http://goblinhack.sourceforge.net/
+[7]:https://github.com/goblinhack/goblinhack
+[8]:http://www.slashem.org/
+[9]:http://www.nethack.org/
+[10]:http://www.asciisector.net/
+[11]:http://rephial.org/
+[12]:http://sourceforge.net/apps/trac/unnethack/
+[13]:http://www.roguetemple.com/z/hydra/
+[14]:lhttps://sites.google.com/site/broguegame/
\ No newline at end of file
diff --git a/published/20141226 Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM.md b/published/20141226 Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM.md
new file mode 100644
index 0000000000..a15c496eae
--- /dev/null
+++ b/published/20141226 Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM.md
@@ -0,0 +1,150 @@
+PHP 5.5 / PHP5.6 / PHP-NG 和 HHVM 哪个性能更好?
+================================================================================
+**长篇摘要:在一个基于Vagrant的本地环境中,可能是某个错误的原因,导致HHVM测试结果很差;在HHVM伙伴们协助下,该原因仍在研究中!然而,在DigitalOcean的一个4GB虚拟机中,HHVM甚至盖过了最新版的PHP-NG的风头!**
+
+![](https://kinsta.com/wp-content/uploads/2014/07/phphhvm.jpg)
+
+**结论:它们反映出HHVM的功效更佳(在JIT热启动后),虽然出于某些原因,我们不能在所有装备中获取这些结果。**
+
+如果你记得我们[在几个月前写过一篇文章][1],那时WordPress 3.9表明是完全支持HHVM的,当时是那么令我们欢欣鼓舞。最初的基准测试结果显示,HHVM要比驱动着当前所有PHP构建的Zend引擎高级得多。后来,问题就出来了:
+
+- HHVM只能以单个用户运行,这意味着(在共享环境中)安全性差了
+- HHVM在崩溃后不会自动重启,而不幸的是,它至今仍然经常发生
+- HHVM在启动时使用大量内存,虽然,它和同规模的PHP-FPM比较,单个请求的内存使用量更低
+
+很显然,你不得不根据你的(或者更确切地说是你的站点)的需求采取折中方案,然而这值得吗?切换到HHVM后,你期望获得多少性能改善呢?
+
+在Kinsta,我们真的想要测试所有新技术,并通常会优化这一切来为我们的客户提供最佳的环境。今天,我最终花了点时间来配置测试环境并进行了一些测试来对比两个不同的构建,一个是全新出炉的WordPress安装,另外一个则添加了大量内容的WooCommerce!为了计量脚本的运行时间,我只是简单地添加了
+
+
+
+这一行到footer.php的/body标记前。
+
+
+这里是配置环境的详情:
+
+- DigitalOcean 4GB 雨滴容器 (2 CPU核心, 4GB RAM)
+- Ubuntu 14.04, MariaDB10
+- 测试站点: 已导入演示内容的Munditia主题,WooCommerce 2.1.12 & WordPress 3.9.1
+- PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d)和HHVM 3.2.0 (版本是PHP 5.6.99-hhvm)
+
+**没有进一步大费周章,这些就是我的测试结果,数值越低越好,以秒为单位:**
+
+### DigitalOcean 4GB 雨滴容器 ###
+
+单位是秒,运行10次,越低越好
+
+这里有一个canvas的数据,发布的时候需要截一个图
+
+看起来似乎PHP-NG在它首次运行后就获得了峰值性能!HHVM需要更多几次重载,但是它们的性能貌似差不多!我等不及PHP-NG合并到开发主干了!:)
+
+一分钟命中数,越高越好。
+
+这里有一个canvas的数据,发布的时候需要截一个图
+
+**PHP 5.5.15禁用OpCache**
+
+- 执行: **236 hits**
+- 可用性: 100.00 %
+- 消耗时间: 59.03 secs
+- 传输的数据: 2.40 MB
+- 回应时间: 2.47 secs
+- 执行率: 4.00 trans/sec
+- 吞吐量: 0.04 MB/sec
+- 并发数: 9.87
+- 成功的执行: 236
+- 失败的执行: 0
+- 最长执行: 4.44
+- 最短执行: 0.48
+
+**PHP 5.5.15启用OpCache**
+
+- 执行: **441 hits**
+- 可用性: 100.00 %
+- 消耗时间: 59.55 secs
+- 传输的数据: 4.48 MB
+- 回应时间: 1.34 secs
+- 执行率: 7.41 trans/sec
+- 吞吐量: 0.08 MB/sec
+- 并发数: 9.91
+- 成功的执行: 441
+- 失败的执行: 0
+- 最长执行: 2.19
+- 最短执行: 0.64
+
+**PHP 5.6 RC2禁用OpCache**
+
+- 执行: **207 hits**
+- 可用性: 100.00 %
+- 消耗时间: 59.87 secs
+- 传输的数据: 2.10 MB
+- 回应时间: 2.80 secs
+- 执行率: 3.46 trans/sec
+- 吞吐量: 0.04 MB/sec
+- 并发数: 9.68
+- 成功的执行: 207
+- 失败的执行: 0
+- 最长执行: 3.65
+- 最短执行: 0.54
+
+**PHP 5.6 RC2启用OpCache**
+
+- 执行: **412 hits**
+- 可用性: 100.00 %
+- 消耗时间: 59.03 secs
+- 传输的数据: 4.18 MB
+- 回应时间: 1.42 secs
+- 执行率: 6.98 trans/sec
+- 吞吐量: 0.07 MB/sec
+- 并发数: 9.88
+- 成功的执行: 412
+- 失败的执行: 0
+- 最长执行: 1.93
+- 最短执行: 0.34
+
+**HHVM 3.2.0(版本是PHP 5.6.99-hhvm)**
+
+- 执行: **955 hits**
+- 可用性: 100.00 %
+- 消耗时间: 59.69 secs
+- 传输的数据: 9.18 MB
+- 回应时间: 0.62 secs
+- 执行率: 16.00 trans/sec
+- 吞吐量: 0.15 MB/sec
+- 并发数: 9.94
+- 成功的执行: 955
+- 失败的执行: 0
+- 最长执行: 0.85
+- 最短执行: 0.23
+
+**PHP-NG启用OpCache(构建: Jul 29 2014)**
+
+- 执行: **849 hits**
+- 可用性: 100.00 %
+- 消耗时间: 59.88 secs
+- 传输的数据: 8.63 MB
+- 回应时间: 0.70 secs
+- 执行率: 14.18 trans/sec
+- 吞吐量: 0.14 MB/sec
+- 并发数: 9.94
+- 成功的执行: 849
+- 失败的执行: 0
+- 最长执行: 1.06
+- 最短执行: 0.13
+
+
+**注意:这里节略了前一次的测试结果(有误),如感兴趣请访问原文查看。**
+
+
+--------------------------------------------------------------------------------
+
+via: https://kinsta.com/blog/real-world-wordpress-benchmarks-with-php5-5-php5-6-php-ng-and-hhvm/
+
+作者:[Mark Gavalda][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://kinsta.com/blog/author/kinstadmin/
+[1]:https://kinsta.com/blog/hhvm-and-wordpress/
diff --git a/published/20150119 How to Install Cherokee Lightweight Web Server on Ubuntu 14.04.md b/published/20150119 How to Install Cherokee Lightweight Web Server on Ubuntu 14.04.md
new file mode 100644
index 0000000000..160a8d62f9
--- /dev/null
+++ b/published/20150119 How to Install Cherokee Lightweight Web Server on Ubuntu 14.04.md
@@ -0,0 +1,83 @@
+如何在Ubuntu 14.04上安装轻量级web服务器Cherokee
+================================================================================
+**Cherokee** 是一个免费,开源,高性能轻量级的全功能web服务器,支持大部分主流操作系统(Linux、 Mac OS X、 Solaris 和 BSD)。它支持TLS/SSL、FastCGI、 SCGI、 PHP、 uWSGI、 SSI、 CGI、 LDAP、 HTTP代理、 视频流处理、 内容缓存、 流量控制、 虚拟主机、Apache兼容的日志文件,以及负载均衡等功能。
+
+今天我们介绍一下怎样在Ubuntu Server 14.04 LTS安装和配置轻量级的web服务器Cherokee,只需要注意修改软件源列表,同样适用于Ubuntu12.04,12.10和13.04。
+
+在Ubuntu Server上逐步安装和配置Cherokee
+
+### 1. 更新Ubuntu软件包索引 ###
+
+首先登陆Ubuntu Server,执行以下命令,更新Ubuntu Server的软件源并安装可用的更新。
+
+ sudo apt-get update
+
+ sudo apt-get upgrade
+
+### 2. 加入 PPA ###
+
+通过运行以下命令增加Cherokee的PPA
+
+ sudo add-apt-repository ppa:cherokee-webserver
+
+ sudo apt-get update
+
+对于运行14.04版本的服务器还需要执行以下步骤
+
+ cd /etc/apt/sources.list.d
+
+ nano cherokee-webserver-ppa-trusty.list
+
+用`deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu saucy main` 替换 `deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu trusty main`
+
+**再次运行命令:**
+
+ sudo apt-get update
+
+### 3. 使用apt-get安装Cherokee ###
+
+使用如下命令安装Cherokee和SSL模块
+
+ sudo apt-get install cherokee cherokee-admin cherokee-doc libcherokee-mod-libssl libcherokee-mod-streaming libcherokee-mod-rrd
+
+### 4. 配置Cherokee ###
+
+重启Cherokee服务:
+
+ sudo service cherokee start
+
+使用Cherokee最大的好处就是能通过一个简单易用的web界面 cherokee-admin 来管理所有的配置选项。推荐通过浏览器来管理Cherokee。使用如下命令启动cherokee-admin
+
+ sudo cherokee-admin
+
+**注意: cherokee-admin 会显示用户名,一次性密码和web管理界面地址。**
+
+**请记录下这个一次性密码,登录到管理界面时需要它。**
+
+默认情况下,只能通过localhost访问Cherokee-admin,如果需要通过其它网络地址来访问,可以使用‘**-b**’参数。如果不指定任何IP地址,Cherokee-admin会自动监听所有网络端口。然后就可以通过网络访问Cherokee-admin
+
+ sudo cherokee-admin -b
+
+通过指定IP地址访问Cherokee-admin
+
+ sudo cherokee-admin -b 192.168.1.102
+
+### 5. 浏览cherokee-admin面板 ###
+
+在你喜欢的浏览器中输入地址`http://主机名或 IP 地址:9090/`就可以进入控制面板了。例如我的是http://127.0.0.1:9090/,在浏览器中显示如下图
+
+![cherokee-admin-panel](http://blog.linoxide.com/wp-content/uploads/2014/12/cherokee-admin.png)
+
+好了,到这里我们已经成功地在Ubuntu Server上安装和配置了Cherokee。
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/ubuntu-how-to/install-cherokee-lightweight-web-server-ubuntu-14-04/
+
+作者:[Arun Pyasi][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
diff --git a/translated/talk/20150122 How are C data types “supported directly by most computers”.md b/published/20150122 How are C data types “supported directly by most computers”.md
similarity index 68%
rename from translated/talk/20150122 How are C data types “supported directly by most computers”.md
rename to published/20150122 How are C data types “supported directly by most computers”.md
index d204928ad6..f57bd9ac7f 100644
--- a/translated/talk/20150122 How are C data types “supported directly by most computers”.md
+++ b/published/20150122 How are C data types “supported directly by most computers”.md
@@ -1,15 +1,15 @@
C语言数据类型是如何被大多数计算机系统所支持?
----------
+========================
-#问题:
+###问题:
-在读K&R版的*The C Programming Language*一书时,我在[介绍,第3页]看到这样一条说明:
+在读K&R版的*The C Programming Language*一书时,我在[介绍,第3页]看到这样一条说明:
->因为C语言提供的数据类型和控制结构可以直接被大部分计算机系统所支持,所以在实现自包含程序时所需要的运行库文件一般很小。
+>**因为C语言提供的数据类型和控制结构可以直接被大部分计算机系统所支持,所以在实现自包含程序时所需要的运行库文件一般很小。**
-这段黑体说明了什么?能找到一个例子来说明C语言中的某种数据类型或控制结构并不能被一种计算机系统所支持呢?
+这段黑体说明了什么?能否找到一个例子来说明C语言中的某种数据类型或控制结构不被某种计算机系统直接支持呢?
-#回答:
+###回答:
事实上,C语言中确实有不被直接支持的数据类型。
@@ -31,13 +31,13 @@ return _float_add(x, y);
另一个常见的例子是64位整型数(C语言标准中'long long'类型是1999年之后才出现的),这种类型在32位系统上也不能直接使用。古董级的SPARC系统则不支持整型乘法,所以在运行时必须提供乘法的实现。当然,还有一些其它例子。
-##其它语言
+####其它语言
相比起来,其它编程语言有更加复杂的基本类型。
-比如,Lisp中的symbol需要大量的运行时实现支持,就像Lua中的tables、Python中的strings、Fortran中的arrays,等等。在C语言中等价的类型通常要么不属于标准库(C语言没有标准symbols或tables),要么更加简单,而且并不需要那么多的运行时支持(C语言中的array基本上就是指针,以NULL结尾的字符串实现起来也很简单)。
+比如,Lisp中的symbol需要大量的运行时实现支持,就像Lua中的table、Python中的string、Fortran中的array,等等。在C语言中等价的类型通常要么不属于标准库(C语言没有标准symbol或table),要么更加简单,而且并不需要那么多的运行时支持(C语言中的array基本上就是指针,以NULL结尾的字符串实现起来也很简单)。
-##控制结构
+####控制结构
异常处理是C语言中没有的一种控制结构。非局部的退出只有'setjmp()'和'longjmp()'两种,只能提供保存和恢复某些部分的处理器状态。相比之下,C++运行时环境必须先遍历函数调用栈,然后调用析构函数和异常处理函数。
@@ -46,7 +46,7 @@ via:[stackoverflow](http://stackoverflow.com/questions/27977522/how-are-c-data-t
作者:[Dietrich Epp][a]
译者:[KayGuoWhu](https://github.com/KayGuoWhu)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150202 tespeed - Python Tool To Test Your Internet Speed.md b/published/20150202 tespeed - Python Tool To Test Your Internet Speed.md
similarity index 74%
rename from translated/tech/20150202 tespeed - Python Tool To Test Your Internet Speed.md
rename to published/20150202 tespeed - Python Tool To Test Your Internet Speed.md
index 99bfab9842..021eff9c2a 100644
--- a/translated/tech/20150202 tespeed - Python Tool To Test Your Internet Speed.md
+++ b/published/20150202 tespeed - Python Tool To Test Your Internet Speed.md
@@ -1,12 +1,12 @@
tespeed - 测试网速的Python工具
================================================================================
-许多电脑呆子知道可以用**speedtest.net**测试网速,但是这个不能在测试中给你足够的控制。Linux用户喜欢在终端中输入命令来完成任务,至少对我是这样的。
+许多电脑呆子知道可以用**speedtest.net**测试网速,但是这个不能在测试中给你足够的控制。Linux用户喜欢在终端中输入命令来完成任务,至少我就是这样的。
-tespeed是一款有很多特性的python工具,可以在终端在测试网速。根据文档,它利用了speedtest.net的服务器,但是用户可以手动指定。
+tespeed是一款有很多特性的python工具,可以在终端在测试网速。根据文档说明,它利用了speedtest.net的服务器,但是用户可以手动指定。
-最初作者用php语言写了tespeed工具,并且证明了ISP提供的网络远低于它广告中所说的那样。但是事情并不是一直如它们想的那样,因此作者移植他的php脚本到python中并且他的工具在github中已经有180个star了。
+最初作者用php语言写了tespeed工具,并且证明了ISP提供的网络远低于它广告中所说的那样。但是事情并不是一直如他们想的那样,因此作者移植他的php脚本到python中,并且他的工具在github中已经有180个star了。
-这意味着**alot**。
+It means **alot**。
### 如何在linux中测试tespeed ###
@@ -23,11 +23,11 @@ tespeed是一款有很多特性的python工具,可以在终端在测试网速
wget http://sourceforge.net/projects/socksipy/files/socksipy/SocksiPy%201.00/SocksiPy.zip/
-下载完成后 解压**SocksiPy.zip**病运行下面的命令来克隆tespeed仓库到你本地机器中。
+下载完成后 解压**SocksiPy.zip**并运行下面的命令来克隆tespeed仓库到你本地机器中。
git clone https://github.com/Janhouse/tespeed.git
-接着把SocksiPy文件夹放到你克隆下来的tespeed项目中。现在我们要像截图那样在SocksPy中的**__init__.py**下面创建一个空文件。
+接着把SocksiPy文件夹放到你克隆下来的tespeed项目中。现在我们要像截图那样在SocksiPy中的创建一个叫**__init__.py**的空文件。
![simple trick to make tespeed work](http://blog.linoxide.com/wp-content/uploads/2015/01/tespeed1.png)
@@ -39,9 +39,9 @@ tespeed是一款有很多特性的python工具,可以在终端在测试网速
![testing download and upload speed with tespeed python application](http://blog.linoxide.com/wp-content/uploads/2015/01/tespeed2.png)
-在tespeed中有很多选项,如**-ls**来现实服务器,**-p**来指定代理服务器, **-s**来阻止调试(STDERR)输出, 还有很多我们会在本教程中探索。
+在tespeed中有很多选项,如**-ls**来列出服务器,**-p**来指定代理服务器, **-s**来阻止调试(STDERR)输出, 还有很多我们会在本教程中探索。
-如果你想要结果现实成MB,你可以在**python tespeed.py** 后面接上选项 **-mib**。
+如果你想要结果显示成MB,你可以在**python tespeed.py** 后面接上选项 **-mib**。
python tespeed.py -mib
@@ -61,7 +61,7 @@ tespeed是一款有很多特性的python工具,可以在终端在测试网速
### 总结 ###
-=tespeed的确是一款帮助用户在终端中测试上传和下载速度的高性能python脚本。它支持很多的选项并且你可以指定列表中你想使用的服务器。继续使用tespeed并在留言区写下你们的体验吧。
+tespeed的确是一款帮助用户在终端中测试上传和下载速度的高性能python脚本。它支持很多的选项并且你可以指定列表中你想使用的服务器。继续使用tespeed并在留言区写下你们的体验吧。
--------------------------------------------------------------------------------
@@ -69,7 +69,7 @@ via: http://linoxide.com/tools/tespeed-python-tool-test-internet-speed/
作者:[Oltjano Terpollari][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150203 How To Install Linux-dash Web Based Monitoring System In CentOS or RHEL.md b/published/20150203 How To Install Linux-dash Web Based Monitoring System In CentOS or RHEL.md
similarity index 75%
rename from translated/tech/20150203 How To Install Linux-dash Web Based Monitoring System In CentOS or RHEL.md
rename to published/20150203 How To Install Linux-dash Web Based Monitoring System In CentOS or RHEL.md
index 2c83a1b808..72b79c1c96 100644
--- a/translated/tech/20150203 How To Install Linux-dash Web Based Monitoring System In CentOS or RHEL.md
+++ b/published/20150203 How To Install Linux-dash Web Based Monitoring System In CentOS or RHEL.md
@@ -1,13 +1,13 @@
-如何在CentOS/RHEL中安装机遇Web监控的Linux-dash
+如何在CentOS/RHEL中安装基于Web的监控系统 linux-dash
================================================================================
-**Linux-dash**是一款为Linux设计的基于web的轻量级监控面板。这个程序会显示实时时间、不同的系统属性,比如CPU负载、RAM使用率、磁盘使用率、网速、网络连接、RX/TX带宽、登录用户、运行的进程等等。它不会存储长期的统计。因为它没有后端数据库。
+**Linux-dash**是一款为Linux设计的基于web的轻量级监控面板。这个程序会实时显示各种不同的系统属性,比如CPU负载、RAM使用率、磁盘使用率、网速、网络连接、RX/TX带宽、登录用户、运行的进程等等。它不会存储长期的统计。因为它没有后端数据库。
-本篇文章将会向你展示如何安装和设置Linux dash,这里的web服务器是**Nginx**.
+本篇文章将会向你展示如何安装和设置Linux dash,这里所使用的web服务器是**Nginx**.
### 安装 ###
首先我们要启用[EPEL 仓库][1]。
-
+
**接下来,我们需要用下面的命令安装nginx。**
sudo yum install nginx
@@ -59,7 +59,7 @@
sudo vim /etc/php-fpm.d/www.conf
-**确保设置了“listn”,“user”和“group”字段。你可以保留下面的配置不变。**
+**确保设置了如下的“listen”,“user”和“group”字段。你可以保留其它的配置不变。**
. . .
listen = /var/run/php-fpm.sock
@@ -73,25 +73,25 @@
sudo cp -r linux-dash/ /var/www/
sudo chown -R nginx:nginx /var/www
-**接下来,重启 Nginx和php-fpm**
+**接下来,重启 Nginx和php-fpm。**
sudo service nginx restart
sudo service php-fpm restart
-**设置nginx和php-fpm开机自动启动**
+**设置nginx和php-fpm开机自动启动。**
sudo chkconfig nginx on
sudo chkconfig php-fpm on
-在本例中,我们使用TCP端口8080配置linux-dash。因此确保防火墙没有阻止8080 TCP端口。
+在本例中,我们使用TCP端口8080配置linux-dash。因此需确保防火墙没有阻止8080 TCP端口。
### 用linux-dash监控Linux服务器 ###
-你现在可以在浏览器中输入**http://:8080/linux-dash/**来访问Linux-dash。
+你现在可以在浏览器中输入**http://\:8080/linux-dash/**来访问Linux-dash。
web面板包含了不同的组件,每个都显示独特的系统属性。你可以自定义web面板的外观也可以关闭一些组件。
-![](http://180016988.r.cdn77.net/wp-content/uploads/2015/01/Lin-dash.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/01/Lin-dash.png)
美好的一天!
@@ -104,9 +104,9 @@ via: http://www.unixmen.com/install-linux-dash-web-based-monitoring-system-cento
作者:[Jijo][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/jijo/
-[1]:http://www.unixmen.com/install-epel-repository-centos-rhel-7/
+[1]:http://linux.cn/article-2324-1.html
diff --git a/translated/tech/20150209 Fix Cannot Empty Trash In Ubuntu 14.04 [Quick Tip].md b/published/20150209 Fix Cannot Empty Trash In Ubuntu 14.04 [Quick Tip].md
similarity index 71%
rename from translated/tech/20150209 Fix Cannot Empty Trash In Ubuntu 14.04 [Quick Tip].md
rename to published/20150209 Fix Cannot Empty Trash In Ubuntu 14.04 [Quick Tip].md
index 17349f2330..dcc6cb31c4 100644
--- a/translated/tech/20150209 Fix Cannot Empty Trash In Ubuntu 14.04 [Quick Tip].md
+++ b/published/20150209 Fix Cannot Empty Trash In Ubuntu 14.04 [Quick Tip].md
@@ -1,10 +1,10 @@
-在Ubuntu 14.04 中修复无法修复回收站[快速提示]
+在Ubuntu 14.04 中修复无法清空回收站的问题
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/02/empty-the-trash.jpg)
### 问题 ###
-**无法在Ubuntu 14.04中清空回收站的问题**。我右键回收站图标并选择清空回收站,就像我一直做的那样。我看到进度条显示删除文件中过了一段时间。但是它停止了,并且Nautilus文件管理也停止了。我不得不在终端中停止了它。
+**我遇到了无法在Ubuntu 14.04中清空回收站的问题**。我右键回收站图标并选择清空回收站,就像我一直做的那样。我看到进度条显示删除文件中过了一段时间。但是它停止了,并且Nautilus文件管理也停止了。我不得不在终端中停止了它。
但是这很痛苦因为文件还在垃圾箱中。并且我反复尝试清空后窗口都冻结了。
@@ -18,7 +18,7 @@
这里注意你的输入。你使用超级管理员权限来运行删除命令。我相信你不会删除其他文件或者目录。
-上面的命令会删除回收站目录下的所有文件。换句话说,这是用命令清空垃圾箱。使用玩上面的命令后,你会看到垃圾箱已经清空了。如果你删除了所有文件,你不应该在看到Nautilus崩溃的问题了。
+上面的命令会删除回收站目录下的所有文件。换句话说,这是用命令清空垃圾箱。使用完上面的命令后,你会看到垃圾箱已经清空了。如果你清空了所有文件,你不应该在看到Nautilus崩溃的问题了。
### 对你有用么? ###
@@ -30,7 +30,7 @@ via: http://itsfoss.com/fix-empty-trash-ubuntu/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150209 Linux FAQs with Answers--How to fix 'fatal error--x264.h--No such file or directory' on Linux.md b/published/20150209 Linux FAQs with Answers--How to fix 'fatal error--x264.h--No such file or directory' on Linux.md
similarity index 96%
rename from translated/tech/20150209 Linux FAQs with Answers--How to fix 'fatal error--x264.h--No such file or directory' on Linux.md
rename to published/20150209 Linux FAQs with Answers--How to fix 'fatal error--x264.h--No such file or directory' on Linux.md
index 2ecacac6b1..57f8983d89 100644
--- a/translated/tech/20150209 Linux FAQs with Answers--How to fix 'fatal error--x264.h--No such file or directory' on Linux.md
+++ b/published/20150209 Linux FAQs with Answers--How to fix 'fatal error--x264.h--No such file or directory' on Linux.md
@@ -8,7 +8,7 @@ Linux 有问必答:如何在Linux 中修复“fatal error: x264.h: No such fil
[x264][1]是GNU GPL授权的H.264/MPEG-4 AVC编码库。x264库被广泛用于视频编码/转码程序比如Avidemux、[FFmpeg][2]、 [HandBrake][3]、 OpenShot、 MEncode等等。
-要解决这个问题,你需要安装x264的开发库文件。你可以这么做。
+要解决这个问题,你需要安装x264的开发库文件。你可以如下做。
###在 Debian、 Ubuntu 或者 Linux Mint 中安装像x264库和开发文件 ###
@@ -24,7 +24,7 @@ RPM Fusion设置完成后,你可以使用下面的命令安装x264开发文件
$ sudo yum --enablerepo=rpmfusion-free install x264-devel
-注意RPM Fusion仓库在CentOS 7中还没有,因此上面的方法在CentOS 7中还不可行。万一是CentOS 7 ,你可以从源码编译并安装x264,下面会解释的。
+注意RPM Fusion仓库在CentOS 7中还没有,因此上面的方法在CentOS 7中还不可行。万一是CentOS 7 ,你可以从源码编译并安装x264,下面会解释的。
### 在Debian、 Ubuntu 或者 Linux Mint中源码编译x264库 ###
@@ -81,7 +81,7 @@ x264库将会安装在/usr/local/lib。要让其他程序可以使用这个库
via: http://ask.xmodulo.com/fatal-error-x264-h-no-such-file-or-directory.html
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150211 Install Mumble in Ubuntu an Opensource VoIP Apps.md b/published/20150211 Install Mumble in Ubuntu an Opensource VoIP Apps.md
similarity index 67%
rename from translated/tech/20150211 Install Mumble in Ubuntu an Opensource VoIP Apps.md
rename to published/20150211 Install Mumble in Ubuntu an Opensource VoIP Apps.md
index 762e363beb..fdaaef9e70 100644
--- a/translated/tech/20150211 Install Mumble in Ubuntu an Opensource VoIP Apps.md
+++ b/published/20150211 Install Mumble in Ubuntu an Opensource VoIP Apps.md
@@ -1,8 +1,8 @@
-Ubuntu上的一个开源VoIP应用——Mumble
+游戏玩家的福音:在 Ubuntu 上安装开源 VoIP 应用 Mumble
================================================================================
-Mumble是一个自由开源的VoIP应用,遵守New BSD License,主要面向的用户群体是玩家。运行起来类似于TeamSpeak和Ventrilo,用户通过连接到同一个服务器来实现相互通讯。
+Mumble是一个自由开源的VoIP应用,在新的 BSD 许可证下发布,主要面向的用户群体是游戏玩家。运行起来类似于TeamSpeak和Ventrilo,用户通过连接到同一个服务器来实现相互通讯。
-Mumble提供了如下的一些特性:
+Mumble提供了如下的漂亮特性:
- 低延迟,这点对游戏相当重要
- 提供游戏中的可视插件,通过它你可以知道是谁正在和你通话并定位他们的位置
@@ -30,11 +30,11 @@ Mumble提供了如下的一些特性:
![mumble q1](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-q1.jpg)
-选择“是”开机自动启动mumble,接着它会询问你是否运行高性能模式以保持低延迟,为了让它保持最佳性能这是个不错的主意。
+选择“是”让服务器开机时自动启动mumble,接着它会询问你是否运行高优先级模式以保持低延迟,为了让它保持最佳性能这是个不错的主意。
![mumble q2](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-q2.jpg)
-接着为你刚安装好的mumble服务端设置最高权限用户的密码,记住密码它会在登录时用到。
+接着为你刚安装好的mumble服务端设管理员用户的密码,记住这个密码,它会在登录时用到。
![mumble q3](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-q3.jpg)
@@ -44,7 +44,7 @@ Mumble提供了如下的一些特性:
$ sudo apt-get install mumble
-第一次运行mumble时,导向将会帮助你配置音频的输入输出,使其能在客户端上保持最好的效果。第一次同样也会询问你要使用的是什么声音设备和麦克风:
+第一次运行mumble时,配置向导将会帮助你配置音频的输入输出,使其能在客户端上保持最好的效果。第一次同样也会询问你要使用的是什么声音设备和麦克风:
![mumble client 1](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-client-1.jpg)
@@ -52,15 +52,15 @@ Mumble提供了如下的一些特性:
![mumble client 2](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-client-2.jpg)
-因为mumble帮你加密所有的通讯内容所以它会征询你创建证书:
+因为mumble会帮你加密所有的通讯内容所以它会要求你创建证书:
![mumble client 3](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-client-3.jpg)
-完成导向后你就能添加第一个服务器,连接对话框如下图所示:
+完成配置向导后你就能添加第一个服务器,连接对话框如下图所示:
![mumble add server](http://blog.linoxide.com/wp-content/uploads/2015/01/mumble-add-server.jpg)
-首先输入一个标签,名字任意因为那只不过是为了记住服务器的,然后输入服务器的地址和端口,最后使用“SuperUser”作为用户名而密码则是你配置mumble服务器端时输入的密码。
+首先输入一个标签,名字任意因为那只不过是为了记住服务器的,然后输入服务器的地址和端口,最后使用“SuperUser”作为用户名,而密码则是你配置mumble服务器端时输入的密码。
现在你可以连接到服务器了,在联网玩游戏或与你好友、队友聊天开黑时享受这些功能给你带来的乐趣吧!
@@ -69,8 +69,8 @@ Mumble提供了如下的一些特性:
via: http://linoxide.com/ubuntu-how-to/install-mumble-ubuntu/
作者:[Adrian Dinu][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[martin2011qi](https://github.com/martin2011qi)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150211 Simple Steps Migration From MySQL To MariaDB On Linux.md b/published/20150211 Simple Steps Migration From MySQL To MariaDB On Linux.md
similarity index 84%
rename from translated/tech/20150211 Simple Steps Migration From MySQL To MariaDB On Linux.md
rename to published/20150211 Simple Steps Migration From MySQL To MariaDB On Linux.md
index e21084faeb..a778240683 100644
--- a/translated/tech/20150211 Simple Steps Migration From MySQL To MariaDB On Linux.md
+++ b/published/20150211 Simple Steps Migration From MySQL To MariaDB On Linux.md
@@ -15,13 +15,13 @@ MariaDB是MySQL社区开发的分支,也是一个增强型的替代品。它
现在,让我们迁移到MariaDB吧!
-**以测试为目的**让我们创建一个叫**linoxidedb**的示例数据库。
+让我们创建一个叫**linoxidedb**的**用于测试的**示例数据库。
使用以下命令用root账户登陆MySQL:
$ mysql -u root -p
-输入mysql root用户的密码后,你将进入**mysql的命令行**
+输入mysql 的 root 用户密码后,你将进入**mysql的命令行**
**创建测试数据库:**
@@ -54,7 +54,8 @@ MariaDB是MySQL社区开发的分支,也是一个增强型的替代品。它
$ mysqldump: Error: Binlogging on server not active
![](http://blog.linoxide.com/wp-content/uploads/2015/01/mysqldump-error.png)
-mysqldump error
+
+*mysqldump error*
为了修复这个错误,我们需要对**my.cnf**文件做一些小改动。
@@ -68,7 +69,7 @@ mysqldump error
![configuring my.cnf](http://blog.linoxide.com/wp-content/uploads/2015/01/configuring-my.cnf_.png)
-好了在保存并关闭文件后,我们需要重启一下mysql服务。运行以下命令重启:
+好了,在保存并关闭文件后,我们需要重启一下mysql服务。运行以下命令重启:
$ sudo /etc/init.d/mysql restart
@@ -77,17 +78,18 @@ mysqldump error
$ mysqldump --all-databases --user=root --password --master-data > backupdatabase.sql
![](http://blog.linoxide.com/wp-content/uploads/2015/01/crearing-bakup-file.png)
-dumping databases
+
+*dumping databases*
上面的命令将会备份所有的数据库,把它们存储在当前目录下的**backupdatabase.sql**文件中。
### 2. 卸载MySQL ###
-首先,我们得把**my.cnt文件挪到安全的地方去**。
+首先,我们得把**my.cnf文件挪到安全的地方去**。
-**注**:my.cnf文件将不会在你卸载MySQL包的时候被删除,我们这样做只是以防万一。在MariaDB安装时,它会询问我们是保持现存的my.cnf文件,还是使用包中自带的版本(即新my.cnf文件)。
+**注**:在你卸载MySQL包的时候不会自动删除my.cnf文件,我们这样做只是以防万一。在MariaDB安装时,它会询问我们是保持现存的my.cnf文件,还是使用包中自带的版本(即新my.cnf文件)。
-在shell或终端中输入如下命令来备份my.cnt文件:
+在shell或终端中输入如下命令来备份my.cnf文件:
$ sudo cp /etc/mysql/my.cnf my.cnf.bak
@@ -111,7 +113,7 @@ dumping databases
![adding mariadb repo](http://blog.linoxide.com/wp-content/uploads/2015/01/adding-repo-mariadb.png)
-键值导入并且添加完仓库后你就可以用以下命令安装MariaDB了:
+键值导入并且添加完仓库后,你就可以用以下命令安装MariaDB了:
$ sudo apt-get update
$ sudo apt-get install mariadb-server
@@ -120,7 +122,7 @@ dumping databases
![my.conf configuration prompt](http://blog.linoxide.com/wp-content/uploads/2015/01/my.conf-configuration-prompt.png)
-我们应该还没忘记在MariaDB安装时,它会问你是使用现有的my.cnf文件,还是包中自带的版本。你可以使用以前的my.cnf也可以用包中自带的。即使你想直接使用新的my.cnf文件,你依然可以晚点将以前的备份内容还原进去(别忘了我们已经将它复制到安全的地方那个去了)。所以,我们直接选择了默认的选项“N”。如果需要安装其他版本,请参考[MariaDB官方仓库][2]。
+我们应该还没忘记在MariaDB安装时,它会问你是使用现有的my.cnf文件,还是包中自带的版本。你可以使用以前的my.cnf也可以用包中自带的。即使你想直接使用新的my.cnf文件,你依然可以晚点时候将以前的备份内容还原进去(别忘了我们已经将它复制到安全的地方了)。所以,我们直接选择了默认的选项“N”。如果需要安装其他版本,请参考[MariaDB官方仓库][2]。
### 4. 恢复配置文件 ###
@@ -136,7 +138,7 @@ dumping databases
就这样,我们已成功将之前的数据库导入了进来。
-来,让我们登陆一下mysql命令行,检查一下数据库是否真的已经导入了:
+来,让我们登录一下mysql命令行,检查一下数据库是否真的已经导入了:
$ mysql -u root -p
@@ -152,15 +154,15 @@ dumping databases
### 总结 ###
-最后,我们已经成功地从MySQL迁移到了MariaDB数据库管理系统。MariaDB比MySQL好,虽然在性能方面MySQL还是比它更快,但是MariaDB的优点在于它额外的特性与支持的许可证。这能够确保它自由开源(FOSS),并永久自由开源,相比之下MySQL还有许多额外的插件,有些不能自由使用代码、有些没有公开的开发进程、有些在不久的将来会变的不再自由开源。如果你有任何的问题、评论、反馈给我们,不要犹豫直接在评论区留下你的看法。谢谢观看本教程,希望那你能喜欢MariaDB。
+最后,我们已经成功地从MySQL迁移到了MariaDB数据库管理系统。MariaDB比MySQL好,虽然在性能方面MySQL还是比它更快,但是MariaDB的优点在于它额外的特性与支持的许可证。这能够确保它自由开源(FOSS),并永久自由开源,相比之下MySQL还有许多额外的插件,有些不能自由使用代码、有些没有公开的开发进程、有些在不久的将来会变的不再自由开源。如果你有任何的问题、评论、反馈给我们,不要犹豫直接在评论区留下你的看法。谢谢观看本教程,希望你能喜欢MariaDB。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/migrate-mysql-mariadb-linux/
作者:[Arun Pyasi][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[martin2011qi](https://github.com/martin2011qi)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150215 How to share files between computers over network with btsync.md b/published/20150215 How to share files between computers over network with btsync.md
similarity index 62%
rename from translated/tech/20150215 How to share files between computers over network with btsync.md
rename to published/20150215 How to share files between computers over network with btsync.md
index c6cd7051c4..ac280d2ffd 100644
--- a/translated/tech/20150215 How to share files between computers over network with btsync.md
+++ b/published/20150215 How to share files between computers over network with btsync.md
@@ -1,10 +1,10 @@
-如何使用btsync通过网络实现电脑间文件共享
+如何使用btsync通过网络实现计算机间的文件共享
================================================================================
-如果你是使用各式设备在网上工作的这类人,我相信你肯定需要一个在不同设备间同步文件及目录的方法,至少是非常渴望有这种功能。
+如果你是那种使用各式设备在网上工作的人,我相信你肯定需要一个在不同设备间同步文件及目录的方法,至少是非常渴望有这种功能。
-BitTorrent Sync简称btsync,是一个基于BitTorrent(著名P2P文件分享协议)的免费跨平台同步工具。与传统BitTorrent客户端不同的是btsync用于传输加密和访问授权的是不同操作系统及设备中自动生成的键。
+BitTorrent Sync简称btsync,是一个基于BitTorrent(著名P2P文件分享协议)的免费跨平台同步工具。与传统BitTorrent客户端不同的是,btsync可以在不同操作系统及设备之间加密数据传输和基于自动生成的密钥来授予访问共享文件的权限。
-更具体点,当你想要通过btsync共享一些文件或文件夹,相应的读/写键(所谓的秘密编码)已经创建。这些键将会通过不同的途径例如HTTPS链接,电子邮件,二维码等被分享。一旦两台设备通过一个键配对成功,链接内容将会直接在其间同步。如果没有事先设置,传输将不会有文件大小和速度的限制。你可以在btsync中创建账号,以此来创建和管理通过网络分享的键和文件。
+更具体点,当你想要通过btsync共享一些文件或文件夹,相应的读/写密钥(所谓的密码)就创建好了。这些密钥可以通过HTTPS链接,电子邮件,二维码等在不同的设备间共享传递。一旦两台设备通过一个密钥配对成功,其所对应的内容将会直接在其间同步。如果没有事先设置,传输将不会有文件大小和速度的限制。你可以在btsync中创建账号,这样你可以通过 web 界面来创建和管理通过网络分享的密钥和文件。
BitTorrent Sync可以在许多的操作系统上运行,包括Linux,MacOS X,Windows,在 [Android][1]和[iOS][2]上也可以使用。在这里,我们将教你在Linux环境(一台家用服务器)与Windows环境(一台笔记本电脑)之间如何使用BitTorrent Sync来同步文件。
@@ -12,7 +12,7 @@ BitTorrent Sync可以在许多的操作系统上运行,包括Linux,MacOS X
BitTorrent Sync可以在[项目主页][3]直接下载。由于Windows版本的BitTorrent Syn安装起来十分简单,所以我们假设笔记本上已经安装了。我们把焦点放到Linux服务器上的安装和配置。
-在下载页面中选择你的系统架构,右键相应链接,选择复制连接地址(或者简单的依靠浏览器判断),将链接粘贴到在终端中用wget下载,如下:
+在下载页面中选择你的系统架构,右键相应链接,复制连接地址(或者类似的功能,不同浏览器可能不同),将链接粘贴到在终端中用wget下载,如下:
**64位Linux:**
@@ -36,11 +36,11 @@ BitTorrent Sync可以在[项目主页][3]直接下载。由于Windows版本的Bi
export PATH=$PATH:/usr/local/bin/btsync
-或者在在该文件夹中运行btsync的二进制文件。我们推荐使用第一种方式,虽需要少量的输入但更容易记忆。
+或者在该文件夹中运行btsync的二进制文件。我们推荐使用第一种方式,虽需要少量的输入但更容易记忆。
-### 配置Btsync ###
+### 配置btsync ###
-Btsync带有一个内置的网络服务器被用作其管理接口。想要使用这个接口你需要创建一个配置文件。你可以使用以下命令来创建:
+btsync带有一个内置的网络服务器,用作其管理接口。想要使用这个接口你需要创建一个配置文件。你可以使用以下命令来创建:
# btsync --dump-sample-config > btsync.config
@@ -54,19 +54,21 @@ Btsync带有一个内置的网络服务器被用作其管理接口。想要使
![](https://farm9.staticflickr.com/8599/15895277793_da63841433_b.jpg)
+如果你将来想要优化一下它的配置,可以看一下 /usr/local/bin/btsync 目录下的 README 文件,不过现在我们先继续下面的步骤。
+
### 第一次运行btsync ###
作为一个系统的最高执行者我们需要依赖日志文件!所以在我们启动btsync之前,我们将先为btsync创建一个日志文件。
# touch /var/log/btsync.log
-最后,让我们开启btsync:
+最后,让我们启动btsync:
# btsync --config /usr/local/bin/btsync/btsync.config --log /var/log/btsync.log
![](https://farm8.staticflickr.com/7288/16327720298_ccf2cbedea_c.jpg)
-现在在你的浏览器中输入正在运行btsync监听的服务器IP地址和端口(我这是192.168.0.15:8888),同意隐私政策,条款和最终用户许可协议:
+现在在你的浏览器中输入正在运行的btsync所监听的服务器IP地址和端口(我这是192.168.0.15:8888),同意其隐私政策,条款和最终用户许可协议:
![](https://farm9.staticflickr.com/8597/16327720318_d52551fc44_b.jpg)
@@ -80,33 +82,29 @@ Btsync带有一个内置的网络服务器被用作其管理接口。想要使
现在这样就够了。在运行接下来的步骤之前,请先在Windows主机(或你想使用的其他Linux设备)上安装BitTorrent Sync。
-### Btsync分享文件 ###
+### btsync分享文件 ###
-下方的视频将会展示如何在安装Windows8的电脑[192.168.0.106]上分享现有的文件夹。在添加好想要同步的文件夹后,你会得到它的键,通过“Enter a key or link”菜单(上面的图已经展示过了)添加到你安装到的Linux机器上,并开始同步:
+这个[视频][5](需要翻墙)展示了如何在安装Windows8的电脑[192.168.0.106]上分享现有的文件夹。在添加好想要同步的文件夹后,你会得到它的密钥,通过“Enter a key or link”菜单(上面的图已经展示过了)添加到你安装到的Linux机器上,并开始同步。
-注释:youtube视频
-
+现在用别的设备试试吧;找一个想要分享的文件夹或是一些文件,并通过Linux服务器的网络接口将密钥导入到你安装的“中央”btsync中。
-现在用别的设备试试吧;找一个想要分享的文件夹或是一些文件,并通过Linux服务器的网络接口将键导入到你安装的“核心”btsync中。
-
-### 使用常规用户开机自动运行btsync ###
+### 以常规用户开机自动运行btsync ###
你们可能注意到了,视频中在同步文件时是使用'root'组的用户创建/btsync目录的。那是因为我们使用超级用户手动启动BitTorrent Sync的原因。在通常情况下,你会希望它开机自动使用无权限用户(www_data或是专门为此创建的账户,例如btsync)启动。
-所以,我们创建了一个叫做btsync的用户,并在/etc/rc.local文件(exit 0行前)添加如下字段:
+所以,我们创建了一个叫做btsync的用户,并在/etc/rc.local文件(exit 0 这一行前)添加如下字段:
sudo -u btsync /usr/local/bin/btsync/btsync --config /usr/local/bin/btsync/btsync.config --log /var/log/btsync.log
最后,创建pid文件:
- # touch /usr/local/bin/btsync/.sync//sync.pid
+ # touch /usr/local/bin/btsync/.sync/sync.pid
-并递归更改/usr/local/bin/btsync的所属用户:
+并递归更改 /usr/local/bin/btsync的所属用户:
# chown -R btsync:root /usr/local/bin/btsync
现在重启试试,看看btsync是否正在由预期中的用户运行:
-Now reboot and verify that btsync is running as the intended user:
![](https://farm9.staticflickr.com/8647/16327988660_644f6d4505_c.jpg)
@@ -114,7 +112,7 @@ Now reboot and verify that btsync is running as the intended user:
### 尾注 ###
-如你所见,BitTorrent Sync对你几乎就像一个无服务器的Dropbox。我说“几乎”的原因是:当你在局域网内同步数据时,同步在两个设备之间直接进行。然而如果你想要跨网段同步数据,并且你的设备可能要穿过防火墙的限制来配对,那就只能通过一个提供BitTorrent的第三方中继服务器来完成同步传输。虽然声称传输经过 [AES加密][4],你还是可能遇到不想放生的状况。为了你的隐私着想,务必在你共享的每个文件夹中关掉中继/跟踪选项。
+如你所见,BitTorrent Sync对你而言几乎就像一个无服务器的Dropbox。我说“几乎”的原因是:当你在局域网内同步数据时,同步在两个设备之间直接进行。然而如果你想要跨网段同步数据,并且你的设备可能要穿过防火墙的限制来配对,那就只能通过一个提供BitTorrent的第三方中继服务器来完成同步传输。虽然声称传输经过 [AES加密][4],你还是可能会遇到不想发生的状况。为了你的隐私着想,务必在你共享的每个文件夹中关掉中继/跟踪选项。
希望这些对你有用!分享愉快!
@@ -123,8 +121,8 @@ Now reboot and verify that btsync is running as the intended user:
via: http://xmodulo.com/share-files-between-computers-over-network.html
作者:[Gabriel Cánepa][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[martin2011qi](https://github.com/martin2011qi)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
@@ -133,3 +131,4 @@ via: http://xmodulo.com/share-files-between-computers-over-network.html
[2]:https://itunes.apple.com/us/app/bittorrent-sync/id665156116
[3]:http://www.getsync.com/
[4]:http://www.getsync.com/tech-specs
+[5]:https://youtu.be/f7kLM0lAqF4
diff --git a/published/20130315 How to protect SSH server from brute force attacks using fail2ban.md b/published/201503/20130315 How to protect SSH server from brute force attacks using fail2ban.md
similarity index 100%
rename from published/20130315 How to protect SSH server from brute force attacks using fail2ban.md
rename to published/201503/20130315 How to protect SSH server from brute force attacks using fail2ban.md
diff --git a/published/20141106 Flow' N Play Movie Player Has a Stylish Interface Ubuntu Installation.md b/published/201503/20141106 Flow' N Play Movie Player Has a Stylish Interface Ubuntu Installation.md
similarity index 100%
rename from published/20141106 Flow' N Play Movie Player Has a Stylish Interface Ubuntu Installation.md
rename to published/201503/20141106 Flow' N Play Movie Player Has a Stylish Interface Ubuntu Installation.md
diff --git a/published/20141106 Tomahawk Music Player Returns With New Look, Features.md b/published/201503/20141106 Tomahawk Music Player Returns With New Look, Features.md
similarity index 100%
rename from published/20141106 Tomahawk Music Player Returns With New Look, Features.md
rename to published/201503/20141106 Tomahawk Music Player Returns With New Look, Features.md
diff --git a/published/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md b/published/201503/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md
similarity index 100%
rename from published/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md
rename to published/201503/20141127 11 Useful Utilities To Supercharge Your Ubuntu Experience.md
diff --git a/published/20141127 dupeGuru--Find And Remove Duplicate Files Instantly From Hard Drive.md b/published/201503/20141127 dupeGuru--Find And Remove Duplicate Files Instantly From Hard Drive.md
similarity index 100%
rename from published/20141127 dupeGuru--Find And Remove Duplicate Files Instantly From Hard Drive.md
rename to published/201503/20141127 dupeGuru--Find And Remove Duplicate Files Instantly From Hard Drive.md
diff --git a/published/20141204 Linux Namespaces.md b/published/201503/20141204 Linux Namespaces.md
similarity index 100%
rename from published/20141204 Linux Namespaces.md
rename to published/201503/20141204 Linux Namespaces.md
diff --git a/published/20141205 How to configure a syslog server with rsyslog on Linux.md b/published/201503/20141205 How to configure a syslog server with rsyslog on Linux.md
similarity index 100%
rename from published/20141205 How to configure a syslog server with rsyslog on Linux.md
rename to published/201503/20141205 How to configure a syslog server with rsyslog on Linux.md
diff --git a/published/20141217 Centralized Secure Storage (iSCSI)-- 'Initiator Client' Setup on RHEL or CentOS or Fedora -Part III.md b/published/201503/20141217 Centralized Secure Storage (iSCSI)-- 'Initiator Client' Setup on RHEL or CentOS or Fedora -Part III.md
similarity index 100%
rename from published/20141217 Centralized Secure Storage (iSCSI)-- 'Initiator Client' Setup on RHEL or CentOS or Fedora -Part III.md
rename to published/201503/20141217 Centralized Secure Storage (iSCSI)-- 'Initiator Client' Setup on RHEL or CentOS or Fedora -Part III.md
diff --git a/published/20141217 Create Centralized Secure Storage using iSCSI Target on RHEL or CentOS or Fedora Part -I.md b/published/201503/20141217 Create Centralized Secure Storage using iSCSI Target on RHEL or CentOS or Fedora Part -I.md
similarity index 100%
rename from published/20141217 Create Centralized Secure Storage using iSCSI Target on RHEL or CentOS or Fedora Part -I.md
rename to published/201503/20141217 Create Centralized Secure Storage using iSCSI Target on RHEL or CentOS or Fedora Part -I.md
diff --git a/published/20141217 How to Create and Setup LUNs using LVM in 'iSCSI Target Server' on RHEL or CentOS or Fedora -Part II.md b/published/201503/20141217 How to Create and Setup LUNs using LVM in 'iSCSI Target Server' on RHEL or CentOS or Fedora -Part II.md
similarity index 100%
rename from published/20141217 How to Create and Setup LUNs using LVM in 'iSCSI Target Server' on RHEL or CentOS or Fedora -Part II.md
rename to published/201503/20141217 How to Create and Setup LUNs using LVM in 'iSCSI Target Server' on RHEL or CentOS or Fedora -Part II.md
diff --git a/published/20141219 Creating your First App on Linux with Python and Flask.md b/published/201503/20141219 Creating your First App on Linux with Python and Flask.md
similarity index 100%
rename from published/20141219 Creating your First App on Linux with Python and Flask.md
rename to published/201503/20141219 Creating your First App on Linux with Python and Flask.md
diff --git a/published/20141219 Google Cloud offers streamlined Ubuntu for Docker use.md b/published/201503/20141219 Google Cloud offers streamlined Ubuntu for Docker use.md
similarity index 100%
rename from published/20141219 Google Cloud offers streamlined Ubuntu for Docker use.md
rename to published/201503/20141219 Google Cloud offers streamlined Ubuntu for Docker use.md
diff --git a/published/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md b/published/201503/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md
similarity index 100%
rename from published/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md
rename to published/201503/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md
diff --git a/published/20141229 5 User Space Debugging Tools in Linux.md b/published/201503/20141229 5 User Space Debugging Tools in Linux.md
similarity index 100%
rename from published/20141229 5 User Space Debugging Tools in Linux.md
rename to published/201503/20141229 5 User Space Debugging Tools in Linux.md
diff --git a/published/20150104 How to configure fail2ban to protect Apache HTTP server.md b/published/201503/20150104 How to configure fail2ban to protect Apache HTTP server.md
similarity index 100%
rename from published/20150104 How to configure fail2ban to protect Apache HTTP server.md
rename to published/201503/20150104 How to configure fail2ban to protect Apache HTTP server.md
diff --git a/published/20150104 How to debug a C or C++ program with Nemiver debugger.md b/published/201503/20150104 How to debug a C or C++ program with Nemiver debugger.md
similarity index 100%
rename from published/20150104 How to debug a C or C++ program with Nemiver debugger.md
rename to published/201503/20150104 How to debug a C or C++ program with Nemiver debugger.md
diff --git a/published/20150104 How to set up a cross-platform backup server on Linux with BackupPC.md b/published/201503/20150104 How to set up a cross-platform backup server on Linux with BackupPC.md
similarity index 100%
rename from published/20150104 How to set up a cross-platform backup server on Linux with BackupPC.md
rename to published/201503/20150104 How to set up a cross-platform backup server on Linux with BackupPC.md
diff --git a/published/20150106 This App Can Write a Single ISO to 20 USB Drives Simultaneously.md b/published/201503/20150106 This App Can Write a Single ISO to 20 USB Drives Simultaneously.md
similarity index 100%
rename from published/20150106 This App Can Write a Single ISO to 20 USB Drives Simultaneously.md
rename to published/201503/20150106 This App Can Write a Single ISO to 20 USB Drives Simultaneously.md
diff --git a/published/20150108 How to Install Scrapy a Web Crawling Tool in Ubuntu 14.04 LTS.md b/published/201503/20150108 How to Install Scrapy a Web Crawling Tool in Ubuntu 14.04 LTS.md
similarity index 100%
rename from published/20150108 How to Install Scrapy a Web Crawling Tool in Ubuntu 14.04 LTS.md
rename to published/201503/20150108 How to Install Scrapy a Web Crawling Tool in Ubuntu 14.04 LTS.md
diff --git a/translated/tech/20150112 How to Find and Remove Duplicate Files on Linux.md b/published/201503/20150112 How to Find and Remove Duplicate Files on Linux.md
similarity index 81%
rename from translated/tech/20150112 How to Find and Remove Duplicate Files on Linux.md
rename to published/201503/20150112 How to Find and Remove Duplicate Files on Linux.md
index 7e0b96c45f..d646627e84 100644
--- a/translated/tech/20150112 How to Find and Remove Duplicate Files on Linux.md
+++ b/published/201503/20150112 How to Find and Remove Duplicate Files on Linux.md
@@ -2,13 +2,13 @@
================================================================================
大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件。这里有一款工具你可以工具自己的需要使用。
-无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能一帮你扫描系统中的重复文件并删除它们来释放空间。图形界面和命令行界面的都有。重复文件是磁盘空间不必要的浪费。毕竟,如果你的确需要在不同的位置享有同一个文件,你可以使用软链接或者硬链接,这样就可以这样就可以在磁盘的一处地方存储数据了。
+无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重复文件并删除它们来释放空间。图形界面和命令行界面的都有。重复文件是磁盘空间不必要的浪费。毕竟,如果你的确需要在不同的位置享有同一个文件,你可以使用软链接或者硬链接,这样就可以在磁盘的一个地方存储数据了。
### FSlint ###
-[FSlint][1] 在不同的Linux发行办二进制仓库中都有,包括Ubuntu、Debian、Fedora和Red Hat。只需你运行你的包管理器并安装“fslint”包就行。这个工具默认提供了一个简单的图形化界面,同样也有包含各种功能的命令行版本。
+[FSlint][1] 在不同的Linux发行版二进制仓库中都有,包括Ubuntu、Debian、Fedora和Red Hat。只需你运行你的包管理器并安装“fslint”包就行。这个工具默认提供了一个简单的图形化界面,同样也有包含各种功能的命令行版本。
-不要让它让你害怕使用FSlint的图形化界面。默认情况下,它会自动选中Duplicate窗格,并以你的家目录作为搜索路径。
+不要担心FSlint的图形化界面太复杂。默认情况下,它会自动选中Duplicate窗格,并以你的家目录作为搜索路径。
要安装fslint,若像我这样运行的是Ubuntu,这里是默认的命令:
@@ -27,7 +27,7 @@ Fedora:
sudo yum install fslint
-For OpenSuse:
+OpenSuse:
[ -f /etc/mandrake-release ] && pkg=rpm
[ -f /etc/SuSE-release ] && pkg=packages
@@ -51,11 +51,11 @@ For OpenSuse:
![Delete Duplicate files with Fslint](http://blog.linoxide.com/wp-content/uploads/2015/01/delete-duplicates-fslint.png)
-使用按钮来删除任何你要删除的文件,并且可以双击预览。
+点击按钮来删除任何你要删除的文件,并且可以双击预览。
完成这一切后,我们就成功地删除你系统中的重复文件了。
-**注意** 的是命令行工具默认不在环境的路径中,你不能像典型的命令那样运行它。在Ubuntu中,你可以在/usr/share/fslint/fslint下找到它。因此,如果你要在一个单独的目录运行fslint完整扫描,下面是Ubuntu中的运行命令:
+**注意** ,命令行工具默认不在环境的路径中,你不能像典型的命令那样运行它。在Ubuntu中,你可以在/usr/share/fslint/fslint下找到它。因此,如果你要在一个单独的目录运行fslint完整扫描,下面是Ubuntu中的运行命令:
cd /usr/share/fslint/fslint
@@ -84,7 +84,7 @@ via: http://linoxide.com/file-system/find-remove-duplicate-files-linux/
作者:[Arun Pyasi][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150114 Install Gitblit On Ubuntu or Fedora or CentOS.md b/published/201503/20150114 Install Gitblit On Ubuntu or Fedora or CentOS.md
similarity index 100%
rename from published/20150114 Install Gitblit On Ubuntu or Fedora or CentOS.md
rename to published/201503/20150114 Install Gitblit On Ubuntu or Fedora or CentOS.md
diff --git a/published/20150114 What is a good IDE for C or C++ on Linux.md b/published/201503/20150114 What is a good IDE for C or C++ on Linux.md
similarity index 100%
rename from published/20150114 What is a good IDE for C or C++ on Linux.md
rename to published/201503/20150114 What is a good IDE for C or C++ on Linux.md
diff --git a/published/20150115 20 Unix Command Line Tricks--Part I.md b/published/201503/20150115 20 Unix Command Line Tricks--Part I.md
similarity index 100%
rename from published/20150115 20 Unix Command Line Tricks--Part I.md
rename to published/201503/20150115 20 Unix Command Line Tricks--Part I.md
diff --git a/published/20150115 Get back your privacy and control.md b/published/201503/20150115 Get back your privacy and control.md
similarity index 100%
rename from published/20150115 Get back your privacy and control.md
rename to published/201503/20150115 Get back your privacy and control.md
diff --git a/published/20150115 How To Run Linux Applications From The Terminal In Background Mode.md b/published/201503/20150115 How To Run Linux Applications From The Terminal In Background Mode.md
similarity index 100%
rename from published/20150115 How To Run Linux Applications From The Terminal In Background Mode.md
rename to published/201503/20150115 How To Run Linux Applications From The Terminal In Background Mode.md
diff --git a/published/20150119 Ubuntu 15.04 Finally Lets You Set Menus ToAlways Show.md b/published/201503/20150119 Ubuntu 15.04 Finally Lets You Set Menus ToAlways Show.md
similarity index 100%
rename from published/20150119 Ubuntu 15.04 Finally Lets You Set Menus ToAlways Show.md
rename to published/201503/20150119 Ubuntu 15.04 Finally Lets You Set Menus ToAlways Show.md
diff --git a/published/20150119 Ubuntu With XFCE vs Xubuntu Linux.md b/published/201503/20150119 Ubuntu With XFCE vs Xubuntu Linux.md
similarity index 100%
rename from published/20150119 Ubuntu With XFCE vs Xubuntu Linux.md
rename to published/201503/20150119 Ubuntu With XFCE vs Xubuntu Linux.md
diff --git a/published/20150121 How to Monitor Network Usage with nload in Linux.md b/published/201503/20150121 How to Monitor Network Usage with nload in Linux.md
similarity index 100%
rename from published/20150121 How to Monitor Network Usage with nload in Linux.md
rename to published/201503/20150121 How to Monitor Network Usage with nload in Linux.md
diff --git a/translated/tech/20150121 How to apply image effects to pictures on Raspberry Pi.md b/published/201503/20150121 How to apply image effects to pictures on Raspberry Pi.md
similarity index 71%
rename from translated/tech/20150121 How to apply image effects to pictures on Raspberry Pi.md
rename to published/201503/20150121 How to apply image effects to pictures on Raspberry Pi.md
index f767522855..4cbdc0fcb8 100644
--- a/translated/tech/20150121 How to apply image effects to pictures on Raspberry Pi.md
+++ b/published/201503/20150121 How to apply image effects to pictures on Raspberry Pi.md
@@ -2,7 +2,7 @@
================================================================================
现在使用[树莓派摄像头模组][1]("raspi cam"),也可以像使用卡片相机那样,给拍摄的照片增加各种各样的图片特效。 raspistill命令行工具,为您的树莓派提供了丰富的图片特效选项,来美化处理你的图片。
-你可以用[这3个命令行工具][2]来[抓取raspicam拍摄的照片或者视频][3],在这文章中将重点介绍其中的raspstill工具。raspstill工具提供了丰富的控制选项来处理图片,比如说:锐度(sharpness)、对比度(contrast)、亮度(brightness)、饱和度(saturation)、ISO、自动白平衡(AWB)、以及图片特效(image effect)等。
+有[三个命令行工具][2]可以用于[抓取raspicam拍摄的照片或者视频][3],在这文章中将重点介绍其中的raspstill工具。raspstill工具提供了丰富的控制选项来处理图片,比如说:锐度(sharpness)、对比度(contrast)、亮度(brightness)、饱和度(saturation)、ISO、自动白平衡(AWB)、以及图片特效(image effect)等。
在这篇文章中,将介绍如何使用raspstill工具以及raspicam摄像头模组来控制照片的曝光、AWB以及其他的图片效果。我写了一个简单的python脚本来自动拍摄照片并在这些照片上自动应用各种图片特效。raspicam的帮助文档中介绍了该摄像头模组所支持的曝光模式、AWB和图片特效。总的来说,raspicam一共支持16种图片特效、12种曝光模式以及10种AWB选项。
@@ -27,7 +27,6 @@ Python脚本很简单,如下所示 。
time.sleep(0.25)
print "End of image capture"
-The Python script operates as follows. First, create three array/list variable for the exposure, AWB and image effects. In the example, we use 2 types of exposure, 3 types of AWB, and 13 types of image effects values. Then make nested loops for applying the value of the three variables that we have. Inside the nested loop, execute the raspistill application. We specify (1) the output filename; (2) exposure value; (3) AWB value; (4) image effect value; (5) the time to take a photo, which is set to 1 second; and (6) the size of the photo, which is set to 640x480px. This Python script will create 78 different versions of a captured photo with a combination of 2 types of exposure, 3 types of AWB, and 13 types of image effects.
这个脚本完成了以下几个工作。首先,脚本中定义了3个列表,分别用于枚举曝光模式、AWB模式以及图片特效。在这个实例中,我们将使用到2种曝光模式、3种AWB模式以及13种图片特效。脚本会遍历上述3种选项的各种组合,并使用这些参数组合来运行raspistill工具。传入的参数共6个,分别为:(1)输出文件名;(2)曝光模式;(3)AWB模式;(4)图片特效模式;(5)拍照时间,设为1秒;(6)图片尺寸,设为640x480。脚本会自动拍摄78张照片,每张照片会应用不同的特效参数。
@@ -41,7 +40,7 @@ The Python script operates as follows. First, create three array/list variable f
### 小福利 ###
-除了使用raspistill命令行工具来操控raspicam摄像模组以外,还有其他的方法可以用哦。[Picamera][4]是一个python库,它提供了操控raspicam摄像模组的的API接口,这样就可以便捷地构建更加复杂的应用程序。如果你精通python,那么picamera一定是你项目的好伙伴。picamera已经被默认集成到Raspbian最新版本的的镜像中。当然,如果你用的不是最新的Raspbian或者是使用其他的操作系统版本,你可以通过下面的方法来进行手动安装。
+除了使用raspistill命令行工具来操控raspicam摄像模组以外,还有其他的方法可以用哦。[Picamera][4]是一个python库,它提供了操控raspicam摄像模组的的API接口,这样就可以便捷地构建更加复杂的应用程序。如果你精通python,那么picamera一定是你的 hack 项目的好伙伴。picamera已经被默认集成到Raspbian最新版本的的镜像中。当然,如果你用的不是最新的Raspbian或者是使用其他的操作系统版本,你可以通过下面的方法来进行手动安装。
首先,先在你的系统上安装pip,详见[指导][6]。
@@ -57,7 +56,7 @@ via: http://xmodulo.com/apply-image-effects-pictures-raspberrypi.html
作者:[Kristophorus Hadiono][a]
译者:[coloka](https://github.com/coloka)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150121 Linux FAQs with Answers--How to check CPU info on Linux.md b/published/201503/20150121 Linux FAQs with Answers--How to check CPU info on Linux.md
similarity index 100%
rename from published/20150121 Linux FAQs with Answers--How to check CPU info on Linux.md
rename to published/201503/20150121 Linux FAQs with Answers--How to check CPU info on Linux.md
diff --git a/translated/tech/20150122 How To Recover Windows 7 And Delete Ubuntu In 3 Easy Steps.md b/published/201503/20150122 How To Recover Windows 7 And Delete Ubuntu In 3 Easy Steps.md
similarity index 91%
rename from translated/tech/20150122 How To Recover Windows 7 And Delete Ubuntu In 3 Easy Steps.md
rename to published/201503/20150122 How To Recover Windows 7 And Delete Ubuntu In 3 Easy Steps.md
index 9278bbd707..e20cd1c1ab 100644
--- a/translated/tech/20150122 How To Recover Windows 7 And Delete Ubuntu In 3 Easy Steps.md
+++ b/published/201503/20150122 How To Recover Windows 7 And Delete Ubuntu In 3 Easy Steps.md
@@ -1,4 +1,4 @@
-如何通过简单的3步恢复Windows7同时删除Ubuntu
+如何通过简单的3步恢复Windows 7同时删除Ubuntu
================================================================================
### 说明 ###
@@ -8,11 +8,11 @@
那么为什么我现在要写这篇文章呢?
-到目前为止我曾经在很多场合被问到如何从一个装有Windows7或Windows8的双系统中删除Unbuntu系统,因此写这篇文章就变得有意义了。
+到目前为止我曾经在很多场合被问到如何从一个装有Windows7或Windows8的双系统中删除Ubuntu系统,因此写这篇文章就变得有意义了。
我在圣诞节期间浏览了人们在我文章中的留言,感觉是时候把缺失的文章写完同时更新一下那些比较老的又需要关注的文章了。
-我打算把一月份剩下的时间都用在这上面。这是第一步。如果你的电脑上安装了Windown7和Ubuntu双系统,同时你不想通过恢复出厂设置的方式恢复Windows7系统,那么请参考该教程。(注意:对于Windows8系统,有一个独立的教程)
+我打算把一月份剩下的时间都用在这上面。这是第一步。如果你的电脑上安装了Windows7和Ubuntu双系统,同时你不想通过恢复出厂设置的方式恢复Windows7系统,那么请参考该教程。(注意:对于Windows8系统,有一个独立的教程)
### 删除Ubuntu系统需要的步骤 ###
@@ -24,11 +24,10 @@
在你开始之前,我建议为你的系统保留一个备份。
-我也建议不要放弃这样的机会也不要使用微软自带的工具。
+我建议你不要放弃备份的机会,但也不要使用微软自带的工具。
[点击查看如何使用Macrinum Reflect备份你的驱动][1]
-
如果Ubuntu中有你希望保存的数据,现在就登录进去然后将数据保存到外部硬盘驱动器,USB驱动器或者DVD中。
### 步骤1 - 删除Grub启动菜单 ###
@@ -57,7 +56,7 @@
点击“创建光盘”。
-将光盘留在电脑中重启电脑,当出现从CD中启动的消息的时候按下键盘上的“回车”键。
+将光盘留在电脑中并重启电脑,当出现从CD中启动的消息的时候按下键盘上的“回车”键。
![](http://2.bp.blogspot.com/-VPSD50bmk2E/VLWftBg7HxI/AAAAAAAAHnM/APVzvPg4rC0/s1600/recoveryoptionschooselanguage.jpg)
@@ -111,13 +110,13 @@
对于Windows系统来说,我们真正需要的只有驱动器C,所以剩下的是可以删掉的。
-**注意: 注意一下.你的磁盘上可能有恢复分区。 不要删除恢复分区.。它们应该会被标记,将文件系统设置为NTFS或FAT32**
+**注意: 注意一下.你的磁盘上可能有恢复分区。 不要删除恢复分区。它们应该有专门的卷标,文件系统也许是NTFS或FAT32**
![](http://3.bp.blogspot.com/-8YUE2p5Fj8Q/VLWlHXst6JI/AAAAAAAAHoQ/BJC57d9Nilg/s1600/deletevolume.png)
在你希望删除的分区上单击右键(例如:root,home和swap分区),然后从弹出的菜单中点击“删除卷”。
-**(不要删除任何NTFS或者FAT32文件系统的分区)**
+**(不要删除任何NTFS或者FAT32文件系统的分区!)**
对于剩下的两个分区重复执行上面的操作。
@@ -134,11 +133,12 @@
![](http://4.bp.blogspot.com/-pLV5L3CvQ1Y/VLWmh-5SKTI/AAAAAAAAHoc/7sJzITyvduo/s1600/diskmanagement4.png)
最后一步是扩展Windows以便于将它再变成一个大的分区。
+
右键点击Windows分区(C盘),然后选择“扩展卷”。
![](http://1.bp.blogspot.com/-vgmw_N2WZWw/VLWm7i5oSxI/AAAAAAAAHok/k0q_gnIik9A/s1600/extendvolume1.PNG)
-当出现左面的窗口的时候点击“下一步”,
+当出现左面的窗口的时候点击“下一步”。
![](http://3.bp.blogspot.com/-WLA86V-Au8g/VLWnTq5RpAI/AAAAAAAAHos/6vzjLNkrwRQ/s1600/extendvolume2.PNG)
@@ -165,13 +165,14 @@
这就是全部内容。一个致力于Linux的网站刚刚向你展示了如何移除Linux然后用Windows7取而代之。
有任何疑问可以在下面评论区留言。
+
--------------------------------------------------------------------------------
via: http://www.everydaylinuxuser.com/2015/01/how-to-recover-windows-7-and-delete.html
作者:Gary Newell
译者:[Medusar](https://github.com/Medusar)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150122 Linux FAQs with Answers--How to create and configure a MySQL user from the command line.md b/published/201503/20150122 Linux FAQs with Answers--How to create and configure a MySQL user from the command line.md
similarity index 100%
rename from published/20150122 Linux FAQs with Answers--How to create and configure a MySQL user from the command line.md
rename to published/201503/20150122 Linux FAQs with Answers--How to create and configure a MySQL user from the command line.md
diff --git a/translated/tech/20150122 Linux FAQs with Answers--How to download and install ixgbe driver on Ubuntu or Debian.md b/published/201503/20150122 Linux FAQs with Answers--How to download and install ixgbe driver on Ubuntu or Debian.md
similarity index 84%
rename from translated/tech/20150122 Linux FAQs with Answers--How to download and install ixgbe driver on Ubuntu or Debian.md
rename to published/201503/20150122 Linux FAQs with Answers--How to download and install ixgbe driver on Ubuntu or Debian.md
index aab015201e..bcaa1b3c26 100644
--- a/translated/tech/20150122 Linux FAQs with Answers--How to download and install ixgbe driver on Ubuntu or Debian.md
+++ b/published/201503/20150122 Linux FAQs with Answers--How to download and install ixgbe driver on Ubuntu or Debian.md
@@ -1,10 +1,10 @@
-Linux 有问必答: 如何在Ubuntu或者Debian中下载和安装ixgbe驱动
+Linux 有问必答:如何在Ubuntu或者Debian中编译安装ixgbe驱动
================================================================================
-> **提问**: 我想为我的Intel 10G网卡下载安装最新的ixgbe。我该如何在Ubuntu(或者Debian)中安装ixgbe驱动?
+> **提问**: 我想为我的Intel 10G网卡下载安装最新的ixgbe驱动。我该如何在Ubuntu(或者Debian)中安装ixgbe驱动?
-Intel的10G网卡(比如,82598、 82599、 x540)由ixgbe驱动支持。现代的Linux发版已经将ixgbe作为一个可加载模块。然而,有些情况你不想要你机器上的已经编译和安装的ixgbe驱动。比如,你想要体验ixbge驱动的最新特性。同样,自带内核中的ixgbe中的一个默认问题是不允许你自定义旭东内核参数。如果你想要完全自动一ixgbe驱动(比如 RSS、多队列、中断阈值等等),你需要手动从源码编译ixgbe驱动。
+Intel的10G网卡(比如,82598、 82599、 x540)由ixgbe驱动支持。现代的Linux发行版已经带有了ixgbe驱动,通过可加载模块的方式使用。然而,有些情况你希望在你机器上的自己编译安装ixgbe驱动,比如,你想要体验ixbge驱动的最新特性时。同样,内核默认自带的ixgbe驱动中的一个问题是不允许你自定义驱动的参数。如果你想要一个完全定制的ixgbe驱动(比如 RSS、多队列、中断阈值等等),你需要手动从源码编译ixgbe驱动。
-这里是如何在Ubuntu、Debian或者它们的衍生版中下载安装ixgbe驱动。
+这里是如何在Ubuntu、Debian或者它们的衍生版中下载安装ixgbe驱动的教程。
### 第一步: 安装前提 ###
@@ -29,7 +29,7 @@ Intel的10G网卡(比如,82598、 82599、 x540)由ixgbe驱动支持。现
编译之后,你会看到在ixgbe-3.23.2/src目录下创建了**ixgbe.ko**。这就是会加载到内核之中的ixgbe驱动。
-用modinfo命令检查内核模块的信息。注意你需要指定模块的绝对路径(比如 ./ixgbe.ko 或者 /home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko)。输出中会显示ixgbe内核的版本。
+用modinfo命令检查内核模块的信息。注意你需要指定模块文件的绝对路径(比如 ./ixgbe.ko 或者 /home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko)。输出中会显示ixgbe内核的版本。
$ modinfo ./ixgbe.ko
@@ -120,24 +120,24 @@ Intel的10G网卡(比如,82598、 82599、 x540)由ixgbe驱动支持。现
### 第五步: 安装Ixgbe驱动 ###
-一旦你验证新的ixgbe驱动已经成功家在,最后一步是在你的系统中安装驱动。
+一旦你验证新的ixgbe驱动可以成功加载,最后一步是在你的系统中安装驱动。
$ sudo make install
-**ixgbe.ko** 接着会安装在/lib/modules//kernel/drivers/net/ethernet/intel/ixgbe 下。
+**ixgbe.ko** 会安装在/lib/modules//kernel/drivers/net/ethernet/intel/ixgbe 下。
-这一步起,你可以用下面的modprobe命令加载ixgbe驱动了。注意你不必再指定绝对路径。
+从这一步起,你可以用下面的modprobe命令加载ixgbe驱动了。注意你不必再指定绝对路径。
$ sudo modprobe ixgbe
-如果你希望在启动时家在ixgbe驱动,你可以在/etc/modules的最后加入“ixgbe”。
+如果你希望在启动时加载ixgbe驱动,你可以在/etc/modules的最后加入“ixgbe”。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/download-install-ixgbe-driver-ubuntu-debian.html
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150122 Linux FAQs with Answers--How to use yum to download a RPM package without installing it.md b/published/201503/20150122 Linux FAQs with Answers--How to use yum to download a RPM package without installing it.md
similarity index 100%
rename from published/20150122 Linux FAQs with Answers--How to use yum to download a RPM package without installing it.md
rename to published/201503/20150122 Linux FAQs with Answers--How to use yum to download a RPM package without installing it.md
diff --git a/translated/tech/20150123 Keep History Of Notifications With Recent Notifications AppIndicator.md b/published/201503/20150123 Keep History Of Notifications With Recent Notifications AppIndicator.md
similarity index 81%
rename from translated/tech/20150123 Keep History Of Notifications With Recent Notifications AppIndicator.md
rename to published/201503/20150123 Keep History Of Notifications With Recent Notifications AppIndicator.md
index 2cc7a4778a..4437f991b9 100644
--- a/translated/tech/20150123 Keep History Of Notifications With Recent Notifications AppIndicator.md
+++ b/published/201503/20150123 Keep History Of Notifications With Recent Notifications AppIndicator.md
@@ -1,12 +1,12 @@
-使用最近通知工具保持通知历史
+使用“最近通知工具”保持桌面通知历史
================================================================================
![How to see recent notifications in Ubuntu 14.04](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/recent_notifications_Ubuntu_14.jpeg)
-大多数桌面环境像Unity和Gnome都有通知特性。我很喜欢其中一些。它尤其当我[在Ubuntu上收听流媒体][1]时帮到我。默认上通知会在桌面的顶部显示几秒接着就会小时。如果你听见了通知的声音但是没有看到内容怎么办?你该如何知道通知的内容?
+大多数桌面环境像Unity和Gnome都有通知特性。我很喜欢其中一些。它尤其当我[在Ubuntu上收听流媒体][1]时帮到我。默认上通知会在桌面的顶部显示几秒接着就会消失。如果你听见了通知的声音但是没有看到内容怎么办?你该如何知道通知的内容?
如果你可以看到最近所有通知的历史会很棒吧?是的,我知道这很棒。你可以在Ubuntu Unity或者Gnome中使用最近**通知小工具**来追踪所有的最近通知。
-最近通知位于顶部面板,并且有最近所有通知的历史。当它捕获到新的通知后,它就会变绿来表明你有未读的通知。
+最近通知位于顶部面板,并且记录了最近所有通知的历史。当它捕获到新的通知后,它就会变绿来表明你有未读的通知。
![Recent notifications in Ubuntu 14.04](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/recent_notifications_Ubuntu.jpeg)
@@ -24,7 +24,7 @@
sudo apt-get update
sudo apt-get install indicator-notifications
-安装完成后,重新登录后你就可以用了。现在它是没有通知的状态。很方便的小工具,不是么?
+安装完成后,重新登录后你就可以用了。现在妈妈再也不用担心我的通知没看到了。很方便的小工具,不是么?
--------------------------------------------------------------------------------
@@ -32,7 +32,7 @@ via: http://itsfoss.com/notifications-appindicator/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150125 A Shell Primer--Master Your Linux OS X Unix Shell Environment.md b/published/201503/20150125 A Shell Primer--Master Your Linux OS X Unix Shell Environment.md
similarity index 93%
rename from translated/tech/20150125 A Shell Primer--Master Your Linux OS X Unix Shell Environment.md
rename to published/201503/20150125 A Shell Primer--Master Your Linux OS X Unix Shell Environment.md
index 2709602c87..2dc0d43263 100644
--- a/translated/tech/20150125 A Shell Primer--Master Your Linux OS X Unix Shell Environment.md
+++ b/published/201503/20150125 A Shell Primer--Master Your Linux OS X Unix Shell Environment.md
@@ -1,6 +1,6 @@
Shell入门:掌握Linux,OS X,Unix的Shell环境
================================================================================
-在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中。这个环境包含了变量,设置,别名,函数以及更多的。下面是对Shell环境下一些常用命令的简单介绍,包括每个命令如何使用的例子,以及在命令行下设定你自己的环境来提高效率。
+在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中。这个环境包含了变量、设置、别名、函数以及更多的东西。下面是对Shell环境下一些常用命令的简单介绍,包括每个命令如何使用的例子,以及在命令行下设定你自己的环境来提高效率。
![](http://s0.cyberciti.org/uploads/cms/2015/01/bash-shell-welcome-image.jpg)
@@ -18,7 +18,8 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
输出范例:
[![图1: Finding out your shell name](http://s0.cyberciti.org/uploads/cms/2015/01/finding-your-shell-like-a-pro.jpg)][1]
-图1:找出当前的shell
+
+*图1:找出当前的shell*
### 找出所有已安装的shell ###
@@ -32,9 +33,10 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
输出范例:
[![Fig.02: Finding out your shell path](http://s0.cyberciti.org/uploads/cms/2015/01/finding-and-verifying-shell-path.jpg)][2]
-图2:找出shell的路径
-文件/etc/shells里包含了系统支持的shell列表。每一行代表一个shell,是相对根目录的完整路径。用这个[cat命令][3]来查看这些数据:
+*图2:找出shell的路径*
+
+文件/etc/shells里包含了系统所支持的shell列表。每一行代表一个shell,是相对根目录的完整路径。用这个[cat命令][3]来查看这些数据:
cat /etc/shells
@@ -71,7 +73,8 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
示例输出:
[![Fig. 03: Bash shell nesting level (subshell numbers)](http://s0.cyberciti.org/uploads/cms/2015/01/a-nested-shell-level-command.jpg)][4]
-图3:Bash shell嵌套层级(子shell数目)
+
+*图3:Bash shell嵌套层级(子shell数目)*
### 通过chsh命令永久变更系统shell ###
@@ -83,9 +86,9 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
sudo chsh -s /bin/ksh userNameHere
-### 查看当前的环境 ###
+### 查看当前的环境变量 ###
-你需要用到
+你需要用到:
env
env | more
@@ -118,7 +121,8 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
下面是bash shell里一些常见变量的列表:
![Fig.04: Common bash environment variables](http://s0.cyberciti.org/uploads/cms/2015/01/common-shell-vars.jpg)
-图4:常见bash环境变量
+
+*图4:常见bash环境变量*
> **注意**:下面这些环境变量没事不要乱改。很可能会造成不稳定的shell会话:
>
@@ -157,7 +161,7 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
/home/vivek
-### 增加或设定一个新变量 ###
+### 增加或设定一个新环境变量 ###
下面是bash,zsh,sh和ksh的语法:
@@ -225,7 +229,8 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
示例输出:
[![Fig.05: List all bash environment configuration files](http://s0.cyberciti.org/uploads/cms/2015/01/list-bash-enviroment-variables.jpg)][5]
-图5:列出bash的所有配置文件
+
+*图5:列出bash的所有配置文件*
要查看所有的bash配置文件,输入:
@@ -241,7 +246,7 @@ Shell入门:掌握Linux,OS X,Unix的Shell环境
sudo cp -v /etc/bashrc /etc/bashrc.bak.22_jan_15
########################################################################
- ## 然后,随心所欲随便改吧,好好玩玩shell环境或者提高一下效率:) ##
+ ## 然后,随心所欲随便改吧,好好玩玩shell环境或者提高一下效率:) ##
########################################################################
sudo vim /etc/bashrc
@@ -326,14 +331,15 @@ zsh的[wiki][6]中建议用下面的命令:
示例输出:
[![Fig.06: View session history in the bash shell using history command](http://s0.cyberciti.org/uploads/cms/2015/01/history-outputs.jpg)][7]
-图6:在bash shell中使用history命令查看会话历史
-你可以重复使用命令。简单地按下[上]或[下]方向键就可以查看之前的命令。在shell提示符下按下[CTRL-R]可以向后搜索历史缓存或文件来查找命令。重复最后一次命令,只需要在shell提示符下输入!!就好了:
+*图6:在bash shell中使用history命令查看会话历史*
+
+你可以重复使用之前的命令。简单地按下[上]或[下]方向键就可以查看之前的命令。在shell提示符下按下[CTRL-R]可以向后搜索历史缓存或文件来查找命令。重复最后一次命令,只需要在shell提示符下输入!!就好了:
ls -l /foo/bar
!!
-在以上的历史记录中查看命令#93 (hddtemp /dev/sda),输入:
+在以上的历史记录中找到命令#93 (hddtemp /dev/sda),输入:
!93
@@ -483,7 +489,7 @@ Bash/ksh/zsh函数允许你更进一步地配置shell环境。在这个例子中
最后,[打开bash命令补齐][12]
- source /etc/bash_completio
+ source /etc/bash_completion
#### #2: 设定bash命令提示符 ####
@@ -511,7 +517,7 @@ Bash/ksh/zsh函数允许你更进一步地配置shell环境。在这个例子中
# 为命令历史文件增加时间戳
export HISTTIMEFORMAT="%F %T "
- # 附加到命令历史文件,俄不是覆盖
+ # 附加到命令历史文件,而不是覆盖
shopt -s histappend
#### #5: 设定shell会话的时区 ####
@@ -561,7 +567,7 @@ Bash/ksh/zsh函数允许你更进一步地配置shell环境。在这个例子中
# 清理那些.DS_Store文件
alias dsclean='find . -type f -name .DS_Store -delete'
-#### #8: 让世界充满色彩 ####
+#### #8: 寡人好色 ####
# 彩色的grep输出
alias grep='grep --color=auto'
@@ -669,7 +675,7 @@ via: http://www.cyberciti.biz/howto/shell-primer-configuring-your-linux-unix-osx
作者:[nixCraft][a]
译者:[zpl1025](https://github.com/zpl1025)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150126 4 lvcreate Command Examples on Linux.md b/published/201503/20150126 4 lvcreate Command Examples on Linux.md
similarity index 100%
rename from published/20150126 4 lvcreate Command Examples on Linux.md
rename to published/201503/20150126 4 lvcreate Command Examples on Linux.md
diff --git a/published/201503/20150126 CD Audio Grabbers--Graphical Based.md b/published/201503/20150126 CD Audio Grabbers--Graphical Based.md
new file mode 100644
index 0000000000..4521760139
--- /dev/null
+++ b/published/201503/20150126 CD Audio Grabbers--Graphical Based.md
@@ -0,0 +1,121 @@
+4 个图形界面的 CD 音频抓取器
+================================================================================
+CD音频抓取器设计用来从光盘中提取(“RIP”)原始数字音频(通常被称为 CDDA 格式)并把它保存成文件或以其他形式输出。这类软件使用户能把数字音频编码成各种格式,并可以从在线光盘数据库 freedb 中下载或上传光盘信息。
+
+复制CD合法吗?在美国版权法中,把一个原始CD转换成数字文件用于个人使用等同于‘合理使用’。然而,美国版权法并没有明确的允许或禁止拷贝私人音频CD,而且判例法还没有确立出在具体的哪种情况下可以视为合理使用。而在英国,其版权的定位则更清晰一些。从2014年开始,英国公民制造CD,MP3,DVD,蓝光和电子书的行为成为合法行为。当然,这仅适用于这个人拥有被采集的媒体的实体,并且复制品仅用于他们个人使用。对于欧盟的其他国家,成员国也允许私人复制这种特例。
+
+如果你不确定在你生活的国家里这种版权是如何界定的,在你使用这篇文章中所列举的软件前请查询本地的版权法以确定你处在合法的一边。
+
+在某种程度上,提取CD音轨看起来有点多余。如[Spotify][5]和Google Play Music这类流媒体服务提供了一个巨大的以通用格式的音乐的库,无需采集你的CD集。但是,如果你已将收藏了一个数量巨大的CD集。能把你的CD转换成可以在便携设备如智能手机、平板和便携式MP3播放器上播放的格式仍然是个诱人的选择。
+
+这篇文章推荐了我最喜欢的音频CD抓取器。我挑了四个最好的图形界面的音频抓取器。所有这些应用程序都是在开源许可下发行的。
+
+###fre:ac
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-freac.png)
+
+fre:ac是个开源的音频转换器和CD提取器,支持很多种流行格式和编码器。目前这个应用可以在MA3、MP4/M4A、WMA、Ogg Vorbis、FLAC、AAC、WAV和Bonk格式间转换。这来源于几种不同形式的LAME编码器。
+
+#### 功能包括: ####
+
+- 易学易用
+- MP3、MP4/M4A、WMA、Ogg Vorbis、FLAC、AAC、WAV和Bonk格式转换器
+- 集成了CDDB/freedb标题数据库支持的CD提取器
+- 多核优化的编码器加速了现代PC上的转换速度
+- 对于标签和文件名称的全Unicode支持
+- 易学易用,而当你需要时还提供专家级选项
+- 任务列表
+- 可以使用Winamp 2输入插件
+- 多语言用户界面支持41种语言
+
+- 网址: [freac.org][1]
+- 开发人员:Robert Kausch
+- 许可证: GNU GPL v2
+- 版本号: 20141005
+
+###Audex
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-Audex.png)
+
+Audex是个简单易用的开源的音频CD提取应用。虽然它还处于早期开发阶段,但这个KDE桌面工具足够稳定、智能和简单易用。
+
+它的助手可以为LAME、OGG Vorbis(oggenc)、FLAC、FAAC(AAC/MP4)和RIFF WAVE等格式创建配置文件。除了这个助手,你也可以定义你自己的配置文件,这意味着,Audex适用于大部分的命令行编码器。
+
+#### 功能包括: ####
+
+- 可提取CDDA Paranoia
+- 提取和编码同时进行
+- 文件名采用本地和远程的CDDB/FreeDB数据库
+- 可以提交到CDDB/FreeDB数据库
+- 类似capitalize的元数据纠正工具
+- 多配置文件提取(每个配置文件文件有一个命令行编码器)
+- 从互联网上抓取封面并将他们存在数据库中
+- 在目标目录中创建播放列表、封面和基于模板的信息文件
+- 创建提取和编码协议
+- 将文件传送到FTP服务器
+- 支持国际化
+
+- 网址: [kde.maniatek.com/audex][2]
+- 开发人员: Marco Nelles
+- 许可证: GNU GPL v3
+- 版本号: 0.79
+
+###Sound Juicer
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-SoundJuicer.png)
+
+Sound Juicer是个使用GTK+和GStreamer开发的轻量级CD提取器。它从CD中提取音频并把它转换成音频文件。Sound Juicer还可以直接播放CD中的音轨,在提取前提供预览。
+
+它支持任何GStreamer插件所支持的音频编码,包括 MP3、Ogg Vorbis、FLAC和未压缩的PCM格式。
+
+它是GNOME桌面环境内建的一部分。
+
+#### 功能包括: ####
+
+- 自动通过CDDB给音轨加标签
+- 可编码成ogg/vorbis、FLAC和原始WAV
+- 编码路径的设置很简单
+- 多种风格流派
+- 国际化支持
+
+- 网址:[burtonini.com][3]
+- 开发人员: Ross Burton
+- 许可证:GNU GPL v2
+- 版本号:3.14
+
+###ripperX
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-ripperX.png)
+
+ripperX是个开源的图形界面的程序,用于提取CD音轨并把他们编码成Ogg、MP2、MP3或FLAC格式。它的目的是容易使用,只需要点几下鼠标就能转换整张专辑。它支持在CDDB寻找专辑和音轨信息。
+
+他使用cdparanoia把CD音轨转换(也就是“提取”)成WAV文件,然后调用Vorbis/Ogg编码器oggenc把WAV文件转换成OGG文件。它还可以调用flac让WAV文件生成无损压缩的FLAC文件。
+
+#### 功能包括: ####
+
+- 非常简单易用
+- 可以把CD音轨提取成WAV、MP3、OGG或FLAC文件
+- 支持CDDB查找
+- 支持ID3v2标签
+- 可暂停提取进程
+
+- 网址:[sourceforge.net/projects/ripperx][4]
+- 开发人员:Marc André Tanner
+- 许可证:MIT/X Consortium License
+- 版本号:2.8.0
+
+--------------------------------------------------------------------------------
+
+转自:http://www.linuxlinks.com/article/20150125043738417/AudioGrabbersGraphical.html
+
+作者:Frazer Kline
+译者:[H-mudcup](https://github.com/H-mudcup)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://www.freac.org/
+[2]:http://kde.maniatek.com/audex/
+[3]:http://burtonini.com/blog/computers/sound-juicer
+[4]:http://sourceforge.net/projects/ripperx/
+[5]:http://linux.cn/article-3130-1.html
\ No newline at end of file
diff --git a/published/20150126 Cleaning up Ubuntu 14.10,14.04,13.10 system.md b/published/201503/20150126 Cleaning up Ubuntu 14.10,14.04,13.10 system.md
similarity index 100%
rename from published/20150126 Cleaning up Ubuntu 14.10,14.04,13.10 system.md
rename to published/201503/20150126 Cleaning up Ubuntu 14.10,14.04,13.10 system.md
diff --git a/published/20150126 How To Kill All Processes Of A Specific User With slay.md b/published/201503/20150126 How To Kill All Processes Of A Specific User With slay.md
similarity index 100%
rename from published/20150126 How To Kill All Processes Of A Specific User With slay.md
rename to published/201503/20150126 How To Kill All Processes Of A Specific User With slay.md
diff --git a/translated/tech/20150126 How to Add a New Hard Disk Without Rebooting on CentOS 7 or RHEL 7.md b/published/201503/20150126 How to Add a New Hard Disk Without Rebooting on CentOS 7 or RHEL 7.md
similarity index 81%
rename from translated/tech/20150126 How to Add a New Hard Disk Without Rebooting on CentOS 7 or RHEL 7.md
rename to published/201503/20150126 How to Add a New Hard Disk Without Rebooting on CentOS 7 or RHEL 7.md
index 104f05e0a7..d54877bd36 100644
--- a/translated/tech/20150126 How to Add a New Hard Disk Without Rebooting on CentOS 7 or RHEL 7.md
+++ b/published/201503/20150126 How to Add a New Hard Disk Without Rebooting on CentOS 7 or RHEL 7.md
@@ -1,17 +1,18 @@
-如何不用重启在CentOS 7/ RHEL 7中添加一块新硬盘
+如何不用重启在CentOS 7/ RHEL 7虚拟机中添加一块新硬盘
================================================================================
通常在你在虚拟机中添加一块新硬盘时,你可能会看到新硬盘没有自动加载。这是因为连接到硬盘的SCSI总线需要重新扫描来使得新硬盘可见。这里有一个简单的命令来重新扫描SCSI总线和SCSI设备。下面这几步在CentOS 7 和RHEL 7 中测试过。
1. 在ESXi或者vCenter中添加一块新的20G硬盘:
-![](http://www.ehowstuff.com/wp-content/uploads/2015/01/Create-new-LVM-CentOS7-1.png)
+ ![](http://www.ehowstuff.com/wp-content/uploads/2015/01/Create-new-LVM-CentOS7-1.png)
2. 显示当前磁盘分区:
- [root@centos7 ~]# fdisk -l
+ [root@centos7 ~]# fdisk -l
-----------
+ ----------
+ ```
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
@@ -33,20 +34,22 @@
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
+ ```
3. 确定主机总线号
- [root@centos7 ~]# ls /sys/class/scsi_host/
- host0 host1 host2
+ [root@centos7 ~]# ls /sys/class/scsi_host/
+ host0 host1 host2
4. 重新扫描SCSI总线来添加设备
- [root@centos7 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
- [root@centos7 ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
- [root@centos7 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
+ [root@centos7 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
+ [root@centos7 ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
+ [root@centos7 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
-5. 验证磁盘和分区并确保20GB硬盘已经添加了。在本例中,出现了下面这行 “Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors” 并且确认新盘添加后没有重启服务器:
+5. 验证磁盘和分区并确保20GB硬盘已经添加了。在本例中,出现了下面这行 “`Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors`” 并且可以确认没有重启服务器就添加了新盘:
+ ```
[root@centos7 ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
@@ -76,14 +79,14 @@
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
-
+ ```
--------------------------------------------------------------------------------
via: http://www.ehowstuff.com/how-to-add-a-new-hard-disk-without-rebooting-on-centos-7-rhel-7/
作者:[skytech][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150126 Improve system performance by moving your log files to RAM Using Ramlog.md b/published/201503/20150126 Improve system performance by moving your log files to RAM Using Ramlog.md
similarity index 100%
rename from published/20150126 Improve system performance by moving your log files to RAM Using Ramlog.md
rename to published/201503/20150126 Improve system performance by moving your log files to RAM Using Ramlog.md
diff --git a/translated/tech/20150127 How to limit network bandwidth on Linux.md b/published/201503/20150127 How to limit network bandwidth on Linux.md
similarity index 55%
rename from translated/tech/20150127 How to limit network bandwidth on Linux.md
rename to published/201503/20150127 How to limit network bandwidth on Linux.md
index cc1efc2aef..5be2501e58 100644
--- a/translated/tech/20150127 How to limit network bandwidth on Linux.md
+++ b/published/201503/20150127 How to limit network bandwidth on Linux.md
@@ -1,12 +1,12 @@
-怎样在 Linux 中限制网络带宽
+怎样在 Linux 中限制网络带宽使用
================================================================================
-假如你经常在 Linux 桌面上运行多个网络应用,或在家中让多台电脑共享带宽;(这时,)你可能想更好地控制带宽的使用。否则,当你使用下载器下载一个大文件时,交互式 SSH 会话可能会变得缓慢以至不可用;或者当你通过 Dropbox 来同步一个大文件夹时,你的室友可能会抱怨在她的电脑上,视频流变得断断续续。
+假如你经常在 Linux 桌面上运行多个网络应用,或在家中让多台电脑共享带宽;那么你可能想更好地控制带宽的使用。否则,当你使用下载器下载一个大文件时,交互式 SSH 会话可能会变得缓慢以至不可用;或者当你通过 Dropbox 来同步一个大文件夹时,你的室友可能会抱怨在她的电脑上,视频流变得断断续续。
-在本教程中,我将为你描述两种 在 Linux 中限制网络流量速率的不同方法。
+在本教程中,我将为你描述两种在 Linux 中限制网络流量速率的不同方法。
### 在 Linux 中限制一个应用的速率 ###
-限制网络流量速率的一种方法是通过一个名为[trickle][1]的命令行工具。通过在程序运行时,预先加载一个 速率限制 socket 库 的方法,trickle 命令允许你改变任意一个特定程序的流量。 关于 trickle 命令的一个很好的特征是 它仅在用户空间中运行,这意味着,你不必需要 root 权限来达到限制一个程序的带宽使用的目的。为了与 trickle 程序兼容,这个特定程序必须使用没有静态链接库的套接字接口。当你想对一个不具有内置带宽控制功能的程序进行速率限制时,trickle 可以帮得上忙。
+限制网络流量速率的一种方法是通过一个名为[trickle][1]的命令行工具。通过在程序运行时,预先加载一个速率限制 socket 库 的方法,trickle 命令允许你改变任意一个特定程序的流量。 trickle 命令有一个很好的特性是它仅在用户空间中运行,这意味着,你不必需要 root 权限就可以限制一个程序的带宽使用。要能使用 trickle 程序控制程序的带宽,这个程序就必须使用非静态链接库的套接字接口。当你想对一个不具有内置带宽控制功能的程序进行速率限制时,trickle 可以帮得上忙。
在 Ubuntu,Debian 及其衍生发行版中安装 trickle :
@@ -20,10 +20,10 @@ $ sudo apt-get install trickle
$ sudo yum install trickle
```
-trickle 的基本使用方法如下。仅需简单地把 trickle 命令(带有速率参数)放在你想运行的命令之前。
+trickle 的基本使用方法如下。仅需简单地把 trickle 命令(及速率参数)放在你想运行的命令之前。
```
-$ trickle -d -u
+$ trickle -d -u
```
这就可以将 `` 的下载和上传速率限定为特定值(单位 KBytes/s)。
@@ -34,27 +34,27 @@ $ trickle -d -u
$ trickle -u 100 scp backup.tgz alice@remote_host.com:
```
-如若你想,你可以使用下面的命令为你的 Firefox 浏览器设定最大下载速率(e.g. , 300 KB/s),通过产生一个[自定义启动器][3]的方式。
+如若你想,你可以通过创建一个[自定义启动器][3]的方式,使用下面的命令为你的 Firefox 浏览器设定最大下载速率(例如, 300 KB/s)。
```
trickle -d 300 firefox %u
```
-最后, trickle 也可以 以守护进程模式运行,在该模式下,它将会限制所有通过 trickle 启动且正在运行的程序的总的带宽和。 启动 trickle 使其作为一个守护进程(i.e., trickled):
+最后, trickle 也可以以守护进程模式运行,在该模式下,它将会限制所有通过 trickle 启动且正在运行的程序的总带宽之和。 启动 trickle 使其作为一个守护进程(例如, trickled):
```
$ sudo trickled -d 1000
```
-一旦 trickled 守护进程在后台运行,你便可以通过 trickle 命令来启动其他程序。假如你通过 trickle 启动一个程序,那么这个程序的最大下载速率将是 1000 KB/s, 假如你再通过 trickle 启动了另一个程序,则每个程序的(下载)速率极限将会被限制为 500 KB/s, 等等。
+一旦 trickled 守护进程在后台运行,你便可以通过 trickle 命令来启动其他程序。假如你通过 trickle 启动一个程序,那么这个程序的最大下载速率将是 1000 KB/s, 假如你再通过 trickle 启动了另一个程序,则每个程序的(下载)速率极限将会被限制为 500 KB/s,等等。
### 在 Linux 中限制一个网络接口的速率 ###
-另一种控制你的带宽资源的方式是在每一个接口上限制带宽。这在你与其他人分享你的网络连接的上行带宽时尤为实用。同其他一样,Linux 有一个工具来为你做这件事。[wondershaper][4]恰好执行限制网络接口速率的任务。
+另一种控制你的带宽资源的方式是在每一个接口上限制带宽。这在你与其他人分享你的网络连接的上行带宽时尤为实用。同其他一样,Linux 有一个工具来为你做这件事。[wondershaper][4]就是干这个的。
-wondershaper 实际上是一个 shell 脚本,它使用 [tc][5] 来定义流量调整命令,使用 QoS 来处理特定的网络接口。通过放置被赋予不同的优先级的传出流量在一个队列中,达到限制传出流量速率的目的, 而传入流量通过丢包的方式来达到速率限制的目的。
+wondershaper 实际上是一个 shell 脚本,它使用 [tc][5] 来定义流量调整命令,使用 QoS 来处理特定的网络接口。外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的;而传入流量通过丢包的方式来达到速率限制的目的。
-事实上, wondershaper 的既定目标不仅仅是对一个接口增加其带宽上限;当批量下载或上传正在进行时,wondershaper 还试图去保持互动性会话如SSH 的低延迟。同样的,它还确保批量上传(e.g. , Dropbox 的同步)不会使得下载“窒息”,反之亦然。
+事实上, wondershaper 的既定目标不仅仅是对一个接口增加其带宽上限;当批量下载或上传正在进行时,wondershaper 还试图去保持互动性会话如 SSH 的低延迟。同样的,它还会控制批量上传(例如, Dropbox 的同步)不会使得下载“窒息”,反之亦然。
在 Ubuntu Debian 及其衍生发行版本 中安装 wondershaper:
@@ -62,9 +62,9 @@ wondershaper 实际上是一个 shell 脚本,它使用 [tc][5] 来定义流量
$ sudo apt-get install wondershaper
```
-在 Fdora 或 CentOS/RHEL (带有 [EPEL 软件仓库][2]) 中安装 wondershaper:(注:这里 链接 2 和 6 一样,可以删除其中之一)
+在 Fdora 或 CentOS/RHEL (带有 [EPEL 软件仓库][2]) 中安装 wondershaper:
-``
+```
$ sudo yum install wondershaper
```
@@ -90,7 +90,7 @@ $ sudo wondershaper clear eth0
### 总结 ###
-在本教程中,我介绍了两种不同的方法,来达到如何在 Linux 桌面环境中,控制每个应用或每个接口的带宽使用的目的。 这些工具对用户都及其友好,都为用户提供了一个快速且容易的方式来调整或限制流量。 对于那些想更多地了解如何在 Linux 中进行速率控制的读者,请参考 [the Linux bible][7].
+在本教程中,我介绍了两种不同的方法,来达到如何在 Linux 桌面环境中,控制每个应用或每个接口的带宽使用的目的。 这些工具的使用都很简单,都为用户提供了一个快速且容易的方式来调整或限制流量。 对于那些想更多地了解如何在 Linux 中进行速率控制的读者,请参考 [the Linux bible][7].
--------------------------------------------------------------------------------
@@ -98,15 +98,15 @@ via: http://xmodulo.com/limit-network-bandwidth-linux.html
作者:[Dan Nanni][a]
译者:[FSSlc](https://github.com/FSSlc)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://monkey.org/~marius/trickle
-[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[2]:http://linux.cn/article-2324-1.html
[3]:http://xmodulo.com/create-desktop-shortcut-launcher-linux.html
[4]:http://lartc.org/wondershaper/
[5]:http://lartc.org/manpages/tc.txt
-[6]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[6]:http://linux.cn/article-2324-1.html
[7]:http://www.lartc.org/lartc.html
diff --git a/published/20150127 LinSSID--A Graphical Wi-Fi Scanner for Linux.md b/published/201503/20150127 LinSSID--A Graphical Wi-Fi Scanner for Linux.md
similarity index 100%
rename from published/20150127 LinSSID--A Graphical Wi-Fi Scanner for Linux.md
rename to published/201503/20150127 LinSSID--A Graphical Wi-Fi Scanner for Linux.md
diff --git a/published/20150127 Windows 10 versus Linux.md b/published/201503/20150127 Windows 10 versus Linux.md
similarity index 100%
rename from published/20150127 Windows 10 versus Linux.md
rename to published/201503/20150127 Windows 10 versus Linux.md
diff --git a/published/20150128 How To Monitor Access Point Signal Strength With wifi-linux.md b/published/201503/20150128 How To Monitor Access Point Signal Strength With wifi-linux.md
similarity index 100%
rename from published/20150128 How To Monitor Access Point Signal Strength With wifi-linux.md
rename to published/201503/20150128 How To Monitor Access Point Signal Strength With wifi-linux.md
diff --git a/translated/tech/20150128 Linux Basics--How To Check If A Package Is Installed Or Not In Ubuntu.md b/published/201503/20150128 Linux Basics--How To Check If A Package Is Installed Or Not In Ubuntu.md
similarity index 93%
rename from translated/tech/20150128 Linux Basics--How To Check If A Package Is Installed Or Not In Ubuntu.md
rename to published/201503/20150128 Linux Basics--How To Check If A Package Is Installed Or Not In Ubuntu.md
index 9139b8dd92..a5bdc115e2 100644
--- a/translated/tech/20150128 Linux Basics--How To Check If A Package Is Installed Or Not In Ubuntu.md
+++ b/published/201503/20150128 Linux Basics--How To Check If A Package Is Installed Or Not In Ubuntu.md
@@ -1,6 +1,6 @@
-Linux 基础:如何在Ubuntu上检查是否已经安装了一个包
+Linux 基础:如何在Ubuntu上检查一个软件包是否安装
================================================================================
-![](http://180016988.r.cdn77.net/wp-content/uploads/2014/04/ubuntu-790x558.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2014/04/ubuntu-790x558.png)
如果你正在管理Debian或者Ubuntu服务器,你也许会经常使用**dpkg** 或者 **apt-get**命令。这两个命令用来安装、卸载和更新包。
@@ -51,7 +51,7 @@ Linux 基础:如何在Ubuntu上检查是否已经安装了一个包
+++-====================================-=======================-=======================-=============================================================================
ii firefox 35.0+build3-0ubuntu0.14 amd64 Safe and easy web browser from Mozilla
-要列出你系统中安装的包,输入下面的命令:
+要列出你系统中安装的所有包,输入下面的命令:
dpkg --get-selections
@@ -97,7 +97,7 @@ Linux 基础:如何在Ubuntu上检查是否已经安装了一个包
libgcc1:amd64 install
libgcc1:i386 install
-额外的,你可以使用“**-L**”参数来找出包中文件的位置。
+此外,你可以使用“**-L**”参数来找出包中文件的位置。
dpkg -L gcc-4.8
@@ -130,7 +130,7 @@ via: http://www.unixmen.com/linux-basics-check-package-installed-not-ubuntu/
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150131 WordPress Can Be Used to Leverage Critical Ghost Flaw in Linux.md b/published/201503/20150131 WordPress Can Be Used to Leverage Critical Ghost Flaw in Linux.md
similarity index 100%
rename from published/20150131 WordPress Can Be Used to Leverage Critical Ghost Flaw in Linux.md
rename to published/201503/20150131 WordPress Can Be Used to Leverage Critical Ghost Flaw in Linux.md
diff --git a/translated/tech/20150202 How To Install Websvn for Subversion in CentOS 7.0.md b/published/201503/20150202 How To Install Websvn for Subversion in CentOS 7.0.md
similarity index 59%
rename from translated/tech/20150202 How To Install Websvn for Subversion in CentOS 7.0.md
rename to published/201503/20150202 How To Install Websvn for Subversion in CentOS 7.0.md
index 35af70fc51..c374f9f670 100644
--- a/translated/tech/20150202 How To Install Websvn for Subversion in CentOS 7.0.md
+++ b/published/201503/20150202 How To Install Websvn for Subversion in CentOS 7.0.md
@@ -1,9 +1,8 @@
-如何在CentOS 7.0上为Subverison安装Websvn
+如何在CentOS 7.0 安装 Websvn
================================================================================
-大家好,今天我们会在CentOS 7.0 上为subversion安装WebSVN。
-
-WebSVN提供了Svbverion中的各种方法来查看你的仓库。我们可以看到任何给定版本的任何文件或者目录的日志并且看到所有文件改动、添加、删除的列表。我们同样可以看到两个版本间的不同来知道特定版本改动了什么。
+大家好,今天我们会在CentOS 7.0 上为 subversion(SVN)安装Web 界面 WebSVN。(subverion 是 apache 的顶级项目,也称为 Apache SVN 或 SVN)
+WebSVN 将 Svbverion 的操作你的仓库的各种功能通过 Web 界面提供出来。通过它,我们可以看到任何给定版本的任何文件或者目录的日志,并且可看到所有文件改动、添加、删除的列表。我们同样可以查看两个版本间的差异来知道特定版本改动了什么。
### 特性 ###
@@ -12,20 +11,20 @@ WebSVN提供了下面这些特性:
- 易于使用的用户界面
- 可定制的模板系统
- 色彩化的文件列表
-- blame 视图
+- 追溯视图
- 日志信息查询
- RSS支持
- [更多][1]
-由于使用PHP写成,WebSVN同样易于移植和安装。
+由于其使用PHP写成,WebSVN同样易于移植和安装。
-现在我们将为Subverison(Apache SVN)安装WebSVN。请确保你的服务器上已经安装了Apache SVN。如果你还没有安装,你可以在本教程中安装。
+现在我们将为Subverison安装WebSVN。请确保你的服务器上已经安装了 SVN。如果你还没有安装,你可以按[本教程][2]安装。
-After you installed Apache SVN(Subversion), you'll need to follow the easy steps below.安装完Apache SVN(Subversion)后,你需要以下几步。
+安装完SVN后,你需要以下几步。
### 1. 下载 WebSVN ###
-你可以从官方网站http://www.websvn.info/download/中下载WebSVN。我们首先进入/var/www/html/并在这里下载安装包。
+你可以从官方网站 http://www.websvn.info/download/ 中下载 WebSVN。我们首先进入 /var/www/html/ 并在这里下载安装包。
$ sudo -s
@@ -36,7 +35,7 @@ After you installed Apache SVN(Subversion), you'll need to follow the easy steps
![downloading websvn package](http://blog.linoxide.com/wp-content/uploads/2015/01/downloading-websvn.png)
-这里,我下载的是最新的2.3.3版本的websvn。你可以从这个网站得到链接。你可以用你要安装的包的链接来替换上面的链接。
+这里,我下载的是最新的2.3.3版本的 websvn。你可以从上面这个网站找到下载链接,用适合你的包的链接来替换上面的链接。
### 2. 解压下载的zip ###
@@ -54,7 +53,7 @@ After you installed Apache SVN(Subversion), you'll need to follow the easy steps
### 4. 编辑WebSVN配置 ###
-现在,我们需要拷贝位于/var/www/html/websvn/include的distconfig.php为config.php,并且接着编辑配置文件。
+现在,我们需要拷贝位于 /var/www/html/websvn/include 的 distconfig.php 为 config.php,并且接着编辑该配置文件。
# cd /var/www/html/websvn/include
@@ -62,7 +61,7 @@ After you installed Apache SVN(Subversion), you'll need to follow the easy steps
# nano config.php
-现在我们需要按如下改变文件。这完成之后,请保存病退出。
+现在我们需要按如下改变文件。完成之后,请保存并退出。
// Configure these lines if your commands aren't on your path.
//
@@ -100,7 +99,7 @@ After you installed Apache SVN(Subversion), you'll need to follow the easy steps
# systemctl restart httpd.service
-接着我们在浏览器中打开WebSVN,输入http://Ip-address/websvn,或者你在本地的话,你可以输入http://localhost/websvn。
+接着我们在浏览器中打开WebSVN,输入 http:// IP地址/websvn ,或者你在本地的话,你可以输入 http://localhost/websvn 。
![websvn successfully installed](http://blog.linoxide.com/wp-content/uploads/2015/01/websvn-success.png)
@@ -108,7 +107,9 @@ After you installed Apache SVN(Subversion), you'll need to follow the easy steps
### 总结 ###
-好了,我们已经在CentOS 7上哇安城WebSVN的安装了。这个教程同样适用于RHEL 7。WebSVN提供了Svbverion中的各种方法来查看你的仓库。你可以看到任何给定版本的任何文件或者目录的日志并且看到所有文件改动、添加、删除的列表。如果你有任何问题、评论、反馈请在下面的评论栏中留下,来让我们知道该添加什么和改进。谢谢!享受WebSVN吧。:-)
+好了,我们已经在CentOS 7上完成WebSVN的安装了。这个教程同样适用于RHEL 7。WebSVN 提供了 Subverion 中的各种功能来查看你的仓库。你可以看到任何给定版本的任何文件或者目录的日志,并且看到所有文件改动、添加、删除的列表。
+
+如果你有任何问题、评论、反馈请在下面的评论栏中留下,来让我们知道该添加什么和改进。谢谢! 用用看吧。:-)
--------------------------------------------------------------------------------
@@ -116,9 +117,10 @@ via: http://linoxide.com/linux-how-to/install-websvn-subversion-centos-7/
作者:[Arun Pyasi][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:http://www.websvn.info/features/
+[2]:http://linoxide.com/linux-how-to/install-apache-svn-subversion-centos-7/
diff --git a/published/20150203 9 Best IDEs and Code Editors for JavaScript Users.md b/published/201503/20150203 9 Best IDEs and Code Editors for JavaScript Users.md
similarity index 100%
rename from published/20150203 9 Best IDEs and Code Editors for JavaScript Users.md
rename to published/201503/20150203 9 Best IDEs and Code Editors for JavaScript Users.md
diff --git a/published/20150203 How To Install KDE Plasma 5.2 In Ubuntu 14.10.md b/published/201503/20150203 How To Install KDE Plasma 5.2 In Ubuntu 14.10.md
similarity index 100%
rename from published/20150203 How To Install KDE Plasma 5.2 In Ubuntu 14.10.md
rename to published/201503/20150203 How To Install KDE Plasma 5.2 In Ubuntu 14.10.md
diff --git a/published/20150205 How To Use Smartphones Like Weather Conky In Linux.md b/published/201503/20150205 How To Use Smartphones Like Weather Conky In Linux.md
similarity index 100%
rename from published/20150205 How To Use Smartphones Like Weather Conky In Linux.md
rename to published/201503/20150205 How To Use Smartphones Like Weather Conky In Linux.md
diff --git a/translated/tech/20150205 Linux Basics--Assign Multiple IP Addresses To Single Network Interface Card On CentOS 7.md b/published/201503/20150205 Linux Basics--Assign Multiple IP Addresses To Single Network Interface Card On CentOS 7.md
similarity index 92%
rename from translated/tech/20150205 Linux Basics--Assign Multiple IP Addresses To Single Network Interface Card On CentOS 7.md
rename to published/201503/20150205 Linux Basics--Assign Multiple IP Addresses To Single Network Interface Card On CentOS 7.md
index 3dec583608..31a10d3923 100644
--- a/translated/tech/20150205 Linux Basics--Assign Multiple IP Addresses To Single Network Interface Card On CentOS 7.md
+++ b/published/201503/20150205 Linux Basics--Assign Multiple IP Addresses To Single Network Interface Card On CentOS 7.md
@@ -1,6 +1,6 @@
-Linux 基础:在CentOS 7上给一个网卡分配多个IP地址
+在CentOS 7上给一个网卡分配多个IP地址
================================================================================
-有时你也许想要给一个网卡多个地址。你该怎么做呢?另外买一个网卡来分配地址?不用这么做(只要在小型网络中)。我们现在可以再CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么?好的,跟随我,这并不难。
+有时你也许想要给一个网卡多个地址。你该怎么做呢?另外买一个网卡来分配地址?在小型网络中其实不用这么做。我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么?好的,跟随我,这并不难。
首先,让我们找到网卡的IP地址。在我的CentOS 7服务器中,我只使用了一个网卡。
@@ -83,7 +83,6 @@ Linux 基础:在CentOS 7上给一个网卡分配多个IP地址
类似地,你可以加入更多的ip地址。
-Finally, save and close the file. Restart network service to take effect the changes.
最后,保存并退出文件。重启网络服务来使更改生效。
systemctl restart network
@@ -172,11 +171,9 @@ Finally, save and close the file. Restart network service to take effect the cha
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
-你可以看到我已经添加一个A类地址(10.0.0.1)并且前缀是16
+你可以看到我已经添加一个A类地址(10.0.0.1)并且前缀是16。
-保存并退出文件。重启网络服务,
-
-接着,ping新增的地址:
+保存并退出文件。重启网络服务,接着,ping新增的地址:
ping -c 4 10.0.0.1
@@ -202,7 +199,7 @@ via: http://www.unixmen.com/linux-basics-assign-multiple-ip-addresses-single-net
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150209 How to back up a Debian system using backupninja.md b/published/201503/20150209 How to back up a Debian system using backupninja.md
similarity index 100%
rename from published/20150209 How to back up a Debian system using backupninja.md
rename to published/201503/20150209 How to back up a Debian system using backupninja.md
diff --git a/published/20150209 Linux FAQs with Answers--How to get the process ID (PID) of a shell script.md b/published/201503/20150209 Linux FAQs with Answers--How to get the process ID (PID) of a shell script.md
similarity index 100%
rename from published/20150209 Linux FAQs with Answers--How to get the process ID (PID) of a shell script.md
rename to published/201503/20150209 Linux FAQs with Answers--How to get the process ID (PID) of a shell script.md
diff --git a/translated/tech/20150211 Best Known Linux Archive or Compress Tools.md b/published/201503/20150211 Best Known Linux Archive or Compress Tools.md
similarity index 67%
rename from translated/tech/20150211 Best Known Linux Archive or Compress Tools.md
rename to published/201503/20150211 Best Known Linux Archive or Compress Tools.md
index 9938efd5a5..c570ee62a4 100644
--- a/translated/tech/20150211 Best Known Linux Archive or Compress Tools.md
+++ b/published/201503/20150211 Best Known Linux Archive or Compress Tools.md
@@ -2,16 +2,11 @@ Linux 下最为人熟知的归档/压缩工具
================================================================================
很多时候,通过互联网发送或接收大文件和图片是一件令人头疼的事。压缩及解压缩工具正好可以应对这个问题。下面让我们快速浏览一些可以使得我们的工作更加轻松的开源工具。
-Tar
-gzip, gunzip
-bzip2, bunzip2
-7-Zip
-
### Tar ###
-Tar 由 'Tape archiver' 衍生而来,最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件,它可以压缩一组文件(归档),或提取它们以及对已经存在的压缩文件进行相关操作。在存储、备份以及转移文件方面,它是很有帮助的。在创建归档文件时,Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 ‘.tar’。
+Tar 由 'Tape archiver(磁带归档器)' 衍生而来,最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件,它可以压缩一组文件(归档),或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面,它是很有用的。在创建归档文件时,Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 ‘.tar’。
-基本用法
+**基本用法如下:**
#### a) 创建归档 (c / --create) ####
@@ -23,7 +18,7 @@ Tar 由 'Tape archiver' 衍生而来,最初被用来在磁带上归档和存
![tar cvf](http://blog.linoxide.com/wp-content/uploads/2015/01/tar-cvf.png)
-创建一个归档
+*创建一个归档*
#### b) 列出归档文件内容 ( t / --list) ####
@@ -31,7 +26,7 @@ Tar 由 'Tape archiver' 衍生而来,最初被用来在磁带上归档和存
![tar tvf](http://blog.linoxide.com/wp-content/uploads/2015/01/tar-tvf.png)
-列出归档中包含的文件
+*列出归档中包含的文件*
#### c) 提取归档 (x / --extract) ####
@@ -41,45 +36,45 @@ Tar 由 'Tape archiver' 衍生而来,最初被用来在磁带上归档和存
![tar xvf](http://blog.linoxide.com/wp-content/uploads/2015/01/tar-xvf.png)
-提取文件
+*提取文件*
![tar xvf --wildcards](http://blog.linoxide.com/wp-content/uploads/2015/01/tar-wildcard.png)
-只提取需要的文件
+*只提取需要的文件*
-#### d) 对归档进行更新 ( u / --update) ####
+#### d) 对归档文件进行更新 ( u / --update) ####
- tar uvf archive.tar newfile.c - 假如归档的版本比先前存在的版本新,通过添加文件 newfile.c 来更新归档.
+ tar uvf archive.tar newfile.c - 假如归档的newfile.c 要比先前已经归档的新,则添加更新的 newfile.c 到归档里面.
![tar uvf](http://blog.linoxide.com/wp-content/uploads/2015/01/tar-uvf.png)
-更新一个归档
+*更新一个归档*
#### e) 从归档中删除文件 (--delete) ####
- tar--delete -f archive.tar file1.c - 从压缩包'archive.tar' 中删除文件'file1.c'
+ tar --delete -f archive.tar file1.c - 从压缩包'archive.tar' 中删除文件'file1.c'
![tar --delete](http://blog.linoxide.com/wp-content/uploads/2015/01/tar-delete.png)
-删除文件
+*删除文件*
更加具体的使用方法请参考[tar 主页][1]。
### Gzip / Gunzip ###
-Gzip 代表 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩应用,被其压缩的文件的后缀名为'*.gz' 。
+Gzip 即 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩应用,被其压缩的文件的后缀名为'*.gz' 。
-** 基本用法 **
+**基本用法如下:**
#### a) 压缩文件 ####
gzip file(s)
-每个文件将被单独压缩。
+每个文件将被**单独压缩**。
![gzip](http://blog.linoxide.com/wp-content/uploads/2015/01/gzip.png)
-压缩文件
+*压缩文件*
通常在压缩完成后,它会将原来的文件删除。我们可以使用 `-c` 选项来保留原来的文件。
@@ -87,7 +82,7 @@ Gzip 代表 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩
![gzip-c](http://blog.linoxide.com/wp-content/uploads/2015/01/gzip-c.png)
-压缩后保留原有文件
+*压缩后保留原有文件*
我们也可以将一组文件压缩到一个单独的文件中
@@ -95,7 +90,7 @@ Gzip 代表 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩
![gz group](http://blog.linoxide.com/wp-content/uploads/2015/01/gz-group.png)
-压缩一组文件
+*压缩一组文件*
#### b) 检查压缩比 ####
@@ -105,17 +100,17 @@ Gzip 代表 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩
![gzip -l](http://blog.linoxide.com/wp-content/uploads/2015/01/gzip-l.png)
-检查压缩率
+*检查压缩率*
#### c) 解压文件 ####
-Gunzip 被用来解压文件,在这里,原有文件在被解压后同样会被删除。使用 `-c`选项来保留原始文件。
+Gunzip 用来解压文件,在这里,原有的(压缩)文件在被解压后同样会被删除。使用 `-c`选项来保留原始文件。
gunzip -c archieve.gz
![gunzip -c](http://blog.linoxide.com/wp-content/uploads/2015/01/gunzip-c.png)
-解压文件
+*解压文件*
gzip 加上'-d'选项 和 gunzip 对压缩文件有同样的效果。
@@ -125,47 +120,50 @@ gzip 加上'-d'选项 和 gunzip 对压缩文件有同样的效果。
同 gzip 一样,[Bzip2][3] 也是一个压缩工具,与其他传统的工具相比,它可以将文件压缩到更小,但其缺点为:运行速度比 gzip 慢。
-** 基本用法 **
+**基本用法如下:**
#### a) 压缩文件 ####
-一般情况下,针对压缩而言,Bzip2 没有选项可供选择,将被压缩的文件被传递为它的参数。每个文件被单独压缩,且压缩文件以 'bz2' 为后缀名。
+一般情况下,针对压缩而言,Bzip2 不用什么选项,将被压缩的文件被传递为它的参数。每个文件被单独压缩,且压缩文件以 'bz2' 为后缀名。
bzip2 file1 file2 file3
![bzip2](http://blog.linoxide.com/wp-content/uploads/2015/01/bzip2.png)
-文件压缩
+*文件压缩*
-使用 '-k' 选项可以使得 在压缩或解压缩之后保留原有的文件。
+使用 '-k' 选项可以使得在压缩或解压缩之后保留原有的文件。
![bzip2 -k](http://blog.linoxide.com/wp-content/uploads/2015/01/bzip2-k.png)
-在压缩后保留原有文件。
+*在压缩后保留原有文件*
-'-d' 选项被用来强制解压缩。
+
+#### b) 解压 ####
+
+'-d' 选项被用来解压缩。
![bzip2 -d](http://blog.linoxide.com/wp-content/uploads/2015/01/bzip2-d.png)
-使用 -d 选项删除文件 (!! 注:我(FSSlc)认为 这里的图片说明有误,可以参考 manpage或bzip 的官网来校对一下。)
+*使用 -d 选项解压缩文件*
-#### b) 解压 ####
+也可以使用 bunzip2 来解压缩。
bunzip2 filename
![bunzip2](http://blog.linoxide.com/wp-content/uploads/2015/01/bunzip2.png)
-解压文件
+*解压文件*
bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2 和 tbz 的文件在压缩后,后缀名将变为'.tar' 。
- bzip2 -dc 执行解压文件到标准输出的功能。
+ bzip2 -dc - 执行解压文件到标准输出的功能。
### 7-zip ###
-[7-zip][4] 是另一个开源压缩软件。它使用 7z 这种新的压缩格式,并支持高压缩比。因此,它被认为是比先前提及的压缩工具更好的软件。在 Linux 下,可以通过 p7zip 软件包得到,该软件包里包含 3 个二进制文件 – 7z, 7za 和 7zr,读者可以参考 [p7zip wiki][5] 来了解这三个二进制文件之间的不同。在本篇中,我们将使用 7zr 来解释 7-zip 的用法。归档文件以 '.7z' 为后缀名。
+[7-zip][4] 是另一个开源压缩软件。它使用 7z 这种新的压缩格式,并支持高压缩比。因此,它被认为是比先前提及的压缩工具更好的软件。在 Linux 下,可以通过 p7zip 软件包得到,该软件包里包含 3 个二进制文件: 7z, 7za 和 7zr,读者可以参考 [p7zip wiki][5] 来了解这三个二进制文件之间的不同。在本篇中,我们将使用 7zr 来解释 7-zip 的用法。归档文件以 '.7z' 为后缀名。
-** 基本用法 **
+**基本用法如下:**
#### a) 创建归档 ####
@@ -173,7 +171,7 @@ bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2
![7zr a](http://blog.linoxide.com/wp-content/uploads/2015/01/7zr-a.png)
-创建一个归档文件
+*创建一个归档文件*
#### b) 列出归档包含文件 ####
@@ -181,7 +179,7 @@ bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2
![7zr l](http://blog.linoxide.com/wp-content/uploads/2015/01/7zr-l.png)
-列出归档中包含的文件
+*列出归档中包含的文件*
#### c) 提取归档文件 ####
@@ -189,7 +187,7 @@ bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2
![7zr e](http://blog.linoxide.com/wp-content/uploads/2015/01/7zr-e.png)
-提取归档
+*提取归档*
#### d) 更新归档文件 ####
@@ -197,7 +195,7 @@ bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2
![7zr u](http://blog.linoxide.com/wp-content/uploads/2015/01/7zr-u.png)
-更新一个归档文件
+*更新一个归档文件*
#### e) 从归档文件中删除文件 ####
@@ -205,11 +203,11 @@ bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2
![7zr d](http://blog.linoxide.com/wp-content/uploads/2015/01/7zr-d.png)
-删除文件
+*删除文件*
![7zr l](http://blog.linoxide.com/wp-content/uploads/2015/01/7zr-d-l.png)
-确认文件删除
+*确认文件删除*
--------------------------------------------------------------------------------
@@ -217,7 +215,7 @@ via: http://linoxide.com/tools/linux-compress-decompress-tools/
作者:[B N Poornima][a]
译者:[FSSlc](https://github.com/FSSlc)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150211 How To Protect Ubuntu Server Against the GHOST Vulnerability.md b/published/201503/20150211 How To Protect Ubuntu Server Against the GHOST Vulnerability.md
similarity index 97%
rename from translated/tech/20150211 How To Protect Ubuntu Server Against the GHOST Vulnerability.md
rename to published/201503/20150211 How To Protect Ubuntu Server Against the GHOST Vulnerability.md
index 38b7c955d3..243c4212d0 100644
--- a/translated/tech/20150211 How To Protect Ubuntu Server Against the GHOST Vulnerability.md
+++ b/published/201503/20150211 How To Protect Ubuntu Server Against the GHOST Vulnerability.md
@@ -36,7 +36,7 @@ via: http://www.ubuntugeek.com/how-to-protect-ubuntu-server-against-the-ghost-vu
作者:[ruchi][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150215 A Look At What Linux Games We Will See In 2015 And Beyond.md b/published/201503/20150215 A Look At What Linux Games We Will See In 2015 And Beyond.md
similarity index 100%
rename from published/20150215 A Look At What Linux Games We Will See In 2015 And Beyond.md
rename to published/201503/20150215 A Look At What Linux Games We Will See In 2015 And Beyond.md
diff --git a/published/20150215 How To Make GDebi Default Instead of Ubuntu Software Center.md b/published/201503/20150215 How To Make GDebi Default Instead of Ubuntu Software Center.md
similarity index 100%
rename from published/20150215 How To Make GDebi Default Instead of Ubuntu Software Center.md
rename to published/201503/20150215 How To Make GDebi Default Instead of Ubuntu Software Center.md
diff --git a/translated/tech/20150225 10 quick tar command examples to create or extract archives in Linux.md b/published/201503/20150225 10 quick tar command examples to create or extract archives in Linux.md
similarity index 70%
rename from translated/tech/20150225 10 quick tar command examples to create or extract archives in Linux.md
rename to published/201503/20150225 10 quick tar command examples to create or extract archives in Linux.md
index 75865f7713..6d851ee0cc 100644
--- a/translated/tech/20150225 10 quick tar command examples to create or extract archives in Linux.md
+++ b/published/201503/20150225 10 quick tar command examples to create or extract archives in Linux.md
@@ -1,41 +1,40 @@
-linux中创建和解压文档的10个快速tar命令样例
+在linux中创建和解压文档的11个 tar 命令例子
================================================================================
### linux中的tar命令###
tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令。
-常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过gzip或bzip算法进一步压缩的磁带归档文件扩展。
+其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩。
+在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子。
-在该教程中我们会窥探一下在linux桌面或服务器版本中使用tar命令来处理一些日常创建和解压归档文件的工作样例。
### 使用tar命令###
tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件。
-> tar命令具有两个压缩格式,gzip和bzip,该命令的“z”选项用来指定gzip,“j”选项用来指定bzip。同时也可哟用来创建非压缩归档文件。
+> tar命令具有两个压缩格式,gzip和bzip,该命令的“z”选项用来指定gzip,“j”选项用来指定bzip。同时也可以创建非压缩归档文件。
-#### 1.解压一个tar.gz归档 ####
+#### 1.解压一个tar.gz归档 ####
一般常见的用法是用来解压归档文件,下面的命令将会把文件从一个tar.gz归档文件中解压出来。
-
$ tar -xvzf tarfile.tar.gz
这里对这些参数做一个简单解释-
> x - 解压文件
-> v - 繁琐,在解压每个文件时打印出文件的名称。
+> v - 冗长模式,在解压每个文件时打印出文件的名称。
-> z - 该文件是一个使用 gzip压缩的文件。
+> z - 该文件是一个使用 gzip 压缩的文件。
> f - 使用接下来的tar归档来进行操作。
这些就是一些需要记住的重要选项。
-**解压 tar.bz2/bzip 归档文件 **
+**解压 tar.bz2/bzip 归档文件**
-具有bz2扩展名的文件是使用bzip算法进行压缩的,但是tar命令也可以对其进行处理,但是是通过使用“j”选项来替换“z”选项。
+具有bz2扩展名的文件是使用bzip算法进行压缩的,但是tar命令也可以对其进行处理,但是需要通过使用“j”选项来替换“z”选项。
$ tar -xvjf archivefile.tar.bz2
@@ -47,25 +46,25 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
然后,首先需要确认目标目录是否存在,毕竟tar命令并不会为你创建目录,所以如果目标目录不存在的情况下该命令会失败。
-####3. 解压出单个文件 ####
+####3. 提取出单个文件 ####
-为了从一个归档文件中解压出单个文件,只需要将文件名按照以下方式将其放置在命令后面。
+为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。
$ tar -xz -f abc.tar.gz "./new/abc.txt"
在上述命令中,可以按照以下方式来指定多个文件。
- $ tar -xv -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"
+ $ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"
#### 4.使用通配符来解压多个文件 ####
通配符可以用来解压于给定通配符匹配的一批文件,例如所有以".txt"作为扩展名的文件。
- $ tar -xv -f abc.tar.gz --wildcards "*.txt"
+ $ tar -xz -f abc.tar.gz --wildcards "*.txt"
-#### 5. 列出并检索tar归档文件中的内容 ####
+#### 5. 列出并检索tar归档文件中的内容 ####
-如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”选项, 下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。
+如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”(test)选项, 下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。
$ tar -tz -f abc.tar.gz
./new/
@@ -75,7 +74,7 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
./new/abc.txt
...
-将输出通过管道定向到grep来搜索一个文件或者定向到less命令来浏览内容列表。 使用"v"繁琐选项将会打印出每个文件的额外详细信息。
+可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。 使用"v"冗长选项将会打印出每个文件的额外详细信息。
对于 tar.bz2/bzip文件,需要使用"j"选项。
@@ -84,11 +83,10 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
$ tar -tvz -f abc.tar.gz | grep abc.txt
-rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt
-#### 6.创建一个tar/tar.gz归档文件 ####
+#### 6.创建一个tar/tar.gz归档文件 ####
现在我们已经学过了如何解压一个tar归档文件,是时候开始创建一个新的tar归档文件了。tar命令可以用来将所选的文件或整个目录放入到一个归档文件中,以下是相应的样例。
-
下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入到归档文件中。
$ tar -cvf abc.tar ./new/
@@ -102,14 +100,13 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
$ tar -cvzf abc.tar.gz ./new/
-> 文件的扩展名其实并不真正有什么影响。“tar.gz” 和tgz是gzip压缩算法压缩文件的常见扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名。
-
+> 文件的扩展名其实并不真正有什么影响。“tar.gz” 和“tgz”是gzip压缩算法压缩文件的常见扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名(LCTT 译注:归档是否是压缩的和采用哪种压缩方式并不取决于其扩展名,扩展名只是为了便于辨识。)。
#### 7. 在添加文件之前进行确认 ####
一个有用的选项是“w”,该选项使得tar命令在添加每个文件到归档文件之前来让用户进行确认,有时候这会很有用。
-使用该选项时,只有用户输入yes时的文件才会被加入到归档文件中,如果你输入任何东西,默认的回答是一个“No”。
+使用该选项时,只有用户输入“y”时的文件才会被加入到归档文件中,如果你不输入任何东西,其默认表示是一个“n”。
# 添加指定文件
@@ -137,7 +134,7 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
#### 9. 将文件加入到压缩的归档文件中(tar.gz/tar.bz2) ####
-之前已经提到了不可能将文件加入到已压缩的归档文件中,然和依然可以通过简单的一些把戏来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。
+之前已经提到了不可能将文件加入到已压缩的归档文件中,然而依然可以通过简单的一些把戏来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。
$ gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
@@ -147,16 +144,15 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
#### 10.通过tar来进行备份 ####
-一个真实的场景是在规则的间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份,以下是一个样例 -
+一个真实的场景是在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份,以下是一个样例 :
$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/
-使用cron来运行上述的命令会保持创建类似以下名称的备份文件 -
-'archive-20150218.tar.gz'.
+使用cron来运行上述的命令会保持创建类似以下名称的备份文件 :'archive-20150218.tar.gz'。
当然,需要确保日益增长的归档文件不会导致磁盘空间的溢出。
-#### 11. 在创建归档文件是进行验证 ####
+#### 11. 在创建归档文件时进行验证 ####
"W"选项可以用来在创建归档文件之后进行验证,以下是一个简单例子。
@@ -174,9 +170,9 @@ tar命令在大部分linux系统默认情况下都是可用的,所以你不用
Verify ./new/newfile.txt
Verify ./new/abc.txt
-需要注意的是验证动作不能呢该在压缩过的归档文件上进行,只能在非压缩的tar归档文件上执行。
+需要注意的是验证动作不能在压缩过的归档文件上进行,只能在非压缩的tar归档文件上执行。
-现在就先到此为止,可以通过“man tar”命令来查看tar命令的的手册。
+这次就先到此为止,可以通过“man tar”命令来查看tar命令的的手册。
--------------------------------------------------------------------------------
@@ -184,7 +180,7 @@ via: http://www.binarytides.com/linux-tar-command/
作者:[Silver Moon][a]
译者:[theo-l](https://github.com/theo-l)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150225 How to Hide PHP Version in Linux.md b/published/201503/20150225 How to Hide PHP Version in Linux.md
similarity index 59%
rename from translated/tech/20150225 How to Hide PHP Version in Linux.md
rename to published/201503/20150225 How to Hide PHP Version in Linux.md
index 1634ff2af2..89dcdf4f75 100644
--- a/translated/tech/20150225 How to Hide PHP Version in Linux.md
+++ b/published/201503/20150225 How to Hide PHP Version in Linux.md
@@ -1,8 +1,8 @@
-如何在Linux中隐藏PHP版本
+如何在Linux服务器中隐藏PHP版本
================================================================================
-通常上,大多数默认设置安装的web服务器存在信息泄露。这其中之一是PHP。PHP(超文本预处理器)是如今流行的服务端html嵌入式语言。在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞。因此,我会简单描述如何在Linux服务器中隐藏PHP信息。
+通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP。PHP 是如今流行的服务端html嵌入式语言(之一?)。在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞。因此,我会简单描述如何在Linux服务器中隐藏PHP信息。
-默认上**exposr_php**默认是开的。关闭“expose_php”参数可以使php隐藏它的版本信息。
+默认上**expose_php**默认是开的。关闭“expose_php”参数可以使php隐藏它的版本信息。
[root@centos66 ~]# vi /etc/php.ini
@@ -26,9 +26,9 @@
X-Page-Speed: 1.9.32.2-4321
Cache-Control: max-age=0, no-cache
-更改之后,php就不会在web服务头中显示版本了:
+更改并重启 Web 服务后,php就不会在web服务头中显示版本了:
-[root@centos66 ~]# curl -I http://www.ehowstuff.com/
+```[root@centos66 ~]# curl -I http://www.ehowstuff.com/
HTTP/1.1 200 OK
Server: nginx
@@ -39,8 +39,9 @@ X-Pingback: http://www.ehowstuff.com/xmlrpc.php
Date: Wed, 11 Feb 2015 14:10:43 GMT
X-Page-Speed: 1.9.32.2-4321
Cache-Control: max-age=0, no-cache
+```
-有任何需要帮助的请到twiiter @ehowstuff,或在下面留下你的评论。[点此获取更多历史文章][1]
+LCTT译注:除了 PHP 的版本之外,Web 服务器也会默认泄露版本号。如果使用 Apache 服务器,请[参照此文章关闭Apache 版本显示][2];如果使用 Nginx 服务器,请在 http 段内加入`server_tokens off;` 配置。以上修改请记得重启相关服务。
--------------------------------------------------------------------------------
@@ -48,9 +49,10 @@ via: http://www.ehowstuff.com/how-to-hide-php-version-in-linux/
作者:[skytech][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.ehowstuff.com/author/mhstar/
[1]:http://www.ehowstuff.com/archives/
+[2]:http://linux.cn/article-3642-1.html
\ No newline at end of file
diff --git a/published/20150225 Italian Region Emilia-Romagna Is Switching To OpenOffice.md b/published/201503/20150225 Italian Region Emilia-Romagna Is Switching To OpenOffice.md
similarity index 100%
rename from published/20150225 Italian Region Emilia-Romagna Is Switching To OpenOffice.md
rename to published/201503/20150225 Italian Region Emilia-Romagna Is Switching To OpenOffice.md
diff --git a/published/20150225 Linux FAQs with Answers--How to install full kernel source on Debian or Ubuntu.md b/published/201503/20150225 Linux FAQs with Answers--How to install full kernel source on Debian or Ubuntu.md
similarity index 100%
rename from published/20150225 Linux FAQs with Answers--How to install full kernel source on Debian or Ubuntu.md
rename to published/201503/20150225 Linux FAQs with Answers--How to install full kernel source on Debian or Ubuntu.md
diff --git a/translated/tech/20150304 Linux Basics--How To Find Maximum Supported RAM By Your System.md b/published/201503/20150304 Linux Basics--How To Find Maximum Supported RAM By Your System.md
similarity index 99%
rename from translated/tech/20150304 Linux Basics--How To Find Maximum Supported RAM By Your System.md
rename to published/201503/20150304 Linux Basics--How To Find Maximum Supported RAM By Your System.md
index 52b978dbc8..14bc56c329 100644
--- a/translated/tech/20150304 Linux Basics--How To Find Maximum Supported RAM By Your System.md
+++ b/published/201503/20150304 Linux Basics--How To Find Maximum Supported RAM By Your System.md
@@ -681,15 +681,15 @@ Linux基础:如何找出你的系统所支持的最大内存
Handle 0x0031, DMI type 127, 4 bytes
End Of Table
-好了,就是这样。周末愉快!
+好了,就是这样。
--------------------------------------------------------------------------------
-via: https://www.unixmen.com/linux-basics-how-to-find-maximum-supported-ram-by-your-system/
+via: http://www.unixmen.com/linux-basics-how-to-find-maximum-supported-ram-by-your-system/
作者:[SK][0]
译者:[mr-ping](https://github.com/mr-ping)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/20150306 Pinta 1.6 Released Install It In Ubuntu And Linux Mint.md b/published/201503/20150306 Pinta 1.6 Released Install It In Ubuntu And Linux Mint.md
similarity index 100%
rename from published/20150306 Pinta 1.6 Released Install It In Ubuntu And Linux Mint.md
rename to published/201503/20150306 Pinta 1.6 Released Install It In Ubuntu And Linux Mint.md
diff --git a/published/20150309 10 best uses for open source software in the business world.md b/published/201503/20150309 10 best uses for open source software in the business world.md
similarity index 100%
rename from published/20150309 10 best uses for open source software in the business world.md
rename to published/201503/20150309 10 best uses for open source software in the business world.md
diff --git a/published/20150309 15 Basic 'ls' Command Examples in Linux.md b/published/201503/20150309 15 Basic 'ls' Command Examples in Linux.md
similarity index 100%
rename from published/20150309 15 Basic 'ls' Command Examples in Linux.md
rename to published/201503/20150309 15 Basic 'ls' Command Examples in Linux.md
diff --git a/translated/share/20150309 New App Brings Android Notifications to The GNOME Desktop.md b/published/201503/20150309 New App Brings Android Notifications to The GNOME Desktop.md
similarity index 72%
rename from translated/share/20150309 New App Brings Android Notifications to The GNOME Desktop.md
rename to published/201503/20150309 New App Brings Android Notifications to The GNOME Desktop.md
index b180d43571..7b299029bb 100644
--- a/translated/share/20150309 New App Brings Android Notifications to The GNOME Desktop.md
+++ b/published/201503/20150309 New App Brings Android Notifications to The GNOME Desktop.md
@@ -1,24 +1,24 @@
一款在Gnome桌面中显示Andorid通知的程序
================================================================================
+
+**你很快就可以在GNOME桌面中看到Andorid通知了,这都要归功于一个正在开发中的新程序。**
+
![Fancy seeing your Android alerts here? You can.](http://www.omgubuntu.co.uk/wp-content/uploads/2015/02/Screen-Shot-2015-02-24-at-17.47.48.png)
-在这里看到Android通知很棒么?你可以
+在这里看到Android通知是不是很棒?就可以了~
-**你很快就可以在GNOME桌面中看到Andorid通知了,这都要归功于一个在开发中的新程序。**
-
-
-这个新的项目叫“Numtius”,这可以让在Andorid手机上收到的通知显示在GNOME桌面上。它会集成在GNOME 3.16中,并且它[重新设计了通知系统][1],这个app和特性会用在其他更多的地方。
+这个新的项目叫“Nuntius”,这可以让在Andorid手机上收到的通知显示在GNOME桌面上。它会集成在GNOME 3.16中,并且它[重新设计了通知系统][1],这个app和特性会用在其他更多的地方。
这个app的开发者希望在这个月GNOME 3.16发布之前可以完成,它将通过蓝牙工作来保证不会传给外部的系统或者使用在线存储。这意味着你的电话必须接近GNOME桌面来保证这个功能可用。
他现在还不能回复短消息或者对提醒采取操作。
-开发团队警告说**这是一个早期发布版本**,那些打算重度使用的人们现在应该做好最少功能的准备。
+开发团队警告说**这是一个早期发布版本**,那些打算期望很高人要有暂时只能提供部分功能的心理准备。
-在GNOME桌面上看Android通知的移动端app现在已经在[Google Play商店][2]了,GNOME程序已经在Fedora的仓库中了。
+这个用来配合在GNOME桌面上看Android通知的移动端app现在已经在[Google Play商店][2]找到了,而GNOME程序已经放在Fedora的仓库中了。
-开发者已经在Gituhb上开源了Android和GNOME接收端的程序,
+开发者已经在Gituhb上开源了Android和GNOME接收端的程序。
-一个相似的工具[已经在KDE桌面上有了][3] - ‘KDE Connect’ - 已经有一两年了,通过Pushbullet来为使用Chrome的iOS和Android平台在Windows、MAC和Linux桌面上提供相似的功能。
+在一两年前,[KDE桌面上已经有了][3]一个相似的工具 - ‘KDE Connect,它通过Pushbullet来为使用Chrome的iOS和Android提供相似的功能,支持Windows、MAC和Linux桌面。
- [Nuntius for Android & GNOME on GitHub][4]
@@ -28,7 +28,7 @@ via: http://www.omgubuntu.co.uk/2015/03/new-app-brings-android-notifications-to-
作者:[Joey-Elijah Sneddon][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/New Debian TC Members Appointed For Going Past The Systemd Fallout.md b/published/201503/New Debian TC Members Appointed For Going Past The Systemd Fallout.md
similarity index 100%
rename from published/New Debian TC Members Appointed For Going Past The Systemd Fallout.md
rename to published/201503/New Debian TC Members Appointed For Going Past The Systemd Fallout.md
diff --git a/published/20150302 How to Setup Passwordless SSH Logon to Ubuntu 14.04.md b/published/20150302 How to Setup Passwordless SSH Logon to Ubuntu 14.04.md
new file mode 100644
index 0000000000..8d2a56f574
--- /dev/null
+++ b/published/20150302 How to Setup Passwordless SSH Logon to Ubuntu 14.04.md
@@ -0,0 +1,85 @@
+ 如何设置Ubuntu14.04 的 SSH 无密码登录
+================================================================================
+大家好,今天我来向大家介绍如何在 Ubuntu12.04 上设置 SSH 的无密码登录功能。仅在工作站上有正确的(公私)密钥对以供匹配时SSH服务端才会允许你登录,反之访问将不会被允许。
+
+正常情况下,我们需要连上SSH的控制台输入用户名及其密码才行。如果两者全部正确,我们就可以访问,反之访问被服务端拒绝。不过相比而言还有一种比用密码更安全的登录方式,我们可以在登录SSH时通过加密密钥进行无密码登录。
+
+如果你想启用这个安全的方式,我们只需简单的禁用密码登录并只允许加密密钥登录即可。使用这种方式时,客户端计算机上会产生一对私钥和公钥。接着客户端得把公钥上传到SSH服务端的authorized_key文件中去。在授予访问前,服务器及客户端电脑会校验这个密钥对。如果服务器上的公钥与客服端提交的私钥匹配则授予访问权限,否则访问被拒绝。
+
+这是认证到SSH服务器的非常安全的一种做法,如果你想为单一的SSH用户登录实现安全登录,这也是备受推崇的方式。这里快速的过一遍如何启用无密码登录SSH的配置过程。
+
+### 1.安装Openssh服务端 ###
+
+首先,我们需要更新我们的本地库索引。所以如下所见,我们需要先输入“apt-get update”
+
+ $ sudo apt-get update
+
+![Updating Repo Index](http://blog.linoxide.com/wp-content/uploads/2015/02/updating-repo-list.png)
+
+现在我们可以通过以下命令安装openssh-server:
+
+ $ sudo apt-get install openssh-server
+
+![Installing openssh server](http://blog.linoxide.com/wp-content/uploads/2015/02/installing-openssh-server.png)
+
+### 2. 开启openssh服务 ###
+
+在OpenSSH已经成功安装在Ubuntu14.04操作系统上了之后,我们要启动OpenSSH的服务。以下命令让你启动/开启服务。
+
+ $ sudo service ssh start
+
+或
+
+ $ sudo /etc/init.d/ssh start
+
+### 3. 配置密钥对 ###
+
+在我们安装并启动了OpenSSH服务以后。现在终于到了要我们搞定公私钥对的时候了,在终端中运行以下命令:
+
+ $ ssh-keygen -t rsa
+
+在运行完以上命令了以后,我们需要回答一系列的问题。首先选择保存密钥的路径,按回车将会选择默认路径即家目录的一个隐藏的.ssh文件夹。下一个提示是请输入口令提醒。我个人将此留空(直接回车)。之后密钥对就会创建,大功告成。
+
+![Generating Key Pair](http://blog.linoxide.com/wp-content/uploads/2015/02/generating-key-pair.png)
+
+在密钥对生成以后,我们需要将**客户端上的公钥复制到SSH服务端**或者主机,来创建对客户端的信任关系。运行以下命令复制客户端的公钥到服务端。
+
+ $ ssh-copy-id user@ip_address
+
+在公钥上传之后,我们现在可以禁用通过密码登陆SSH的方式了。为此,我们需要通过以下命令用文本编辑器打开**/etc/ssh/ssh_config**。
+
+ $ sudo nano /etc/ssh/sshd_config
+
+现在,我们需要按照下图所示去掉几行注释并进行一些赋值。
+
+![Configuring sshd Config](http://blog.linoxide.com/wp-content/uploads/2015/02/configuring-sshd_config.png)
+
+### 4. 重启SSH服务 ###
+
+最后,在我们配置完SSH服务端后,为了使改动生效我们需要重启SSH服务。在终端或控制台运行以下命令重启。
+
+ $ sudo service ssh restart
+
+或
+
+ $ sudo /etc/init.d/ssh restart
+
+![Restarting ssh](http://blog.linoxide.com/wp-content/uploads/2015/02/restarting-ssh.png)
+
+现在,我们可以试试不用密码仅用密钥对的方式登录ssh服务端了。
+
+### 总结 ###
+
+太好了!我们成功的配置了无密码登录SSH。使用加密密钥对进行SSH服务器认证是非常安全的一种做法,如果你想为SSH的单一用户登录实施安全的认证这也是备受推崇的方式。所以,如果你还有什么问题或建议,请在意见框中向我们反馈。很欣慰你能读完,希望你能喜欢加密的SSH安全登录 :-)
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/ubuntu-how-to/setup-passwordless-ssh-logon-ubuntu-14-04/
+
+作者:[Arun Pyasi][a]
+译者:[martin2011qi](https://github.com/martin2011qi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
diff --git a/translated/tech/20150304 How To Fix 'Not Enough Free Disk Space On boot' In Ubuntu.md b/published/20150304 How To Fix 'Not Enough Free Disk Space On boot' In Ubuntu.md
similarity index 54%
rename from translated/tech/20150304 How To Fix 'Not Enough Free Disk Space On boot' In Ubuntu.md
rename to published/20150304 How To Fix 'Not Enough Free Disk Space On boot' In Ubuntu.md
index 41318dd5fc..787a7355c3 100644
--- a/translated/tech/20150304 How To Fix 'Not Enough Free Disk Space On boot' In Ubuntu.md
+++ b/published/20150304 How To Fix 'Not Enough Free Disk Space On boot' In Ubuntu.md
@@ -6,45 +6,44 @@
> “Not Enough Free Disk Space On /boot”
-![](https://www.unixmen.com/wp-content/uploads/2015/02/Software-Updater_002.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/02/Software-Updater_002.png)
-这是因为我的启动分区超出了不再要的旧内核与包等。
+这是因为我的 /boot 分区被不再需要的旧内核与包塞满了。
### 回答: ###
-我听说**Computer Janitor**这个特性可以在Ubuntu Tweak中删除不想要的垃圾文件。使用Computer Janitor,你可以将你的系统清理成像新安装的那样。Janitor会删除:
+我听说Ubuntu Tweak中的**Computer Janitor**功能可以删除不想要的垃圾文件。使用Computer Janitor,你可以将你的系统清理成像新安装的那样。Janitor会删除:
-- 程序缓存(Firefox/Chrome 缓存、软件中心缓存);
+- 程序缓存(Firefox/Chrome 缓存、软件中心缓存);
- 略缩图缓存;
- apt缓存;
- 旧内核;
- 包的配置;
- 不再需要的包。
-If you haven’t install this tool, look at the following link.
如果你还没有安装这个工具,参考下面的链接
- **[如何安装和使用Ubuntu Tweak][1]**
要删除不需要的垃圾文件,打开Ubuntu Tweak,点击 **Janitor** 选项。
-![](https://www.unixmen.com/wp-content/uploads/2015/02/Ubuntu-Tweak_006.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/02/Ubuntu-Tweak_006.png)
选择你想要删除的文件的选框,并点击 **Clean** 按钮。
-![](https://www.unixmen.com/wp-content/uploads/2015/02/Ubuntu-Tweak_007.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/02/Ubuntu-Tweak_007.png)
Janitor现在就开始清理你的系统了。
-![](https://www.unixmen.com/wp-content/uploads/2015/02/Ubuntu-Tweak_003.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/02/Ubuntu-Tweak_003.png)
真酷!系统清理完成了。
-![](https://www.unixmen.com/wp-content/uploads/2015/02/Ubuntu-Tweak_008.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/02/Ubuntu-Tweak_008.png)
我重启启动了软件更新。这个没再遇到问题了。
-![](https://www.unixmen.com/wp-content/uploads/2015/02/Software-Updater_009.png)
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/02/Software-Updater_009.png)
就是这样。当然也有其他的方法可以清理系统。但是,这个方法很容易学。我们可以只点击几次鼠标就可以清理系统。
@@ -52,13 +51,13 @@ Janitor现在就开始清理你的系统了。
--------------------------------------------------------------------------------
-via: https://www.unixmen.com/how-to-fix-not-enough-free-disk-space-on-boot-in-ubuntu/
+via: http://www.unixmen.com/how-to-fix-not-enough-free-disk-space-on-boot-in-ubuntu/
作者:[SK][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://www.unixmen.com/author/sk/
-[1]:http://www.unixmen.com/after-a-fresh-install-of-ubuntu-1010-maverick-meerkat-configuration-made-easy-with-ubuntu-tweak/
+[1]:http://linux.cn/article-3335-1.html
diff --git a/published/20150306 Nmap--Not Just for Evil.md b/published/20150306 Nmap--Not Just for Evil.md
new file mode 100644
index 0000000000..e84ed9a1a7
--- /dev/null
+++ b/published/20150306 Nmap--Not Just for Evil.md
@@ -0,0 +1,41 @@
+Nmap--不是只能用于做坏事!
+================================================================================
+如果SSH是系统管理员世界的"瑞士军刀"的话,那么Nmap就是一盒炸药。炸药很容易被误用然后将你的双脚崩掉,但是也是一个很有威力的工具,能够胜任一些看似无法完成的任务。
+
+大多数人想到Nmap时,他们想到的是扫描服务器,查找开放端口来实施攻击。然而,在过去的这些年中,这样的超能力在当你管理服务器或计算机遇到问题时也是非常的有用。无论是你试图找出在你的网络上有哪些类型的服务器使用了指定的IP地址,或者尝试锁定一个新的NAS设备,以及扫描网络等,都会非常有用。
+
+下图显示了我的QNAP NAS的网络扫描结果。我使用该设备的唯一目的是为了NFS和SMB文件共享,但是你可以看到,它包含了一大堆大开大敞的端口。如果没有Nmap,很难发现机器到底在运行着什么玩意儿。
+
+![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11825nmapf1.jpg)
+
+*网络扫描*
+
+另外一个可能你没想到的用途是用它来扫描一个网络。你甚至根本不需要root的访问权限,而且你也可以非常容易地来指定你想要扫描的网络地址块,例如输入:
+
+ nmap 192.168.1.0/24
+
+上述命令会扫描我的局域网中全部的254个可用的IP地址,让我可以知道那个是可以Ping的,以及那些端口是开放的。如果你刚刚在网络上添加一个新的硬件,但是不知道它通过DHCP获取的IP地址是什么,那么此时Nmap就是无价之宝。例如,上述命令在我的网络中揭示了这个问题:
+
+ Nmap scan report for TIVO-8480001903CCDDB.brainofshawn.com (192.168.1.220)
+ Host is up (0.0083s latency).
+ Not shown: 995 filtered ports
+ PORT STATE SERVICE
+ 80/tcp open http
+ 443/tcp open https
+ 2190/tcp open tivoconnect
+ 2191/tcp open tvbus
+ 9080/tcp closed glrpc
+
+它不仅显示了新的Tivo 设备,而且还告诉我那些端口是开放的。由于它的可靠性、可用性以及“黑边帽子”的能力,Nmap获得了本月的 <<编辑推荐>>奖。这不是一个新的程序,但是如果你是一个linux用户的话,你应该玩玩它。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxjournal.com/content/nmap%E2%80%94not-just-evil
+
+作者:[Shawn Powers][a]
+译者:[theo-l](https://github.com/theo-l)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxjournal.com/users/shawn-powers
diff --git a/translated/share/20150310 4 Linux Based Mini PC You Can Buy In 2015.md b/published/20150310 4 Linux Based Mini PC You Can Buy In 2015.md
similarity index 63%
rename from translated/share/20150310 4 Linux Based Mini PC You Can Buy In 2015.md
rename to published/20150310 4 Linux Based Mini PC You Can Buy In 2015.md
index c3aa5b76b5..bbb7efa05c 100644
--- a/translated/share/20150310 4 Linux Based Mini PC You Can Buy In 2015.md
+++ b/published/20150310 4 Linux Based Mini PC You Can Buy In 2015.md
@@ -1,24 +1,23 @@
-2015你可以买的一款基于Linux的迷你PC
+2015年你可以买的四款基于Linux的迷你PC
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Linux_Based_Mini_PC.jpg)
-在我看来迷你PC将在不久的将来会替代传统桌面电脑。传统桌面的有一个像送风机那样占据大量空间的风扇。迷你PC,在另一方面说很小巧和紧凑。通常是4″或者5″大小,可以轻易地放在桌子上。
+在我看来迷你PC将在不久的将来会替代传统桌面电脑。传统桌面的有一个像吹风机那样占据大量空间的风扇。迷你PC,在另一方面说很小巧和紧凑。通常是4″或者5″大小,可以轻易地放在桌子上。
-不仅如此,这些迷你PC的无风扇设计是一个好处。当然,你可以购买无风扇的常规电脑,但是空间占用仍然是一个问题。对我个人来说,我觉得迷你PC外观上看着很可爱。如果你不是一个游戏玩家也不想买新的桌面PC,我强烈建议你**购买一个基于Linux的迷你PC**。
+不仅如此,这些迷你PC的无风扇设计是一个优点。当然,你可以购买无风扇的常规电脑,但是空间占用仍然是一个问题。对我个人来说,我觉得迷你PC外观上看着很可爱。如果你不是一个游戏玩家也不想买新的桌面PC,我强烈建议你**购买一款基于Linux的迷你PC**。
-如果你考虑我的建议买一个,那么你或许想知道该买哪款。不要担心,这篇文章我们会介绍**四款你可以在2015购买的基于Linux的迷你PC**。
+如果你考虑我的建议,那么你或许想知道该买哪款。不要担心,这篇文章我们会介绍**2015年你可以购买的四款基于Linux的迷你PC**。
### 基于Linux的迷你PC ###
-请注意这些PC可能还不能下单。它们中有些还刚刚公布,在不久的将来才会面向公众出售。
+需要注意的是,这其中的一些PC可能还不能下单。它们中有些还刚刚公布,在不久的将来才会面向公众出售。
#### 1. System76出品的Meerkat ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/system76-meerkat.jpg)
-[System76][1] is a computer manufacturer exclusively dealing with only Ubuntu based desktop, laptops and servers. [System76 announced an Ubuntu based mini PC Meerkat][2] last week. Let’s take a quick look at its specification:
-[System76][1] 是一家仅出品基于Ubuntu电脑、笔记本、服务器的电脑生产商。[System76在上周宣布了一款基于Ubuntu的迷你PC][2]。让我看一下它的规格:
+[System76][1] 是一家仅出品基于Ubuntu电脑、笔记本、服务器的电脑生产商。[System76在上周公布了一款基于Ubuntu的迷你PC][2]。让我看一下它的规格:
**规格**
@@ -43,7 +42,7 @@
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/01/mintbox-mini.jpeg)
-[Compulab][3]将它的旗舰产品基于Linux Mint的桌面设备成了[Mintbox Mini][4]。紧凑的版本在4″大小。更多的细节如下:
+[Compulab][3]将它基于Linux Mint的期间PC设备压缩,从Mintbox变为[Mintbox Mini][4]。这个紧凑的版本大小在4″左右。更多的细节如下:
**规格**
@@ -59,19 +58,17 @@
**价格**
-$300起售
+$300左右起售
**发售日期**
-2015第二季度
+2015年第二季度
#### 3. Compulab出品的Utilite2 ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Utilite2-ARM-PC.jpg)
-It’s not that Compulab has stuck with Linux Mint only. It announced an ARM desktop PC running Ubuntu in last December. With a size of 3.4″x2.3″, [Utilite2][5] has modest feature and modest price.
-Compulab并不是坚持用Linux Mint的。它在去年12月宣布了一款运行Ubuntu的ARM桌面PC。大小是3.4″x2.3″,[Utilite2][5]有最现代的特性和价格
-
+Compulab并不仅仅被Linux Mint所限制。它在去年12月公布了一款运行Ubuntu的ARM桌面PC。大小是3.4″x2.3″,[Utilite2][5]有最适合的性价比。
**规格**
@@ -85,20 +82,19 @@ Compulab并不是坚持用Linux Mint的。它在去年12月宣布了一款运行
**价格**
-常规版售价$192、带硬盘售价$229。邮费另付。
+常规版售价$192、带硬盘售价$229。运费另付。
**发售日期**
现在就可购买。运送将花费4周。
-#### Think Penguin出品的Penguin Pocket Wee ####
+#### 4. Think Penguin出品的Penguin Pocket Wee ####
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Think_Penguin_Pocket_Wee.jpeg)
-[Think Penguin][6]是一家开源硬件生产商。在迷你PC领域,它提供了[Penguin Pocket Wee][7]。大小是4.6″x 4.4″x 1.4″ ,, Penguin Pocket Wee提供了大量的配置。你可以选择处理器、存储、网卡等。你可以选择购买预装你喜欢的Linux发行版,默认系统是Ubuntu。
+[Think Penguin][6]是一家开源硬件生产商。在迷你PC领域,它提供了[Penguin Pocket Wee][7]。大小是4.6″x 4.4″x 1.4″ ,, Penguin Pocket Wee为你提供了大量的配置。你可以选择处理器、存储、网卡等。你可以选择购买预装你喜欢的Linux发行版,默认系统是Ubuntu。
-The general configuration is as following:
-下面的默认的配置
+下面是默认的配置:
- Intel Core i3 或者 i5处理器,最高支持1080p视频
- 最高扩展至 16GB 的 DDR3内存
@@ -110,18 +106,17 @@ The general configuration is as following:
**价格**
-Basic model starts at $499 and it can go up to $1000 based on the configuration you select.
-基础版本$499起售,根据你的配置最大是$1000。
+基础版本$499起售,根据你选择的配置最高价格是$1000。
**发售日期**
-现在就可下订单。该公司在美国和英国也有办公司,所以应也可以运送到南美和欧洲。
+现在就可下订单。该公司在美国和英国也有办公地点,所以应也可以运送到南美和欧洲。
### 你会选哪种? ###
我故意没有介绍[Raspberry Pi 2][8]或者其他Linux微电脑如[Intel的电脑棒][9]。原因是我不认为这些微电脑属于迷你PC的范畴。
-你怎么看?你想用迷你PC代替你的桌面PC么?是不是还有我没有在**最好的基于Linux的迷你PC**列出的PC?分享你们的观点吧。
+你怎么看?你想用迷你PC代替你的桌面PC么?是不是还有我没有在**基于Linux的最好的迷你PC**列表里列出的PC?在评论区分享你们的观点吧。
--------------------------------------------------------------------------------
@@ -129,7 +124,7 @@ via: http://itsfoss.com/4-linux-based-mini-pc-buy-2015/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150316 Linux FAQs with Answers--How to convert between local time and UNIX timestamp in Perl.md b/published/20150316 Linux FAQs with Answers--How to convert between local time and UNIX timestamp in Perl.md
similarity index 81%
rename from translated/tech/20150316 Linux FAQs with Answers--How to convert between local time and UNIX timestamp in Perl.md
rename to published/20150316 Linux FAQs with Answers--How to convert between local time and UNIX timestamp in Perl.md
index 34b8bf4629..18ce4c5587 100644
--- a/translated/tech/20150316 Linux FAQs with Answers--How to convert between local time and UNIX timestamp in Perl.md
+++ b/published/20150316 Linux FAQs with Answers--How to convert between local time and UNIX timestamp in Perl.md
@@ -1,8 +1,8 @@
Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换
================================================================================
-> **问题**: 在Perl语言中,我需要转换易读的日期和时间到对应的UNIX时间戳,反之亦然。你可以给我一些Perl代码例子吗?关于日期及时间转换到UNIX时间戳,或者相反,转换UNIX时间戳到可读的日期和时间。
+> **问题**: 在Perl语言中,我需要转换易读的日期和时间到对应的UNIX时间戳,反之亦然。你可以给我一些将日期及时间转换到UNIX时间戳的Perl代码例子吗?或者相反,转换UNIX时间戳到可读的日期和时间。
-当你的Perl脚本需要解决时间信息,这里有两种方法来表示和处理日期和时间。一种方法是易读的时间表示(例,"Sat Mar 14 10:14:05 EDT 2015"),另外一种是使用UNIX时间戳(也叫“新纪元时间”),这是从1970年1月1日到今所消耗的时间秒数。每一种方法都有它自己的优劣势,取决于你的需要,也许也就需要转换一种格式到另一种。
+当你的Perl脚本需要解决时间信息,这里有两种方法来表示和处理日期和时间。一种方法是易读的时间表示(例,"Sat Mar 14 10:14:05 EDT 2015"),另外一种是使用UNIX时间戳(也叫“新纪元时间”),这是从1970年1月1日到今所经过的时间秒数。每一种方法都有它自己的优劣势,取决于你的需要,也许也就需要转换一种格式到另一种。
### Perl中转换本地时间到UNIX时间戳 ###
@@ -13,13 +13,14 @@ Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换
- 14/Mar/15 10:14:05
- 14 Mar 15 10:14:05
- use Date::Parse;
+```
+use Date::Parse;
- my $local_time = "Sat Mar 14 10:14:05 EDT 2015";
+my $local_time = "Sat Mar 14 10:14:05 EDT 2015";
- # 1426342445 will be stored in $unix_time
- my $unix_time = str2time($local_time);
-
+# 1426342445 will be stored in $unix_time
+my $unix_time = str2time($local_time);
+```
Date:Parse 模块支持多种语言(英语,法语,德语和意大利语)和时区。例如:
use Date::Parse;
@@ -28,10 +29,9 @@ Date:Parse 模块支持多种语言(英语,法语,德语和意大利语)
my $lang = Date::Language->new('French');
my $unix_time = $lang->str2time("12:14:05, Ago 16, 2014 (CEST)");
-### Perl中UNIX时间戳到可读的日期和时间 ###
+### Perl中UNIX时间戳到易读的日期和时间 ###
-
-如果你想要转换UNIX时间戳到可读的格式,可以使用localtime()函数,此函数可以转换UNIX时间戳为一个9元素列表。然后你可以使用返回的list构造任何你需要的可读格式。这里有一个代码片段:
+如果你想要转换UNIX时间戳到易读的格式,可以使用localtime()函数,此函数可以转换UNIX时间戳为一个9元素列表。然后你可以使用返回的list构造任何你需要的可读格式。这里有一个代码片段:
# $sec, $min, $hour: 秒,分,时
# $mday: 月中的某天 (0-31)
@@ -55,7 +55,7 @@ via: http://ask.xmodulo.com/convert-local-time-unix-timestamp-perl.html
作者:[Dan Nanni][a]
译者:[VicYu/Vic020](http://vicyu.net)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20150318 Fedora GNOME Keyboard Shortcuts.md b/published/20150318 Fedora GNOME Keyboard Shortcuts.md
similarity index 69%
rename from translated/tech/20150318 Fedora GNOME Keyboard Shortcuts.md
rename to published/20150318 Fedora GNOME Keyboard Shortcuts.md
index 4210289b6d..75fdf0916e 100644
--- a/translated/tech/20150318 Fedora GNOME Keyboard Shortcuts.md
+++ b/published/20150318 Fedora GNOME Keyboard Shortcuts.md
@@ -1,14 +1,15 @@
-Fedora GNOME快捷键
+Fedora GNOME 的常用快捷键
================================================================================
-在Fedora,为了获得最好的[GNOME桌面] [1]体验,你需要了解并掌握一些驾驭系统的快捷键。
+在Fedora中,为了获得最好的[GNOME桌面][1]体验,你需要了解并掌握一些驾驭系统的快捷键。
这篇文章将列举我们日常使用中使用频率最高的快捷键。
-![GNOME Keyboard Shortcuts - The Super Key. ](http://f.tqn.com/y/linux/1/L/o/K/1/gnomekeyboardshortcut1.png)
-GNOME 快捷键 - super键.
-
#### 1. Super键 ####
+![GNOME Keyboard Shortcuts - The Super Key. ](http://f.tqn.com/y/linux/1/L/o/K/1/gnomekeyboardshortcut1.png)
+
+*GNOME 快捷键 - super键*
+
[“super”键][2]是如今驾驭操作系统的好朋友。
在传统的笔记本电脑中“super”键坐落于最后一列就在“alt”键的旁边(就是徽标键)。
@@ -17,116 +18,122 @@ GNOME 快捷键 - super键.
同时按下 "ALT" 和"F1"一样可以达到这样的效果。
-![GNOME Run Command.](http://f.tqn.com/y/linux/1/L/p/K/1/runcommand.png)
-GNOME 指令运行.
+### 2. 如何快速执行一条命令 ###
-### 2. 如何快速执行一条指令 ###
+![GNOME Run Command.](http://f.tqn.com/y/linux/1/L/p/K/1/runcommand.png)
+
+*GNOME 运行某命令*
如果你需要快速的执行一条指令,你可以按下"ALT"+"F2",这样就会出现指令运行对话框了。
-你就可以在窗口中输入你想要执行的指令了,回车执行。
-
-![TAB Through Applications.](http://f.tqn.com/y/linux/1/L/q/K/1/tabthroughwindows.png)
-使用TAB在应用中切换。
+现在你就可以在窗口中输入你想要执行的指令了,回车执行。
### 3. 快速切换到另一个打开的应用 ###
-就像微软的Windows一样你可以使用"ALT"和"TAB" 的组合键在应用程序之间切换。
+![TAB Through Applications.](http://f.tqn.com/y/linux/1/L/q/K/1/tabthroughwindows.png)
-在一些键盘上tab键是这样的**|<- ->|**而有些则是简单的"TAB"字母。
+*使用TAB在应用中切换*
-GNOME应用间切换随着你的切换显示的是简单的图标和应用的名字
+就像在微软的Windows下一样你可以使用"ALT"和"TAB" 的组合键在应用程序之间切换。
-如果你按下"shift"+"tab"将反过来切换应用。
+在一些键盘上tab键上画的是这样的**|<- ->|**,而有些则是简单的"TAB"字母。
-![Switch Windows In The Same Application.](http://f.tqn.com/y/linux/1/L/r/K/1/switchwindowsinsameapplication.png)
-在应用中切换不同窗口。
+GNOME应用切换器随着你的切换,显示简单的图标和应用的名字。
+
+如果你按下"shift"+"tab"将以反序切换应用。
### 4. 在同一应用中快速切换不同的窗口 ###
+![Switch Windows In The Same Application.](http://f.tqn.com/y/linux/1/L/r/K/1/switchwindowsinsameapplication.png)
+
+*在应用中切换不同窗口*
+
如果你像我一样经常打开五六个Firefox。
-你已经知道通过"Alt"+"Tab"实现应用间的切换。
+你已经知道通过"Alt"+"Tab"实现应用间的切换。有两种方法可以在同一个应用中所有打开的窗口中切换。
-有两种方法可以在同应用中所有打开的窗口中切换。
+第一种是按"Alt"+"Tab"让选框停留在你所要切换窗口的应用图标上。短暂的停留等到下拉窗口出现你就能用鼠标选择窗口了。
-第一种是按"Alt"+"Tab"让选框停留在你所要切换窗口的应用图标上。短暂的停留等到下拉窗出现你就能用鼠标选择窗口了。
+第二种也是比较推荐的方式是按"Alt"+"Tab"让选框停留在你所要切换窗口的应用图标上,然后按"super"+"`"在此应用打开的窗口间切换。
-第二种也是比较推荐的方式是按"Alt"+"Tab"让选框停留在你所要切换窗口的应用图标上然后按"super"+"`"在此应用打开的窗口间切换。
+**注释:"\`"就是tab键上面的那个键。无论你使用的那种键盘排布,用于切换的键一直都是tab上面的那个键,所以也有可能不是"\`"键。**
-**注释"\`"就是tab键上面的那个键。用于切换的键一直都是tab上面的那个键,无论你使用的那种键盘排布,也有可能不是"`"键。**
-
-如果你的手很灵活(或者是我称之为的忍者手)那你也可以同时按"shift", "`"和"super"键来反向切换窗口。
-
-![Switch Keyboard Focus.](http://f.tqn.com/y/linux/1/L/s/K/1/switchkeyboardfocus.png)
-切换键盘焦点。
+如果你的手很灵活(或者是我称之为忍者手的)那你也可以同时按"shift", "\`"和"super"键来反向切换窗口。
### 5. 切换键盘焦点 ###
+![Switch Keyboard Focus.](http://f.tqn.com/y/linux/1/L/s/K/1/switchkeyboardfocus.png)
+
+*切换键盘焦点*
+
这个键盘快捷键并不是必须掌握的,但是还是最好掌握。
如若你想将输入的焦点放到搜索栏或者一个应用窗口上,你可以同时按下"CTRL", "ALT"和"TAB",这样就会出现一个让你选择切换区域的列表。
然后就可以按方向键做出选择了。
-![Show All Applications.](http://f.tqn.com/y/linux/1/L/t/K/1/showapplications.png)
-显示所有应用程序。
-
### 6. 显示所有应用程序列表 ###
+![Show All Applications.](http://f.tqn.com/y/linux/1/L/t/K/1/showapplications.png)
+
+*显示所有应用程序*
+
如果恰巧最后一个应用就是你想要找的,那么这样做真的会帮你省很多时间。
-按"super"和"A"键来快速浏览这个包含你系统上所有应用的列表。
-
-![Switch Workspaces.](http://f.tqn.com/y/linux/1/L/u/K/1/switchworkspaces.png)
-切换工作区。
+按"super"和"A"键来快速切换到这个包含你系统上所有应用的列表上。
### 7. 切换工作区 ###
+![Switch Workspaces.](http://f.tqn.com/y/linux/1/L/u/K/1/switchworkspaces.png)
+
+*切换工作区*
+
如果你已经使用linux有一段时间了,那么这种[多工作区切换][3]的工作方式一定深得你心了吧。
-举个例子,你在第一个工作区里做开发,第二个中浏览网页而把你邮件的客户端开在第三个工作区中。
+举个例子,你在第一个工作区里做开发,第二个之中浏览网页,而把你邮件的客户端开在第三个工作区中。
-工作区切换你可以使用"super"+"Page Up" (PGUP)键朝一个方向切,也可以按"super"+"Page Down" (PGDN)键朝另一个方向切。
+工作区切换你可以使用"super"+"Page Up" (向上翻页)键朝一个方向切,也可以按"super"+"Page Down" (向下翻页)键朝另一个方向切。
还有一个比较麻烦的备选方案就是按"super"显示打开的应用,然后在屏幕的右侧选择你所要切换的工作区。
-![Move Application To Another Workspace.](http://f.tqn.com/y/linux/1/L/v/K/1/movetoanewworkspace.png)
-将应用移至另一个工作区。
-
### 8. 将一些项目移至一个新的工作区 ###
-如果这个工作区已经被搞得杂乱无章了没准你会想将手头的应用转到一个全新的工作区,请按组合键"super", "shift"和"page up"或"super", "shift"和"page down" key。
+![Move Application To Another Workspace.](http://f.tqn.com/y/linux/1/L/v/K/1/movetoanewworkspace.png)
+
+*将应用移至另一个工作区*
+
+如果这个工作区已经被搞得杂乱无章了,没准你会想将手头的应用转到一个全新的工作区,请按组合键"super", "shift"和"page up"或"super", "shift"和"page down" 键。
备选方案按"super"键,然后在应用列表中找到你想要移动的应用拖到屏幕右侧的工作区。
+### 9. 显示信息托盘 ###
+
![Show The Message Tray.](http://f.tqn.com/y/linux/1/L/w/K/1/showmessagetray.png)
-显示信息栏。
-### 9. 显示信息栏 ###
+*显示信息托盘*
-消息栏会提供一些通知。
-
-按"super"+"M"呼出消息栏。
+消息托盘会提供一个通知列表。按"super"+"M"呼出消息托盘。
备选方法是鼠标移动到屏幕右下角。
-![Lock The Screen.](http://f.tqn.com/y/linux/1/L/x/K/1/lockscreen.png)
-锁屏。
-
### 10. 锁屏 ###
+![Lock The Screen.](http://f.tqn.com/y/linux/1/L/x/K/1/lockscreen.png)
+
+*锁屏*
+
想要休息一会喝杯咖啡?不想误触键盘?
无论何时只要离开你的电脑应该习惯性的按下"super"+"L"锁屏。
解锁方法是从屏幕的下方向上拽,输入密码即可。
-![Control Alt Delete Within Fedora.](http://f.tqn.com/y/linux/1/L/y/K/1/poweroff.png)
-Fedora中Control+Alt+Delete
-
### 11. 关机 ###
+![Control Alt Delete Within Fedora.](http://f.tqn.com/y/linux/1/L/y/K/1/poweroff.png)
+
+*Fedora中Control+Alt+Delete*
+
如果你曾是windows的用户,你一定记得著名的三指快捷操作CTRL+ALT+DELETE。
如果在键盘上同时按下CTRL+ALT+DELETE,Fedora就会弹出一则消息,提示你的电脑将在60秒后关闭。
@@ -158,18 +165,17 @@ Fedora中Control+Alt+Delete
[录制的内容][4]将以[webm][5]格式保存于当前用户家目录下的录像文件夹中。
-![Put Windows Side By Side.](http://f.tqn.com/y/linux/1/L/z/K/1/splitwindows.png)
-并排显示窗口。
-
### 14. 并排显示窗口 ###
+![Put Windows Side By Side.](http://f.tqn.com/y/linux/1/L/z/K/1/splitwindows.png)
+
+*并排显示窗口*
+
你可以将一个窗口靠左占满左半屏,另一个窗口靠右占满右半屏,让两个窗口并排显示。
-也可以按"Super"+"←"让当前应用占满左半屏。
+也可以按"Super"+"←"(左箭头)让当前应用占满左半屏。按"Super"+"→"(右箭头)让当前应用占满右半屏。
-按"Super"+"→"让当前应用占满右半屏。
-
-### 15. 窗口的最大化, 最小化和恢复 ###
+### 15. 窗口的最大化,最小化和恢复 ###
双击标题栏可以最大化窗口。
@@ -177,11 +183,12 @@ Fedora中Control+Alt+Delete
右键菜单选择"最小化"就可以最小化了。
-![GNOME Keyboard Shortcut Cheat Sheet. ](http://f.tqn.com/y/linux/1/L/-/L/1/gnomekeyboardshortcuts.png)
-GNOME快捷键速查表。
-
### 16. 总结 ###
+![GNOME Keyboard Shortcut Cheat Sheet. ](http://f.tqn.com/y/linux/1/L/-/L/1/gnomekeyboardshortcuts.png)
+
+*GNOME快捷键速查表*
+
我做了一份快捷键速查表,你可以打印出来贴在墙上,这样一定能够更快上手。
当你掌握了这些快捷键后,你一定会感慨这个桌面环境使用起来是如此的顺手。
@@ -196,8 +203,8 @@ GNOME快捷键速查表。
via: http://linux.about.com/od/howtos/tp/Fedora-GNOME-Keyboard-Shortcuts.htm
作者:[Gary Newell][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[martin2011qi](https://github.com/martin2011qi)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/How to create a custom backup plan for Debian with backupninja.md b/published/How to create a custom backup plan for Debian with backupninja.md
similarity index 67%
rename from translated/tech/How to create a custom backup plan for Debian with backupninja.md
rename to published/How to create a custom backup plan for Debian with backupninja.md
index 50cd15c6ce..cfd0237c92 100644
--- a/translated/tech/How to create a custom backup plan for Debian with backupninja.md
+++ b/published/How to create a custom backup plan for Debian with backupninja.md
@@ -1,21 +1,21 @@
使用backupninja为Debian定制备份计划
-=======
+============
-backupninja是Debian系统(以及基于Debian的发行版)中一个强大的、高度可配置的备份软件。在[前一篇文章][1]中,我们探讨了如何安装backupninja以及如何设置两个备份操作并执行。然而,那些只是冰山一角。这一次,我们要讨论如何利用Helper与辅助功能,可以使用这些功能定制策略以完成任何备份需要。
+backupninja是Debian系统(以及基于Debian的发行版)中一个强大的、高度可配置的备份软件。在[前一篇文章][1]中,我们探讨了如何安装backupninja以及如何设置两个备份操作并执行。然而,那些只是冰山一角。这一次,我们要讨论如何定制 Handler 和 Helper ,使用这些功能定制策略以完成任何备份需要。
###回顾 backupninja
-backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软件自己会搞定。另外,我们可以编写自定义脚本(又叫 “handlers”)放在/usr/share/backupninja 目录下来完成不同类型的备份操作。此外,可以通过ninjahelper的基于ncurses的交互式菜单(又叫”helpers")来指导我们创建一些配置文件,使得人工错误率降到最低。
+backupninja的一个独特的地方是它可以完全抛弃/etc/backup.d中的纯文本配置文件和操作文件,软件自己会搞定。另外,我们可以编写自定义脚本(又叫 “handler”)放在/usr/share/backupninja 目录下来完成不同类型的备份操作。此外,可以通过ninjahelper的基于ncurses的交互式菜单(又叫“helper”)来指导我们创建一些配置文件,使得人工错误降到最低。
###创建定制的Handler与Helper
这一节的目标是创建一个脚本,将home目录以**gzip**或**bzip2**压缩包的形式备份起来,不包括音乐与视频文件。我们将这个文件命名为home,将它放在/usr/backup/ninja目录下。
-尽管你可以使用默认的tar handler(参考 /usr/share/backupninja/tar 与 /usr/share/backupninja/tar.helper)来达到这个效果,但是我们使用这种方法来展示如何创建实用的 handler 脚本与基于 ncurses 的 helper。你可以根据你的需求来决定如何运用同样的原则。
+尽管你可以使用默认的tar handler(参考 /usr/share/backupninja/tar 与 /usr/share/backupninja/tar.helper)来达到这个效果,但是我们使用这种方法来展示如何创建实用的 handler 脚本与基于 ncurses 的 helper。你可以根据你的需求来决定如何运用这里的方法。
-由于 handlers 来源与主脚本,所以无需以#!/bin/bash开始。
+由于 handlers 来源于主脚本,所以无需以#!/bin/bash开始的释伴行(shebang line)。
-我们推荐的 handler (/usr/share/backupninja/home)如下所示。它带有非常多的注释说明。getconf 功能用来读取备份操作的配置文件。如果你指定了一个变量的值,那么它会覆盖配置文件中对应变量的值:
+我们编写的 handler (/usr/share/backupninja/home)如下所示。已经详细注释了。getconf 函数用来读取备份操作的配置文件。如果你指定了一个变量的值,那么它会覆盖配置文件中对应变量的值:
#/home 目录 handler 脚本
@@ -34,25 +34,25 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
#不包含 *.mp3 与 *.mp4 文件
getconf excludes
- # 默认扩展一打包的备份文件
+ # 要打包备份文件的默认扩展名
getconf EXTENSION
- # Absolute path to date binary
+ # tar 程序的绝对路径
getconf TAR `which tar`
- # Absolute path to date binary
+ # date 程序的绝对路径
getconf DATE `which date`
# 日期格式
DATEFORMAT="%Y-%m-%d"
- # 如果备份目录不存在,以致命错误退出
+ # 如果备份目录不存在,以致命错误退出
if [ ! -d "$backupdir" ]
then
mkdir -p "$backupdir" || fatal "Can not make directory $backupdir"
fi
- # 如果备份目录不可写, 同样以致命错误退出
+ # 如果备份目录不可写,同样以致命错误退出
if [ ! -w "$backupdir" ]
then
fatal "Directory $backupdir is not writable"
@@ -85,7 +85,7 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
exclude_options="$exclude_options --exclude $i"
done
- # 调试信息, 执行备份操作
+ # 调试信息,执行备份操作
debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \
-f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
$includes
@@ -100,9 +100,9 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
[ $? -ne 0 ] && fatal "Tar backup failed"
-接下来我们将要创建helper文件 (/usr/share/backupninja/home.helper)这样,hendlers将会以菜单的形式在**ninjahelper**中显示:
+接下来我们将要创建helper文件(/usr/share/backupninja/home.helper)。这样,hendlers将会以菜单的形式在**ninjahelper**中显示:
- # 备份操作描述. 以下划线分割单词.
+ # 备份操作描述,以下划线分割单词
HELPERS="$HELPERS home:backup_of_home_directories"
home_wizard() {
@@ -173,7 +173,7 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
$home_includes
$home_excludes
- # 二进制压缩包,必须为GNU tar
+ # tar 程序的路径,必须为GNU tar
TAR `which tar`
DATE `which date`
DATEFORMAT "%Y-%m-%d"
@@ -186,19 +186,19 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
###运行 ninjahelper###
-当创建了名为home的handler脚本以及对应的名为home.helper的helper后,运行ninjahelper命令创建一个新的备份操作。
+当创建了名为home的handler脚本以及对应的home.helper后,运行ninjahelper命令创建一个新的备份操作。
#ninjahelper
-选择 create a new backup action(创建一个新的备份操作).
+选择 create a new backup action(创建一个新的备份操作)。
![](https://farm8.staticflickr.com/7467/15322605273_90edaa5bc1_z.jpg)
-接下来将看到可选的操作类型,这里选择“backup of home directories"(备份home目录);
+接下来将看到可选的操作类型,这里选择“backup of home directories"(备份home目录):
![](https://farm9.staticflickr.com/8636/15754955450_f3ef82217b_z.jpg)
-接下来会显示在helper中设置的默认值(这里只有3个)。可以编辑文本框中的值。注意,关于”when”变量的语法,参考文档的日程安排章节。
+然后会显示在helper中设置的默认值(这里只显示了3个)。可以编辑文本框中的值。注意,关于“when”变量的语法,参考文档的日程安排章节。
![](https://farm8.staticflickr.com/7508/15941578982_24b680e1c3_z.jpg)
@@ -210,9 +210,9 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
![](https://farm8.staticflickr.com/7534/15942239225_bb66dbdb63.jpg)
-按回车键显示这个备份操作的选项。因为它非常简单,可所以我们可以随便对它进行一些实验。
+按回车键显示这个备份操作的选项。因为它非常简单,所以我们可以随便对它进行一些实验。
-注意,“run this action now"(立即运行)选项会不顾日程表安排的时间而立即进行备份操作:
+注意,“run this action now"(立即运行)选项会不顾日程表安排的时间而立即进行备份操作:
![](https://farm8.staticflickr.com/7508/15754955470_9af6251096_z.jpg)
@@ -220,27 +220,26 @@ backupninja的特点是它完全抛弃纯文本的配置文件/etc/backup.d,软
![](https://farm9.staticflickr.com/8662/15754955480_487d040fcd_z.jpg)
-上面的图片告诉我们,备份操作讲不会成功,因为它所需要链接的远程主机似乎宕机了。另外,在helper文件中指定的目录不存在。当纠正这些问题后,重新开始备份操作。
+上面的图片告诉我们,用于完成备份操作的连接没有建立,因为它所需要链接的远程主机似乎宕机了。另外,在helper文件中指定的目标目录不存在。当纠正这些问题后,重新开始备份操作。
需要牢记的事情:
- - 当你新建了一个自定义脚本来处(如foobar)理特殊的备份操作时,那么你还需要编写与之对应的helper(foobar.helper)文件,ninjahelper 将通过它生成名为10.foobar(下一个操作为11,以此类推)的文件,保存在/etc/backup.d目录下,而这个文件才是备份操作的真正的配置文件。
- - 可以通过ninjahelper设定行备份操作的执行时间,或按照”when”变量中设置的频率来执行。
+ - 当你在/usr/share/backupninja 下新建了一个自定义脚本(如foobar)来处理特殊的备份操作时,那么你还需要编写与之对应的helper(foobar.helper)文件,ninjahelper 将通过它生成名为10.foobar(下一个操作为11,以此类推)的文件,保存在/etc/backup.d目录下,而这个文件才是备份操作的真正的配置文件。
+ - 可以通过ninjahelper设定好备份操作的执行时间,或按照“when”变量中设置的频率来执行。
###总结###
-在这篇文章中,我们探讨了如何从头创建我们自己的备份操作,以及如何向ninjahelper添加相关的菜单以生成对应的配置文件。通过[上一篇][2]与这一篇文章,我希望我已经给出了足够好的理由让你继续研究,或者至少应该尝试一下。
+在这篇文章中,我们探讨了如何从头创建我们自己的备份操作,以及如何向ninjahelper添加相关的菜单以生成对应的配置文件。通过[上一篇][1]与这一篇文章,我希望我已经给出了足够好的理由让你继续研究,或者至少应该尝试一下。
------------------------------
via: http://xmodulo.com/create-custom-backup-plan-debian.html
-作者:[ Gabriel Cánepa][a]
-译者:[SPccman](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+作者:[Gabriel Cánepa][a]
+译者:[SPccman](https://github.com/SPccman)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/gabriel
-[1]:http://xmodulo.com/backup-debian-system-backupninja.html
-[2]:http://xmodulo.com/backup-debian-system-backupninja.html
+[1]:http://linux.cn/article-5096-1.html
diff --git a/sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md b/sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md
deleted file mode 100644
index 199474e714..0000000000
--- a/sources/share/20141204 Intense Gameplay--Try these 13 Roguelike games.md
+++ /dev/null
@@ -1,406 +0,0 @@
-FSSlc translating
-
-Intense Gameplay? Try these 13 Roguelike games
-================================================================================
-Roguelike is a sub-genre of role-playing games. It literally means "a game like Rogue". Rogue is a dungeon crawling video game first released in 1980, standing out for being fiendishly addictive. Its goal was to retrieve the Amulet of Yendor, hidden deep in the 26th level, and ascend back to the top.
-
-There is no exact definition of a roguelike, but this type of game typically has the following characteristics:
-
-- High fantasy narrative background
-- Procedural level generation. Most of the game world is generated by the game for every new gameplay session. This is meant to encourage replayability
-- Turn-based dungeon exploration and combat
-- Tile-based graphics that are randomly generated
-- Random conflict outcomes
-- Permanent death death works realistically, once you're gone, you're gone
-- High difficulty
-
-This article compiles a good selection of roguelike games available for Linux. If you enjoy intense, addictive gameplay, try these 13 games. Don't be put off by the primitive graphics, you'll soon forget the visuals once you get immersed. All of them are available to download without charge, and almost all are released under an open source license.
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/DungeonCrawlStoneSoup.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-Dungeon1.png)
-
-Dungeon Crawl Stone Soup is an open-source, single-player, role-playing roguelike game of exploration and treasure-hunting in dungeons filled with dangerous and unfriendly monsters in a quest to rescue the mystifyingly fabulous Orb of Zot.
-
-Dungeon Crawl Stone Soup is a continuation of Linley's Dungeon Crawl. It is openly developed and invites participation from the Crawl community.
-
-Dungeon Crawl has superb, deep tactical gameplay, innovative magic and religion systems, and a grand variety of monsters to fight. Crawl is also one of the hardest roguelikes to beat. When you finally beat the game and write your victory post on rec.games.roguelike.misc, you know you have achieved something.
-
-Features include:
-
-- Well-rounded, deep tactically rich roguelike
-- Hand-drawn maps
-- Numerous portal vaults
-- Slick interface
-- Innovative magic and religion systems
-- Wide range of Gods, Characters, Items, and Smart Monsters
-
-- Website: [crawl.develz.org][1]
-- Developer: Stone Soup devteam
-- License: Crawl General Public License
-- Version Number: 0.15.2
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/DwarfFortress.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-DwarfFortress.png)
-
-Dwarf Fortress is a single-player fantasy game, similar to NetHack. You can control a dwarven outpost or an adventurer in a randomly generated, persistent world.
-
-The game features three modes of play (Dwarf Fortress, Adventurer and Legends modes), a distinct, randomly-generated world (complete with terrain, wildlife and legends), gruesome combat mechanics and vicious schools of carp.
-
-Features include:
-
-
-- The world persists as long as you like, over many games, recording historical events and tracking changes
-- Command your dwarves as they search for wealth in the mountain
- - Craft treasures and furniture from many materials and improve these objects with precious metals, jewels and more
- - Defend yourself against attacks from hostile civilizations, the wilderness and the depths
- - Support the nobility as they make demands of your populace
- - Keep your dwarves happy and read their thoughts as they work and relax
- - Z coordinate allows you to dig out fortresses with multiple levels. Build towers or conquer the depths
- - Build floodgates to divert water for farming or to drown your adversaries
-- Play an adventurer and explore, quest for glory or seek vengeance
- - Meet adversaries from previous games
- - Recruit people in towns to come with you on your journey
- - Explore without cumbersome plot restrictions
- - Seamlessly wander the world -up to 197376 x 197376 squares total -or travel more rapidly on the region map
- - Accept quests from the town and civilization leaders
- - Retire and meet your old characters. Bring them along on an adventure with a new character or reactivate them and play directly
- - Z coordinate allows you to move seamlessly between dungeon levels and scale structures fighting adversaries above and below
-- The combat model uses skills, body parts, wrestling, charging and dodging between squares, bleeding, pain, nausea, and much more
-- A dynamic weather model tracks wind, humidity and air masses to create fronts, clouds, rain storms and blizzards
-- Over two hundred rock and mineral types are incorporated into the world, placed in their proper geological environments
-- Add new creatures, weapons, plants, metals and other objects via modifiable text files
-- Extended ASCII character set rendered in 16 colors (including black) as well as 8 background colors (including black)
-
-- Website: [www.bay12games.com/dwarves/][2]
-- Developer: Tarn Adams
-- License: Freeware
-- Version Number: 0.40.19
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/ADOM.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-ADOM.png)
-
-Ancient Domains of Mystery (ADOM) is a rogue-like game which has been in development since 1994.
-
-It is a single-user game featuring the exploration of a dungeon complex. You control a fictional character described by race, class, attributes, skills, and equipment. This fictional character is trying to achieve a specific goal (see below) and succeed in a difficult quest. To fulfill the quest, you have to explore previously undiscovered tunnels and dungeons, fight hideous monsters, uncover long forgotten secrets, and find treasures of all kind.
-
-During the game, you explore dungeon levels which are randomly generated each game. You might also encounter certain special levels, which present a particular challenge or are built around a certain theme.
-
-Features include:
-
-- Huge game world with hundreds of locations such as towns, randomized dungeons, elemental temples, graveyards, ancient ruins, towers and other secrets
-- Loads of races (dwarves, drakelings, mist elves, hurthlings, orcs, trolls, ratlings and many others) and even more classes (fighters, elementalists, assassins, chaos knights, duelists and much more) allowing for infinite play styles
-- Hundreds of monsters and items, many with enhanced random features
-- A corruption system forcing you to balance lust for power with fear of damnation
-- Spells, prayers, mindcraft, alchemy, crafting and more
-- Dozens of quests and branching story lines
-- Numerous wildly different endings that might alter reality itself
-
-- Website: [www.adom.de][3]
-- Developer: Thomas Biskup
-- License: Postcardware
-- Version Number: 1.20 Prelease 20
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/ToME.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-ToME.png)
-
-Tales of Maj’Eyal (ToME) is a free, open source roguelike RPG, featuring tactical turn-based combat and advanced character building. It is written as a module that runs in T-Engine 4.0.
-
-This is the Age of Ascendancy, after over ten thousand years of strife, pain and chaos the known world is at last at relative peace. The Spellblaze last effects are now tamed, the land slowly heals itself and the civilisations rebuild themselves after the Age of Pyre.
-
-Features include:
-
-- Suitable for gamers without any rogueline experience
-- Supports both graphical tiles and ASCII mode
-- Over 40 abilities available on some characters
-- Talent system
-- Combat engine
-- Online persistent stat/achievement tracking
-- IRC chat client
-- Expandable and moddable
-- Atmospheric music
-- Unlock new races, classes, starting points, playmodes and features
-
-- Website: [te4.org][4]
-- Developer: ToME Development Team
-- License: GNU GPL v3.0
-- Version Number: 1.2.5
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/CataclysmDarkDaysAhead1.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Cataclysm.png)
-
-Cataclysm is an open source post-apocalyptic roguelike, set in the countryside of fictional New England after a devastating plague of monsters and zombies. It is a continuation of Whale's original Cataclysm, which expands it with numerous new creatures, buildings, gameplay mechanics and many other features.
-
-While some have described it as a "zombie game", there's far more to Cataclysm than that. Struggle to survive in a harsh, persistent, procedurally generated world. Scavenge the remnants of a dead civilization for for food, equipment, or, if you're lucky, a vehicle with a full tank of gas to get you the hell out of Dodge. Fight to defeat or escape from a wide variety of powerful monstrosities, from zombies to giant insects to killer robots and things far stranger and deadlier, and against the others like yourself, that want what you have...
-
-Cataclysm is very different from most roguelikes in many ways. Rather than being set in a vertical, linear dungeon, it is set in an unbounded, 3D world. This means that exploration plays a much bigger role than in most roguelikes, and the game is much less linear. As the map is so huge, it is actually completely persistant between games. If you die, and start a new character, your new game will be set in the same game world as your last. Like in many roguelikes, you will be able to loot the dead bodies of previous characters; unlike most roguelikes, you will also be able to retrace their steps completely, and any dramatic changes made to the world will persist into your next game.
-
-Features include:
-
-
-- Detailed character creation, with a plethora of traits to choose
-- Defense mode, a coffeebreak mode with fast-paced combat
-- Bionics; Similar to the magic system in many games
-- Mutations, both positive and negative
-- Unbounded, fully randomized world map that is persistent between characters
-- Item crafting
- - New recipes may be acquired by honing your knowledge through practice or learning from books
-- Realistic fire, smoke, and other dynamic map effects
-- A day/night cycle with the need to sleep. Use caffeine to stay awake longer if you must but be aware this is not healthy
-- Over 300 item types, including a multitude of real-world guns, drugs, and tools
- - Many drugs are addictive, and will require continuous use to avoid withdrawal effects.
-- Ability to board doors and windows, construct traps and fortify your home base to prevent a rude awakening by a zombie
-- Ability to construct your own wooden constructions, including walls and a roof
-- Ability to drive around in vehicles found in the post-apocalyptic landscape
- - These can be modified to your needs, or you could even build one from scratch
-- A temperature system, being too cold or too hot is quite hazardous
-- Preliminary tile support
-- WorldGen options, and versatile editing methods
--
-- Website: [en.cataclysmdda.com][5]
-- Authors: Kevin Granade and others
-- License: Creative Commons Attribution-ShareAlike 3.0 Unported License
-- Version Number: 0.B
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/GoblinHack1.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-GoblinHack.png)
-
-Goblin Hack is an open source roguelike OpenGL-based smooth-scrolling ASCII graphics game. The game is inspired by the likes of NetHack, but faster with fewer keys.
-
-Goblin Hack has a simple interface that appears to appeal to players of all ages, and fires their imagination in today's world of over-rendered games.
-
-Players can choose one of several classes before being thrown into the first floor of a randomized, ongoing dungeon.
-
-Features include:
-
-- Impressive graphics (compared with many other roguelike games)
-- Simple interface
-- Choose one of several classes before being thrown into the first floor of a randomized, ongoing dungeon
-- Manually save the game
-
-- Website: [goblinhack.sourceforge.net][6], [github.com/goblinhack/goblinhack][7]
-- Authors: Neil McGill
-- License: GNU GPL v2
-- Version Number: 1.19
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/SLASH%27EM.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-SlashEM.png)
-
-Super Lotsa Added Stuff Hack - Extended Magic (SLASH'EM) is a role-playing game where you control a single character. SLASH'EM is a variant of NetHack. It also has an interface and gameplay similar to Rogue, ADOM, Anghand and NetHack. You control the actions through the keyboard and view the world from an overhead perspective.
-
-The problem: The Amulet of Yendor has been stolen. Not only that but it appears that the Wizard of Yendor (not a nice person), who took the amulet, is hiding in the Dungeons of Doom (not a friendly place).
-
-Features include:
-
-- Offers extra features, monsters, and items
-- Novel features inlude the Monk class and Sokoban levels
-- The main dungeon is much larger than in NetHack
-
-- Website: [www.slashem.org][8]
-- Developer: The Slash'EM development team
-- License: MIT License, NetHack General Public License
-- Version Number: 0.0.7E7F3
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/NetHack.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-NetHack.jpg)
-
-NetHack is a wonderfully silly, yet quite addictive Dungeons and Dragons-style adventure game. The "net" element references that its development has been coordinated through the Internet. The "hack" element refers to a genre of role-playing games known as hack and slash for their focus on combat.
-
-In NetHack you play the part of a fierce fighter, wizard, or any of many other classes, fighting your way down to retrieve the Amulet of Yendor (try saying THAT one backwards!) for your god. On the way, you might encounter a quantum mechanic or two, or perhaps a microscopic space fleet, or -- if you're REALLY lucky -- the Ravenous Bugblatter Beast of Traal.
-
-Features include:
-
-- 45-50 levels, most of which are randomly generated
-- Variety of items: weapons, armour, scrolls, potions, rings, gems, and an assortment of tools such as keys and lamps
-- Blessings and curses
-- Permadeath: expired characters cannot be revived without having made backup copies of the actual save files
-- Interfaces:
- - Console
- - Graphical, using X, Qt toolkit or GNOME libraries
-
-- Website: [www.nethack.org][9]
-- Developer: The NetHack DevTeam
-- License: NetHack General Public License
-- Version Number: 3.4.3
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/AsciiSector.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-AsciiSector.png)
-
-Ascii Sector is a free space combat/exploration/trading game which is based on the classic computer game Wing Commander: Privateer released by Origin Systems in 1993.
-
-In Ascii Sector, you start with a simple spaceship and can then accept missions or trade goods to earn enough money to upgrade your ship or buy a new one. You can engage in deadly fights both in space, on the ground and on board spaceships, and using the Ascii Sector scripting language, you can create your own quests for the game or have fun with other players' quests.
-
-Features include:
-
-- Uses the ANSI character set for the graphics
-- Real depth to the gameplay
-- Offers a wide variety of bases, missions, commodities and ships
-- Ships include: Broadsword, Centurion, Demon, Dralthi, Drayman, Galaxy, Gladius, Gothri, Kamekh, Nexus, Orion, Paradign, Stileto, Talon, Tarsus, and Ulysses
-- Four quadrants: Alizarin, Crimson, Mauve, and Viridian
-- Downloadable quests
-- Scripting of quests
-- Ascii Sector quest language, create your own stories in the Ascii Sector universe
-- NPCs on planets can be attacked and robbed
-- Persistent fleets that can move around, change control of systems, engage enemy fleets, head back for repairs and rebuilds
-- Ships whose systems have been disabled can be boarded
-- Download high quality music files
-
-- Website: [www.asciisector.net][10]
-- Developer: Christian Knudsen
-- License: Freeware
-- Version Number: 0.7.1.4
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/Angband.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Angband.png)
-
-Angband is a free, single-player graphical dungeon exploration game that uses ASCII characters where you take the role of an adventurer, exploring a deep dungeon, fighting monsters, and acquiring the best weaponry you can, in preparation for a final battle with Morgoth, the Lord of Darkness. It has been in development since the 1990s.
-
-Angband is along the lines of Rogue and NetHack. It is derived from the games Moria and Umoria, which were in turn based on Rogue. It is often described as a "roguelike" game because the look and feel of the game is still quite similar to Rogue. Many of these new creatures and objects are drawn from the writings of J.R.R Tolkien, although some of the monsters come straight from classical mythology, Dungeons & Dragons, Rolemaster, or the minds of the orginal Angband coders.
-
-Features include:
-
-- 100 level dungeon
-- New levels are randomly generated
-- Choose to be a human, half-elf, elf, hobbit, gnome, dwarf, half-orc, half-troll, dunadan, high-elf, or kobold
-- Artifacts
-- Spellcasting
-- Monsters
-- Monster pits
-- Monster nests
-
-- Website: [rephial.org][11]
-- Developer: Angband Development Team
-- License: GNU GPL v2
-- Version Number: 3.5.0
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/UnNetHack1.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-UnNetHack.png)
-
-UnNetHack is a fork of NetHack. NetHack was first released in 1987, and is considered by many gamers to be one of the best gaming experiences the computing world offers.
-
-Features include:
-
-
-- Adds a number of enhancements to NetHack such as additional monsters, more levels, a few new objects, additional dangers, more challenging gameplay, and most importantly more entertainment than vanilla NetHack
-- Tutorial to help new players get started
-
-- Website: [sourceforge.net/apps/trac/unnethack][12]
-- Authors: Patric Mueller
-- License: Nethack General Public License
-- Version Number: 5.1.0
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/HydraSlayer.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-HydraSlayer.png)
-
-Hydra Slayer is an open source Roguelike game focused on slaying Hydras. It is inspired by Greek mythology, Dungeon Crawl, MathRL seven day roguelike, and some mathematical puzzles about brave heroes slaying many headed beasts.
-
-Features include:
-
-- Unique gameplay mechanics
-- A theme which mixes Greek mythology and mathematics
-- Traditional roguelike ASCII graphics, or tiles/3D display
-- 5 player character races with very distinct tactics, strengths and weaknesses
-- 28 enemy types:
- - 10 basic types of elemental hydras (each of them has two special variations)
- - 8 types of special enemies
- - Harmless mushrooms for strategic advantage
-- 28 types of equipment (not counting material and size/power variations)
-- 15 weapon materials
-- 18 types of non-equipment items
-- 3 game geometries to choose
-- 8 level topologies (including the Mobius strip and Klein bottle)
-- 11 level generators
-- 2 endings
-
-- Website: [www.roguetemple.com/z/hydra][13]
-- Developer: Zeno Rogue
-- License: GNU GPL v2
-- Version Number: 16.1
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/Brogue1.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Brogue.png)
-
-Brogue is an open source Roguelike game for Mac OS X, Windows, Linux, iOS and Android.
-
-Brogue is a direct descendant of Rogue, a dungeon crawling video game first developed by Michael Toy and Glenn Wichman around 1980. Unlike other popular modern roguelikes, Brogue favors simplicity over complexity, while trying to ensure that the interactions between components are interesting and varied.
-
-The goal of the game is to travel to the 26th subterranean floor of the dungeon, retrieve the Amulet of Yendor and return with it to the surface. For the truly skillful who desire further challenge, depths below 26 contain three lumenstones each, items which confer an increased score upon victory.
-
-Brogue is a challenging game, but still great fun to play. Try not to be disheartened by the difficulty of the game; with some application, Brogue will become very addictive.
-
-Features include:
-
-- Favors simplicity over complexity
-- User-friendly features
-- Compared with Rogue, Brogue has a more sophisticated level generation
-- XP and levelling system removed
-- Traps, protecting items
-- Additional monster types and magical items
-
-- Website: [sites.google.com/site/broguegame][14]
-- Authors: Brian Walker
-- License: GNU Affero GPL
-- Version Number: 1.7.3
-
---------------------------------------------------------------------------------
-
-via: http://www.linuxlinks.com/article/201412031524381/RoguelikeGames.html
-
-作者:Frazer Kline
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[1]:http://crawl.develz.org/
-[2]:http://www.bay12games.com/dwarves/index.html
-[3]:http://www.adom.de/
-[4]:http://te4.org/
-[5]:http://en.cataclysmdda.com/
-[6]:http://goblinhack.sourceforge.net/
-[7]:https://github.com/goblinhack/goblinhack
-[8]:http://www.slashem.org/
-[9]:http://www.nethack.org/
-[10]:http://www.asciisector.net/
-[11]:http://rephial.org/
-[12]:http://sourceforge.net/apps/trac/unnethack/
-[13]:http://www.roguetemple.com/z/hydra/
-[14]:https://sites.google.com/site/broguegame/
diff --git a/sources/share/20150227 Chess in a Few Bytes.md b/sources/share/20150227 Chess in a Few Bytes.md
deleted file mode 100644
index 26ef9d523d..0000000000
--- a/sources/share/20150227 Chess in a Few Bytes.md
+++ /dev/null
@@ -1,114 +0,0 @@
-Chess in a Few Bytes
-================================================================================
-I am showing my age by mentioning that my introduction to computing was a ZX81, a home computer produced by a UK developer (Sinclair Research) which had a whopping 1KB of RAM. The 1KB is not a typographical error, the home computer really shipped with a mere 1KB of onboard memory. But this memory limitation did not prevent enthusiasts producing a huge variety of software. In fact the machine sparked a generation of programming wizards who were forced to get to grips with its workings. The machine was upgradable with a 16KB RAM pack which offered so many more coding possibilities. But the unexpanded 1KB machine still inspired programmers to release remarkable software.
-
-![1K ZX Chess ](http://www.linuxlinks.com/portal/content2/reviews/Games2/1KZXChess.jpg)
-
-My favourite ZX81 games were Flight Simulation, 3D Monster Maze, Galaxians, and above all 1K ZX Chess. Only the latter was written for the unexpanded ZX81. In fact, David Horne's 1K ZX Chess was coded in a mere 672 bytes of RAM. However, the game managed to implement most chess rules, and offer a computer opponent. While some important rules were omitted (castling, pawn promotion, and en passant capture), it was still amazing to be able to play against artificial intelligence. The game took up a fair chunk of my misspent youth.
-
-1K ZX Chess remained the smallest implementation of chess on any computer for 33 years until the record was broken by BootChess this year, and subsequently by Toledo AtomChess. These three games do not implement all of the chess rules, so for completeness I have included my favourite small implementation of chess that implements a complete set of chess rules.
-
-Linux has a good range of extremely strong chess engines such as Stockfish, Critter, Togo II, Crafty, GNU Chess, and Komodo. The chess engines featured in this article offer no match to a good chess engine, but they show how much can be achieved with a minuscule codebase.
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/ToledoAtomchess.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Toledo.png)
-
-You may have seen a considerable amount of press coverage about BootChess, a chess program written in 487 bytes of code, smashing the record of the then smallest chess program, 1K ZX Chess. Óscar Toledo Gutiérrez took up the mantle and decided to code an even more compact chess game. Toledo Atomchess is a mere 481 bytes of x86 assembly code which fits in a boot sector. The engine plays a reasonable game of chess given the limitations of its incredibly small codebase.
-
-Features include:
-
-- Basic chess movements
-- ASCII text representation of chess board
-- Moves are entered in algebraic form
-- Search depth of 3-ply
-
-Obviously, to fit the chess of game into 481 bytes, the author had to make some sacrifices. These limitations include:
-
-- No promotion of pawns
-- No castling
-- No en passant
-- No move validation
-
-The author has also written chess programs in C, JavaScript and Java; each are very small implementations of chess.
-
-- Website: [nanochess.org/chess6.html][1]
-- Developer: Óscar Toledo Gutiérrez
-- License: Free for non-commercial use
-- Version Number: -
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/BootChess.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-BootChess.png)
-
-BootChess is an extremely small computer implementation of chess. The game is crammed into a mere 487 bytes and runs on Windows, Mac OS X and Linux operating systems. The board and pieces of BootChess are represented by text alone, with P representing pawns, Q used for the queens and full stops entered for empty squares.
-
-Features include:
-
-- Graphic text representation of chess board and use input
-- Bootsector sized (512 bytes) with a playable chess game
-- x86 bios hardware only bootstrap (no software dependencies)
-- All main legal moves including double square pawn start
-- Pawn promotion to queen (contrary to 1k ZX Chess)
-- CPU artificial intelligence called taxiMax > minMax half-ply
-- Hard-coded Spanish white pieces opening
-
-Again, there are some important limitations. Omissions include:
-
-- Under-promotion
-- En passant pawn capture
-- No castling
-- 3-repetition rule
-- 50 move draw rule
-- No opening or closing books
-- One or more minMax/negaMax full plies for artificial intelligence
-
-- Website: [www.pouet.net/prod.php?which=64962][2]
-- Developer: Olivier "Baudsurfer/RSi" Poudade
-- License: WTFPL v2
-- Version Number: .02
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/Micro-Max.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Micro-Max.png)
-
-Micro-Max is a 133-line chess source which is written in C
-
-The author has implemented a (hash) transposition table, the engine checks the legality of the input moves, and full FIDE rules except for for under-promotions.
-
-Features include:
-
-- Recursive negamax search
-- Quiescence search with recaptures
-- Recapture extensions
-- Iterative deepening
-- Best-move-first 'sorting'
-- Hash table storing score and best move
-- Full FIDE rules (except under promotion) and move-legality checking
-
-There is also a stripped-down 1433-character version, but allowing you to play under-promotions for full FIDE-rule compliance.
-
-- Website: [home.hccnet.nl/h.g.muller/max-src2.html][3]
-- Developer: Harm Geert Muller
-- License: The MIT License
-- Version Number: 3.2
-
---------------------------------------------------------------------------------
-
-via: http://www.linuxlinks.com/article/20150222033906262/ChessBytes.html
-
-作者:Frazer Kline
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[1]:http://nanochess.org/chess6.html
-[2]:http://www.pouet.net/prod.php?which=64962
-[3]:http://home.hccnet.nl/h.g.muller/max-src2.html
\ No newline at end of file
diff --git a/sources/share/20150323 Papyrus--An Open Source Note Manager.md b/sources/share/20150323 Papyrus--An Open Source Note Manager.md
deleted file mode 100644
index eda13551a8..0000000000
--- a/sources/share/20150323 Papyrus--An Open Source Note Manager.md
+++ /dev/null
@@ -1,57 +0,0 @@
-Papyrus: An Open Source Note Manager
-================================================================================
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_4.jpeg)
-
-In last post, we saw an [open source to-do app Go For It!][1]. In a similar article, today we’ll see an **open source note taking application Papyrus**.
-
-[Papyrus][2] is a fork of [Kaqaz note manager][3] and is built on QT5. It brings a clean, polished user interface and is security focused (as it claims). Emphasizing on simplicity, I find Papyrus similar to OneNote. You organize your notes in ‘paper’ and add them a label for grouping those papers. Simple enough!
-
-### Papyrus features: ###
-
-Though Papyrus focuses on simplicity, it still has plenty of features up its sleeves. Some of the main features are:
-
-- Note management with labels and categories
-- Advanced search options
-- Touch mode available
-- Full screen option
-- Back up to Dropbox/hard drive/external
-- Password protection for selective papers
-- Sharing papers with other applications
-- Encrypted synchronization via Dropbox
-- Available for Android, Windows and OS X apart from Linux
-
-### Install Papyrus ###
-
-Papyrus has APK available for Android users. There are installer files for Windows and OS X. Linux users can get source code of the application. Ubuntu and other Ubuntu based distributions can use the .deb packages. Based on your OS and preference, you can get the respective files from the Papyrus download page:
-
-- [Download Papyrus][4]
-
-### Screenshots ###
-
-Here are some screenshots of the application:
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_3-700x450_c.jpeg)
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_2-700x450_c.jpeg)
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_1-700x450_c.jpeg)
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux-700x450_c.jpeg)
-
-Give Papyrus a try and see if you like it. Do share your experience with it with the rest of us here.
-
---------------------------------------------------------------------------------
-
-via: http://itsfoss.com/papyrus-open-source-note-manager/
-
-作者:[Abhishek][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://itsfoss.com/author/abhishek/
-[1]:http://itsfoss.com/go-for-it-to-do-app-in-linux/
-[2]:http://aseman.co/en/products/papyrus/
-[3]:https://github.com/sialan-labs/kaqaz/
-[4]:http://aseman.co/en/products/papyrus/
\ No newline at end of file
diff --git a/sources/share/20150324 How to Install Telegram Messenger Application on Linux.md b/sources/share/20150324 How to Install Telegram Messenger Application on Linux.md
deleted file mode 100644
index 0d4946db1f..0000000000
--- a/sources/share/20150324 How to Install Telegram Messenger Application on Linux.md
+++ /dev/null
@@ -1,132 +0,0 @@
-How to Install Telegram Messenger Application on Linux
-================================================================================
-Telegram is an Instant Messaging (IM) application similar to whatsapp. It has a very large user base. It has a lot of features that differentiate it from other messaging application.
-
-![Install Telegram in Linux](http://www.tecmint.com/wp-content/uploads/2015/03/Install-Telegram-in-Linux.png)
-Telegram Messenger for Linux
-
-This article aims at making you aware of telegram application followed by detailed installation instructions on Linux Box.
-
-#### Features of Telegram ####
-
-- Implementation for mobile devices
-- Available for Desktop.
-- Application Program Interface (API) of Telegram can be Accessed by third party developers.
-- Available for Android, iphone/ipad, Windows Phone, Web-Version, PC, Mac and Linux
-- The above application provides Heavily Encrypted and self destruct messages.
-- Lets you access your message from multiple devices and platform.
-- The overall processing and message delivery is lightening fast.
-- Distributed server across the globe for security and speed.
-- Open API and Free Protocol
-- NoAds, No Subscription charge. – Free forever.
-- Powerful – No limit to media and chats
-- Several security measures that make it safe from Hackers.
-- Reply to Specific message in group. Mention @username to notify multiple users in group.
-
-#### Why Telegram? ####
-
-When Applications like whatsapp and other IM are providing almost same things in bag, why should someone opt for Telegram?
-
-Well Availability of API to third party developer is enough to say. Moreover availability for PC which means you won’t have to struggle typing message using your mobile, but you can use your PC and that is pretty more than sufficient.
-
-Also The option to connect on remote locations, Co-ordinate – Group of upto 200 Members, Sync all your devices, Send – Documents of all kind, Encrypt message, Self destruction of message, Storage of Media in Cloud, Build own tool on freely available API and what not.
-
-**Testing Environment**
-
-We have used Debian GNU/Linux, x86_64 architecture to test it and the overall process went very smooth for us. Here what we did stepwise.
-
-### Installation of Telegram Messenger in Linux ###
-
-First go to the official Telegram site, and download Telegram source package ([tsetup.0.7.23.tar.xz][1]) for Linux system or you may use following wget command to download directly.
-
- # wget https://updates.tdesktop.com/tlinux/tsetup.0.7.23.tar.xz
-
-Once package has been downloaded, unpack the tarball and switch from current working directory to the extracted directory.
-
- # tar -xf tsetup.0.7.23.tar.xz
- # cd Telegram/
-
-Next, execute the binary file ‘Telegram’ from the command line as shown below.
-
- # ./Telegram
-
-1. The first Impression. Click “START MESSAGING”.
-
-![Start Messaging](http://www.tecmint.com/wp-content/uploads/2015/03/Start-Messaging.jpeg)
-Start Messaging
-
-2. Enter Your phone Number. Click “NEXT”. If you have not registered for telegram before this, using the same number as entered above you will get a warning that you don’t have a telegram account yet. Click “Register Here”.
-
-![Signup for Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Register.png)
-Signup for Telegram
-
-3. After submitting your phone number, telegram will send you a verification code, shortly. You need to Enter it.
-
-![Telegram Verification Code](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Verfication-Code.png)
-Telegram Verification Code
-
-4. Enter your First_Name, Last_name and pics and click “SIGNUP”.
-
-![Enter Account Details](http://www.tecmint.com/wp-content/uploads/2015/03/Enter-Account-Details.jpeg)
-Enter Account Details
-
-5. After account creation, I got this interface. Everything seems at its place, even when I am new to telegram Application. The interface is really simple.
-
-![Telegram Interface](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Interface.jpeg)
-Telegram Interface
-
-6. Click Add a contact and Enter Their first_name, last_name and Phone number. Click create when done!.
-
-![Add New Telegram Contact](http://www.tecmint.com/wp-content/uploads/2015/03/Add-New-Telegram-Contact.png)
-Add New Telegram Contact
-
-7. If the contact you added is not on telegram already, You get a warning message and telegram will acknowledge you when your contact joins telegram.
-
-![Telegram Contact Notification](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Contact-Notification.jpeg)
-Telegram Contact Notification
-
-8. As soon as the contact joins telegram you get a message (pop-out like) that reads [YOUR_CONTACT] joined telegram.
-
-9. A formal chat window on Linux Machine. Nice experience…
-
-![Telegram Contact Join Message](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Contact-Join-Message.jpeg)
-Telegram Contact Join Message
-
-10. At the same time, I’ve tried messaging from my android mobile device, the interface looks similar on both.
-
-![Telegram Mobile Interface](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Mobile-Interface.png)
-Telegram Mobile Interface
-
-11. Telegram settings page. You have a lot of options to configure.
-
-![Telegram Settings](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Settings.png)
-Telegram Settings
-
-12. About Telegram.
-
-![About Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/About-Telegram.jpeg)
-About Telegram
-
-#### Less Interesting Points ####
-
-- Telegram usage protocol MTProto Mobile protocol.
-- Released Initially for iPhone in the year 2013 (August 14)..
-- People Behind this Amazing Project: Pavel and Nikolai Durov..
-
-That’s all for now. I’ll be here again with another interesting article you will love to read. I take the pleasure on behalf of Tecmint to thank all our valuable readers and critics who made us stand where we are now through continuous self evolving process. Keep Connected! Keep Commenting. Share if you care for us.
-
-- [https://telegram.org/][2]
-
---------------------------------------------------------------------------------
-
-via: http://www.tecmint.com/install-telegram-in-linux/
-
-作者:[Avishek Kumar][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://www.tecmint.com/author/avishek/
-[1]:https://tdesktop.com/linux
-[2]:https://telegram.org/
\ No newline at end of file
diff --git a/sources/share/20150330 Picty--Managing Photos Made Easy.md b/sources/share/20150330 Picty--Managing Photos Made Easy.md
new file mode 100644
index 0000000000..ab1c8a094d
--- /dev/null
+++ b/sources/share/20150330 Picty--Managing Photos Made Easy.md
@@ -0,0 +1,103 @@
+Translating by H-mudcup
+Picty: Managing Photos Made Easy
+================================================================================
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/03/picty_002-790x429.png)
+
+### About Picty ###
+
+**Picty** is a free, simple, yet powerful photo collection manager that will help you to manage your photos. It is designed around managing **metadata** and a **lossless** approach to image handling. Picty currently supports both online(web-based) and offline(local) collections. In local collections, the images will be stored in a local folder and it’s sub-folders. A database will be maintained to speed up the image queries in the user’s home folder. In online(web-based) collections, you can upload and share images through a web browser. Ant user with proper rights can share photos to any persons, and each user can have multiple collections open at once and collections can be shared by multiple users. There is a simple interface for transferring images between collections using a transfer plugin.
+
+You can download any number of photos from your Camera or any devices. Also, Picty allows you to browse photo collections from your Camera before downloading it. Picty is lightweight application, and has snappy interface. It supports Linux, and Windows platforms.
+
+### Features ###
+
+- Supports big photo collections (20,000 plus images).
+- Open more than one collection at a time and transfer images between them.
+- Collections are:
+ - Folders of images in your local file system.
+ - Images on cameras, phones and other media devices.
+ - Photo hosting services (Flickr currently supported).
+- picty does not “Import” photos into its own database, it simply provides an interface for accessing them wherever they are. To keep things snappy and to allow you to browse even if you are offline, picty maintains a cache of thumbnails and metadata.
+- Reads and writes metadata in industry standard formats Exif, IPTC and Xmp
+- Lossless approach:
+ - picty writes all changes including image edits as metadata. e.g. an image crop is stored as any instruction, the original pixels remain in the file
+ - Changes are stored in picty’s collection cache until you save your metadata changes to the images. You can easily revert unsaved changes that you don’t like.
+- Basic image editing:
+ - Current support for basic image enhancements such as brightness, contrast, color, cropping, and straightening.
+ - Improvements to those tools and other tools coming soon (red eye reduction, levels, curves, noise reduction)
+- Image tagging:
+ - Use standard IPTC and Xmp keywords for image tags
+ - A tag tree view lets you easily manage your tags and navigate your collection
+- Folder view:
+ - Navigate the directory heirarchy of your image collection
+- Multi-monitor support
+ - picty can be configured to let you browse your collection on one screen and view full screen images on another.
+- Customizable
+ - Create launchers for external tools
+ - Supports plugins – many of the current features (tagging and folder views, and all of the image editing tools) are provided by plugins
+ - Written in python – batteries included!
+
+### Installation ###
+
+#### 1. Install from PPA ####
+
+Picty developers has a PPA for Debian based distributions, like Ubuntu, to make the installation much easier.
+
+To install in Ubuntu and derivatives, run:
+
+ sudo add-apt-repository ppa:damien-moore/ppa
+ sudo apt-get update
+ sudo apt-get install picty
+
+#### 2. Install from Source ####
+
+Also, you can install it from Source files. First, install the following dependencies.
+
+ sudo apt-get install bzr python-pyinotify python-pyexiv2 python-gtk2 python-gnome2 dcraw python-osmgpsmap python-flickrapi
+
+Then, get the latest version using command:
+
+ bzr branch lp:picty
+
+To run picty, change to the picty directory, and enter:
+
+ cd picty
+ bin/picty
+
+To update to the latest version, run:
+
+ cd picty
+ bzr pull
+
+### Usage ###
+
+Launch Picty either from Menu or Unity Dash.
+
+![picty_001](http://www.unixmen.com/wp-content/uploads/2015/03/picty_001.png)
+
+You can either choose existing collection, device or directory. Let us create a **new collection**. To do that, create New Collection button. Enter the collection, and browse to the path where you have the images stored. Finally, click **Create** button.
+
+![Create a Collection_001](http://www.unixmen.com/wp-content/uploads/2015/03/Create-a-Collection_001.png)
+
+![picty_002](http://www.unixmen.com/wp-content/uploads/2015/03/picty_002.png)
+
+You can modify, rotate, add/remove tags, set descriptive info of each images. To do that, just right click any image and do the actions of your choice.
+
+Visit the following Google group to get more information and support about Picty Photo manager.
+
+- [http://groups.google.com/group/pictyphotomanager][1]
+
+Cheers!
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/picty-managing-photos-made-easy/
+
+作者:[SK][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/sk/
+[1]:http://groups.google.com/group/pictyphotomanager
diff --git a/sources/share/20150407 10 Truly Amusing Easter Eggs in Linux.md b/sources/share/20150407 10 Truly Amusing Easter Eggs in Linux.md
new file mode 100644
index 0000000000..6d02c4cfbb
--- /dev/null
+++ b/sources/share/20150407 10 Truly Amusing Easter Eggs in Linux.md
@@ -0,0 +1,154 @@
+10 Truly Amusing Easter Eggs in Linux
+================================================================================
+![](http://en.wikipedia.org/wiki/File:Adventure_Easteregg.PNG)
+The programmer working on Adventure slipped a secret feature into the game. Instead of getting upset about it, Atari decided to give these sorts of “secret features” a name -- “Easter Eggs” because… you know… you hunt for them. Image credit: Wikipedia.
+
+Back in 1979, a video game was being developed for the Atari 2600 -- [Adventure][1].
+
+The programmer working on Adventure slipped a secret feature into the game which, when the user moved an “invisible square” to a particular wall, allowed entry into a “secret room”. That room contained a simple phrase: “Created by [Warren Robinett][2]”.
+
+Atari had a policy against putting author credits in their games, so this intrepid programmer put his John Hancock on the game by being, well, sneaky. Atari only found out about the “secret room” after Warren Robinett had left the company. Instead of getting upset about it, Atari decided to give these sorts of “secret features” a name -- “Easter Eggs” because… you know… you hunt for them -- and declared that they would be putting more of these “Easter Eggs” in future games.
+
+This wasn’t the first such “hidden feature” built into a piece of software (that distinction goes to an operating system for the [PDP-10][3] from 1966, but this was the first time it was given a name. And it was the first time it really grabbed the attention of most computer users and gamers.
+
+Linux (and Linux related software) has not been left out. Some truly amusing Easter Eggs have been created for our beloved operating system over the years. Here are some of my personal favorites -- with how to achieve them.
+
+You’ll notice, rather quickly, that most of these are experienced via a terminal. That’s on purpose. Because terminals are cool. [I should also take this moment to say that if you try to run an application I list, and you do not have it installed, it will not work. You should install it first. Because… computers.]
+
+### Arch : Pac-Man in pacman ###
+
+We’re going to start with one just for the [Arch Linux][4] fans out there. You can add a [Pac-Man][5]-esque character to your progress bars in “[pacman][6]” (the Arch package manager). Why this isn’t enabled by default is beyond me.
+
+To do this you’ll want to edit “/etc/pacman.conf” in your favorite text editor. Under the “# Misc options” section, remove the “#” in front of “Color” and add the line “ILoveCandy”. Because Pac-Man loves candy.
+
+That’s it! Next time you fire up a terminal and run pacman, you’ll help the little yellow guy get some lunch (or at least some candy).
+
+### GNU Emacs : Tetris and such ###
+
+![emacs Tetris](http://www.linux.com/images/stories/41373/emacsTetris.jpg)
+I don’t like emacs. Not even a little bit. But it does play Tetris.
+
+I have a confession to make: I don’t like [emacs][7]. Not even a little bit.
+
+Some things fill my heart with gladness. Some things take away all my sadness. Some things ease my troubles. That’s [not what emacs does][8].
+
+But it does play Tetris. And that’s not nothing. Here’s how:
+
+Step 1) Launch emacs. (When in doubt, type “emacs”.)
+
+Step 2) Hit Escape then X on your keyboard.
+
+Step 3) Type “tetris” and hit Enter.
+
+Bored of Tetris? Try “pong”, “snake” and a whole host of other little games (and novelties). Take a look in “/usr/share/emacs/*/lisp/play” for the full list.
+
+### Animals Saying Things ###
+
+The Linux world has a long and glorious history of animals saying things in a terminal. Here are the ones that are the most important to know by heart.
+
+On a Debian-based distro? Try typing “apt-get moo".
+
+![apt-get moo](http://www.linux.com/images/stories/41373/AptGetMoo.jpg)
+apt-get moo
+
+Simple, sure. But it’s a talking cow. So we like it. Then try “aptitude moo”. It will inform you that “There are no Easter Eggs in this program”.
+
+If there’s one thing you should know about [aptitude][9], it’s that it’s a dirty, filthy liar. If aptitude were wearing pants, the fire could be seen from space. Add a “-v” option to that same command. Keep adding more v’s until you force aptitude to come clean.
+
+![](http://www.linux.com/images/stories/41373/AptitudeMoo.jpg)
+I think we can all agree, that this is probably the most important feature in aptitude.
+
+I think we can all agree, that this is probably the most important feature in aptitude. But what if you want to put your own words into the mouth of a cow? That’s where “cowsay” comes in.
+
+And, don’t let the name “cowsay” fool you. You can put words into so much more than just a cow. Like an elephant, Calvin, Beavis and even the Ghostbusters logo. Just do a “cowsay -l” from the terminal to get a complete list of options.
+
+![](http://www.linux.com/images/stories/41373/cowsay.jpg)
+You can put words into so much more than just a cow.
+
+Want to get really tricky? You can pipe the output of other applications into cowsay. Try “fortune | cowsay”. Lots of fun can be had.
+
+### Sudo Insult Me Please ###
+
+Raise your hand if you’ve always wanted your computer to insult you when you do something wrong. Hell. I know I have. Try this:
+
+Type “sudo visudo” to open the “sudoers” file. In the top of that file you’ll likely see a few lines that start with “Defaults”. At the bottom of that list add “Defaults insults” and save the file.
+
+Now, whenever you mistype your sudo password, your system will lob insults at you. Confidence boosting phrases such as “Listen, burrito brains, I don’t have time to listen to this trash.”, “Are you on drugs?” and “You’re mind just hasn’t been the same since the electro-shocks, has it?”.
+
+This one has the side-effect of being a rather fun thing to set on a co-worker's computer.
+
+### Firefox is cheeky ###
+
+Here’s one that isn’t done from the Terminal! Huzzah!
+
+Open up Firefox. In the URL bar type “about:about”. That will give you a list of all of the “about” pages in Firefox. Nothing too fancy there, right?
+
+Now try “about:mozilla” and you’ll be greeted with a quote from the “[Book of Mozilla][10]” -- the holy book of web browsing. One of my other favorites, “about:robots”, is also quite excellent.
+
+![](http://www.linux.com/images/stories/41373/About-Mozilla550.jpg)
+The “Book of Mozilla” -- the holy book of web browsing.
+
+### Carefully Crafted Calendar Concoctions ###
+
+Tired of the boring old [Gregorian Calendar][11]? Ready to mix things up a little bit? Try typing “ddate”. This will print the current date on the [Discordian Calendar][12]. You will be greeted by something that looks like this:
+
+“Today is Sweetmorn, the 18th day of Discord in the YOLD 3181”
+
+I hear what you’re saying, “But, this isn’t an Easter Egg!” Shush. I’ll call it an Easter Egg if I want to.
+
+### Instant l33t Hacker Mode ###
+
+Want to feel like you’re a super-hacker from a movie? Try setting nmap into “[Script Kiddie][13]” mode (by adding “-oS”) and all of the output will be rendered in the most 3l33t [h@x0r-y way][14] possible.
+
+Example: “nmap -oS - google.com”
+
+Do it. You know you want to. Angelina Jolie would be [super impressed][15].
+
+### The lolcat Rainbow ###
+
+Having awesome Easter Eggs and goodies in your Linux terminal is fine and dandy… but what if you want it to have a little more… pizazz? Enter: lolcat. Take the text output of any program and pipe it through lolcat to super-duper-rainbow-ize it.
+
+![](http://www.linux.com/images/stories/41373/lolcat.jpg)
+Take the text output of any program and pipe it through lolcat to super-duper-rainbow-ize it.
+
+### Cursor Chasing Critter ###
+
+![oneko cat](http://www.linux.com/images/stories/41373/onekocat.jpg)
+“Oneko” -- the Linux port of the classic “Neko”.
+
+“Oneko” -- the Linux port of the classic “[Neko][16]”.
+And that brings us to “oneko” -- the Linux port of the classic “Neko”. Basically a little cat that chases your cursor around the screen.
+
+While this may not qualify as an “Easter Egg” in the strictest sense of the word, it’s still fun. And it feels Easter Egg-y.
+
+You can also use different options (such as “oneko -dog”) to use a little dog instead of a cat and a few other tweaks and options. Lots of possibilities for annoying co-workers with this one.
+
+There you have it! A list of my favorite Linux Easter Eggs (and things of that ilk). Feel free to add your own favorite in the comments section below. Because this is the Internet. And you can do that sort of thing.
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/news/software/applications/820944-10-truly-amusing-linux-easter-eggs-
+
+作者:[Bryan Lunduke][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/community/forums/person/56734
+[1]:http://en.wikipedia.org/wiki/Adventure_(Atari_2600)
+[2]:http://en.wikipedia.org/wiki/Warren_Robinett
+[3]:http://en.wikipedia.org/wiki/PDP-10
+[4]:http://en.wikipedia.org/wiki/Arch_Linux
+[5]:http://en.wikipedia.org/wiki/Pac-Man
+[6]:http://www.linux.com/news/software/applications/820944-10-truly-amusing-linux-easter-eggs-#Pacman
+[7]:http://en.wikipedia.org/wiki/GNU_Emacs
+[8]:https://www.youtube.com/watch?v=AQ4NAZPi2js
+[9]:https://wiki.debian.org/Aptitude
+[10]:http://en.wikipedia.org/wiki/The_Book_of_Mozilla
+[11]:http://en.wikipedia.org/wiki/Gregorian_calendar
+[12]:http://en.wikipedia.org/wiki/Discordian_calendar
+[13]:http://nmap.org/book/output-formats-script-kiddie.html
+[14]:http://nmap.org/book/output-formats-script-kiddie.html
+[15]:https://www.youtube.com/watch?v=Ql1uLyuWra8
+[16]:http://en.wikipedia.org/wiki/Neko_%28computer_program%29
\ No newline at end of file
diff --git a/sources/share/20150407 Ambient Noise Player for Ubuntu Plays Relaxing Sounds to Keep You Creative.md b/sources/share/20150407 Ambient Noise Player for Ubuntu Plays Relaxing Sounds to Keep You Creative.md
new file mode 100644
index 0000000000..f8f2b714fc
--- /dev/null
+++ b/sources/share/20150407 Ambient Noise Player for Ubuntu Plays Relaxing Sounds to Keep You Creative.md
@@ -0,0 +1,55 @@
+Ambient Noise Player for Ubuntu Plays Relaxing Sounds to Keep You Creative
+================================================================================
+![Rain is a soothing sound for some](http://www.omgubuntu.co.uk/wp-content/uploads/2015/04/raining-1600x900-wallpaper_www.wallpapermay.com_84-1.jpg)
+Rain is a soothing sound for some
+
+**If I plan on being productive I can’t listen to ‘regular’ music. It distracts me. I start singing along or get reminded of a different track, so end up poking around my library and… Well, that’s that.**
+
+But by the same token I can’t work in silence (living with 6 cats means that’s not a possibility, though) but the inconsistency jars and sudden clatters and meows interrupt.
+
+My solution that is to **listen to ambient noise**.
+
+I find it helps nullify the misdirection my brain craves, land provide a soundscape that wraps the noise of kitty play time.
+
+Ambient noise is the noise that play out in the background of daily lives; the rain drumming on a window, the intelligible hum of coffee shop chatter, the gossiping of birds on the wind, and so on.
+
+Listening to these sounds can force a racing mind to slow down, rebase and refocus on what matters.
+
+### Ambient Noise App for Ubuntu ###
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/04/ambient-noise-player-750x365.jpg)
+
+Google Play and Apple app stores are packed full of ambient and white noise apps. Now a similar tool is available natively on Ubuntu.
+
+‘[Ambient Noise][1]‘ — as the name might suggest — is an audio player designed specifically for playing these sounds. It even integrates with the Ubuntu Sound Menu for a neat ‘pick, click and relax’ experience.
+
+The app, which is also known as ‘ANoise Player’ and is made by Marcos Costales, comes with a set of **8 high-quality sounds**.
+
+These 8 presets cover various ambient atmospheres, ranging from the rhythmic sound of rain, to the tranquil tones of nature at night, and back to the buzz of a bustling coffee shop in the afternoon.
+
+### Install ANoise Player in Ubuntu ###
+
+Ambient Noise player for Ubuntu is a free application and is available to install from its own dedicated PPA.
+
+To do this open a new Terminal window and run:
+
+ sudo add-apt-repository ppa:costales/anoise
+
+ sudo apt-get update && sudo apt-get install anoise
+
+Once installed simply open it from the Unity Dash (or your DE’s equivalent), pick your preferred noise using Sound Menu and then …relax! The app even remembers which sound you used last.
+
+Even so, give it a try out and see if it suits your needs. I would say let me know what you think, but I will be too focused to hear — and so might you!
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2015/04/ambient-noise-player-app-for-ubuntu-linux
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://anoise.tuxfamily.org/
\ No newline at end of file
diff --git a/sources/share/20150407 Top 6 Ways To Get Your iTunes Experience On Linux.md b/sources/share/20150407 Top 6 Ways To Get Your iTunes Experience On Linux.md
new file mode 100644
index 0000000000..194c3307e2
--- /dev/null
+++ b/sources/share/20150407 Top 6 Ways To Get Your iTunes Experience On Linux.md
@@ -0,0 +1,86 @@
+Top 6 Ways To Get Your iTunes Experience On Linux
+================================================================================
+![](http://cdn.makeuseof.com/wp-content/uploads/2015/04/itunes-linux-840x420.jpg?35dc20)
+
+As you’re getting used to Linux (potentially as your new main operating system), you’ll eventually try to find a way to efficiently manage your music. iTunes comes to mind because it’s been the most popular way to manage music over the years, but you’ll quickly find out that iTunes isn’t available natively on Linux. Plus, better ways exist to manage your music now that it’s 2015.
+
+However, that doesn’t automatically mean that you won’t be able to manage your music the way you want to. There’s plenty of other ways to keep tabs on your music library. Here’s six great ways to get it done.
+
+### iTunes via WINE ###
+
+Even if iTunes isn’t available in Linux as a native application, you can still try to [get it to work under WINE][1] or PlayOnLinux. These pieces of software try to add a compatibility layer so that Windows applications work on Linux, but the results are far from perfect. Therefore, [not all Windows applications will run with WINE][2] — but it’s still worth a try.
+
+Each version of iTunes can give you different results, but the general process is as follows:
+
+1. Install WINE
+1. Run the iTunes installer via WINE
+1. Google and try to solve any problems you come across.
+
+Again, you might come across issues somewhere along the way which cannot be solved, such as the installer failing or the installed application refusing to run. That’s just how it is with WINE.
+
+If you really want to use iTunes and you happen to luck out with WINE, then that’s great. However, if you’d rather use a native Linux application or WINE didn’t work for you, then there are options here as well. Several “music library manager” programs are available to give you a quick oversight of your music and play it directly in the application, as well as make playlists.
+
+### [Amarok][3] ###
+
+![](http://cdn.makeuseof.com/wp-content/uploads/2015/03/amarok_main.jpg?35dc20)
+
+If you use KDE, then I’d recommend Amarok. It has [plenty of features to manage your music][4] and tight desktop integration with KDE. It also has useful features such as Last.FM integration, file tracking, dynamic playlists, and script support. It can even pull up biographies of artists as you play their songs.
+
+### [Banshee][5] ###
+
+![](http://cdn.makeuseof.com/wp-content/uploads/2015/03/banshee_main.jpg?35dc20)
+
+If you use GNOME or any GTK-based desktop environment (they’re quite common), then I’d recommend Banshee as a [full-featured music library][6] manager. It has a very similar feature set as Amarok, including Last.FM integration, Internet radio support, podcast support, and much more. Amarok and Banshee are really among the top two choices, so which one you choose should depend on which desktop environment you’re using (for integration’s sake).
+
+### [Rhythmbox][7] ###
+
+![](http://cdn.makeuseof.com/wp-content/uploads/2015/03/rhythmbox_main.jpg?35dc20)
+
+Rhythmbox as a more [lightweight music library alternative][8] that is best used on GTK-based desktop environments. However, it still has quite a few features. You also get Last.FM support here, plus gapless playback and integration with various other applications such as Nautilus, XChat, and Pidgin.
+
+### [Clementine][9] ###
+
+![](http://cdn.makeuseof.com/wp-content/uploads/2015/03/clementine_main.jpg?35dc20)
+
+Another application called Clementine also gets my recommendation with its clean and intuitive interface. It has tons of support for third-party services such as Spotify, Digitally Imported, and Dropbox. There’s also an Android app you can use as a remote control for Clementine. [Clementine is cross-platform][10] and available for Windows and Mac OS X.
+
+They all are excellent at managing and playing your music. The only downside to all of these is that there is no iOS device integration, and there’s currently no modern application that can do that. However, iOS has received enough improvements that it’s virtually unnecessary to connect it to a computer anymore.
+
+### [Google Play Music][11] ###
+
+![](http://cdn.makeuseof.com/wp-content/uploads/2015/03/google_music.jpg?35dc20)
+
+Lastly, if none of those applications satisfy your needs, you can take a look at Google Play Music. This online service acts as a music library manager that can play your music, but it also has some extra benefits. You can upload all your music to it and have access on any device connected to the Internet. That also means that you won’t have to sync your music between your computer and your mobile device (no matter if Android or iOS) because you have access to Google Play Music from both. If you want to expand your library you can get the All Access subscription, but it’s not a requirement. You can use it simply as a music library completely free for up to 20,000 songs.
+
+#### Wot, no Spotify?! ####
+
+The only reason why I don’t mention Spotify is that, although it’s also a great way to access and listen to music, it doesn’t really let you manage your own music. You can’t upload trakcs to Spotify — you have to listen to what they give you. Albeit they give you a lot, but it’s nonetheless a different mechanism.
+
+### You Have Options ###
+
+With these six options, you should be able to get iTunes-like functionality on your desktop. These options focused mainly on managing and playing your music library, but if there are any other features that you need from iTunes, other Linux-native applications can take care of those needs.
+
+**What music applications do you regularly use on Linux?** Let us know in the comments!
+
+--------------------------------------------------------------------------------
+
+via: http://www.makeuseof.com/tag/top-6-ways-get-itunes-experience-linux/
+
+作者:[Danny Stieben][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.makeuseof.com/tag/author/danny/
+[1]:http://www.makeuseof.com/tag/how-about-some-wine-with-your-linux/
+[2]:http://www.makeuseof.com/answers/does-wine-runs-all-windows-apps/
+[3]:https://amarok.kde.org/
+[4]:http://www.makeuseof.com/tag/control-music-amarok-linux/
+[5]:http://banshee.fm/
+[6]:http://www.makeuseof.com/tag/banshee-20-comprehensive-media-player-streamer-podcast-tool-linux/
+[7]:https://wiki.gnome.org/Apps/Rhythmbox
+[8]:http://www.makeuseof.com/tag/play-manage-music-collection-rhythmbox-linux/
+[9]:https://www.clementine-player.org/
+[10]:http://www.makeuseof.com/tag/need-a-lightweight-music-player-without-sacrificing-features-clementine-cross-platform/
+[11]:http://music.google.com/
\ No newline at end of file
diff --git a/sources/talk/20150407 10 Years of Git--An Interview with Git Creator Linus Torvalds.md b/sources/talk/20150407 10 Years of Git--An Interview with Git Creator Linus Torvalds.md
new file mode 100644
index 0000000000..d9a2776850
--- /dev/null
+++ b/sources/talk/20150407 10 Years of Git--An Interview with Git Creator Linus Torvalds.md
@@ -0,0 +1,133 @@
+10 Years of Git: An Interview with Git Creator Linus Torvalds
+================================================================================
+> Linus Torvalds explains why he created Git
+>
+> ![](http://www.linuxveda.com/wp-content/uploads/2014/10/Linus_Torvalds.jpg)
+>
+> Thanks to Linus' Git today GitHub is the world's biggest code hoster in the world with over 9 million users and over 21.1 million repositories.
+>
+> By Swapnil Bhartiya -
+>
+> Git will be celebrating it’s 10 anniversary this month. It’s yet another contribution of Linus Torvalds to the world in addition to Sub Surface and Linux. [Jennifer Cloer of The Linux Foundation interviewed the father of Linux][2] and presented us with a very comprehensive story behind Git.
+>
+> When Cloer asked Linus why he created Git, his answer was:
+>
+> “I really never wanted to do source control management at all and felt that it was just about the least interesting thing in the computing world (with the possible exception of databases ;^), and I hated all SCM’s with a passion.”
+>
+> He then played with BitKeeper which he initially liked as in his own words:
+>
+> “BK got most things right and having a local copy of the repository and distributed merging was a big deal.”
+>
+> But he was not satisfied:
+>
+> “I had performance requirements that were not even remotely satisfied by what was available, and I also worried about integrity of the code and the whole workflow, so I ended up just deciding to write my own.”
+>
+> And the rest is history. Today GitHub is the world’s biggest code hoster in the world with over 9 million users and over 21.1 million repositories.
+>
+> via:http://www.linuxveda.com/2015/04/06/linus-torvalds-explains-why-he-created-git/
+
+![](http://www.linux.com/images/stories/714/Linus-Torvalds-LinuxCon-Europe-2014.jpg)
+
+Ten years ago this week, the Linux kernel community faced a daunting challenge: They could no longer use their revision control system BitKeeper and no other Software Configuration Management (SCMs) met their needs for a distributed system. Linus Torvalds, the creator of Linux, took the challenge into his own hands and disappeared over the weekend to emerge the following week with Git. Today Git is used for thousands of projects and has ushered in a new level of social coding among programmers.
+
+To celebrate this milestone, we asked Linus to share the behind-the-scenes story of Git and tell us what he thinks of the project and its impact on software development. You'll find his comments in the story below. We'll follow this Q&A with a week of Git in which we profile a different project each day that is using the revision control system. Look for the stories behind KVM, Qt, Drupal, Puppet and Wine, among others.
+
+### Why did you create Git? ###
+
+**Torvalds**: I really never wanted to do source control management at all and felt that it was just about the least interesting thing in the computing world (with the possible exception of databases ;^), and I hated all SCM's with a passion. But then BitKeeper came along and really changed the way I viewed source control. BK got most things right and having a local copy of the repository and distributed merging was a big deal. The big thing about distributed source control is that it makes one of the main issues with SCM's go away - the politics around "who can make changes." BK showed that you can avoid that by just giving everybody their own source repository. But BK had its own problems, too; there were a few technical choices that caused problems (renames were painful), but the biggest downside was the fact that since it wasn't open source, there was a lot of people who didn't want to use it. So while we ended up having several core maintainers use BK - it was free to use for open source projects - it never got ubiquitous. So it helped kernel development, but there were still pain points.
+
+That then came to a head when Tridge (Andrew Tridgell) started reverse-engineering the (fairly simply) BK protocol, which was against the usage rules for BK. I spent a few weeks (months? It felt that way) trying to mediate between Tridge and Larry McVoy, but in the end it clearly wasn't working. So at some point I decided that I can't continue using BK, but that I really didn't want to go back to the bad old pre-BK days. Sadly, at the time, while there were some other SCM's that kind of tried to get the whole distributed thing, none of them did it remotely well. I had performance requirements that were not even remotely satisfied by what was available, and I also worried about integrity of the code and the whole workflow, so I ended up just deciding to write my own.
+
+### How did you approach it? Did you stay up all weekend to write it or was it just during regular hours? ###
+
+**Torvalds**: Heh. You can actually see how it all took shape in the git source code repository, except for the very first day or so. It took about a day to get to be "self-hosting" so that I could start committing things into git using git itself, so the first day or so is hidden, but everything else is there. The work was clearly mostly during the day, but there's a few midnight entries and a couple of 2 a.m. ones. The most interesting part is how quickly it took shape ; the very first commit in the git tree is not a lot of code, but it already did the basics - enough to commit itself. The trick wasn't really so much the coding but coming up with how it organizes the data.
+
+So I'd like to stress that while it really came together in just about ten days or so (at which point I did my first *kernel* commit using git), it wasn't like it was some kind of mad dash of coding. The actual amount of that early code is actually fairly small, it all depended on getting the basic ideas right. And that I had been mulling over for a while before the whole project started. I'd seen the problems others had. I'd seen what I wanted to avoid doing.
+
+### Has it lived up to your expectations? How is it working today in your estimation? Are there any limitations? ###
+
+**Torvalds**: I'm very happy with git. It works remarkably well for the kernel and is still meeting all my expectations. What I find interesting is how it took over so many other projects, too. Surprisingly quickly, in the end. There is a lot of inertia in switching source control systems; just look at how long CVS and even RCS have stayed around, but at some point git just took over.
+
+### Why do you think it's been so widely adopted? ###
+
+**Torvalds**: I think that many others had been frustrated by all the same issues that made me hate SCM's, and while there have been many projects that tried to fix one or two small corner cases that drove people wild, there really hadn't been anything like git that really ended up taking on the big problems head on. Even when people don't realize how important that "distributed" part was (and a lot of people were fighting it), once they figure out that it allows those easy and reliable backups, and allows people to make their own private test repositories without having to worry about the politics of having write access to some central repository, they'll never go back.
+
+### Does Git last forever, or do you foresee another revision control system in another 10 years? Will you be the one to write it? ###
+
+**Torvalds**: I'm not going to be the one writing it, no. And maybe we'll see something new in ten years, but I guarantee that it will be pretty "git-like." It's not like git got everything right, but it got all the really basic issues right in a way that no other SCM had ever done before.
+
+No false modesty ;)
+
+### Why does Git work so well for Linux? ###
+
+**Torvalds**: Well, it was obviously designed for our workflow, so that is part of it. I've already mentioned the whole "distributed" part many times, but it bears repeating. But it was also designed to be efficient enough for a biggish project like Linux, and it was designed to do things that people considered "hard" before git - because those are the things *I* do every day.
+
+Just to pick an example: the concept of "merging" was generally considered to be something really quite painful and hard in most SCM's. You'd plan your merges, because they were big deals. That's not acceptable to me, since I commonly do tens of merges a day when in the merge window, and even then, the biggest overhead shouldn't be the merge itself, it should be testing the result. The "git" part of the merge is just a couple of seconds, it should take me much longer just to write the merge explanation message.
+
+So git was basically designed and written for my requirements, and it shows.
+
+### People have said that Git is only for super smart people. Even Andrew Morton said Git is "expressly designed to make you feel less intelligent than you thought you were." What's your response to this? ###
+
+**Torvalds**: So I think it used to be true but isn't any more. There is a few reasons people feel that way, but I think only one of them remains. The one that remains is fairly simple: "you can do things so many ways."
+
+You can do a lot of things with git, and many of the rules of what you *should* do are not so much technical limitations but are about what works well when working together with other people. So git is a very powerful set of tools, and that can not only be overwhelming at first, it also means that you can often do the same (or similar) things different ways, and they all "work." Generally, the best way to learn git is probably to first only do very basic things and not even look at some of the things you can do until you are familiar and confident about the basics.
+
+There's a few historical reasons for why git was considered complicated. One of them is that it was complicated. The people who started using git very early on in order to work on the kernel really had to learn a very rough set of scripts to make everything work. All the effort had been on making the core technology work and very little on making it easy or obvious. So git (deservedly) had a reputation for requiring you to know exactly what you did early on. But that was mainly true for the first 6 months or a year.
+
+The other big reason people thought git was hard is that git is very different. There are people who used things like CVS for a decade or two, and git is not CVS. Not even close. The concepts are different. The commands are different. Git never even really tried to look like CVS, quite the reverse. And if you've used a CVS-like system for a long time, that makes git appear complicated and needlessly different. People were put off by the odd revision numbers. Why is a git revision not "1.3.1" with nice incrementing numbers like it was in CVS? Why is it that odd scary 40-character HEX number?
+
+But git wasn't "needlessly different." The differences are required. It's just that it made some people really think it was more complicated than it is, because they came from a very different background. The "CVS background" thing is going away. By now there are probably lots of programmers out there who have never used CVS in their lives and would find the CVS way of doing things very confusing, because they learned git first.
+
+### Do you think the rate of Linux kernel development would have been able to grow at its current rate without Git? Why or why not? ###
+
+**Torvalds**: Well, "without git," sure. But it would have required that somebody else wrote something git-equivalent: a distributed SCM that is as efficient as git is. We definitely needed something *like* git.
+
+### What's your latest opinion of GitHub? ###
+
+**Torvalds**: Github is an excellent hosting service; I have nothing against it at all. Now, the complaints I've had is that GitHub as a development platform - making commits, pull requests, keeping track of issues etc - doesn't work very well at all. It's not even close, not for something like the kernel. It's much too limited.
+
+That's partly because of how the kernel is developed, but part of it was that the GitHub interfaces were actively encouraging bad behavior. Commits done on GitHub had bad commit messages etc, because the web interfaces at GitHub were actively encouraging bad behavior. They did fix some of that, so it probably works better, but it will never be appropriate for something like the Linux kernel.
+
+### What is the most interesting use you've seen for Git and/or GitHub? ###
+
+**Torvalds**: I'm just happy that it made it so easy to start a new project. Project hosting used to be painful, and with git and GitHub it's just so trivial to do a random small project. It doesn't matter what the project is; what matters is that you can do it.
+
+### Do you have side projects up your sleeve today? Any more brilliant software projects that will dominate software development for years to come? ###
+
+**Torvalds**: Nothing planned. But I'll let you know if that changes.
+
+Atlassian is also helping to celebrate the anniversary of Git. Click on the image below to [take a walk down memory lane][1].
+
+![](http://www.linux.com/images/stories/714/AtlassianGit10year.jpg)
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/news/featured-blogs/185-jennifer-cloer/821541-10-years-of-git-an-interview-with-git-creator-linus-torvalds
+
+作者:[Jennifer Cloer][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/community/forums/person/714/catid/185-jennifer-cloer
+[1]:https://www.atlassian.com/git/articles/10-years-of-git/
+[2]:http://www.linux.com/news/featured-blogs/185-jennifer-cloer/821541-10-years-of-git-an-interview-with-git-creator-linus-torvalds
+[3]:
+[4]:
+[5]:
+[6]:
+[7]:
+[8]:
+[9]:
+[10]:
+[11]:
+[12]:
+[13]:
+[14]:
+[15]:
+[16]:
+[17]:
+[18]:
+[19]:
+[20]:
\ No newline at end of file
diff --git a/sources/tech/20141226 Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM.md b/sources/tech/20141226 Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM.md
deleted file mode 100644
index 651952ec1d..0000000000
--- a/sources/tech/20141226 Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM.md
+++ /dev/null
@@ -1,265 +0,0 @@
-Real-World WordPress Benchmarks with PHP5.5 PHP5.6 PHP-NG and HHVM
-================================================================================
-**TL;DR In a local, Vagrant-based environment HHVM lost, probably due to a bug; it’s still investigated with the help of the HHVM guys! However on a DigitalOcean 4GB box it beat even the latest build of PHP-NG!**
-
-![](https://kinsta.com/wp-content/uploads/2014/07/phphhvm.jpg)
-
-**Update: Please take a look at the results at the end of the article! They reflect the power of HHVM better (after the JIT warmup), for some reason we cannot get these results with all setups though.
-
-The tests below were done in a Vagrant/VVV environment, the results are still interesting, it might be a bug in HHVM or the Vagrant setup that’s preventing it from kicking into high speed, we’re investigating the issue with the HHVM guys.**
-
-If you remember we [wrote an article a good couple of months ago][1] when WordPress 3.9 came out that HHVM was fully supported beginning with that release, and we were all happy about it. The initial benchmark results showed HHVM to be far more superior than the Zend engine that’s currently powering all PHP builds. Then the problems came:
-
-- HHVM can only be run as one user, which means less security (in shared environments)
-- HHVM does not restart itself after it crashes, and unfortunately it still does that quite often
-- HHVM uses a lot of memory right from the start, and yes, it per-request memory usage will be lower once you scale compared to PHP-FPM
-
-Obviously you have to compromise based on your (or rather your sites’) needs but is it worth it? How much of a performance gain can you expect by switching to HHVM?
-
-At Kinsta we really like to test everything new and generally optimize everything to provide the best environment to our clients. Today I finally took the time to set up a test environment and do some tests to compare a couple of different builds with a fresh out of the box WordPress install and one that has a bunch of content added plus runs WooCommerce! To measure the script running time I simply added the
-
-
-
-line before the /body tag of the footer.php’s.
-
-**Note:
-Previously this section contained benchmarks made with Vagrant/Virtualbox/Ubuntu14.04 however for some reason HHVM was really underperforming, probably due to a bug or a limitation of the virtualized environment. We feel that these test results do not reflect the reality so we re-run the tests on a cloud server and consider these valid.**
-
-Here are the exact setup details of the environment:
-
-- DigitalOcean 4GB droplet (2 CPU cores, 4GB RAM)
-- Ubuntu 14.04, MariaDB10
-- Test site: Munditia Theme with Demo Content Imported, WooCommerce 2.1.12 & WordPress 3.9.1
-- PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d) and HHVM 3.2.0 (version says PHP 5.6.99-hhvm)
-
-**Without further ado, these were my test results, the lower the better, values in seconds:**
-
-### DigitalOcean 4GB droplet ###
-
-Seconds, 10 runs, lower the better.
-
-这里有一个canvas的数据,发布的时候需要截一个图
-
-It looks like that PHP-NG achieves its peak performance after the first run! HHVM needs a couple more reloads, but their performance seems to be almost equal! I can’t wait until PHP-NG is merged into the master! :)
-
-Hits in a minute, higher the better.
-
-这里有一个canvas的数据,发布的时候需要截一个图
-
-**PHP 5.5.15 OpCache Disabled**
-
-- Transactions: **236 hits**
-- Availability: 100.00 %
-- Elapsed time: 59.03 secs
-- Data transferred: 2.40 MB
-- Response time: 2.47 secs
-- Transaction rate: 4.00 trans/sec
-- Throughput: 0.04 MB/sec
-- Concurrency: 9.87
-- Successful transactions: 236
-- Failed transactions: 0
-- Longest transaction: 4.44
-- Shortest transaction: 0.48
-
-**PHP 5.5.15 OpCache Enabled**
-
-- Transactions: **441 hits**
-- Availability: 100.00 %
-- Elapsed time: 59.55 secs
-- Data transferred: 4.48 MB
-- Response time: 1.34 secs
-- Transaction rate: 7.41 trans/sec
-- Throughput: 0.08 MB/sec
-- Concurrency: 9.91
-- Successful transactions: 441
-- Failed transactions: 0
-- Longest transaction: 2.19
-- Shortest transaction: 0.64
-
-**PHP 5.6 RC2 OpCache Disabled**
-
-- Transactions: **207 hits**
-- Availability: 100.00 %
-- Elapsed time: 59.87 secs
-- Data transferred: 2.10 MB
-- Response time: 2.80 secs
-- Transaction rate: 3.46 trans/sec
-- Throughput: 0.04 MB/sec
-- Concurrency: 9.68
-- Successful transactions: 207
-- Failed transactions: 0
-- Longest transaction: 3.65
-- Shortest transaction: 0.54
-
-**PHP 5.6 RC2 OpCache Enabled**
-
-- Transactions: **412 hits**
-- Availability: 100.00 %
-- Elapsed time: 59.03 secs
-- Data transferred: 4.18 MB
-- Response time: 1.42 secs
-- Transaction rate: 6.98 trans/sec
-- Throughput: 0.07 MB/sec
-- Concurrency: 9.88
-- Successful transactions: 412
-- Failed transactions: 0
-- Longest transaction: 1.93
-- Shortest transaction: 0.34
-
-**HHVM 3.2.0 (version says PHP 5.6.99-hhvm)**
-
-- Transactions: **955 hits**
-- Availability: 100.00 %
-- Elapsed time: 59.69 secs
-- Data transferred: 9.18 MB
-- Response time: 0.62 secs
-- Transaction rate: 16.00 trans/sec
-- Throughput: 0.15 MB/sec
-- Concurrency: 9.94
-- Successful transactions: 955
-- Failed transactions: 0
-- Longest transaction: 0.85
-- Shortest transaction: 0.23
-
-**PHP-NG OpCache Enabled (built: Jul 29 2014 )**
-
-- Transactions: **849 hits**
-- Availability: 100.00 %
-- Elapsed time: 59.88 secs
-- Data transferred: 8.63 MB
-- Response time: 0.70 secs
-- Transaction rate: 14.18 trans/sec
-- Throughput: 0.14 MB/sec
-- Concurrency: 9.94
-- Successful transactions: 849
-- Failed transactions: 0
-- Longest transaction: 1.06
-- Shortest transaction: 0.13
-
-----------
-
-**Note:
-These are the previous test results, they’re faulty. I left them here for future reference but please do NOT consider these values a truthful representation!**
-
-Here are the exact setup details of the environment:
-
-- Apple MacBook Pro mid-2011 (Intel Core i7 2 GHz 4 cores, 4GB RAM, 256GB Ocz Vertex 3 MI)
-- Current Varying Vagrant Vagrants build with Ubuntu 14.04, nginx 1.6.x, mysql 5.5.x, etc.
-- Test site 1: WordPress 3.9.1 bare minimum
-- Test site 2: Munditia Theme with Demo Content Imported, WooCommerce 2.1.12 & WordPress 3.9.1
-- PHP 5.5.9, PHP 5.5.15, PHP 5.6.0 RC2, PHP-NG (20140718-git-6cc487d) and HHVM 3.2.0 (version says PHP 5.6.99-hhvm)
-
-**Default Theme, Default WordPress 3.9.1, PHP 5.5.9-1ubuntu4.3 (with OpCache 7.0.3)**
-
-**Faulty results. Please read the note above!** Seconds, 10 runs, lower the better.
-
-这里有一个canvas的数据,发布的时候需要截一个图
-
-### Munditia Theme with Demo Content Imported, WooCommerce 2.1.12 & WordPress 3.9.1 (OpCache Disabled) ###
-
-**Faulty results. Please read the note above**! Seconds, 10 runs, lower the better.
-
-这里有一个canvas的数据,发布的时候需要截一个图
-
-### Munditia Theme with Demo Content Imported, WooCommerce 2.1.12 & WordPress 3.9.1 (OpCache Enabled) ###
-
-**Faulty results. Please read the note above!** Seconds, 10 runs, lower the better.
-
-这里有一个canvas的数据,发布的时候需要截一个图
-
-**Siege
-parameters: 10 concurrent users for 1 minute: siege -c 10 -b -t 1M**
-
-**Faulty results. Please read the note above!** Hits in a minute, higher the better.
-
-这里有一个canvas的数据,发布的时候需要截一个图
-
-**PHP5.5 OpCache Disabled (PHP 5.5.15-1+deb.sury.org~trusty+1)Faulty results. Please read the note above!**
-
-- Transactions: 35 hits
-- Availability: 100.00 %
-- Elapsed time: 59.04 secs
-- Data transferred: 2.03 MB
-- Response time: 14.56 secs
-- Transaction rate: 0.59 trans/sec
-- Throughput: 0.03 MB/sec
-- Concurrency: 8.63
-- Successful transactions: 35
-- Failed transactions: 0
-- Longest transaction: 18.73
-- Shortest transaction: 5.80
-
-**HHVM 3.2.0 (version says PHP 5.6.99-hhvm)Faulty results. Please read the note above!**
-
-- Transactions: 44 hits
-- Availability: 100.00 %
-- Elapsed time: 59.53 secs
-- Data transferred: 0.42 MB
-- Response time: 12.00 secs
-- Transaction rate: 0.74 trans/sec
-- Throughput: 0.01 MB/sec
-- Concurrency: 8.87
-- Successful transactions: 44
-- Failed transactions: 0
-- Longest transaction: 13.40
-- Shortest transaction: 2.65
-
-**PHP5.5 OpCache Enabled (PHP 5.5.15-1+deb.sury.org~trusty+1 with OpCache 7.0.4-dev)Faulty results. Please read the note above!**
-
-- Transactions: 100 hits
-- Availability: 100.00 %
-- Elapsed time: 59.30 secs
-- Data transferred: 5.81 MB
-- Response time: 5.69 secs
-- Transaction rate: 1.69 trans/sec
-- Throughput: 0.10 MB/sec
-- Concurrency: 9.60
-- Successful transactions: 100
-- Failed transactions: 0
-- Longest transaction: 7.25
-- Shortest transaction: 2.82
-
-**PHP5.6 OpCache Enabled (PHP 5.6.0RC2 with OpCache 7.0.4-dev)Faulty results. Please read the note above!**
-
-- Transactions: 103 hits
-- Availability: 100.00 %
-- Elapsed time: 59.99 secs
-- Data transferred: 5.98 MB
-- Response time: 5.51 secs
-- Transaction rate: 1.72 trans/sec
-- Throughput: 0.10 MB/sec
-- Concurrency: 9.45
-- Successful transactions: 103
-- Failed transactions: 0
-- Longest transaction: 6.87
-- Shortest transaction: 2.52
-
-**PHP-NG OpCache Enabled (20140718-git-6cc487d)Faulty results. Please read the note above!**
-
-- Transactions: 124 hits
-- Availability: 100.00 %
-- Elapsed time: 59.32 secs
-- Data transferred: 7.19 MB
-- Response time: 4.58 secs
-- Transaction rate: 2.09 trans/sec
-- Throughput: 0.12 MB/sec
-- Concurrency: 9.57
-- Successful transactions: 124
-- Failed transactions: 0
-- Longest transaction: 6.86
-- Shortest transaction: 2.24
-
-**What do you think about this test? Did I miss something? What would you like to see in the next benchmarking article? Please leave your comment below!**
-
---------------------------------------------------------------------------------
-
-via: https://kinsta.com/blog/real-world-wordpress-benchmarks-with-php5-5-php5-6-php-ng-and-hhvm/
-
-作者:[Mark Gavalda][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:https://kinsta.com/blog/author/kinstadmin/
-[1]:https://kinsta.com/blog/hhvm-and-wordpress/
\ No newline at end of file
diff --git a/sources/tech/20150119 How to Install Cherokee Lightweight Web Server on Ubuntu 14.04.md b/sources/tech/20150119 How to Install Cherokee Lightweight Web Server on Ubuntu 14.04.md
deleted file mode 100644
index 1e2ba90d6e..0000000000
--- a/sources/tech/20150119 How to Install Cherokee Lightweight Web Server on Ubuntu 14.04.md
+++ /dev/null
@@ -1,87 +0,0 @@
-How to Install Cherokee Lightweight Web Server on Ubuntu 14.04
-================================================================================
-**Cherokee** is an free and open source high performance, lightweight, full-featured web server and running on major platform (Linux, Mac OS X, Solaris, and BSD). It is compatible with TLS/SSL,FastCGI, SCGI, PHP, uWSGI, SSI, CGI, LDAP, HTTP proxying, video streaming, content caching, traffic shaping, virtual hosts, Apache compatible log files, and load balancing.
-
-Today we'll explains how to install and configure the Light Weight Cherokeeweb server on Ubuntu Server edition 14.04 LTS (Trusty) and should also work with 12.04, 12.10 and 13. 04, just skip the modification of source list.
-
-Step by step install and configure the Cherokee web server on Ubuntu Server edition
-
-### 1. Updating Ubuntu Package Index ###
-
-First, Login into Ubuntu Server and make sure your ubuntu server update, run the following commands one by one, and install any available updates:
-
- sudo apt-get update
-
- sudo apt-get upgrade
-
-### 2. Adding PPA ###
-
-Add the PPA cherokee webserver. by running the following commands
-
- sudo add-apt-repository ppa:cherokee-webserver
-
- sudo apt-get update
-
-Now, only for servers running Ubuntu 14.04 LTS (Trusty) follow this step below
-
- cd /etc/apt/sources.list.d
-
- nano cherokee-webserver-ppa-trusty.list
-
- replace:
-
- deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu trusty main
-
- to:
-
- deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu saucy main
-
-**then again run:**
-
- sudo apt-get update
-
-### 3. Installing Cherokee Web Server using apt-get ###
-
-Enter the following command to install the Cherokee web server including Module SSL
-
- sudo apt-get install cherokee cherokee-admin cherokee-doc libcherokee-mod-libssl libcherokee-mod-streaming libcherokee-mod-rrd
-
-### 4. Configuring Cherokee ###
-
- sudo service cherokee start
-
-The best part about using its Web Server is being able to manage all of its configurations through a simple to use web interface. This interface, known as cherokee-admin, is the recommended means of administering cherokee web server through web browser. Start cherokee-admin by running the following command:
-
- sudo cherokee-admin
-
-**Note: The cherokee-admin will display the administration user name, One-time Password and administration web interface.**
-
-**Note down your One-Time password. You will need this when you login to its admin web interface.**
-
-By default, cherokee-admin can only accessed from localhost. If you need to access the admin for other network address using the parameter ‘**-b**’. If you doesn’t mention any ip address, it will automatically listen to all network interfaces. Then you can connect to cherokee-admin from other network address.
-
- sudo cherokee-admin -b
-
-If you need to access its admin from specific network address
-
- sudo cherokee-admin -b 192.168.1.102
-
-### 5. Browse your Cherokee Admin Panel ###
-
-Now you can access the administration panel from you favorite browser by typing http://hostname_or_IP:9090/ for me its http://127.0.0.1:9090/, it will appear on your browser like this:
-
-![cherokee-admin-panel](http://blog.linoxide.com/wp-content/uploads/2014/12/cherokee-admin.png)
-
-Hurray, we have successfully installed and configured Cherokee Web Server in our Ubuntu Server.
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/ubuntu-how-to/install-cherokee-lightweight-web-server-ubuntu-14-04/
-
-作者:[Arun Pyasi][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunp/
\ No newline at end of file
diff --git a/sources/tech/20150119 How to Remember and Restore Running Applications on Next Logon.md b/sources/tech/20150119 How to Remember and Restore Running Applications on Next Logon.md
index 457d6788e2..772667bde2 100644
--- a/sources/tech/20150119 How to Remember and Restore Running Applications on Next Logon.md
+++ b/sources/tech/20150119 How to Remember and Restore Running Applications on Next Logon.md
@@ -1,3 +1,5 @@
+FSSlc translating
+
How to Remember and Restore Running Applications on Next Logon
================================================================================
You have made some apps running in your Ubuntu and don't want to stop the process, just managed your windows and opened your stuffs needed to work. Then, something else demands your attention or you have battery low in your machine and you have to shut down. No worries. You can have Ubuntu remember all your running applications and restore them the next time you log in.
@@ -94,4 +96,4 @@ via: http://linoxide.com/ubuntu-how-to/remember-running-applications-ubuntu/
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-[a]:http://linoxide.com/author/arunp/
\ No newline at end of file
+[a]:http://linoxide.com/author/arunp/
diff --git a/sources/tech/20150202 How to Bind Apache Tomcat to IPv4 in Centos or Redhat.md b/sources/tech/20150202 How to Bind Apache Tomcat to IPv4 in Centos or Redhat.md
deleted file mode 100644
index 92ac657b5a..0000000000
--- a/sources/tech/20150202 How to Bind Apache Tomcat to IPv4 in Centos or Redhat.md
+++ /dev/null
@@ -1,79 +0,0 @@
-How to Bind Apache Tomcat to IPv4 in Centos / Redhat
-================================================================================
-Hi all, today we'll learn how to bind tomcat to ipv4 in CentOS 7 Linux Distribution.
-
-**Apache Tomcat** is an open source web server and servlet container developed by the [Apache Software Foundation][1]. It implements the Java Servlet, JavaServer Pages (JSP), Java Unified Expression Language and Java WebSocket specifications from Sun Microsystems and provides a web server environment for Java code to run in.
-
-Binding Tomcat to IPv4 is necessary if we have our server not working due to the default binding of our tomcat server to IPv6. As we know IPv6 is the modern way of assigning IP address to a device and is not in complete practice these days but may come into practice in soon future. So, currently we don't need to switch our tomcat server to IPv6 due to no use and we should bind it to IPv4.
-
-Before thinking to bind to IPv4, we should make sure that we've got tomcat installed in our CentOS 7. Here's is a quick tutorial on [how to install tomcat 8 in CentOS 7.0 Server][2].
-
-### 1. Switching to user tomcat ###
-
-First of all, we'll gonna switch user to **tomcat** user. We can do that by running **su - tomcat** in a shell or terminal.
-
- # su - tomcat
-
-![Switch user to tomcat](http://blog.linoxide.com/wp-content/uploads/2015/01/switch-user-tomcat.png)
-
-### 2. Finding Catalina.sh ###
-
-Now, we'll First Go to bin directory inside the directory of Apache Tomcat installation which is usually under **/usr/share/apache-tomcat-8.0.x/bin/** where x is sub version of the Apache Tomcat Release. In my case, its **/usr/share/apache-tomcat-8.0.18/bin/** as I have version 8.0.18 installed in my CentOS 7 Server.
-
- $ cd /usr/share/apache-tomcat-8.0.18/bin
-
-**Note: Please replace 8.0.18 to the version of Apache Tomcat installed in your system. **
-
-Inside the bin folder, there is a script file named catalina.sh . Thats the script file which we'll gonna edit and add a line of configuration which will bind tomcat to IPv4 . You can see that file by running **ls** into a terminal or shell.
-
- $ ls
-
-![finding catalina.sh](http://blog.linoxide.com/wp-content/uploads/2015/01/finding-catalina.sh_.png)
-
-### 3. Configuring Catalina.sh ###
-
-Now, we'll add **JAVA_OPTS= "$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"** to that scripting file catalina.sh at the end of the file as shown in the figure below. We can edit the file using our favorite text editing software like nano, vim, etc. Here, we'll gonna use nano.
-
- $ nano catalina.sh
-
-![Catalina script](http://blog.linoxide.com/wp-content/uploads/2015/01/catalina-script.png)
-
-Then, add to the file as shown below:
-
-**JAVA_OPTS= "$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"**
-
-![configured catalina](http://blog.linoxide.com/wp-content/uploads/2015/01/configured-catalina.png)
-
-Now, as we've added the configuration to the file, we'll now save and exit nano.
-
-### 4. Restarting ###
-
-Now, we'll restart our tomcat server to get our configuration working. We'll need to first execute shutdown.sh and then startup.sh .
-
- $ ./shutdown.sh
-
-Now, well run execute startup.sh as:
-
- $ ./startup.sh
-
-![restarting apache tomcat server](http://blog.linoxide.com/wp-content/uploads/2015/01/restarting-tomcat-server.png)
-
-This will restart our tomcat server and the configuration will be loaded which will ultimately bind the server to IPv4.
-
-### Conclusion ###
-
-Hurray, finally we'have got our tomcat server bind to IPv4 running in our CentOS 7 Linux Distribution. Binding to IPv4 is easy and is necessary if your Tomcat server is bind to IPv6 which will infact will make your tomcat server not working as IPv6 is not used these days and may come into practice in coming future. If you have any questions, comments, feedback please do write on the comment box below and let us know what stuffs needs to be added or improved. Thank You! Enjoy :-)
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/linux-how-to/bind-apache-tomcat-ipv4-centos/
-
-作者:[Arun Pyasi][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunp/
-[1]:http://www.apache.org/
-[2]:http://linoxide.com/linux-how-to/install-tomcat-8-centos-7/
\ No newline at end of file
diff --git a/sources/tech/20150205 How To Install or Configure VNC Server On CentOS 7.0.md b/sources/tech/20150205 How To Install or Configure VNC Server On CentOS 7.0.md
deleted file mode 100644
index 3eaba972f8..0000000000
--- a/sources/tech/20150205 How To Install or Configure VNC Server On CentOS 7.0.md
+++ /dev/null
@@ -1,161 +0,0 @@
-How To Install / Configure VNC Server On CentOS 7.0
-================================================================================
-Hi there, this tutorial is all about how to install or setup [VNC][1] Server on your very CentOS 7. This tutorial also works fine in RHEL 7. In this tutorial, we'll learn what is VNC and how to install or setup [VNC Server][1] on CentOS 7
-
-As we know, most of the time as a system administrator we are managing our servers over the network. It is very rare that we will need to have a physical access to any of our managed servers. In most cases all we need is to SSH remotely to do our administration tasks. In this article we will configure a GUI alternative to a remote access to our CentOS 7 server, which is VNC. VNC allows us to open a remote GUI session to our server and thus providing us with a full graphical interface accessible from any remote location.
-
-VNC server is a Free and Open Source Software which is designed for allowing remote access to the Desktop Environment of the server to the VNC Client whereas VNC viewer is used on remote computer to connect to the server .
-
-**Some Benefits of VNC server are listed below:**
-
- Remote GUI administration makes work easy & convenient.
- Clipboard sharing between host CentOS server & VNC-client machine.
- GUI tools can be installed on the host CentOS server to make the administration more powerful
- Host CentOS server can be administered through any OS having the VNC-client installed.
- More reliable over ssh graphics and RDP connections.
-
-So, now lets start our journey towards the installation of VNC Server. We need to follow the steps below to setup and to get a working VNC.
-
-First of all we'll need a working Desktop Environment (X-Windows), if we don't have a working GUI Desktop Environment (X Windows) running, we'll need to install it first.
-
-**Note: The commands below must be running under root privilege. To switch to root please execute "sudo -s" under a shell or terminal without quotes("")**
-
-### 1. Installing X-Windows ###
-
-First of all to install [X-Windows][2] we'll need to execute the below commands in a shell or terminal. It will take few minutes to install its packages.
-
- # yum check-update
- # yum groupinstall "X Window System"
-
-![installing x windows](http://blog.linoxide.com/wp-content/uploads/2015/01/installing-x-windows.png)
-
- #yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
-
-![install gnome classic session](http://blog.linoxide.com/wp-content/uploads/2015/01/gnome-classic-session-install.png)
-
- # unlink /etc/systemd/system/default.target
- # ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
-
-![configuring graphics](http://blog.linoxide.com/wp-content/uploads/2015/01/configuring-graphics.png)
-
- # reboot
-
-After our machine restarts, we'll get a working CentOS 7 Desktop.
-
-Now, we'll install VNC Server on our machine.
-
-### 2. Installing VNC Server Package ###
-
-Now, we'll install VNC Server package in our CentOS 7 machine. To install VNC Server, we'll need to execute the following command.
-
- # yum install tigervnc-server -y
-
-![vnc server](http://blog.linoxide.com/wp-content/uploads/2015/01/install-tigervnc.png)
-
-### 3. Configuring VNC ###
-
-Then, we'll need to create a configuration file under **/etc/systemd/system/** directory. We can copy the **vncserver@:1.service** file from example file from **/lib/systemd/system/vncserver@.service**
-
- # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
-
-![copying vnc server configuration](http://blog.linoxide.com/wp-content/uploads/2015/01/copying-configuration.png)
-
-Now we'll open **/etc/systemd/system/vncserver@:1.service** in our favorite text editor (here, we're gonna use **nano**). Then find the below lines of text in that file and replace with your username. Here, in my case its linoxide so I am replacing with linoxide and finally looks like below.
-
- ExecStart=/sbin/runuser -l -c "/usr/bin/vncserver %i"
- PIDFile=/home//.vnc/%H%i.pid
-
-TO
-
- ExecStart=/sbin/runuser -l linoxide -c "/usr/bin/vncserver %i"
- PIDFile=/home/linoxide/.vnc/%H%i.pid
-
-If you are creating for root user then
-
- ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
- PIDFile=/root/.vnc/%H%i.pid
-
-![configuring user](http://blog.linoxide.com/wp-content/uploads/2015/01/configuring-user.png)
-
-Now, we'll need to reload our systemd.
-
- # systemctl daemon-reload
-
-Finally, we'll create VNC password for the user . To do so, first you'll need to be sure that you have sudo access to the user, here I will login to user "linoxide" then, execute the following. To login to linoxide we'll run "**su linoxide" without quotes** .
-
- # su linoxide
- $ sudo vncpasswd
-
-![setting vnc password](http://blog.linoxide.com/wp-content/uploads/2015/01/vncpassword.png)
-
-**Make sure that you enter passwords more than 6 characters.**
-
-### 4. Enabling and Starting the service ###
-
-To enable service at startup ( Permanent ) execute the commands shown below.
-
- $ sudo systemctl enable vncserver@:1.service
-
-Then, start the service.
-
- $ sudo systemctl start vncserver@:1.service
-
-### 5. Allowing Firewalls ###
-
-We'll need to allow VNC services in Firewall now.
-
- $ sudo firewall-cmd --permanent --add-service vnc-server
- $ sudo systemctl restart firewalld.service
-
-![allowing firewalld](http://blog.linoxide.com/wp-content/uploads/2015/01/allowing-firewalld.png)
-
-Now you can able to connect VNC server using IP and Port ( Eg : ip-address:1 )
-
-### 6. Connecting the machine with VNC Client ###
-
-Finally, we are done installing VNC Server. No, we'll wanna connect the server machine and remotely access it. For that we'll need a VNC Client installed in our computer which will only enable us to remote access the server machine.
-
-![remote access vncserver from vncviewer](http://blog.linoxide.com/wp-content/uploads/2015/01/vncviewer.png)
-
-You can use VNC client like [Tightvnc viewer][3] and [Realvnc viewer][4] to connect Server.
-To connect with additional users create files with different ports, please go to step 3 to configure and add a new user and port, You'll need to create **vncserver@:2.service** and replace the username in config file and continue the steps by replacing service name for different ports. **Please make sure you logged in as that particular user for creating vnc password**.
-
-VNC by itself runs on port 5900. Since each user will run their own VNC server, each user will have to connect via a separate port. The addition of a number in the file name tells VNC to run that service as a sub-port of 5900. So in our case, arun's VNC service will run on port 5901 (5900 + 1) and further will run on 5900 + x. Where, x denotes the port specified when creating config file **vncserver@:x.service for the further users**.
-
-We'll need to know the IP Address and Port of the server to connect with the client. IP addresses are the unique identity number of the machine. Here, my IP address is 96.126.120.92 and port for this user is 1. We can get the public IP address by executing the below command in a shell or terminal of the machine where VNC Server is installed.
-
- # curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
-
-### Conclusion ###
-
-Finally, we installed and configured VNC Server in the machine running CentOS 7 / RHEL 7 (Red Hat Enterprises Linux) . VNC is the most easy FOSS tool for the remote access and also a good alternative to Teamviewer Remote Access. VNC allows a user with VNC client installed to control the machine with VNC Server installed. Here are some commands listed below that are highly useful in VNC . Enjoy !!
-
-#### Additional Commands : ####
-
-- To stop VNC service .
-
- # systemctl stop vncserver@:1.service
-
-- To disable VNC service from startup.
-
- # systemctl disable vncserver@:1.service
-
-- To stop firewall.
-
- # systemctl stop firewalld.service
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/linux-how-to/install-configure-vnc-server-centos-7-0/
-
-作者:[Arun Pyasi][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunp/
-[1]:http://en.wikipedia.org/wiki/Virtual_Network_Computing
-[2]:http://en.wikipedia.org/wiki/X_Window_System
-[3]:http://www.tightvnc.com/
-[4]:https://www.realvnc.com/
\ No newline at end of file
diff --git a/sources/tech/20150205 How To Scan And Check A WordPress Website Security Using WPScan, Nmap, And Nikto.md b/sources/tech/20150205 How To Scan And Check A WordPress Website Security Using WPScan, Nmap, And Nikto.md
index 4af1fc99cb..4f84e2c4a2 100644
--- a/sources/tech/20150205 How To Scan And Check A WordPress Website Security Using WPScan, Nmap, And Nikto.md
+++ b/sources/tech/20150205 How To Scan And Check A WordPress Website Security Using WPScan, Nmap, And Nikto.md
@@ -1,3 +1,4 @@
+[boredivan翻译中]
How To Scan And Check A WordPress Website Security Using WPScan, Nmap, And Nikto
================================================================================
### Introduction ###
@@ -421,4 +422,4 @@ via: http://www.unixmen.com/scan-check-wordpress-website-security-using-wpscan-n
[4]:http://www.unixmen.com/install-nikto-web-scanner-check-vulnerabilities
[5]:https://cirt.net/nikto/
[6]:http://osvdb.org/
-[7]:http://www.unixmen.com/secure-wordpress-website/
\ No newline at end of file
+[7]:http://www.unixmen.com/secure-wordpress-website/
diff --git a/sources/tech/20150215 How to analyze and view Apache web server logs interactively on Linux.md b/sources/tech/20150215 How to analyze and view Apache web server logs interactively on Linux.md
deleted file mode 100644
index fdcc127252..0000000000
--- a/sources/tech/20150215 How to analyze and view Apache web server logs interactively on Linux.md
+++ /dev/null
@@ -1,144 +0,0 @@
-disylee 来一篇~
-How to analyze and view Apache web server logs interactively on Linux
-================================================================================
-Whether you are in the web hosting business, or run a few web sites on a VPS yourself, chances are you want to display visitor statistics such as top visitors, requested files (dynamic or static), used bandwidth, client browsers, and referring sites, and so forth.
-
-[GoAccess][1] is a command-line log analyzer and interactive viewer for Apache or Nginx web server. With this tool, you will not only be able to browse the data mentioned earlier, but also parse the web server logs to dig for further data as well - and **all of this within a terminal window in real time**. Since as of today [most web servers][2] use either a Debian derivative or a Red Hat based distribution as the underlying operating system, I will show you how to install and use GoAccess in Debian and CentOS.
-
-### Installing GoAccess on Linux ###
-
-In Debian, Ubuntu and derivatives, run the following command to install GoAccess:
-
- # aptitude install goaccess
-
-In CentOS, you'll need to enable the [EPEL repository][3] and then:
-
- # yum install goaccess
-
-In Fedora, simply use yum command:
-
- # yum install goaccess
-
-If you want to install GoAccess from the source to enable further options (such as GeoIP location), install [required dependencies][4] for your operating system, and then follow these steps:
-
- # wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz
- # tar -xzvf goaccess-0.8.5.tar.gz
- # cd goaccess-0.8.5/
- # ./configure --enable-geoip
- # make
- # make install
-
-That will install version 0.8.5, but you can always verify what is the latest version in the [Downloads page][5] of the project's web site.
-
-Since GoAccess does not require any further configurations, once it's installed you are ready to go.
-
-### Running GoAccess ###
-
-To start using GoAccess, just run it against your Apache access log.
-
-For Debian and derivatives:
-
- # goaccess -f /var/log/apache2/access.log
-
-For Red Hat based distros:
-
- # goaccess -f /var/log/httpd/access_log
-
-When you first launch GoAccess, you will be presented with the following screen to choose the date and log format. As explained, you can toggle between options using the spacebar and proceed with F10. As for the date and log formats, you may want to refer to the [Apache documentation][6] if you need to refresh your memory.
-
-In this case, Choose Common Log Format (CLF):
-
-![](https://farm8.staticflickr.com/7422/15868350373_30c16d7c30.jpg)
-
-and then press F10. You will be presented with the statistics screen. For the sake of brevity, only the header, which shows the summary of the log file, is shown in the next image:
-
-![](https://farm9.staticflickr.com/8683/16486742901_7a35b5df69_b.jpg)
-
-### Browsing Web Server Statistics with GoAccess ###
-
-As you scroll down the page with the down arrow, you will find the following sections, sorted by requests. The order of the categories presented here may vary depending on your distribution or your preferred installation method (from repositories or from source):
-
-1. Unique visitors per day (HTTP requests having the same IP, same date and same agent are considered an unique visit)
-
-![](https://farm8.staticflickr.com/7308/16488483965_a439dbc5e2_b.jpg)
-
-2. Requested files (Pages-URL)
-
-![](https://farm9.staticflickr.com/8651/16488483975_66d05dce51_b.jpg)
-
-3. Requested static files (e.g., .png, .js, etc)
-
-4. Referrers URLs (the URLs where each request came from)
-
-5. HTTP 404 Not Found response code
-
-![](https://farm9.staticflickr.com/8669/16486742951_436539b0da_b.jpg)
-
-6. Operating Systems
-
-7. Browsers
-
-8. Hosts (client IPs)
-
-![](https://farm8.staticflickr.com/7392/16488483995_56e706d77c_z.jpg)
-
-9. HTTP status codes
-
-![](https://farm8.staticflickr.com/7282/16462493896_77b856f670_b.jpg)
-
-10. Top referring sites
-
-11. Top keyphrases used on Google's search engine
-
-If you also want to inspect the archived logs, you can pipe them to GoAccess as follows.
-
-For Debian and derivatives:
-
- # zcat -f /var/log/apache2/access.log* | goaccess
-
-For Red Hat based distributions:
-
- # cat /var/log/httpd/access* | goaccess
-
-Should you need a more detailed report of any of the above (1 through 11), press the desired section number and then O (uppercase o) to bring up what is called the Detailed View. The following image shows the output of 5-O (press 5, then press O):
-
-![](https://farm8.staticflickr.com/7382/16302213429_48d9233f40_b.jpg)
-
-To display GeoIP location information, open the Detail View in the Hosts section, as explained earlier, and you will see the location of the client IPs that performed requests to your web server:
-
-![](https://farm8.staticflickr.com/7393/16488484075_d778aa91a2_z.jpg)
-
-If your system has not been very busy lately, some of the above sections will not show a great deal of information, but that situation can change as more and more requests are made to your web server.
-
-### Saving Reports for Offline Analysis ###
-
-There will be times when you don't want to inspect your system's stats in real time, but save it to a file for offline analysis or printing. To generate an HTML report, simply redirect the output of the GoAccess commands mentioned earlier to an HTML file. Then just point your web browser to the file to open it.
-
- # zcat -f /var/log/apache2/access.log* | goaccess > /var/www/webserverstats.html
-
-Once the report is displayed, you will need to click on the Expand link to show the detail view on each category:
-
-![](https://farm9.staticflickr.com/8658/16486743041_bd8a80794d_o.png)
-
-注释:youtube视频
-
-
-As we have discussed throughout this article, GoAccess is an invaluable tool that will provide you, as a system administrator, with HTTP statistics in a visual report on the fly. Although GoAccess by default presents its results to the standard output, you can also save them to JSON, HTML, or CSV files. This converts GoAccess in an incredibly useful tool to monitor and display statistics of a web server.
-
---------------------------------------------------------------------------------
-
-via: http://xmodulo.com/interactive-apache-web-server-log-analyzer-linux.html
-
-作者:[Gabriel Cánepa][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://xmodulo.com/author/gabriel
-[1]:http://goaccess.io/
-[2]:http://w3techs.com/technologies/details/os-linux/all/all
-[3]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
-[4]:http://goaccess.io/download#dependencies
-[5]:http://goaccess.io/download
-[6]:http://httpd.apache.org/docs/2.4/logs.html
diff --git a/sources/tech/20150227 Enjoy Android Apps on Ubuntu using ARChon Runtime.md b/sources/tech/20150227 Enjoy Android Apps on Ubuntu using ARChon Runtime.md
index f85b2cf725..f6def514b8 100644
--- a/sources/tech/20150227 Enjoy Android Apps on Ubuntu using ARChon Runtime.md
+++ b/sources/tech/20150227 Enjoy Android Apps on Ubuntu using ARChon Runtime.md
@@ -1,3 +1,4 @@
+translating by KayGuoWhu
Enjoy Android Apps on Ubuntu using ARChon Runtime
================================================================================
Before, we gave try to many android app emulating tools like Genymotion, Virtualbox, Android SDK, etc to try to run android apps on it. But, with this new Chrome Android Runtime, we are able to run Android Apps on our Chrome Browser. So, here are the steps we'll need to follow to install Android Apps on Ubuntu using ARChon Runtime.
diff --git a/sources/tech/20150302 How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle.md b/sources/tech/20150302 How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle.md
deleted file mode 100644
index ef1fee0680..0000000000
--- a/sources/tech/20150302 How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle.md
+++ /dev/null
@@ -1,298 +0,0 @@
-theo-l translating
-
-How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle
-================================================================================
-Have you ever encountered situations where one application dominated you all network bandwidth? If you have ever been in a situation where one application ate all your traffic, then you will value the role of the trickle bandwidth shaper application. Either you are a system admin or just a Linux user, you need to learn how to control the upload and download speeds for applications to make sure that your network bandwidth is not burned by a single application.
-
-![Install Trickle Bandwidth Limit in Linux](http://www.tecmint.com/wp-content/uploads/2013/11/Bandwidth-limit-trickle.png)
-Install Trickle Bandwidth Limit in Linux
-
-### What is Trickle? ###
-
-Trickle is a network bandwidth shaper tool that allows us to manage the upload and download speeds of applications in order to prevent any single one of them to hog all (or most) of the available bandwidth. In few words, trickle lets you control the network traffic rate on a per-application basis, as opposed to per-user control, which is the classic example of bandwidth shaping in a client-server environment, and is probably the setup we are more familiar with.
-
-### How Trickle Works? ###
-
-In addition, trickle can help us to define priorities on a per-application basis, so that when overall limits have been set for the entire system, priority apps will still get more bandwidth automatically. To accomplish this task, trickle sets traffic limits to the way in which data is sent to, and received from, sockets using TCP connections. We must note that, other than the data transfer rates, trickle does not modify in any way the behavior of the process it is shaping at any given moment.
-
-### What Can’t Trickle do? ###
-
-The only limitation, so to speak, is that trickle will not work with statically linked applications or binaries with the SUID or SGID bits set since it uses dynamic linking and loading to place itself between the shaped process and its associated network socket. Trickle then acts as a proxy between these two software components.
-
-Since trickle does not require superuser privileges in order to run, users can set their own traffic limits. Since this may not be desirable, we will explore how to set overall limits that system users cannot exceed. In other words, users will still be able to manage their traffic rates, but always within the boundaries set by the system administrator.
-
-In this article we will explain how to limit the network bandwidth used by applications in a Linux server with trickle. To generate the necessary traffic, we will use ncftpput and ncftpget (both tools are available by installing ncftp) on the client (CentOS 7 server – dev1: 192.168.0.17), and vsftpd on the server (Debian Wheezy 7.5 – dev2: 192.168.0.15) for demonstration purposes. The same instructions also works on RedHat, Fedora and Ubuntu based systems.
-
-#### Prerequisites ####
-
-1. For RHEL/CentOS 7/6, [enable the EPEL repository][1]. Extra Packages for Enterprise Linux (EPEL) is a repository of high-quality free and open-source software maintained by the Fedora project and is 100% compatible with its spinoffs, such as Red Hat Enterprise Linux and CentOS. Both trickle and ncftp are made available from this repository.
-
-2. Install ncftp as follows:
-
- # yum update && sudo yum install ncftp [On RedHat based systems]
- # aptitude update && aptitude install ncftp [On Debian based systems]
-
-3. Set up a FTP server in a separate server. Please note that although FTP is inherently insecure, it is still widely used in cases when security in uploading or downloading files is not needed. We are using it in this article to illustrate the bounties of trickle and because it shows the transfer rates in stdout on the client, and we will leave the discussion of whether it should or should not be used for another date and time :).
-
- # yum update && yum install vsftpd [On RedHat based systems]
- # aptitude update && aptitude install vsftpd [On Debian based systems]
-
-Now, edit the /etc/vsftpd/vsftpd.conf file on the FTP server as follows:
-
- anonymous_enable=NO
- local_enable=YES
- chroot_local_user=YES
- allow_writeable_chroot=YES
-
-After that, make sure to start vsftpd for your current session and to enable it for automatic start on future boots:
-
- # systemctl start vsftpd [For systemd-based systems]
- # systemctl enable vsftpd
- # service vsftpd start [For init-based systems]
- # chkconfig vsftpd on
-
-4. If you chose to set up the FTP server in a CentOS/RHEL 7 droplet with SSH keys for remote access, you will need a password-protected user account with the appropriate directory and file permissions for uploading and downloading the desired content OUTSIDE root’s home directory.
-
-You can then browse to your home directory by entering the following URL in your browser. A login window will pop up prompting you for a valid user account and password on the FTP server.
-
- ftp://192.168.0.15
-
-If the authentication succeeds, you will see the contents of your home directory. Later in this tutorial you will be able to refresh that page to display the files that have been uploaded during previous steps.
-
-![FTP Directory Tree](http://www.tecmint.com/wp-content/uploads/2013/11/FTP-Directory-Tree.png)
-FTP Directory Tree
-
-### How to Install Trickle in Linux ###
-
-1. Install trickle via yum or aptitude.
-
-To ensure a successful installation, it is considered good practice to make sure the currently installed packages are up-to-date (using yum update) before installing the tool itself.
-
- # yum -y update && yum install trickle [On RedHat based systems]
- # aptitude -y update && aptitude install trickle [On Debian based systems]
-
-2. Verify whether trickle will work with the desired binary.
-
-As we explained earlier, trickle will only work with binaries using dynamic, or shared, libraries. To verify whether we can use this tool with a certain application, we can use the well-known ldd utility, where ldd stands for list dynamic dependencies. Specifically, we will look for the presence of glibc (the GNU C library) in the list of dynamic dependencies of any given program because it is precisely that library which defines the system calls involved in communication through sockets.
-
-Run the following command against a given binary to see if trickle can be used to shape its bandwidth:
-
- # ldd $(which [binary]) | grep libc.so
-
-For example,
-
- # ldd $(which ncftp) | grep libc.so
-
-whose output is:
-
- # libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)
-
-The string between brackets in the output may change from system to system and even between subsequent runs of the same command, since it represents the load address of the library in physical memory.
-
-If the above command does not return any results, it means that the binary it was run against does not use libc and thus trickle cannot be used as bandwidth shaper in that case.
-
-### Learn How to Use Trickle ###
-
-The most basic usage of trickle is in standalone mode. Using this approach, trickle is used to explicitly define the download and upload speeds of a given application. As we explained earlier, for the sake of brevity, we will use the same application for download and upload tests.
-
-#### Running Trickle in Standalone Mode ####
-
-We will compare the download and upload speeds with and without using trickle. The -d option indicates the download speed in KB/s, while the -u flag tells trickle to limit the upload speed by the same unit. In addition, we will use the -s flag, which specifies that trickle should run in standalone mode.
-
-The basic syntax to run trickle in standalone mode is as follows:
-
- # trickle -s -d [download rate in KB/s] -u [upload rate in KB/s]
-
-In order to perform the following examples on your own, make sure to have trickle and ncftp installed on the client machine (192.168.0.17 in my case).
-
-**Example 1: Uploading a 2.8 MB PDF file with and without trickle.**
-
-We are using the freely-distributable Linux Fundamentals PDF file (available from [here][2]) for the following tests.
-
-You can initially download this file to your current working directory with the following command:
-
- # wget http://linux-training.be/files/books/LinuxFun.pdf
-
-The syntax to upload a file to our FTP server without trickle is as follows:
-
- # ncftpput -u username -p password 192.168.0.15 /remote_directory local-filename
-
-Where /remote_directory is the path of the upload directory relative to username’s home, and local-filename is a file in your current working directory.
-
-Specifically, without trickle we get a peak upload speed of 52.02 MB/s (please note that this is not the real average upload speed, but an instant starting peak), and the file gets uploaded almost instantly:
-
- # ncftpput -u username -p password 192.168.0.15 /testdir LinuxFun.pdf
-
-Output:
-
- LinuxFun.pdf: 2.79 MB 52.02 MB/s
-
-With trickle, we will limit the upload transfer rate at 5 KB/s. Before uploading the file for the second time, we need to delete it from the destination directory; otherwise, ncftp will inform us that the file at the destination directory is the same that we are trying to upload, and will not perform the transfer:
-
- # rm /absolute/path/to/destination/directory/LinuxFun.pdf
-
-Then:
-
- # trickle -s -u 5 ncftpput -u username -p password 111.111.111.111 /testdir LinuxFun.pdf
-
-Output:
-
- LinuxFun.pdf: 2.79 MB 4.94 kB/s
-
-In the example above, we can see that the average upload speed dropped to ~5 KB/s.
-
-**Example 2: Downloading the same 2.8 MB PDF file with and without trickle**
-
-First, remember to delete the PDF from the original source directory:
-
- # rm /absolute/path/to/source/directory/LinuxFun.pdf
-
-Please note that the following cases will download the remote file to the current directory in the client machine. This fact is indicated by the period (‘.‘) that appears after the IP address of the FTP server.
-
-Without trickle:
-
- # ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf
-
-Output:
-
- LinuxFun.pdf: 2.79 MB 260.53 MB/s
-
-With trickle, limiting the download speed at 20 KB/s:
-
- # trickle -s -d 30 ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf
-
-Output:
-
- LinuxFun.pdf: 2.79 MB 17.76 kB/s
-
-### Running Trickle in Supervised [unmanaged] Mode ###
-
-Trickle can also run in unmanaged mode, following a series of parameters defined in /etc/trickled.conf. This file defines how trickled (the daemon) behaves and manages trickle.
-
-In addition, if we want to set global settings to be used, overall, by all applications, we will need to use the trickled command. This command runs the daemon and allows us to define download and upload limits that will be shared by all the applications run through trickle without us needing to specify limits each time.
-
-For example, running:
-
- # trickled -d 50 -u 10
-
-Will cause that the download and upload speeds of any application run through trickle be limited to 30 KB/s and 10 KB/s, respectively.
-
-Please note that you can check at any time whether trickled is running and with what arguments:
-
- # ps -ef | grep trickled | grep -v grep
-
-Output:
-
- root 16475 1 0 Dec24 ? 00:00:04 trickled -d 50 -u 10
-
-**Example 3: Uploading a 19 MB mp4 file to our FTP server using with and without trickle.**
-
-In this example we will use the freely-distributable “He is the gift” video, available for download from [this link][3].
-
-We will initially download this file to your current working directory with the following command:
-
- # wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
-
-First off, we will start the trickled daemon with the command listed above:
-
- # trickled -d 30 -u 10
-
-Without trickle:
-
- # ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
-
-Output:
-
- 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 36.31 MB/s
-
-With trickle:
-
- # trickle ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
-
-Output:
-
- 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 9.51 kB/s
-
-As we can see in the output above, the upload transfer rate dropped to ~10 KB/s.
-
-**Example 4: Downloading the same video with and without trickle**
-
-As in Example 2, we will be downloading the file to the current working directory.
-
-Without trickle:
-
- # ncftpget -u username -p password 192.168.0.15 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
-
-Output:
-
- 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 108.34 MB/s
-
-With trickle:
-
- # trickle ncftpget -u username -p password 111.111.111.111 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
-
-Output:
-
- 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 29.28 kB/s
-
-Which is in accordance with the download limit set earlier (30 KB/s).
-
-**Note:** That once the daemon has been started, there is no need to set individual limits for each application that uses trickle.
-
-As we mentioned earlier, one can further customize trickle’s bandwidth shaping through trickled.conf. A typical section in this file consists of the following:
-
- [service]
- Priority =
- Time-Smoothing =
- Length-Smoothing =
-
-Where,
-
-- [service] indicates the name of the application whose bandwidth usage we intend to shape.
-- Priority allows us to specify a service to have a higher priority relative to another, thus not allowing a single application to hog all the bandwidth which the daemon is managing. The lower the number, the more bandwidth that is assigned to [service].
-- Time-Smoothing [in seconds]: defines with what time intervals trickled will try to let the application transfer and / or receive data. Smaller values (something between the range of 0.1 – 1s) are ideal for interactive applications and will result in a more continuous (smooth) session while slightly larger values (1 – 10 s) are better for applications that need bulk transfer. If no value is specified, the default (5 s) is used.
-- Length-Smoothing [in KB]: the idea is the same as in Time-Smoothing, but based on the length of an I/O operation. If no value is specified, the default (10 KB) is used.
-
-Changing the smoothing values will translate into the application specified by [service] using transfer rates within an interval instead of a fixed value. Unfortunately, there is no formula to calculate the lower and upper limits of this interval as it mainly depends of each specific case scenario.
-
-The following is a trickled.conf sample file in the CentOS 7 client (192.168.0.17):
-
- [ssh]
- Priority = 1
- Time-Smoothing = 0.1
- Length-Smoothing = 2
-
- [ftp]
- Priority = 2
- Time-Smoothing = 1
- Length-Smoothing = 3
-
-Using this setup, trickled will prioritize SSH connections over FTP transfers. Note that an interactive process, such as SSH, uses smaller time-smoothing values, whereas a service that performs bulk data transfers (FTP) uses a greater value. The smoothing values are responsible for the download and upload speeds in our previous example not matching the exact value specified by the trickled daemon but moving in an interval close to it.
-
-### Conclusion ###
-
-In this article we have explored how to limit the bandwidth used by applications using trickle on Fedora-based distributions and Debian / derivatives. Other possible use cases include, but are not limited to:
-
-- Limiting the download speed via a system utility such as [wget][4], or a torrent client, for example.
-- Limiting the speed at which your system can be updated via `[yum][5]` (or `[aptitude][6]`, if you’re in a Debian-based system), the package management system.
-- If your server happens to be behind a proxy or firewall (or is the proxy or firewall itself), you can use trickle to set limits on both the download and upload, or communication speed with the clients or the outside.
-
-Questions and comments are most welcome. Feel free to use the form below to send them our way.
-
---------------------------------------------------------------------------------
-
-via: http://www.tecmint.com/manage-and-limit-downloadupload-bandwidth-with-trickle-in-linux/
-
-作者:[Gabriel Cánepa][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://www.tecmint.com/author/gacanepa/
-[1]:http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
-[2]:http://linux-training.be/files/books/LinuxFun.pdf
-[3]:http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
-[4]:http://www.tecmint.com/10-wget-command-examples-in-linux/
-[5]:http://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/
-[6]:http://www.tecmint.com/dpkg-command-examples/
diff --git a/sources/tech/20150316 How to access Gmail from the command line on Linux with Alpine.md b/sources/tech/20150316 How to access Gmail from the command line on Linux with Alpine.md
deleted file mode 100644
index d62533381f..0000000000
--- a/sources/tech/20150316 How to access Gmail from the command line on Linux with Alpine.md
+++ /dev/null
@@ -1,103 +0,0 @@
-How to access Gmail from the command line on Linux with Alpine
-================================================================================
-If you are a command-line lover, I am sure that you welcome with open arms any tool that allows you to perform at least one of your daily tasks using that powerful work environment, e.g., from [scheduling appointments][1] and [managing finances][2] to accessing [Facebook][3] and [Twitter][4].
-
-In this post I will show you yet another pretty neat use case of Linux command-line: **accessing Google's Gmail service**. To do so, we are going to use Alpine, a versatile ncurses-based, command-line email client (not to be confused with Alpine Linux). We will configure Gmail's IMAP and SMTP settings in Alpine to receive and send email messages via Google mail servers in a terminal environment. At the end of this tutorial, you will realize that it will only take a few minimum steps to use any other mail servers in Alpine.
-
-Granted there are already outstanding GUI-based email clients such as Thunderbird, Evolution or even web interface. So why would anyone be interested in using a command-line email client to access Gmail? The answer is simple. You need to get something done quickly and want to avoid using system resources unnecessarily. Or you are accessing a minimal headless server that does not have the X server installed. Or the X server on your desktop crashed, and you need to send emails urgently before fixing it. In all these situations Alpine can come in handy and get you going in no time.
-
-Beyond simple editing, sending and receiving of text-based email messages, Alpine is able to encrypt, decrypt, and digitally sign email messages, and integrate seamlessly with TLS.
-
-### Installing Alpine on Linux ###
-
-In Red Hat-based distributions, install Alpine as follows. Note that on RHEL/CentOS, you need to enable [EPEL repository][5] first.
-
- # yum install alpine
-
-In Debian, Ubuntu or their derivatives, you will do:
-
- # aptitude install alpine
-
-After the installation is complete, you can launch the email client by running:
-
- # alpine
-
-The first time you run alpine, it will create a mail directory for the current user inside his/her home directory (~/mail), and bring up the main interface, as shown in the following screencast.
-
-注:youtube视频,发布的时候做个链接吧
-
-
-The user interface has the following sections:
-
-![](https://farm9.staticflickr.com/8724/16618079590_6c236ce2c2_c.jpg)
-
-Feel free to browse around a bit in order to become acquainted with Alpine. You can always return to the command prompt by hitting the 'Q' key any time. Note that all screens have context-related help available at the bottom of the screen.
-
-Before proceeding further, we will create a default configuration file for Alpine. In order to do so, quit Alpine, and execute the following command from the command line:
-
- # alpine -conf > /etc/pine.conf
-
-### Configuring Alpine to Use a Gmail Account ###
-
-Once you have installed Alpine and spent at least a few minutes to feel comfortable with its interface and menus, it's time to actually configure it to use an existing Gmail account.
-
-Before following these steps in Alpine, remember to enable IMAP in your Gmail settings from the webmail interface. Once IMAP access is enabled in your Gmail account, proceed to the following steps to enable reading Gmail messages on Alpine.
-
-First, launch Alpine.
-
-Press 'S' for Setup, and then 'L' for collection lists to define groups of folders to help you better organize your mail:
-
-![](https://farm8.staticflickr.com/7614/16779579656_690eda419c_o.png)
-
-Add a new folder by pressing 'A' and fill the required information:
-
-- **Nickname**: whatever name of your choice.
-- **Server**: imap.gmail.com/ssl/user=yourgmailusername@gmail.com
-
-You may leave Path and View blank.
-
-Then press Ctrl+X and enter your password when prompted:
-
-![](https://farm9.staticflickr.com/8611/16618079640_6f7dca336a_b.jpg)
-
-If everything goes as expected, there should be a new folder named after the nickname that you chose earlier. You should find your Gmail mailboxes there:
-
-![](https://farm8.staticflickr.com/7598/16804355052_10c1a6c5bd_b.jpg)
-
-For verification, you can compare the contents of your Alpine's "Gmail Sent" mailbox with those of the web client:
-
-![](https://farm8.staticflickr.com/7602/16619323939_d2eab3e162_c.jpg)
-
-By default new mail checking/notification occurs automatically every 150 seconds. You can change this value, along with many others, in the /etc/pine.conf file. This configuration file is heavily commented for clarity. To set the desired mail check interval to 10 seconds, for example, you will need to do:
-
- # The approximate number of seconds between checks for new mail
- mail-check-interval=10
-
-Finally, we need to configure an SMTP server to send email messages via Alpine. Go back to the Alpine's setup screen as explained earlier, and press 'C' to set the address of a Google's SMTP server. You will need to edit the value of the SMTP Server (for sending) line as follows:
-
- smtp.gmail.com:587/tls/user=yourgmailusername@gmail.com
-
-You will be prompted to save changes when you press 'E' to exit setup. Once you save the changes, you are on your way to sending emails through Alpine! To do that, just go to Compose in the main menu, and start enjoying your Gmail account from the command line.
-
-### Conclusion ###
-
-In this post we have discussed how to access Gmail in a terminal environment via a lightweight and powerful command-line email client called Alpine. Alpine is free software released under the Apache Software License 2.0, which is a software license compatible with the GPL. Alpine takes pride in being friendly for new users, yet powerful for seasoned system administrators at the same time. I hope that after reading this article you have come to realize how true that last statement is.
-
-Feel free to leave your comments or questions using the form below. I look forward to hearing from you!
-
---------------------------------------------------------------------------------
-
-via: http://xmodulo.com/gmail-command-line-linux-alpine.html
-
-作者:[Gabriel Cánepa][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://xmodulo.com/author/gabriel
-[1]:http://xmodulo.com/schedule-appointments-todo-tasks-linux-terminal.html
-[2]:http://xmodulo.com/manage-personal-expenses-command-line.html
-[3]:http://xmodulo.com/access-facebook-command-line-linux.html
-[4]:http://xmodulo.com/access-twitter-command-line-linux.html
-[5]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
\ No newline at end of file
diff --git a/sources/tech/20150316 Systemd Boot Process a Close Look in Linux.md b/sources/tech/20150316 Systemd Boot Process a Close Look in Linux.md
deleted file mode 100644
index eded061738..0000000000
--- a/sources/tech/20150316 Systemd Boot Process a Close Look in Linux.md
+++ /dev/null
@@ -1,151 +0,0 @@
-zpl1025
-Systemd Boot Process a Close Look in Linux
-================================================================================
-The way Linux system boots up is quite complex and there have always been need to optimize the way it works. The traditional boot up process of Linux system is mainly handled by the well know init process (also known as SysV init boot system), while there have been identified inefficiencies in the init based boot system, systemd on the other hand is another boot up manager for Linux based systems which claims to overcome the shortcomings of [traditional Linux SysV init][2] based system. We will be focusing our discussion on the features and controversies of systemd , but in order to understand it, let’s see how Linux boot process is handled by traditional SysV init based system. Kindly note that Systemd is still in testing phase and future releases of Linux operating systems are preparing to replace their current boot process with Systemd Boot manager.
-
-### Understanding Linux Boot Process ###
-
-Init is the very first process that starts when we power on our Linux system. Init process is assigned the PID of 1. It is parent process for all other processes on the system. When a Linux computer is started, the processor searches for the BIOS on the system memory, BIOS then tests system resources and find the first boot device, usually set as hard disk, it looks for Master Boot Record (MBR) on the hard disk, loads its contents to memory and passes control to it, the further boot process is controlled by MBR.
-
-Master Boot Record initiates the Boot loader (Linux has two well know boot loaders, GRUB and LILO, 80% of Linux systems are using GRUB loaders), this is the time when GRUB or LILO loads the kernel module. Kernel module immediately looks for the “init” in /sbin partition and executes it. That’s from where init becomes the parent process of Linux system. The very first file read by init is /etc/inittab , from here init decides the run level of our Linux operating system. It finds partition table information from /etc/fstab file and mounts partitions accordingly. Init then launches all the services/scripts specified in the /etc/init.d directory of the default run level. This is the step where all services are initialized by init one by one. In this process, one service at a time is started by init , all services/daemons run in the background and init keeps managing them.
-
-The shutdown process works in pretty much the reverse function, first of all init stops all services and then filesystem is un-mounted at the last stage.
-
-The above mentioned process has some shortcomings. The need to replace traditional init with something better have been felt from long time now. Some replacements have been developed and implemented as well. The well know replacements for this init based system as Upstart , Epoch , Mudar and Systemd. Systemd is the one which got most attention and is considered to be better of all available alternatives.
-
-### Understanding Systemd ###
-
-Reducing the boot time and computational overhead is the main objective of developing the Systemd. Systemd (System Manager Daemon) , originally developed under GNU General Public License, is now under GNU Lesser General Public License, it is most frequently discussed boot and services manager these days. If your Linux system is configured to use Systemd boot manager, then instead of traditional SysV init, startup process will be handled by systemd. One of the core feature of Systemd is that it supports post boot scripts of SysV Init as well .
-
-Systemd introduces the parallelization boot concept, it creates a sockets for each daemon that needs to be started, these sockets are abstracted from the processes that use them so they allow daemons to interact with each other. Systemd creates news processes and assigns every process a control group. The processes in different control groups use kernel to communicate with each others. The way [systemd handles the start up process][2] is quite neat, and much optimized as compared to the traditional init based system. Let’s review some of the core features of Systemd.
-
-- The boot process is much simpler as compared to the init
-- Systemd provides concurrent and parallel process of system boot so it ensures better boot speed
-- Processes are tracked using control groups, not by PIDs
-- Improved ways to handle boot and services dependencies.
-- Capability of system snapshots and restore
-- Monitoring of started services ; also capabale of restarting any crashed services
-- Includes systemd-login module to control user logins.
-- Ability to add and remove components
-- Low memory foot prints and ability for job scheduling
-- Journald module for event logging and syslogd module for system log.
-
-Systemd handles system shutdown process in well organized way as well. It has three script located inside /usr/lib/systemd/ directory, named systemd-halt.service , systemd-poweroff.service , systemd-reboot.service . These scripts are executed when user choose to shutdown, reboot or halt Linux system. In the event of shutdown, systemd first un-mount all file systems and disabled all swap devices, detaches the storage devices and kills remaining processes.
-
-![](http://images.linoxide.com/systemd-boot-process.jpg)
-
-### Structural Overview of Systemd ###
-
-Let’s review Linux system boot process with some structural details when it is using systemd as boot and services manager. For the sake of simplicity, we are listing the process in steps below:
-
-**1.** The very first steps when you power on your system is the BIOS initialization. BIOS reads the boot device settings, locates and hands over control to MBR (assuming hard disk is set as first boot device).
-
-**2.** MBR reads information from Grub or LILO boot loader and initializes the kernel. Grub or LILO will specify how to handle further system boot up. If you have specified systemd as boot manager in grub configuration file, then the further boot process will be handled by systemd. Systemd handles boot and services management process using “targets”. The ”target" files in systemd are used for grouping different boot units and start up synchronization processes.
-
-**3.** The very first target executed by systemd is **default.target**. But default.target is actually a symlink to **graphical.target**. Symlink in linux works just like shortcuts in Windows. Graphical.target file is located at /usr/lib/systemd/system/graphical.target path. We have shown the contents of graphical.target file in the following screenshot.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/graphical1.png)
-
-**4.** At this stage, **multi-user.target** has been invoked and this target keeps its further sub-units inside “/etc/systemd/system/multi-user.target.wants” directory. This target sets the environment for multi user support. None root users are enabled at this stage of boot up process. Firewall related services are started on this stage of boot as well.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/multi-user-target1.png)
-
-"multi-user.target" passes control to another layer “**basic.target**”.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/Basic-Target.png)
-
-**5.** "basic.target" unit is the one that starts usual services specially graphical manager service. It uses /etc/systemd/system/basic.target.wants directory to decide which services need to be started, basic.target passes on control to **sysinit.target**.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/Sysint-Target.png)
-
-**6.** "sysinit.target" starts important system services like file System mounting, swap spaces and devices, kernel additional options etc. sysinit.target passes on startup process to **local-fs.target**. The contents of this target unit are shown in the following screenshot.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/local-FS-Target.png)
-
-**7.** local-fs.target , no user related services are started by this target unit, it handles core low level services only. This target is the one performing actions on the basis of /etc/fstab and /etc/inittab files.
-
-### Analyzing System Boot Performancev ###
-
-Systemd offers tool to identify and troubleshoot boot related issues or performance concerns. **Systemd-analyze** is a built-in command which lets you examine boot process. You can find out the units which are facing errors during boot up and can further trace and correct boot component issues. Some useful systemd-analyze commands are listed below.
-
-**systemd-analyze time** shows the time spent in kernel, and normal user space.
-
- $ systemd-analyze time
-
- Startup finished in 1440ms (kernel) + 3444ms (userspace)
-
-**systemd-analyze blame** prints a list of all running units, sorted by the time taken by then to initialize, in this way you can have idea of which services are taking long time to start during boot up.
-
- $ systemd-analyze blame
-
- 2001ms mysqld.service
- 234ms httpd.service
- 191ms vmms.service
-
-**systemd-analyze verify** shows if there are any syntax errors in the system units. **Systemd-analyze plot** can be used to write down whole startup process to a SVG formate file. Whole boot process is very lengthy to read, so using this command we can dump the output of whole boot processing into a file and then can read and analyze it further. The following command will take care of this.
-
- systemd-analyze plot > boot.svg
-
-### Systemd Controversies ###
-
-Systemd has not been lucky to receive love from everyone, some professionals and administrators have different opinions on its working and developments. Per critics of Systemd, it’s “not Unix-like” because it tried to replace some system services. Some professionals don’t like the idea of using binary configuration files as well. It is said that editing systemd configuration is not an easy tasks and there are no graphical tools available for this purpose.
-
-### Test Systemd on Ubuntu 14.04 and 12.04 ###
-
-Originally, Ubuntu decided to replace their current boot process with Systemd in Ubuntu 16.04 LTS. Ubuntu 16.04 is supposed to be released in April 2016, but considering the popularity and demand for Systemd, the upcoming **Ubuntu 15.04** will have it as its default boot manager. Good news is that the user of Ubuntu 14.04 Trusty Tahr And Ubuntu 12.04 Precise Pangolin can still test Systemd on their machines. The test process is not very complex, all you need to do is to include the related PPA to the system, update repository and perform system upgrade.
-
-**Disclaimer** : Please note that its still in testing and development stages for Ubuntu. Testing packages might have any unknown issues and in worst case scenario, they might break your system configurations. Make sure you backup your important data before trying this upgrade.
-
-Run following command on the terminal to add ppa to the your ubuntu system:
-
- sudo add-apt-repository ppa:pitti/systemd
-
-You will be seeing warning message here because we are trying to use temporary/testing PPA which is not recommended for production machines.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/PPA-Systemd1.png)
-
-Now update the APT Package Manager repositories by running the following command.
-
- sudo apt-get update
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/Update-APT1.png)
-
-Perform system upgrade by running the following command.
-
- sudo apt-get dist-upgrade
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/System-Upgrade.png)
-
-That’s all, you should be able to see configuration files of systemd on your ubuntu system now, just browse to the /lib/systemd/ directory and see the files there.
-
-Alright, it’s time we edit grub configuration file and specify systemd as default Boot Manager. Edit grub file using Gedit text editor.
-
- sudo gedit /etc/default/grub
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/Edit-Grub.png)
-
-Here edit GRUB_CMDLINE_LINUX_DEFAULT parameter in this file and specify the value of this parameter as: "**init=/lib/systemd/systemd**"
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/Grub-Systemd.png)
-
-That’s all, your ubuntu system is no longer using its traditional boot manager, its using Systemd Manager now. Reboot your system and see the systemd boot up process.
-
-![](http://blog.linoxide.com/wp-content/uploads/2015/03/Sytemd-Boot.png)
-
-### Conclusion ###
-
-Systemd is no doubt a step forward towards improving Linux Boot process; it’s an awesome suite of libraries and daemons that together improve the system boot and shutdown process. Many linux distributions are preparing to support it as their official boot manager. In future releases of Linux distros, we can hope to see systemd startup. But on the other hand, in order to succeed and to be adopted on the wide scale, systemd should address the concerns of critics as well.
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/linux-how-to/systemd-boot-process/
-
-作者:[Aun Raza][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunrz/
-[1]:http://linoxide.com/booting/boot-process-of-linux-in-detail/
-[2]:http://0pointer.de/blog/projects/self-documented-boot.html
diff --git a/sources/tech/20150318 11 Linux Terminal Commands That Will Rock Your World.md b/sources/tech/20150318 11 Linux Terminal Commands That Will Rock Your World.md
deleted file mode 100644
index ba85e4c6a8..0000000000
--- a/sources/tech/20150318 11 Linux Terminal Commands That Will Rock Your World.md
+++ /dev/null
@@ -1,266 +0,0 @@
-11 Linux Terminal Commands That Will Rock Your World
-================================================================================
-I have been using Linux for about 10 years and what I am going to show you in this article is a list of Linux commands, tools and clever little tricks that I wish somebody had shown me from the outset instead of stumbling upon them as I went along.
-
-![Linux Keyboard Shortcuts.](http://f.tqn.com/y/linux/1/L/m/J/1/keyboardshortcuts.png)
-Linux Keyboard Shortcuts.
-
-### 1. Useful Command Line Keyboard Shortcuts ###
-
-The following keyboard shortcuts are incredibly useful and will save you loads of time:
-
-- CTRL + U - Cuts text up until the cursor.
-- CTRL + K - Cuts text from the cursor until the end of the line
-- CTRL + Y - Pastes text
-- CTRL + E - Move cursor to end of line
-- CTRL + A - Move cursor to the beginning of the line
-- ALT + F - Jump forward to next space
-- ALT + B - Skip back to previous space
-- ALT + Backspace - Delete previous word
-- CTRL + W - Cut word behind cursor
-- Shift + Insert - Pastes text into terminal
-
-Just so that the commands above make sense look at the next line of text.
-
- sudo apt-get intall programname
-
-As you can see I have a spelling error and for the command to work I would need to change "intall" to "install".
-
-Imagine the cursor is at the end of the line. There are various ways to get back to the word install to change it.
-
-I could press ALT + B twice which would put the cursor in the following position (denoted by the ^ symbol):
-
- sudo apt-get^intall programname
-
-Now you could press the cursor key and insert the ''s' into install.
-
-Another useful command is "shift + insert" especially If you need to copy text from a browser into the terminal.
-
-![](http://f.tqn.com/y/linux/1/L/n/J/1/sudotricks2.png)
-
-### 2. SUDO !! ###
-
-You are going to really thank me for the next command if you don't already know it because until you know this exists you curse yourself every time you enter a command and the words "permission denied" appear.
-
-- sudo !!
-
-How do you use sudo !!? Simply. Imagine you have entered the following command:
-
- apt-get install ranger
-
-The words "Permission denied" will appear unless you are logged in with elevated privileges.
-
-sudo !! runs the previous command as sudo. So the previous command now becomes:
-
- sudo apt-get install ranger
-
-If you don't know what sudo is [start here][1].
-
-![Pause Terminal Applications.](http://f.tqn.com/y/linux/1/L/o/J/1/pauseapps.png)
-Pause Terminal Applications.
-
-### 3. Pausing Commands And Running Commands In The Background ###
-
-I have already written a guide showing how to run terminal commands in the background.
-
-- CTRL + Z - Pauses an application
-- fg - Returns you to the application
-
-So what is this tip about?
-
-Imagine you have opened a file in nano as follows:
-
- sudo nano abc.txt
-
-Halfway through typing text into the file you realise that you quickly want to type another command into the terminal but you can't because you opened nano in foreground mode.
-
-You may think your only option is to save the file, exit nano, run the command and then re-open nano.
-
-All you have to do is press CTRL + Z and the foreground application will pause and you will be returned to the command line. You can then run any command you like and when you have finished return to your previously paused session by entering "fg" into the terminal window and pressing return.
-
-An interesting thing to try out is to open a file in nano, enter some text and pause the session. Now open another file in nano, enter some text and pause the session. If you now enter "fg" you return to the second file you opened in nano. If you exit nano and enter "fg" again you return to the first file you opened within nano.
-
-![nohup.](http://f.tqn.com/y/linux/1/L/p/J/1/nohup3.png)
-nohup.
-
-### 4. Use nohup To Run Commands After You Log Out Of An SSH Session ###
-
-The [nohup command][2] is really useful if you use the ssh command to log onto other machines.
-
-So what does nohup do?
-
-Imagine you are logged on to another computer remotely using ssh and you want to run a command that takes a long time and then exit the ssh session but leave the command running even though you are no longer connected then nohup lets you do just that.
-
-For instance I use my [Raspberry PI][3] to download distributions for review purposes.
-
-I never have my Raspberry PI connected to a display nor do I have a keyboard and mouse connected to it.
-
-I always connect to the Raspberry PI via [ssh][4] from a laptop. If I started downloading a large file on the Raspberry PI without using the nohup command then I would have to wait for the download to finish before logging off the ssh session and before shutting down the laptop. If I did this then I may as well have not used the Raspberry PI to download the file at all.
-
-To use nohup all I have to type is nohup followed by the command as follows:
-
- nohup wget http://mirror.is.co.za/mirrors/linuxmint.com/iso//stable/17.1/linuxmint-17.1-cinnamon-64bit.iso &
-
-![Schedule tasks with at.](http://f.tqn.com/y/linux/1/L/q/J/1/at.png)
-Schedule tasks with at.
-
-### 5. Running A Linux Command 'AT' A Specific Time ###
-
-The 'nohup' command is good if you are connected to an SSH server and you want the command to remain running after logging out of the SSH session.
-
-Imagine you want to run that same command at a specific point in time.
-
-The 'at' command allows you to do just that. 'at' can be used as follows.
-
- at 10:38 PM Fri
- at> cowsay 'hello'
- at> CTRL + D
-
-The above command will run the program [cowsay][5] at 10:38 PM on Friday evening.
-
-The syntax is 'at' followed by the date and time to run.
-
-When the at> prompt appears enter the command you want to run at the specified time.
-
-The CTRL + D returns you to the cursor.
-
-There are lots of different date and time formats and it is worth checking the man pages for more ways to use 'at'.
-
-![](http://f.tqn.com/y/linux/1/L/l/J/1/manmost.png)
-
-### 6. Man Pages ###
-
-Man pages give you an outline of what commands are supposed to do and the switches that can be used with them.
-
-The man pages are kind of dull on their own. (I guess they weren't designed to excite us).
-
-You can however do things to make your usage of man more appealing.
-
- export PAGER=most
-
-You will need to install 'most; for this to work but when you do it makes your man pages more colourful.
-
-You can limit the width of the man page to a certain number of columns using the following command:
-
- export MANWIDTH=80
-
-Finally, if you have a browser available you can open any man page in the default browser by using the -H switch as follows:
-
- man -H
-
-Note this only works if you have a default browser set up within the $BROWSER environment variable.
-
-![View Processes With htop.](http://f.tqn.com/y/linux/1/L/r/J/1/nohup2.png)
-View Processes With htop.
-
-### 7. Use htop To View And Manage Processes ###
-
-Which command do you currently use to find out which processes are running on your computer? My bet is that you are using '[ps][6]' and that you are using various switches to get the output you desire.
-
-Install '[htop][7]'. It is definitely a tool you will wish that you installed earlier.
-
-htop provides a list of all running processes in the terminal much like the file manager in Windows.
-
-You can use a mixture of function keys to change the sort order and the columns that are displayed. You can also kill processes from within htop.
-
-To run htop simply type the following into the terminal window:
-
- htop
-
-![Command Line File Manager - Ranger.](http://f.tqn.com/y/linux/1/L/s/J/1/ranger.png)
-Command Line File Manager - Ranger.
-
-### 8. Navigate The File System Using ranger ###
-
-If htop is immensely useful for controlling the processes running via the command line then [ranger][8] is immensely useful for navigating the file system using the command line.
-
-You will probably need to install ranger to be able to use it but once installed you can run it simply by typing the following into the terminal:
-
- ranger
-
-The command line window will be much like any other file manager but it works left to right rather than top to bottom meaning that if you use the left arrow key you work your way up the folder structure and the right arrow key works down the folder structure.
-
-It is worth reading the man pages before using ranger so that you can get used to all keyboard switches that are available.
-
-![Cancel Linux Shutdown.](http://f.tqn.com/y/linux/1/L/t/J/1/shutdown.png)
-Cancel Linux Shutdown.
-
-### 9. Cancel A Shutdown ###
-
-So you started the [shutdown][9] either via the command line or from the GUI and you realised that you really didn't want to do that.
-
- shutdown -c
-
-Note that if the shutdown has already started then it may be too late to stop the shutdown.
-
-Another command to try is as follows:
-
-- [pkill][10] shutdown
-
-![Kill Hung Processes With XKill.](http://f.tqn.com/y/linux/1/L/u/J/1/killhungprocesses.png)
-Kill Hung Processes With XKill.
-
-### 10. Killing Hung Processes The Easy Way ###
-
-Imagine you are running an application and for whatever reason it hangs.
-
-You could use 'ps -ef' to find the process and then kill the process or you could use 'htop'.
-
-There is a quicker and easier command that you will love called [xkill][11].
-
-Simply type the following into a terminal and then click on the window of the application you want to kill.
-
- xkill
-
-What happens though if the whole system is hanging?
-
-Hold down the 'alt' and 'sysrq' keys on your keyboard and whilst they are held down type the following slowly:
-
-- [REISUB][12]
-
-This will restart your computer without having to hold in the power button.
-
-![youtube-dl.](http://f.tqn.com/y/linux/1/L/v/J/1/youtubedl2.png)
-youtube-dl.
-
-### 11. Download Youtube Videos ###
-
-Generally speaking most of us are quite happy for Youtube to host the videos and we watch them by streaming them through our chosen media player.
-
-If you know you are going to be offline for a while (i.e. due to a plane journey or travelling between the south of Scotland and the north of England) then you may wish to download a few videos onto a pen drive and watch them at your leisure.
-
-All you have to do is install youtube-dl from your package manager.
-
-You can use youtube-dl as follows:
-
- youtube-dl url-to-video
-
-You can get the url to any video on Youtube by clicking the share link on the video's page. Simply copy the link and paste it into the command line (using the shift + insert shortcut).
-
-### Summary ###
-
-I hope that you found this list useful and that you are thinking "i didn't know you could do that" for at least 1 of the 11 items listed.
-
---------------------------------------------------------------------------------
-
-via: http://linux.about.com/od/commands/tp/11-Linux-Terminal-Commands-That-Will-Rock-Your-World.htm
-
-作者:[Gary Newell][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linux.about.com/bio/Gary-Newell-132058.htm
-[1]:http://linux.about.com/cs/linux101/g/sudo.htm
-[2]:http://linux.about.com/library/cmd/blcmdl1_nohup.htm
-[3]:http://linux.about.com/od/mobiledevicesother/a/Raspberry-Pi-Computer-Running-Linux.htm
-[4]:http://linux.about.com/od/commands/l/blcmdl1_ssh.htm
-[5]:http://linux.about.com/cs/linux101/g/cowsay.htm
-[6]:http://linux.about.com/od/commands/l/blcmdl1_ps.htm
-[7]:http://www.linux.com/community/blogs/133-general-linux/745323-5-commands-to-check-memory-usage-on-linux
-[8]:http://ranger.nongnu.org/
-[9]:http://linux.about.com/od/commands/l/blcmdl8_shutdow.htm
-[10]:http://linux.about.com/library/cmd/blcmdl1_pkill.htm
-[11]:http://linux.about.com/od/funnymanpages/a/funman_xkill.htm
-[12]:http://blog.kember.net/articles/reisub-the-gentle-linux-restart/
\ No newline at end of file
diff --git a/sources/tech/20150323 How to enable ssh login without entering password.md b/sources/tech/20150323 How to enable ssh login without entering password.md
deleted file mode 100644
index 40a4085f01..0000000000
--- a/sources/tech/20150323 How to enable ssh login without entering password.md
+++ /dev/null
@@ -1,41 +0,0 @@
-How to enable ssh login without entering password
-================================================================================
-Assume that you are a user "aliceA" on hostA, and wish to ssh to hostB as user "aliceB", without entering her password on hostB. You can follow this guide to **enable ssh login without entering a password**.
-
-First of all, you need to be logged in as user "aliceA" on hostA.
-
-Generate a public/private rsa key pair by using ssh-keygen. The generated key pair will be stored in ~/.ssh directory.
-
- $ ssh-keygen -t rsa
-
-Then, create ~/.ssh directory on aliceB account at the destination hostB by running the following command. This step can be omitted if there is already .ssh directory at aliceB@hostB.
-
- $ ssh aliceB@hostB mkdir -p .ssh
-
-Finally, copy the public key of user "aliceA" on hostA to aliceB@hostB to enable password-less ssh.
-
- $ cat .ssh/id_rsa.pub | ssh aliceB@hostB 'cat >> .ssh/authorized_keys'
-
-From this point on, you no longer need to type in password to ssh to aliceB@hostB from aliceA@hostA.
-
-### Troubleshooting ###
-
-1. You are still asked for an SSH password even after enabling key authentication. In this case, check for system logs (e.g., /var/log/secure) to see if you see something like the following.
-
- Authentication refused: bad ownership or modes for file /home/aliceB/.ssh/authorized_keys
-
-In this case, failure of key authentication is due to the fact that the permission or ownership ~/.ssh/authorized_keys file is not correct. Typically this error can happen if ~/.ssh/authorized_keys is read accessible to anyone but yourself. To fix this problem, change the file permission as follows.
-
- $ chmod 700 ~/.ssh/authorized_keys
-
---------------------------------------------------------------------------------
-
-via: http://xmodulo.com/how-to-enable-ssh-login-without.html
-
-作者:[Dan Nanni][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://xmodulo.com/author/nanni
\ No newline at end of file
diff --git a/sources/tech/20150323 Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS.md b/sources/tech/20150323 Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS.md
deleted file mode 100644
index 9306f21c8d..0000000000
--- a/sources/tech/20150323 Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS.md
+++ /dev/null
@@ -1,121 +0,0 @@
-Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS
-================================================================================
-> **Question**: I want to install CentOS desktop on VPS, and be able to access the desktop GUI remotely from home. What is a recommended way to set up and access CentOS-based remote desktop on VPS?
-
-Nowadays teleworking or remote working with flexible hours is increasingly popular in tech industry. One of the enabling technologies behind this trend is remote desktop. Your desktop environment is in the cloud, and you can access the remote desktop anywhere you go, either from home or at your workplace.
-
-This tutorial describes how you can set up CentOS based remote desktop on VPS. Here we are going to demonstrate CentOS 7 based environment.
-
-We assume that you already created a CentOS 7 VPS instance somewhere (e.g., using [DigitalOcean][1] or Amazon EC2). Make sure that the VPS instance has at least 1GB memory. Otherwise, CentOS desktop will crash when you try to access remote desktop.
-
-### Step One: Install CentOS Desktop ###
-
-If an available CentOS image is a minimal version of CentOS without desktop, you will need to install desktop (e.g., GNOME) on your CentOS VPS before proceeding. For example, DigitalOcean's CentOS image is such a minimal version, which requires [desktop GUI installation][2] as follows.
-
- # yum groupinstall "GNOME Desktop"
-
-Reboot a VPS after finishing installation.
-
-### Step Two: Install and Configure VNC Server ###
-
-The next step is to install and configure VNC server. We are going to use TigerVNC, an open-source VNC server implementation.
-
- # yum install tigervnc-server
-
-Now create a user account (e.g., xmodulo) which will be used to access remote desktop.
-
- # useradd xmodulo
- # passwd xmodulo
-
-When a user tries to access remote desktop using VNC, a dedicated VNC server daemon will be launched to handle its requests. This means that you will need to create a separate VNC server configuration for each user.
-
-CentOS 7 relies on systemd to manage and configure system services. So we are going to configure VNC server for xmodulo user using systemd.
-
-Let's first check the status of VNC server by running either command below:
-
- # systemctl status vncserver@:.service
- # systemctl is-enabled vncserver@.service
-
-By default, freshly installed VNC service is not active (disabled).
-
-![](https://farm8.staticflickr.com/7613/16877514732_8ccffe7b6b_b.jpg)
-
-Now create a VNC service configuration for xmodulo user by copying a generic VNC service unit file as follows.
-
- # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
-
-Open the configuration file with a text editor, and replace with an actual user name (e.g., xmodulo) under [Service] section. Also, append "-geometry " parameter in ExecStart. In the end, the following two lines with bold font will be modified.
-
- # vi /etc/systemd/system/vncserver@:1.service
-
-----------
-
- [Service]
- Type=forking
- # Clean any existing files in /tmp/.X11-unix environment
- ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
- ExecStart=/sbin/runuser -l xmodulo -c "/usr/bin/vncserver %i -geometry 1024x768"
- PIDFile=/home/xmodulo/.vnc/%H%i.pid
- ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
-
-Now set up (optional) VNC password for xmodulo user for security. For this, switch to the user, and run vncserver command.
-
- # su - xmodulo
- # vncserver
-
-You will be prompted to enter a VNC password for the user. Once the password is set, you will need to use this password to gain access to remote desktop.
-
-![](https://farm9.staticflickr.com/8752/16692564599_9c4e5da1b6_b.jpg)
-
-Finally, reload services to activate the new VNC configuration:
-
- # systemctl daemon-reload
-
-and enable VNC service to make it start automatically upon boot:
-
- # systemctl enable vncserver@:1.service
-
-Check the port number that a VNC server is listening on by running:
-
- # netstat -tulpn | grep vnc
-
-![](https://farm8.staticflickr.com/7625/16692646729_7bb16c4897_b.jpg)
-
-Port 5901 is the default port number for VNC client to connect to a VNC server.
-
-### Step Three: Connect to Remote Desktop over SSH ###
-
-By design, Remote Frame Buffer (RFB) protocol used by VNC is not a secure protocol. Thus it is not a good idea to directly connect to a remote VNC server running on VPS using a VNC client. Any sensitive information such as password could easily be leaked from VNC traffic. So instead, I strongly recommend that you [tunnel VNC traffic][3] over a secure SSH tunnel, as described here.
-
-On a local host where you want to run VNC client, create an SSH tunnel to a remote VPS using the following command. When prompted for SSH password, type the password of the user.
-
- $ ssh xmodulo@ -L 5901:127.0.0.1:5901
-
-Replace "xmodulo" with your own VNC user, and fill in the IP address of your VPS instance.
-
-Once an SSH tunnel is established, remote VNC traffic will be routed over the SSH tunnel, and be sent to 127.0.0.1:5901.
-
-Now go ahead and launch your favorite VNC client (e.g., vinagre), and connect to 127.0.0.1:5901.
-
-![](https://farm8.staticflickr.com/7639/16691289910_fae83510fb_o.png)
-
-You will be asked to enter a VNC password. When you type a correct VNC password, you will finally be able to CentOS remote desktop on VPS securely.
-
-![](https://farm8.staticflickr.com/7614/16877678411_aa8349f6b1_c.jpg)
-
-![](https://farm9.staticflickr.com/8702/16256320434_81f9b5b70c_c.jpg)
-
---------------------------------------------------------------------------------
-
-via: http://ask.xmodulo.com/centos-remote-desktop-vps.html
-
-作者:[Dan Nanni][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://ask.xmodulo.com/author/nanni
-[1]:http://xmodulo.com/go/digitalocean
-[2]:http://xmodulo.com/how-to-install-gnome-desktop-on-centos.html
-[3]:http://xmodulo.com/how-to-set-up-vnc-over-ssh.html
\ No newline at end of file
diff --git a/sources/tech/20150324 4 Tools to Securely Delete Files from Linux.md b/sources/tech/20150324 4 Tools to Securely Delete Files from Linux.md
deleted file mode 100644
index f66f54247d..0000000000
--- a/sources/tech/20150324 4 Tools to Securely Delete Files from Linux.md
+++ /dev/null
@@ -1,130 +0,0 @@
-4 Tools to Securely Delete Files from Linux
-================================================================================
-Any computer user with normal level skill set knows that any data removed from computer system can be recovered later with little bit of efforts. This is a good thing in the scenario when you have accidentally deleted your critical data. But in most cases, you don't want your private data to be recovered easily. Whenever we remove anything, the operating system deletes just the index of the particular data. It means that data is still there somewhere on the disk, this method is insecure, as any smart computer hacker can use any good data recovery tool to easily recover your deleted data. Linux users utilizes the well know “**rm**” command to remove data from their operating system, but “rm” command works in the conventional fashion. Data removed using this command can be recovered by special file recovery tools.
-
-Let’s see how we can safely and completely remove files/folders from our Linux system. The methods mentioned below remove data completely so it becomes very hard for recovery tools to find traces of the actual data and recover it.
-
-### Secure-Delete ###
-
-Secure-Delete is a set of tools for Linux operating system and they provide advanced techniques for permanent removal of files. Once Secure-Delete has been installed on any Linux system, it provides following four commands:
-
-- srm
-- smem
-- sfill
-- sswap
-
-Run following command in the terminal to install it in ubuntu:
-
- sudo apt-get install secure-delete
-
-![secure delete](http://blog.linoxide.com/wp-content/uploads/2015/03/secure-delete.png)
-
-Run following command to install it in RHEL, Fedora or Centos:
-
- sudo yum install secure-delete
-
-“**srm**” command works similarly to “rm” command, but instead of just deleting the file, it first overwrites it multiple times with some random data and then removes the file permanently. The syntax for this command is pretty simply, just specify the file or directory to remove and it will take care of the task.
-
- sudo srm /home/aun/Documents/xueo/1.png
-
-"**sfill**" checks the specified partition/directories for space marked as free or available, and then uses its algorithm to fill it up with some random data. In this way it ensures that there are no more recoverable files/folders on the partition.
-
- sudo sfill /home
-
-"**sswap**" command is used to securely wipe your swap partitions. Swap partition is used to store data for running programs. First of all find out your swap partition by running the following command:
-
- cat /proc/swaps
-
-Example output of above command is show below:
-
- aun@eagle:~$ cat /proc/swaps
- Filename Type Size Used Priority
- /dev/sda5 partition 2084860 71216 -1
-
-From here, you can see that swap is set to which partition, and then securely clean it by running the following command. Replace the "/dev/sda5" part with your partition name.
-
- sudo sswap /dev/sda5
-
-“**smem**” is used to clean the contents of memory, its true that RAM contents are cleaned when system is rebooted or powered off, but some residual traces of data still remain in the memory. This command provides secure memory cleaning, simly run smem command on the terminal.
-
- smem
-
-### Shred ###
-
-"shred" command destroys files/folder’s contents in a way that it is impossible to recover. It keeps overwriting the files with randomly generated data patterns so in this way it becomes very hard to recover any data from them even if hackers or thief uses high level of data recovery tools/equipments. Shred is installed by default on all Linux distributions, if you want, you can find its installation path by running following command:
-
- aun@eagle:~$ whereis shred
-
- shred: /usr/bin/shred /usr/share/man/man1/shred.1.gz
-
-Run following command to remove file using shred utility.
-
- shred /home/aun/Documents/xueo/1.png
-
-Run following command to securely remove any partition using shred ; Replace partition name with your desired partition.
-
- shred /dev/sda5
-
-Shred by default overwrites file with random contents 25 times. If you want it to overwrite file more than this, simply specify the desired number with "shred -n" option.
-
- shred -n 100 filename
-
-If you want to truncate and remove file after overwriting, use "shred -u" option
-
- shred -u filename
-
-### dd ###
-
-This command is originally used for Disk Cloning. It is used to copy contents of one partition or disk to another. But it is also used for securely wiping out the contents of a hard disk or partitions. Run following command to overwrite your current data with random data.You don't need to install dd command, all Linux distributions include this command already.
-
- sudo dd if=/dev/random of=/dev/sda
-
-You can also overwrite the contents of hard disk or partitions by simply replacing everything with “zero”.
-
- sudo dd if=/dev/zero of=/dev/sda
-
-### Wipe ###
-
-Wipe was originally developed to securely erase files from magnetic media. This command line utility writes special patterns to the files repeatedly. It uses fsync() call and/or the O_SYNC bit to force disk access. It uses Gutmann algorithm for repeated writes. You can remove contents of single file, folder or entire hard disk with this command, but whole hard disk format using wipe command will take good amount of time. The installation and use of this utility is pretty easy.
-
-Install wipe on ubuntu by running the following command on the terminal.
-
- sudo aptitude install wipe
-
-![Wipe Linux](http://blog.linoxide.com/wp-content/uploads/2015/03/wipe.png)
-
-Install Wipe in Redhat Linux, Centos or Fedora by running the following command:
-
- sudo yum install wipe
-
-Once the installation is complete, run following command on the terminal to get complete list of its available options:
-
- man wipe
-
-Remove any file or directory as:
-
- wipe filename
-
-Securely remove your tmp partition by running following command:
-
- wipe -r /tmp
-
-Use following command to remove contents of complete partition (replace partition name with your desired partition).
-
- wipe /dev/sda1
-
-### Conclusion ###
-
-We hope you find this article useful, the privacy of your data is critical, its important to have such secure file removal utilities installed on your system so you may be able to remove your private data without fear of being recovered easily. All of the above mentioned tools are pretty lightweight, they take minimum system resources to run, and does not affect performance of your system in anyway. Enjoy!
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/security/delete-files-permanatly-linux/
-
-作者:[Aun Raza][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunrz/
\ No newline at end of file
diff --git a/sources/tech/20150324 How to Interactively Create a Docker Container.md b/sources/tech/20150324 How to Interactively Create a Docker Container.md
deleted file mode 100644
index 17576ec4f0..0000000000
--- a/sources/tech/20150324 How to Interactively Create a Docker Container.md
+++ /dev/null
@@ -1,100 +0,0 @@
-translating wi-cuckoo LLAP
-How to Interactively Create a Docker Container
-================================================================================
-Hi everyone, today we'll learn how we can interactively create a docker container using a docker image. Once we start a process in Docker from an Image, Docker fetches the image and its Parent Image, and repeats the process until it reaches the Base Image. Then the Union File System adds a read-write layer on top. That read-write layer, the information about its Parent Image and some other information like its unique id, networking configuration, and resource limits is called a **Container**. Containers has states as they can change from **running** to **exited** state. A container with state as **running** includes a tree of processes running on the CPU, isolated from the other processes running on the host where as **exited** is the state of the file system and its exit value is preserved. You can start, stop, and restart a container with it.
-
-Docker Technology has brought a remarkable change in the field of IT enabling cloud service for sharing applications and automating workflows, enabling apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. In this article, we'll build CentOS Instance in which we'll host a website running under Apache Web Server.
-
-Here is quick and easy tutorial on how we can create a container in an interactive method using an interactive shell.
-
-### 1. Running a Docker Instance ###
-
-Docker initially tries to fetch and run the required image locally and if its not found in local host the it pulls from the [Docker Public Registry Hub][1] . Here. we'll fetch and create a fedora instance in a Docker Container and attach a bash shell to the tty.
-
- # docker run -i -t fedora bash
-
-![Downloading Fedora Base Image](http://blog.linoxide.com/wp-content/uploads/2015/03/downloading-fedora-base-image.png)
-
-### 2. Installing Apache Web Server ###
-
-Now, after our Fedora base image with instance is ready, we'll now gonna install Apache Web Server interactively without creating a Dockerfile for it. To do so, we'll need to run the following commands in a terminal or shell.
-
- # yum update
-
-![Updating Fedora Base Image](http://blog.linoxide.com/wp-content/uploads/2015/03/updating-fedora-base-image.png)
-
- # yum install httpd
-
-![Installing httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/installing-httpd2.png)
-
- # exit
-
-### 3. Saving the Image ###
-
-Now, we'll gonna save the changes we made into the Fedora Instance. To do that, we'll first gonna need to know the Container ID of the Instance. To get that we'll need to run the following command.
-
- # docker ps -a
-
-![Docker Running Container](http://blog.linoxide.com/wp-content/uploads/2015/03/docker-running-container.png)
-
-Then, we'll save the changes as a new image by running the below command.
-
- # docker commit c16378f943fe fedora-httpd
-
-![committing fedora httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/committing-fedora-httpd.png)
-
-Here, the changes are saved using the Container ID and image name fedora-httpd. To make sure that the new image is running or not, we'll run the following command.
-
- # docker images
-
-![view docker images](http://blog.linoxide.com/wp-content/uploads/2015/03/view-docker-images.png)
-
-### 4. Adding the Contents to the new image ###
-
-As we have our new Fedora Apache image running successfully, now we'll want to add the web contents which includes our website to Apache Web Server so that our website will run successfully out of the box. To do so, we'll need to create a new Dockerfile which will handle the operation from copying web contents to allowing port 80. To do so, we'll need to create a file Dockerfile using our favorite text editor as shown below.
-
- # nano Dockerfile
-
-Now, we'll need to add the following lines into that file.
-
- FROM fedora-httpd
- ADD mysite.tar /tmp/
- RUN mv /tmp/mysite/* /var/www/html
- EXPOSE 80
- ENTRYPOINT [ "/usr/sbin/httpd" ]
- CMD [ "-D", "FOREGROUND" ]
-
-![configuring Dockerfile](http://blog.linoxide.com/wp-content/uploads/2015/03/configuring-Dockerfile.png)
-
-Here, in above Dockerfile, the web content which we have in mysite.tar will get automatically extracted to /tmp/ folder. Then, the entire site will move to the Apache Web root ie /var/www/html/ and the expose 80 will open port 80 so that the website will be available normally. Then, the entrypoint is set to /usr/sbin/httpd so that the Apache Server will execute.
-
-### 5. Building and running a Container ###
-
-Now, we'll build our Container using the Dockerfile we just created in order to add our website on it. To do so, we'll need to run the following command.
-
- # docker build -rm -t mysite .
-
-![Building mysite Image](http://blog.linoxide.com/wp-content/uploads/2015/03/building-mysite-image.png)
-
-After building our new container, we'll want to run the container using the command below.
-
- # docker run -d -P mysite
-
-![Running mysite Container](http://blog.linoxide.com/wp-content/uploads/2015/03/running-mysite-container.png)
-
-### Conclusion ###
-
-Finally, we've successfully built a Docker Container interactively. In this method, we build our containers and image directly via interactive shell commands. This method is quite easy and quick to build and deploy our images and containers. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-)
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/linux-how-to/interactively-create-docker-container/
-
-作者:[Arun Pyasi][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunp/
-[1]:https://registry.hub.docker.com/
diff --git a/sources/tech/20150326 How to set up server monitoring system with Monit.md b/sources/tech/20150326 How to set up server monitoring system with Monit.md
new file mode 100644
index 0000000000..c8f9efaecd
--- /dev/null
+++ b/sources/tech/20150326 How to set up server monitoring system with Monit.md
@@ -0,0 +1,252 @@
+How to set up server monitoring system with Monit
+================================================================================
+Many Linux admins rely on a centralized remote monitoring system (e.g., [Nagios][1] or [Cacti][2]) to check the health of their network infrastructure. While centralized monitoring makes an admin's life easy when dealing with many hosts and devices, a dedicated monitoring box obviously becomes a single point of failure; if the monitoring box goes down or becomes unreachable for whatever reason (e.g., bad hardware or network outage), you will lose visibility on your entire infrastructure.
+
+One way to add redundancy to your monitoring system is to install standalone monitoring software (as a fallback) at least on any critical/core servers on your network. In case a centralized monitor is down, you will still be able to maintain visibility on your core servers from their backup monitor.
+
+### What is Monit? ###
+
+[Monit][3] is a cross-platform open-source tool for monitoring Unix/Linux systems (e.g., Linux, BSD, OSX, Solaris). Monit is extremely easy to install and reasonably lightweight (with only 500KB in size), and does not require any third-party programs, plugins or libraries. Yet, Monit lends itself to full-blown monitoring, capable of process status monitoring, filesystem change monitoring, email notification, customizable actions for core services, and so on. The combination of ease of setup, lightweight implementation and powerful features makes Monit an ideal candidate for a backup monitoring tool.
+
+I have been using Monit for several years on multiple hosts, and I am very pleased how reliable it has been. Even as a full-blown monitoring system, Monit is very useful and powerful for any Linux admin. In this tutorial, let me demonstrate how to set up Monit on a local server (as a backup monitor) to monitor common services. With this setup, I will only scrach the surface of what Monit can do for us.
+
+### Installation of Monit on Linux ###
+
+Most Linux distributions already include Monit in their repositories.
+
+Debian, Ubuntu or Linux Mint:
+
+ $ sudo aptitude install monit
+
+Fedora or CentOS/RHEL:
+
+On CentOS/RHEL, you must enable either [EPEL][4] or [Repoforge][5] repository first.
+
+ # yum install monit
+
+Monit comes with a very well documented configuration file with a lots of examples. The main configuration file is located in /etc/monit.conf in Fedora/CentOS/RHEL, or /etc/monit/monitrc in Debian/Ubuntu/Mint. Monit configuration has two parts: "Global" and "Services" sections.
+
+Gl### ###obal Configuration: Web Status Page
+
+Monit can use several mail servers for notifications, and/or an HTTP/HTTPS status page. Let's start with the web status page with the following requirements.
+
+- Monit listens on port 1966.
+- Access to the web status page is encrypted with SSL.
+- Login requires monituser/romania as user/password.
+- Login is permitted from localhost, myhost.mydomain.ro, and internal LAN (192.168.0.0/16) only.
+- Monit stores an SSL certificate in a pem format.
+
+For subsequent steps, I will use a Red Hat based system. Similar steps will be applicable on a Debian based system.
+
+First, generate and store a self-signed certificate (monit.pem) in /var/cert.
+
+ # mkdir /var/certs
+ # cd /etc/pki/tls/certs
+ # ./make-dummy-cert monit.pem
+ # cp monit.pem /var/certs
+ # chmod 0400 /var/certs/monit.pem
+
+Now put the following snippet in the Monit's main configuration file. You can start with an empty configuration file or make a copy of the original file.
+
+ set httpd port 1966 and
+ SSL ENABLE
+ PEMFILE /var/certs/monit.pem
+ allow monituser:romania
+ allow localhost
+ allow 192.168.0.0/16
+ allow myhost.mydomain.ro
+
+### Global Configuration: Email Notification ###
+
+Next, let's set up email notification in Monit. We need at least one active [SMTP server][6] which can send mails from the Monit host. Something like the following will do (adjust it for your case):
+
+- Mail server hostname: smtp.monit.ro
+- Sender email address used by monit (from): monit@monit.ro
+- Who will receive mail from monit daemon: guletz@monit.ro
+- SMTP port used by mail server: 587 (default is 25)
+
+With the above information, email notification would be configured like this:
+
+ set mailserver smtp.monit.ro port 587
+ set mail-format {
+ from: monit@monit.ro
+ subject: $SERVICE $EVENT at $DATE on $HOST
+ message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.
+
+ Yours sincerely,
+ Monit
+
+ }
+
+ set alert guletz@monit.ro
+
+As you can see, Monit offers several built-in variables ($DATE, $EVENT, $HOST, etc.), and you can customize your email message for your needs. If you want to send mails from the Monit host itself, you need a sendmail-compatible program (e.g., postfix or ssmtp) already installed.
+
+### Global Configuration: Monit Daemon ###
+
+The next part is setting up monit daemon. We will set it up as follows.
+
+- Performs the first check after 120 seconds.
+- Checks services once every 3 minutes.
+- Use syslog for logging.
+
+Place the following snippet to achieve the above setting.
+
+ set daemon 120
+ with start delay 240
+ set logfile syslog facility log_daemon
+
+We must also define "idfile", a unique ID used by monit demon, and "eventqueue", a path where mails sent by monit but undelivered due to SMTP/network errors. Verifiy that path (/var/monit) already exists. The following configuration will do.
+
+ set idfile /var/monit/id
+ set eventqueue
+ basedir /var/monit
+
+### Test Global Configuration ###
+
+Now the "Global" section is finished. The Monit configuration file will look like this:
+
+ # Global Section
+
+ # status webpage and acl's
+ set httpd port 1966 and
+ SSL ENABLE
+ PEMFILE /var/certs/monit.pem
+ allow monituser:romania
+ allow localhost
+ allow 192.168.0.0/16
+ allow myhost.mydomain.ro
+
+ # mail-server
+ set mailserver smtp.monit.ro port 587
+ # email-format
+ set mail-format {
+ from: monit@monit.ro
+ subject: $SERVICE $EVENT at $DATE on $HOST
+ message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.
+
+ Yours sincerely,
+ Monit
+
+ }
+
+ set alert guletz@monit.ro
+
+ # delay checks
+ set daemon 120
+ with start delay 240
+ set logfile syslog facility log_daemon
+
+ # idfile and mail queue path
+ set idfile /var/monit/id
+ set eventqueue
+ basedir /var/monit
+
+Now it is time to check what we have done. You can test an existing configuration file (/etc/monit.conf) by running:
+
+ # monit -t
+
+----------
+
+ Control file syntax OK
+
+If Monit complains about any error, please review the configuration file again. Fortunately, error/warnings messages are informative. For example:
+
+ monit: Cannot stat the SSL server PEM file '/var/certs/monit.pem' -- No such file or directory
+ /etc/monit/monitrc:10: Warning: hostname did not resolve 'smtp.monit.ro'
+
+Once you verify the syntax of configuration, start monit daemon, and wait 2 to 3 minutes:
+
+ # service monit start
+
+If you are using systemd, run:
+
+ # systemctl start monit
+
+Now open a browser window, and go to https://:1966. Replace & with your Monit hostname or IP address.
+
+Note that if you have a self-signed SSL certificate, you will see a warning message in your browser.
+
+![](https://farm8.staticflickr.com/7596/16737206479_96b9f7dfdb_c.jpg)
+
+After you have completed login, you must see the following page.
+
+![](https://farm8.staticflickr.com/7594/16303369973_6019482dea_c.jpg)
+
+In the rest of the tutorial, let me show how we can monitor a local server and common services. You will see a lot of useful examples on the [official wiki page][7]. Most of them are copy-and-pastable!
+
+### Service Configuration: CPU/Memory Monitoring ###
+
+Let start with monitoring a local server's CPU/memory usage. Copy the following snippet in the configuration file.
+
+ check system localhost
+ if loadavg (1min) > 10 then alert
+ if loadavg (5min) > 6 then alert
+ if memory usage > 75% then alert
+ if cpu usage (user) > 70% then alert
+ if cpu usage (system) > 60% then alert
+ if cpu usage (wait) > 75% then alert
+
+You can easily interpret the above configuration. The above checks are performed on local host for every monitoring cycle (which is set to 120 seconds in the Global section). If any condition is met, monit daemon will send an alert with an email.
+
+If certain properties do not need to be monitored for every cycle, you can use the following format. For example, this will monitor average load every other cycle (i.e., every 240 seconds).
+
+ if loadavg (1min) > 10 for 2 cycles then alert
+
+### Service Configuration: SSH Service Monitoring ###
+
+Let's check if we have sshd binary installed in /usr/sbin/sshd:
+
+ check file sshd_bin with path /usr/sbin/sshd
+
+We also want to check if the init script for sshd exist:
+
+ check file sshd_init with path /etc/init.d/sshd
+
+Finally, we want to check if sshd daemon is up an running, and listens on port 22:
+
+ check process sshd with pidfile /var/run/sshd.pid
+ start program "/etc/init.d/sshd start"
+ stop program "/etc/init.d/sshd stop"
+ if failed port 22 protocol ssh then restart
+ if 5 restarts within 5 cycles then timeout
+
+More specifically, we can interpret the above configuration as follows. We check if a process named sshd and a pidfile (/var/run/sshd.pid) exist. If either one does not exist, we restart sshd demon using init script. We check if a process listening on port 22 can speak SSH protocol. If not, we restart sshd daemon. If there are at least 5 restarts within the last 5 monitoring cycles (i.e., 5x120 seconds), sshd daemon is declared non-functional, and we do not try to check again.
+
+![](https://farm9.staticflickr.com/8685/16735725998_62c26a24bc_c.jpg)
+
+### Service Configuration: SMTP Service Monitoring ###
+
+Now let's set up a check on a remote SMTP mail server (e.g., 192.168.111.102). Let's assume that the SMTP server is running SMTP, IMAP and SSH on its LAN interface.
+
+ check host MAIL with address 192.168.111.102
+ if failed icmp type echo within 10 cycles then alert
+ if failed port 25 protocol smtp then alert
+ else if recovered then exec "/scripts/mail-script"
+ if failed port 22 protocol ssh then alert
+ if failed port 143 protocol imap then alert
+
+We check if the remote host responds to ICMP. If we haven't received ICMP response within 10 cycles, we send out an alert. If testing for SMTP protocol on port 25 fails, we send out an alert. If testing succeeds again after a failed test, we run a script (/scripts/mail-script). If testing for SSH and IMAP protocols fail on port 22 and 143, respectively, we send out an alert.
+
+### Conclusion ###
+
+In this tutorial, I demonstrate how to set up Monit on a local server. What I showed here is just the tip of the iceberg, as far as Monit's capabilities are concerned. Take your time and read the man page about Monit (a very good one). Monit can do a lot for any Linux admin with a very nice and easy to understand syntax. If you put together a centralized remote monitor and Monit to work for you, you will have a more reliable monitoring system. What is your thought on Monit?
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/server-monitoring-system-monit.html
+
+作者:[Iulian Murgulet][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/iulian
+[1]:http://xmodulo.com/monitor-common-services-nagios.html
+[2]:http://xmodulo.com/monitor-linux-servers-snmp-cacti.html
+[3]:http://mmonit.com/monit/
+[4]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[5]:http://xmodulo.com/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
+[6]:http://xmodulo.com/mail-server-ubuntu-debian.html
+[7]:http://mmonit.com/wiki/Monit/ConfigurationExamples
\ No newline at end of file
diff --git a/sources/tech/20150330 How to Serve Git Repositories Using Gitblit Tool in Linux.md b/sources/tech/20150330 How to Serve Git Repositories Using Gitblit Tool in Linux.md
new file mode 100644
index 0000000000..806a462675
--- /dev/null
+++ b/sources/tech/20150330 How to Serve Git Repositories Using Gitblit Tool in Linux.md
@@ -0,0 +1,101 @@
+How to Serve Git Repositories Using Gitblit Tool in Linux
+================================================================================
+Hi friends, today we'll be learning how to install Gitblit in your Linux Server or PC. So, lets check out what is a Git, its features and steps to install Gitblit. [Git is a distributed revision control system][1] with an emphasis on speed, data integrity, and support for distributed, non-linear workflows. It was initially designed and developed by Linus Torvalds for Linux kernel under the terms of the GNU General Public License version 2 development in 2005, and has since become the most widely adopted version control system for software development.
+
+[Gitblit is a free and open source][2] built on a pure Java stack designed to handle everything from small to very large projects with speed and efficiency for serving Git repositories. It is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
+
+#### Features of Gitblit ####
+
+- It can be used as a dumb repository viewer with no administrative controls or user accounts.
+- It can be used as a complete Git stack for cloning, pushing, and repository access control.
+- It can be used without any other Git tooling (including actual Git) or it can cooperate with your established tools.
+
+### 1. Creating Gitblit install directory ###
+
+First of all we'll gonna to create a directory in our server in which we'll be installing our latest gitblit in.
+
+ $ sudo mkdir -p /opt/gitblit
+
+ $ cd /opt/gitblit
+
+![creating directory gitblit](http://blog.linoxide.com/wp-content/uploads/2015/01/creating-directory-gitblit.png)
+
+### 2. Downloading and Extracting ###
+
+Now, we will want to download the latest gitblit from the official site. Here, the current version of gitblit we are gonna install is 1.6.2 . So, please change it as the version you are gonna install in your system.
+
+ $ sudo wget http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.tar.gz
+
+![downloading gitblit package](http://blog.linoxide.com/wp-content/uploads/2015/01/downloading-gitblit.png)
+
+Now, we'll be extracting our downloaded tarball package to our current folder ie /opt/gitblit/
+
+ $ sudo tar -zxvf gitblit-1.6.2.tar.gz
+
+![extracting gitblit tar](http://blog.linoxide.com/wp-content/uploads/2015/01/extracting-gitblit-tar.png)
+
+### 3. Configuring and Running ###
+
+Now, we'll configure our Gitblit configuration. If you want to customize the behavior of Gitblit server, you can do it by modifying `gitblit/data/gitblit.properties` . Now, after you are done configuring the configuration. We finally wanna run our gitblit. We have two options on running gitblit, first is that we run it manually by the command below:
+
+ $ sudo java -jar gitblit.jar --baseFolder data
+
+And next is to add and use gitblit as service. Here are the steps that we'll need to follow to use gitblit as service in linux.
+
+So, As I am running Ubuntu, the command below will be sudo cp service-ubuntu.sh /etc/init.d/gitblit so please change the file name service-ubuntu.sh to the distribution you are currently running.
+
+ $ sudo ./install-service-ubuntu.sh
+
+ $ sudo service gitblit start
+
+![starting gitblit service](http://blog.linoxide.com/wp-content/uploads/2015/01/starting-gitblit-service.png)
+
+Open your browser to http://localhost:8080 or https://localhost:8443 or replace "localhost" with the ip-address of the machine depending on your system configuration. Enter the default administrator credentials: admin / admin and click the Login button.
+
+![gitblit welcome](http://blog.linoxide.com/wp-content/uploads/2015/01/gitblit-welcome.png)
+
+Now, we'll wanna add a new user. First you'll need to login to the admin with default administrator credentials: username = **admin** and password = **admin** .
+
+Then, Goto user icon > users > (+) new user. And create a new user like as shown in the figure below.
+
+![add new user](http://blog.linoxide.com/wp-content/uploads/2015/01/add-user.png)
+
+Now, we'll create a new repo out of the box. Go to repositories > (+) new repository . Then, add new repository as shown below.
+
+![add new repository](http://blog.linoxide.com/wp-content/uploads/2015/01/add-new-repository.png)
+
+#### Create a new repository on the command-line ####
+
+ touch README.md
+ git init
+ git add README.md
+ git commit -m "first commit"
+ git remote add origin ssh://arunlinoxide@localhost:29418/linoxide.com.git
+ git push -u origin master
+
+Please replace the username arunlinoxide with the user you add.
+
+#### Push an existing repository from the command-line ####
+
+ git remote add origin ssh://arunlinoxide@localhost:29418/linoxide.com.git
+ git push -u origin master
+
+**Note**: It is highly recommended to everyone to change the password of username "admin" as it comes by default.
+
+### Conclusion ###
+
+Hurray, we finally installed our latest Gitblit in our Linux Computer. We can now enjoy such a beautiful version controlling system for our projects whether its small or large, no matter. With Gitblit, version controlling has been too easy. It is easy to learn and has a tiny footprint with lightning fast performance. So, if you have any questions, suggestions, feedback please write them in the comment box below.
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/serve-git-repositories-gitblit/
+
+作者:[Arun Pyasi][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
+[1]:http://git-scm.com/
+[2]:http://gitblit.com/
\ No newline at end of file
diff --git a/sources/tech/20150330 How to secure SSH login with one-time passwords on Linux.md b/sources/tech/20150330 How to secure SSH login with one-time passwords on Linux.md
new file mode 100644
index 0000000000..9133679994
--- /dev/null
+++ b/sources/tech/20150330 How to secure SSH login with one-time passwords on Linux.md
@@ -0,0 +1,180 @@
+How to secure SSH login with one-time passwords on Linux
+================================================================================
+As someone says, security is a not a product, but a process. While SSH protocol itself is cryptographically secure by design, someone can wreak havoc on your SSH service if it is not administered properly, be it weak passwords, compromised keys or outdated SSH client.
+
+As far as SSH authentication is concerned, [public key authentication][1] is in general considered more secure than password authentication. However, key authentication is actually not desirable or even less secure if you are logging in from a public or shared computer, where things like stealth keylogger or memory scraper can always a possibility. If you cannot trust the local computer, it is better to use something else. This is when "one-time passwords" come in handy. As the name implies, each one-time password is for single-use only. Such disposable passwords can be safely used in untrusted environments as they cannot be re-used even when they are stolen.
+
+One way to generate disposable passwords is [Google Authenticator][2]. In this tutorial, I am going to demonstrate another way to create one-time passwords for SSH login: [OTPW][3], a one-time password login package. Unlike Google Authenticator, you do not rely on any third party for one-time password generation and verification.
+
+### What is OTPW? ###
+
+OTPW consists of one-time password generator and PAM-integrated verification routines. In OTPW, one-time passwords are generated apriori with the generator, and carried by a user securely (e.g., printed in a paper sheet). Cryptographic hash of the generated passwords are then stored in the SSH server host. When a user logs in with a one-time password, OTPW's PAM module verifies the password, and invalidates it to prevent re-use.
+
+### Step One: Install and Configure OTPW on Linux ###
+
+#### Debian, Ubuntu or Linux Mint ####
+
+Install OTPW packages with apt-get.
+
+ $ sudo apt-get install libpam-otpw otpw-bin
+
+Open a PAM configuration file for SSH (/etc/pam.d/sshd) with a text editor, and comment out the following line (to disable password authentication).
+
+ #@include common-auth
+
+and add the following two lines (to enable one-time password authentication):
+
+ auth required pam_otpw.so
+ session optional pam_otpw.so
+
+![](https://farm8.staticflickr.com/7599/16775121360_d1f93feefa_b.jpg)
+
+#### Fedora or CentOS/RHEL ####
+
+OTPW is not available as a prebuilt package on Red Hat based systems. So let's install OTPW by building it from the source.
+
+First, install prerequites:
+
+ $ sudo yum git gcc pam-devel
+ $ git clone https://www.cl.cam.ac.uk/~mgk25/git/otpw
+ $ cd otpw
+
+Open Makefile with a text editor, and edit a line that starts with "PAMLIB=" as follows.
+
+On 64-bit system:
+
+ PAMLIB=/usr/lib64/security
+
+On 32-bit system:
+
+ PAMLIB=/usr/lib/security
+
+Compile and install it. Note that installation will automatically restart an SSH server. So be ready to be disconnected if you are on an SSH connection.
+
+ $ make
+ $ sudo make install
+
+Now you need to update SELinux policy since /usr/sbin/sshd tries to write to user's home directory, which is not allowed by default SELinux policy. The following commands will do. If you are not using SELinux, skip this step.
+
+ $ sudo grep sshd /var/log/audit/audit.log | audit2allow -M mypol
+ $ sudo semodule -i mypol.pp
+
+Next, open a PAM configuration file for SSH (/etc/pam.d/sshd) with a text editor, and comment out the following line (to disable password authentication).
+
+ #auth substack password-auth
+
+and add the following two lines (to enable one-time password authentication):
+
+ auth required pam_otpw.so
+ session optional pam_otpw.so
+
+#### Step Two: Configure SSH Server for One-time Passwords ####
+
+The next step is to configure an SSH server to accept one-time passwords.
+
+Open /etc/ssh/sshd_config with a text editor, and set the following three parameters. Make sure that you do not add these lines more than once, because that will cause an SSH server to fail.
+
+ UsePrivilegeSeparation yes
+ ChallengeResponseAuthentication yes
+ UsePAM yes
+
+You also need to disable default password authentication. Optionally, enable public key authentication, so that you can fall back to key-based authentication in case you do not have one-time passwords.
+
+ PubkeyAuthentication yes
+ PasswordAuthentication no
+
+Now restart SSH server.
+
+Debian, Ubuntu or Linux Mint:
+
+ $ sudo service ssh restart
+
+Fedora or CentOS/RHEL 7:
+
+ $ sudo systemctl restart sshd
+
+#### Step Three: Generate One-time Passwords with OTPW ####
+
+As mentioned earlier, you need to create one-time passwords beforehand, and have them stored on the remote SSH server host. For this, run otpw-gen tool as the user you will be logging in as.
+
+ $ cd ~
+ $ otpw-gen > temporary_password.txt
+
+![](https://farm9.staticflickr.com/8751/16961258882_c49cfe03fb_b.jpg)
+
+It will ask you to set a prefix password. When you later log in, you need to type this prefix password AND one-time password. Essentially the prefix password is another layer of protection. Even if the password sheet falls into the wrong hands, the prefix password forces them to brute-force.
+
+Once the prefix password is set, the command will generate 280 one-time passwords, and store them in the output text file (e.g., temporary_password.txt). Each password (length of 8 characters by default) is preceded by a three-digit index number. You are supposed to print the file in a sheet and carry it with you.
+
+![](https://farm8.staticflickr.com/7281/16962594055_c2696d5ae1_b.jpg)
+
+You will also see ~/.otpw file created, where cryptographic hashs of these passwords are stored. The first three digits in each line indicate the index number of the password that will be used for SSH login.
+
+ $ more ~/.otpw
+
+----------
+
+ OTPW1
+ 280 3 12 8
+ 191ai+:ENwmMqwn
+ 218tYRZc%PIY27a
+ 241ve8ns%NsHFmf
+ 055W4/YCauQJkr:
+ 102ZnJ4VWLFrk5N
+ 2273Xww55hteJ8Y
+ 1509d4b5=A64jBT
+ 168FWBXY%ztm9j%
+ 000rWUSdBYr%8UE
+ 037NvyryzcI+YRX
+ 122rEwA3GXvOk=z
+
+### Test One-time Passwords for SSH Login ###
+
+Now let's login to an SSH server in a usual way:
+
+ $ ssh user@remote_host
+
+If OTPW is successfully set up, you will see a slightly different password prompt:
+
+ Password 191:
+
+Now open up your password sheet, and look for index number "191" in the sheet.
+
+ 023 kBvp tq/G 079 jKEw /HRM 135 oW/c /UeB 191 fOO+ PeiD 247 vAnZ EgUt
+
+According to sheet above, the one-time password for number "191" is "fOO+PeiD". You need to prepend your prefix password to it. For example, if your prefix password is "000", the actual one-time password you need to type is "000fOO+PeiD".
+
+Once you successfully log in, the password used is automatically invalidated. If you check ~/.otpw, you will notice that the first line is replaced with "---------------", meaning that password "191" has been voided.
+
+ OTPW1
+ 280 3 12 8
+ ---------------
+ 218tYRZc%PIY27a
+ 241ve8ns%NsHFmf
+ 055W4/YCauQJkr:
+ 102ZnJ4VWLFrk5N
+ 2273Xww55hteJ8Y
+ 1509d4b5=A64jBT
+ 168FWBXY%ztm9j%
+ 000rWUSdBYr%8UE
+ 037NvyryzcI+YRX
+ 122rEwA3GXvOk=z
+
+### Conclusion ###
+
+In this tutorial, I demonstrated how to set up one-time password login for SSH using OTPW package. You may realized that a print sheet can be considered a less fancy version of security token in two-factor authentication. Yet, it is simpler and you do not rely on any third-party for its implementation. Whatever mechanism you are using to create disposable passwords, they can be helpful when you need to log in to an SSH server from an untrusted public computer. Feel free to share your experience or opinion on this topic.
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/secure-ssh-login-one-time-passwords-linux.html
+
+作者:[Dan Nanni][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://xmodulo.com/how-to-force-ssh-login-via-public-key-authentication.html
+[2]:http://xmodulo.com/two-factor-authentication-ssh-login-linux.html
+[3]:http://www.cl.cam.ac.uk/~mgk25/otpw.html
\ No newline at end of file
diff --git a/sources/tech/20150331 Conky--The Ultimate X Based System Monitor Application.md b/sources/tech/20150331 Conky--The Ultimate X Based System Monitor Application.md
new file mode 100644
index 0000000000..fdb2648a36
--- /dev/null
+++ b/sources/tech/20150331 Conky--The Ultimate X Based System Monitor Application.md
@@ -0,0 +1,147 @@
+Conky – The Ultimate X Based System Monitor Application
+================================================================================
+Conky is a system monitor application written in ‘C’ Programming Language and released under GNU General Public License and BSD License. It is available for Linux and BSD Operating System. The application is X (GUI) based that was originally forked from [Torsmo][1].
+
+#### Features ####
+
+- Simple User Interface
+- Higher Degree of configuration
+- It can show System stats using built-in objects (300+) as well as external scripts either on the desktop or in it’s own container.
+- Low on Resource Utilization
+- Shows system stats for a wide range of system variables which includes but not restricted to CPU, memory, swap, Temperature, Processes, Disk, Network, Battery, email, System messages, Music player, weather, breaking news, updates and blah..blah..blah
+- Available in Default installation of OS like CrunchBang Linux and Pinguy OS.
+
+#### Lesser Known Facts about Conky ####
+
+- The Name conky was derived from a Canadian Television Show.
+- It has already been ported to Nokia N900.
+- It is no more maintained officially.
+
+### Conky Installation and Usage in Linux ###
+
+Before we install conky, we need to install packages like lm-sensors, curl and hddtemp using following command.
+
+ # apt-get install lm-sensors curl hddtemp
+
+Time to detect-sensors.
+
+ # sensors-detect
+
+**Note**: Answer ‘Yes‘ when prompted!
+
+Check all the detected sensors.
+
+ # sensors
+
+#### Sample Output ####
+
+ acpitz-virtual-0
+ Adapter: Virtual device
+ temp1: +49.5°C (crit = +99.0°C)
+
+ coretemp-isa-0000
+ Adapter: ISA adapter
+ Physical id 0: +49.0°C (high = +100.0°C, crit = +100.0°C)
+ Core 0: +49.0°C (high = +100.0°C, crit = +100.0°C)
+ Core 1: +49.0°C (high = +100.0°C, crit = +100.0°C)
+
+Conky can be installed from repo as well as, can be compiled from source.
+
+ # yum install conky [On RedHat systems]
+ # apt-get install conky-all [On Debian systems]
+
+**Note**: Before you install conky on Fedora/CentOS, you must have enabled [EPEL repository][2].
+
+After conky has been installed, just issue following command to start it.
+
+ $ conky &
+
+![Conky Monitor in Action](http://www.tecmint.com/wp-content/uploads/2015/03/Start-Conkey.jpeg)
+Conky Monitor in Action
+
+It will run conky in a popup like window. It uses the basic conky configuration file located at /etc/conky/conky.conf.
+
+You may need to integrate conky with the desktop and won’t like a popup like window every-time. Here is what you need to do
+
+Copy the configuration file /etc/conky/conky.conf to your home directory and rename it as ‘`.conkyrc`‘. The dot (.) at the beginning ensures that the configuration file is hidden.
+
+ $ cp /etc/conky/conky.conf /home/$USER/.conkyrc
+
+Now restart conky to take new changes.
+
+ $ killall -SIGUSR1 conky
+
+![Conky Monitor Window](http://www.tecmint.com/wp-content/uploads/2015/03/Restart-Conky.jpeg)
+Conky Monitor Window
+
+You may edit the conky configuration file located in your home dircetory. The configuration file is very easy to understand.
+
+Here is a sample configuration of conky.
+
+![Conky Configuration](http://www.tecmint.com/wp-content/uploads/2015/03/Conky-Configuration.jpeg)
+Conky Configuration
+
+From the above window you can modify color, borders, size, scale, background, alignment and several other properties. By setting different alignments to different conky window, we can run more than one conky script at a time.
+
+**Using script other than the default for conky and where to find it?**
+
+You may write your own conky script or use one that is available over Internet. We don’t suggest you to use any script you find on the web which can be potentially dangerous unless you know what you are doing. However a few famous threads and pages have conky script that you can trust as mentioned below.
+
+- [http://ubuntuforums.org/showthread.php?t=281865][3]
+- [http://conky.sourceforge.net/screenshots.html][4]
+
+At the above url, you will find every screenshot has a hyperlink, which will redirects to script file.
+
+#### Testing Conky Script ####
+
+Here I will be running a third party written conky-script on my Debian Jessie Machine, to test.
+
+ $ wget https://github.com/alexbel/conky/archive/master.zip
+ $ unzip master.zip
+
+Change current working directory to just extracted directory.
+
+ $ cd conky-master
+
+Rename the secrets.yml.example to secrets.yml.
+
+ $ mv secrets.yml.example secrets.yml
+
+Install Ruby before you could run this (ruby) script.
+
+ $ sudo apt-get install ruby
+ $ ruby starter.rb
+
+![Conky Fancy Look](http://www.tecmint.com/wp-content/uploads/2015/03/Conky-Fancy-Look.jpeg)
+Conky Fancy Look
+
+**Note**: This script can be modified to show your current weather, temperature, etc.
+
+If you want to start conky at boot, add the below one liner to startup Applications.
+
+ conky --pause 10
+ save and exit.
+
+And Finally…such a lightweight and useful GUI eye candy like package is not in active stage and is not maintained officially anymore. The last stable release was conky 1.9.0 released on May 03, 2012. A thread on Ubuntu forum has gone over 2k pages of users sharing configuration. (link to forum : [http://ubuntuforums.org/showthread.php?t=281865/][5])
+
+- [Conky Homepage][6]
+
+That’s all for now. Keep connected. Keep commenting. Share your thoughts and configuration in comments below.
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/install-conky-in-ubuntu-debian-fedora/
+
+作者:[Avishek Kumar][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:http://torsmo.sourceforge.net/
+[2]:http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
+[3]:http://ubuntuforums.org/showthread.php?t=281865
+[4]:http://conky.sourceforge.net/screenshots.html
+[5]:http://ubuntuforums.org/showthread.php?t=281865/
+[6]:http://conky.sourceforge.net/
\ No newline at end of file
diff --git a/sources/tech/20150331 How to Generate or Encrypt or Decrypt Random Passwords in Linux.md b/sources/tech/20150331 How to Generate or Encrypt or Decrypt Random Passwords in Linux.md
new file mode 100644
index 0000000000..1cd2991879
--- /dev/null
+++ b/sources/tech/20150331 How to Generate or Encrypt or Decrypt Random Passwords in Linux.md
@@ -0,0 +1,104 @@
+How to Generate/Encrypt/Decrypt Random Passwords in Linux
+================================================================================
+We have taken initiative to produce Linux tips and tricks series. If you’ve missed the last article of this series, you may like to visit the link below.
+
+注:此篇文章做过原文
+- [5 Interesting Command Line Tips and Tricks in Linux][1]
+
+In this article, we will share some interesting Linux tips and tricks to generate random passwords and also how to encrypt and decrypt passwords with or without slat method.
+
+Security is one of the major concern of digital age. We put on password to computers, email, cloud, phone, documents and what not. We all know the basic to choose the password that is easy to remember and hard to guess. What about some sort of machine based password generation automatically? Believe me Linux is very good at this.
+
+**1. Generate a random unique password of length equal to 10 characters using command ‘pwgen‘. If you have not installed pwgen yet, use Apt or YUM to get.**
+
+ $ pwgen 10 1
+
+![Generate Random Unique Password](http://www.tecmint.com/wp-content/uploads/2015/03/Generate-Random-Unique-Password-in-Linux.gif)
+Generate Random Unique Password
+
+Generate several random unique passwords of character length 50 in one go!
+
+ $ pwgen 50
+
+![Generate Multiple Random Passwords](http://www.tecmint.com/wp-content/uploads/2015/03/Generate-Multiple-Random-Passwords.gif)
+Generate Multiple Random Passwords
+
+**2. You may use ‘makepasswd‘ to generate random, unique password of given length as per choice. Before you can fire makepasswd command, make sure you have installed it. If not! Try installing the package ‘makepasswd’ using Apt or YUM.**
+
+Generate a random password of character length 10. Default Value is 10.
+
+ $ makepasswd
+
+![makepasswd Generate Unique Password](http://www.tecmint.com/wp-content/uploads/2015/03/mkpasswd-generate-unique-password.gif)
+makepasswd Generate Unique Password
+
+Generate a random password of character length 50.
+
+ $ makepasswd --char 50
+
+![Generate Length 50 Password](http://www.tecmint.com/wp-content/uploads/2015/03/Random-Password-Generate.gif)
+Generate Length 50 Password
+
+Generate 7 random password of 20 characters.
+
+ $ makepasswd --char 20 --count 7
+
+![](http://www.tecmint.com/wp-content/uploads/2015/03/Generate-20-Character-Password.gif)
+
+**3. Encrypt a password using crypt along with salt. Provide salt manually as well as automatically.**
+
+For those who may not be aware of salt,
+
+Salt is a random data which servers as an additional input to one way function in order to protect password against dictionary attack.
+
+Make sure you have installed mkpasswd installed before proceeding.
+
+The below command will encrypt the password with salt. The salt value is taken randomly and automatically. Hence every time you run the below command it will generate different output because it is accepting random value for salt every-time.
+
+ $ mkpasswd tecmint
+
+![Encrypt Password Using Crypt](http://www.tecmint.com/wp-content/uploads/2015/03/Encrypt-Password-in-Linux.gif)
+Encrypt Password Using Crypt
+
+Now lets define the salt. It will output the same result every-time. Note you can input anything of your choice as salt.
+
+ $ mkpasswd tecmint -s tt
+
+![Encrypt Password Using Salt](http://www.tecmint.com/wp-content/uploads/2015/03/Encrypt-Password-Using-Salt.gif)
+Encrypt Password Using Salt
+
+Moreover, mkpasswd is interactive and if you don’t provide password along with the command, it will ask password interactively.
+
+**4. Encrypt a string say “Tecmint-is-a-Linux-Community” using aes-256-cbc encryption using password say “tecmint” and salt.**
+
+ # echo Tecmint-is-a-Linux-Community | openssl enc -aes-256-cbc -a -salt -pass pass:tecmint
+
+![Encrypt A String in Linux](http://www.tecmint.com/wp-content/uploads/2015/03/Encrypt-A-String-in-Linux.gif)
+Encrypt A String in Linux
+
+Here in the above example the output of 注:此篇原文也做过[echo command][2] is pipelined with openssl command that pass the input to be encrypted using Encoding with Cipher (enc) that uses aes-256-cbc encryption algorithm and finally with salt it is encrypted using password (tecmint).
+
+**5. Decrypt the above string using openssl command using the -aes-256-cbc decryption.**
+
+ # echo U2FsdGVkX18Zgoc+dfAdpIK58JbcEYFdJBPMINU91DKPeVVrU2k9oXWsgpvpdO/Z | openssl enc -aes-256-cbc -a -d -salt -pass pass:tecmint
+
+![Decrypt String in Linux](http://www.tecmint.com/wp-content/uploads/2015/03/Decrypt-String-in-Linux.gif)
+Decrypt String in Linux
+
+That’s all for now. If you know any such tips and tricks you may send us your tips at admin@tecmint.com, your tip will be published under your name and also we will include it in our future article.
+
+Keep connected. Keep Connecting. Stay Tuned. Don’t forget to provide us with your valuable feedback in the comments below.
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/generate-encrypt-decrypt-random-passwords-in-linux/
+
+作者:[Avishek Kumar][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:http://www.tecmint.com/5-linux-command-line-tricks/
+[2]:http://www.tecmint.com/echo-command-in-linux/
\ No newline at end of file
diff --git a/sources/tech/20150331 How to Install WordPress with Nginx in a Docker Container.md b/sources/tech/20150331 How to Install WordPress with Nginx in a Docker Container.md
new file mode 100644
index 0000000000..9f74c672f4
--- /dev/null
+++ b/sources/tech/20150331 How to Install WordPress with Nginx in a Docker Container.md
@@ -0,0 +1,348 @@
+How to Install WordPress with Nginx in a Docker Container
+================================================================================
+Hi all, today we'll learn how to install WordPress running Nginx Web Server in a Docker Container. WordPress is an awesome free and open source Content Management System running thousands of websites throughout the globe. [Docker][1] is an Open Source project that provides an open platform to pack, ship and run any application as a lightweight container. It has no boundaries of Language support, Frameworks or packaging system and can be run anywhere, anytime from a small home computers to high-end servers. It makes them great building blocks for deploying and scaling web apps, databases, and back-end services without depending on a particular stack or provider.
+
+Today, we'll deploy a docker container with the latest WordPress package with necessary prerequisites ie Nginx Web Server, PHP5, MariaDB Server, etc. Here are some short and sweet steps to successfully install a WordPress running Nginx in a Docker Container.
+
+### 1. Installing Docker ###
+
+Before we really start, we'll need to make sure that we have Docker installed in our Linux machine. Here, we are running CentOS 7 as host so, we'll be running yum manager to install docker using the below command.
+
+ # yum install docker
+
+![Installing Docker](http://blog.linoxide.com/wp-content/uploads/2015/03/installing-docker.png)
+
+ # systemctl restart docker.service
+
+### 2. Creating WordPress Dockerfile ###
+
+We'll need to create a Dockerfile which will automate the installation of the wordpress and its necessary pre-requisites. This Dockerfile will be used to build the image of WordPress installation we created. This WordPress Dockerfile fetches a CentOS 7 image from the Docker Registry Hub and updates the system with the latest available packages. It then installs the necessary softwares like Nginx Web Server, PHP, MariaDB, Open SSH Server and more which are essential for the Docker Container to work. It then executes a script which will initialize the installation of WordPress out of the box.
+
+ # nano Dockerfile
+
+Then, we'll need to add the following lines of configuration inside that Dockerfile.
+
+ FROM centos:centos7
+ MAINTAINER The CentOS Project
+
+ RUN yum -y update; yum clean all
+ RUN yum -y install epel-release; yum clean all
+ RUN yum -y install mariadb mariadb-server mariadb-client nginx php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy php-apc pwgen python-setuptools curl git tar; yum clean all
+ ADD ./start.sh /start.sh
+ ADD ./nginx-site.conf /nginx.conf
+ RUN mv /nginx.conf /etc/nginx/nginx.conf
+ RUN rm -rf /usr/share/nginx/html/*
+ RUN /usr/bin/easy_install supervisor
+ RUN /usr/bin/easy_install supervisor-stdout
+ ADD ./supervisord.conf /etc/supervisord.conf
+ RUN echo %sudo ALL=NOPASSWD: ALL >> /etc/sudoers
+ ADD http://wordpress.org/latest.tar.gz /wordpress.tar.gz
+ RUN tar xvzf /wordpress.tar.gz
+ RUN mv /wordpress/* /usr/share/nginx/html/.
+ RUN chown -R apache:apache /usr/share/nginx/
+ RUN chmod 755 /start.sh
+ RUN mkdir /var/run/sshd
+
+ EXPOSE 80
+ EXPOSE 22
+
+ CMD ["/bin/bash", "/start.sh"]
+
+![Wordpress Dockerfile](http://blog.linoxide.com/wp-content/uploads/2015/03/Dockerfile-wordpress.png)
+
+### 3. Creating Start script ###
+
+After we create our Dockerfile, we'll need to create a script named start.sh which will run and configure our WordPress installation. It will create and configure database, passwords for wordpress. To create it, we'll need to open start.sh with our favorite text editor.
+
+ # nano start.sh
+
+After opening start.sh, we'll need to add the following lines of configuration into it.
+
+ #!/bin/bash
+
+ __check() {
+ if [ -f /usr/share/nginx/html/wp-config.php ]; then
+ exit
+ fi
+ }
+
+ __create_user() {
+ # Create a user to SSH into as.
+ SSH_USERPASS=`pwgen -c -n -1 8`
+ useradd -G wheel user
+ echo user:$SSH_USERPASS | chpasswd
+ echo ssh user password: $SSH_USERPASS
+ }
+
+ __mysql_config() {
+ # Hack to get MySQL up and running... I need to look into it more.
+ yum -y erase mariadb mariadb-server
+ rm -rf /var/lib/mysql/ /etc/my.cnf
+ yum -y install mariadb mariadb-server
+ mysql_install_db
+ chown -R mysql:mysql /var/lib/mysql
+ /usr/bin/mysqld_safe &
+ sleep 10
+ }
+
+ __handle_passwords() {
+ # Here we generate random passwords (thank you pwgen!). The first two are for mysql users, the last batch for random keys in wp-config.php
+ WORDPRESS_DB="wordpress"
+ MYSQL_PASSWORD=`pwgen -c -n -1 12`
+ WORDPRESS_PASSWORD=`pwgen -c -n -1 12`
+ # This is so the passwords show up in logs.
+ echo mysql root password: $MYSQL_PASSWORD
+ echo wordpress password: $WORDPRESS_PASSWORD
+ echo $MYSQL_PASSWORD > /mysql-root-pw.txt
+ echo $WORDPRESS_PASSWORD > /wordpress-db-pw.txt
+ # There used to be a huge ugly line of sed and cat and pipe and stuff below,
+ # but thanks to @djfiander's thing at https://gist.github.com/djfiander/6141138
+ # there isn't now.
+ sed -e "s/database_name_here/$WORDPRESS_DB/
+ s/username_here/$WORDPRESS_DB/
+ s/password_here/$WORDPRESS_PASSWORD/
+ /'AUTH_KEY'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'SECURE_AUTH_KEY'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'LOGGED_IN_KEY'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'NONCE_KEY'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'AUTH_SALT'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'SECURE_AUTH_SALT'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'LOGGED_IN_SALT'/s/put your unique phrase here/`pwgen -c -n -1 65`/
+ /'NONCE_SALT'/s/put your unique phrase here/`pwgen -c -n -1 65`/" /usr/share/nginx/html/wp-config-sample.php > /usr/share/nginx/html/wp-config.php
+ }
+
+ __httpd_perms() {
+ chown apache:apache /usr/share/nginx/html/wp-config.php
+ }
+
+ __start_mysql() {
+ # systemctl start mysqld.service
+ mysqladmin -u root password $MYSQL_PASSWORD
+ mysql -uroot -p$MYSQL_PASSWORD -e "CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '$WORDPRESS_PASSWORD'; FLUSH PRIVILEGES;"
+ killall mysqld
+ sleep 10
+ }
+
+ __run_supervisor() {
+ supervisord -n
+ }
+
+ # Call all functions
+ __check
+ __create_user
+ __mysql_config
+ __handle_passwords
+ __httpd_perms
+ __start_mysql
+ __run_supervisor
+
+![Start Script](http://blog.linoxide.com/wp-content/uploads/2015/03/start-script.png)
+
+After adding the above configuration, we'll need to save it and then exit.
+
+### 4. Creating Configuration files ###
+
+Now, we'll need to create configuration file for Nginx Web Server named nginx-site.conf .
+
+ # nano nginx-site.conf
+
+Then, we'll add the following configuration to the config file.
+
+ user nginx;
+ worker_processes 1;
+
+ error_log /var/log/nginx/error.log;
+ #error_log /var/log/nginx/error.log notice;
+ #error_log /var/log/nginx/error.log info;
+
+ pid /run/nginx.pid;
+ events {
+ worker_connections 1024;
+ }
+ http {
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ access_log /var/log/nginx/access.log main;
+
+ sendfile on;
+ #tcp_nopush on;
+
+ #keepalive_timeout 0;
+ keepalive_timeout 65;
+
+ #gzip on;
+
+ index index.html index.htm index.php;
+
+ # Load modular configuration files from the /etc/nginx/conf.d directory.
+ # See http://nginx.org/en/docs/ngx_core_module.html#include
+ # for more information.
+ include /etc/nginx/conf.d/*.conf;
+
+ server {
+ listen 80;
+ server_name localhost;
+
+ #charset koi8-r;
+
+ #access_log logs/host.access.log main;
+ root /usr/share/nginx/html;
+
+ #error_page 404 /404.html;
+
+ # redirect server error pages to the static page /50x.html
+ #
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root html;
+ }
+
+ # proxy the PHP scripts to Apache listening on 127.0.0.1:80
+ #
+ #location ~ \.php$ {
+ # proxy_pass http://127.0.0.1;
+ #}
+
+ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+ #
+ location ~ \.php$ {
+
+ root /usr/share/nginx/html;
+ try_files $uri =404;
+ fastcgi_pass 127.0.0.1:9000;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
+
+ # deny access to .htaccess files, if Apache's document root
+ # concurs with nginx's one
+ #
+ #location ~ /\.ht {
+ # deny all;
+ #}
+
+ }
+ }
+
+![Nginx configuration](http://blog.linoxide.com/wp-content/uploads/2015/03/nginx-conf.png)
+
+Now, we'll create supervisord.conf file and add the following lines as shown below.
+
+ # nano supervisord.conf
+
+Then, add the following lines.
+
+ [unix_http_server]
+ file=/tmp/supervisor.sock ; (the path to the socket file)
+
+ [supervisord]
+ logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
+ logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
+ logfile_backups=10 ; (num of main logfile rotation backups;default 10)
+ loglevel=info ; (log level;default info; others: debug,warn,trace)
+ pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
+ nodaemon=false ; (start in foreground if true;default false)
+ minfds=1024 ; (min. avail startup file descriptors;default 1024)
+ minprocs=200 ; (min. avail process descriptors;default 200)
+
+ ; the below section must remain in the config file for RPC
+ ; (supervisorctl/web interface) to work, additional interfaces may be
+ ; added by defining them in separate rpcinterface: sections
+ [rpcinterface:supervisor]
+ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+ [supervisorctl]
+ serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
+
+ [program:php-fpm]
+ command=/usr/sbin/php-fpm -c /etc/php/fpm
+ stdout_events_enabled=true
+ stderr_events_enabled=true
+
+ [program:php-fpm-log]
+ command=tail -f /var/log/php-fpm/php-fpm.log
+ stdout_events_enabled=true
+ stderr_events_enabled=true
+
+ [program:mysql]
+ command=/usr/bin/mysql --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
+ stdout_events_enabled=true
+ stderr_events_enabled=true
+
+ [program:nginx]
+ command=/usr/sbin/nginx
+ stdout_events_enabled=true
+ stderr_events_enabled=true
+
+ [eventlistener:stdout]
+ command = supervisor_stdout
+ buffer_size = 100
+ events = PROCESS_LOG
+ result_handler = supervisor_stdout:event_handler
+
+![Supervisord Configuration](http://blog.linoxide.com/wp-content/uploads/2015/03/supervisord.png)
+
+After adding, we'll save and exit the file.
+
+### 5. Building WordPress Container ###
+
+Now, after done with creating configurations and scripts, we'll now finally use the Dockerfile to build our desired container with the latest WordPress CMS installed and configured according to the configuration. To do so, we'll run the following command in that directory.
+
+ # docker build --rm -t wordpress:centos7 .
+
+![Building WordPress Container](http://blog.linoxide.com/wp-content/uploads/2015/03/building-wordpress-container.png)
+
+### 6. Running WordPress Container ###
+
+Now, to run our newly built container and open port 80 and 22 for Nginx Web Server and SSH access respectively, we'll run the following command.
+
+ # CID=$(docker run -d -p 80:80 wordpress:centos7)
+
+![Run WordPress Docker](http://blog.linoxide.com/wp-content/uploads/2015/03/run-wordpress-docker.png)
+
+To check the process and commands executed inside the container, we'll run the following command.
+
+ # echo "$(docker logs $CID )"
+
+TO check if the port mapping is correct or not, run the following command.
+
+ # docker ps
+
+![docker state](http://blog.linoxide.com/wp-content/uploads/2015/03/docker-state.png)
+
+### 7. Web Interface ###
+
+Finally if everything went accordingly, we'll be welcomed with WordPress when pointing the browser to http://ip-address/ or http://mywebsite.com/ .
+
+![Wordpress Start](http://blog.linoxide.com/wp-content/uploads/2015/03/wordpress-start.png)
+
+Now, we'll go step wise through the web interface and setup wordpress configuration, username and password for the WordPress Panel.
+
+![Wordpress Welcome](http://blog.linoxide.com/wp-content/uploads/2015/03/wordpress-welcome.png)
+
+Then, use the username and password entered above into the WordPress Login page.
+
+![wordpress login](http://blog.linoxide.com/wp-content/uploads/2015/03/wordpress-login.png)
+
+### Conclusion ###
+
+We successfully built and run WordPress CMS under LEMP Stack running in CentOS 7 Operating System as the docker OS. Running WordPress inside a container makes a lot safe and secure to the host system from the security perspective. This article enables one to completely configure WordPress to run under Docker Container with Nginx Web Server. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-)
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/install-wordpress-nginx-docker-container/
+
+作者:[Arun Pyasi][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
+[1]:http://docker.io/
\ No newline at end of file
diff --git a/sources/tech/20150331 How to set up remote desktop on Linux VPS using x2go.md b/sources/tech/20150331 How to set up remote desktop on Linux VPS using x2go.md
new file mode 100644
index 0000000000..8f98a2ba02
--- /dev/null
+++ b/sources/tech/20150331 How to set up remote desktop on Linux VPS using x2go.md
@@ -0,0 +1,137 @@
+How to set up remote desktop on Linux VPS using x2go
+================================================================================
+As everything is moved to the cloud, virtualized remote desktop becomes increasingly popular in the industry as a way to enhance employee's productivity. Especially for those who need to roam constantly across multiple locations and devices, remote desktop allows them to stay connected seamlessly to their work environment. Remote desktop is attractive for employers as well, achieving increased agility and flexibility in work environments, lower IT cost due to hardware consolidation, desktop security hardening, and so on.
+
+In the world of Linux, of course there is no shortage of choices for settings up remote desktop environment, with many protocols (e.g., RDP, RFB, NX) and server/client implementations (e.g., [TigerVNC][1], RealVNC, FreeNX, x2go, X11vnc, TeamViewer) available.
+
+Standing out from the pack is [X2Go][2], an open-source (GPLv2) implementation of NX-based remote desktop server and client. In this tutorial, I am going to demonstrate **how to set up remote desktop environment for [Linux VPS][3] using X2Go**.
+
+### What is X2Go? ###
+
+The history of X2Go goes back to NoMachine's NX technology. The NX remote desktop protocol was designed to deal with low bandwidth and high latency network connections by leveraging aggressive compression and caching. Later, NX was turned into closed-source while NX libraries were made GPL-ed. This has led to open-source implementation of several NX-based remote desktop solutions, and one of them is X2Go.
+
+What benefits does X2Go bring to the table, compared to other solutions such as VNC? X2Go inherits all the advanced features of NX technology, so naturally it works well over slow network connections. Besides, X2Go boasts of an excellent track record of ensuring security with its built-in SSH-based encryption. No longer need to set up an SSH tunnel [manually][4]. X2Go comes with audio support out of box, which means that music playback at the remote desktop is delivered (via PulseAudio) over network, and fed into local speakers. On usability front, an application that you run on remote desktop can be seamlessly rendered as a separate window on your local desktop, giving you an illusion that the application is actually running on the local desktop. As you can see, these are some of [its powerful features][5] lacking in VNC based solutions.
+
+### X2GO's Desktop Environment Compatibility ###
+
+As with other remote desktop servers, there are [known compatibility issues][6] for X2Go server. Desktop environments like KDE3/4, Xfce, MATE and LXDE are the most friendly to X2Go server. However, your mileage may vary with other desktop managers. For example, the later versions of GNOME 3, KDE5, Unity are known to be not compatible with X2Go. If the desktop manager of your remote host is compatible with X2Go, you can follow the rest of the tutorial.
+
+### Install X2Go Server on Linux ###
+
+X2Go consists of remote desktop server and client components. Let's start with X2Go server installation. I assume that you already have an X2Go-compatible desktop manager up and running on a remote host, where we will be installing X2Go server.
+
+Note that X2Go server component does not have a separate service that needs to be started upon boot. You just need to make sure that SSH service is up and running.
+
+#### Ubuntu or Linux Mint: ####
+
+Configure X2Go PPA repository. X2Go PPA is available for Ubuntu 14.04 and higher.
+
+ $ sudo add-apt-repository ppa:x2go/stable
+ $ sudo apt-get update
+ $ sudo apt-get install x2goserver x2goserver-xsession
+
+#### Debian (Wheezy): ####
+
+ $ sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E
+ $ sudo sh -c "echo deb http://packages.x2go.org/debian wheezy main > /etc/apt/sources.list.d/x2go.list"
+ $ sudo sh -c "echo deb-src http://packages.x2go.org/debian wheezy main >> /etc/apt/sources.list.d/x2go.list"
+ $ sudo apt-get update
+ $ sudo apt-get install x2goserver x2goserver-xsession
+
+#### Fedora: ####
+
+ $ sudo yum install x2goserver x2goserver-xsession
+
+#### CentOS/RHEL: ####
+
+Enable [EPEL respository][7] first, and then run:
+
+ $ sudo yum install x2goserver x2goserver-xsession
+
+### Install X2Go Client on Linux ###
+
+On a local host where you will be connecting to remote desktop, install X2GO client as follows.
+
+#### Ubuntu or Linux Mint: ####
+
+Configure X2Go PPA repository. X2Go PPA is available for Ubuntu 14.04 and higher.
+
+ $ sudo add-apt-repository ppa:x2go/stable
+ $ sudo apt-get update
+ $ sudo apt-get install x2goclient
+
+Debian (Wheezy):
+
+ $ sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E
+ $ sudo sh -c "echo deb http://packages.x2go.org/debian wheezy main > /etc/apt/sources.list.d/x2go.list"
+ $ sudo sh -c "echo deb-src http://packages.x2go.org/debian wheezy main >> /etc/apt/sources.list.d/x2go.list"
+ $ sudo apt-get update
+ $ sudo apt-get install x2goclient
+
+#### Fedora: ####
+
+ $ sudo yum install x2goclient
+
+CentOS/RHEL:
+
+Enable EPEL respository first, and then run:
+
+ $ sudo yum install x2goclient
+
+### Connect to Remote Desktop with X2Go Client ###
+
+Now it's time to connect to your remote desktop. On the local host, simply run the following command or use desktop launcher to start X2Go client.
+
+ $ x2goclient
+
+Enter the remote host's IP address and SSH user name. Also, specify session type (i.e., desktop manager of a remote host).
+
+![](https://farm9.staticflickr.com/8730/16365755693_75f3d544e9_b.jpg)
+
+If you want, you can customize other things (by pressing other tabs), like connection speed, compression, screen resolution, and so on.
+
+![](https://farm9.staticflickr.com/8699/16984498482_665b975eca_b.jpg)
+
+![](https://farm9.staticflickr.com/8694/16985838755_1b7df1eb78_b.jpg)
+
+When you initiate a remote desktop connection, you will be asked to log in. Type your SSH login and password.
+
+![](https://farm9.staticflickr.com/8754/16984498432_1c8068b817_b.jpg)
+
+Upon successful login, you will see the remote desktop screen.
+
+![](https://farm9.staticflickr.com/8752/16798126858_1ab083ba80_c.jpg)
+
+If you want to test X2Go's seamless window feature, choose "Single application" as session type, and specify the path to an executable on the remote host. In this example, I choose Dolphin file manager on a remote KDE host.
+
+![](https://farm8.staticflickr.com/7584/16798393920_128c3af9c5_b.jpg)
+
+Once you are successfully connected, you will see a remote application window open on your local desktop, not the entire remote desktop screen.
+
+![](https://farm9.staticflickr.com/8742/16365755713_7b90cf65f0_c.jpg)
+
+### Conclusion ###
+
+In this tutorial, I demonstrated how to set up X2Go remote desktop on [Linux VPS][8] instance. As you can see, the whole setup process is pretty much painless (if you are using a right desktop environment). While there are some desktop-specific quirkiness, X2Go is a solid remote desktop solution which is secure, feature-rich, fast, and free.
+
+What feature is the most appealing to you in X2Go? Please share your thought.
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/x2go-remote-desktop-linux.html
+
+作者:[Dan Nanni][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://ask.xmodulo.com/centos-remote-desktop-vps.html
+[2]:http://wiki.x2go.org/
+[3]:http://xmodulo.com/go/digitalocean
+[4]:http://xmodulo.com/how-to-set-up-vnc-over-ssh.html
+[5]:http://wiki.x2go.org/doku.php/doc:newtox2go
+[6]:http://wiki.x2go.org/doku.php/doc:de-compat
+[7]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[8]:http://xmodulo.com/go/digitalocean
\ No newline at end of file
diff --git a/sources/tech/20150331 Linux Email App Geary Updated--How To Install It In Ubuntu.md b/sources/tech/20150331 Linux Email App Geary Updated--How To Install It In Ubuntu.md
new file mode 100644
index 0000000000..1ddccaa8c6
--- /dev/null
+++ b/sources/tech/20150331 Linux Email App Geary Updated--How To Install It In Ubuntu.md
@@ -0,0 +1,70 @@
+Linux Email App Geary Updated — How To Install It In Ubuntu
+================================================================================
+**Geary, the popular desktop email client for Linux, has been updated to version 0.10 — and it gains a glut of new features in the process.**
+
+![An older version of Geary running in elementary OS](http://www.omgubuntu.co.uk/wp-content/uploads/2015/01/geary.jpg)
+An older version of Geary running in elementary OS
+
+Geary 0.100 features some welcome user interface improvements and additional UI options, including:
+
+- New: Ability to ‘Undo’ Archive, Trash and Move actions
+- New: Option to switch between a 2 column or 2 column layout
+- New “split header bar” — improves message list, composer layouts
+- New shortcut keys — use j/k to navigate next/previous conversations
+
+This update also introduces a **brand new full-text search algorithm** designed to improve the search experience in Geary, according to Yorba.
+
+This introduction should calm some complaints of the app’s search prowess, which often sees Geary return a slew of search results that are, to quote software outfit themselves, “…seemingly unrelated to the search query.”
+
+> ‘Yorba recommends that all users of the client upgrade to this release’
+
+*“Although not all search problems are fixed in 0.10, Geary should be more conservative about displaying results that match the user’s query,” [the team notes][1]. *
+
+Last but by no means least on the main feature front is something sure to find favour with power users: **support for multiple/alternate e-mail addresses per account**.
+
+If your main Gmail account is set-up in Geary to pull in your Yahoo, Outlook and KittyMail messages too then you should now see them all kept neatly together and be given the option of picking which identity you send from when using the composer ‘From’ field. No, it’s not the sexiest feature but it is one that has been requested often.
+
+Rounding out this release of the popular Linux email client is the usual gamut of bug fixes, performance optimisations and miscellaneous improvements.
+
+Yorba recommends that all users of the client upgrade to this release.
+
+### Install Geary 0.10 in Ubuntu 14.04, 14.10 & 15.04 ###
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/geary-inline-composor.jpg)
+
+The latest version of Yorba is available to download as source, ready for compiling from the GNOME Git. But let’s be honest: that’s a bit of a hassle, right?
+
+Ubuntu users wondering how to install Geary 0.10 in **14.04, 14.10** and (for early birds) **15.04** have things easy.
+
+The official Yorba PPA contains the **latest versions of Geary** as well as those for Shotwell (photo manager) and [California][2] (calendar app). Be aware that any existing versions of these apps installed on your computer may/will be upgraded to a more recent version by adding this PPA.
+
+Capiche? Coolio.
+
+To install Geary in Ubuntu you first need to add the Yorba PPA your Softwares Sources. To do this just open a new Terminal window and carefully enter the following two commands:
+
+ sudo add-apt-repository ppa:yorba/ppa
+
+ sudo apt-get update && sudo apt-get install geary
+
+After hitting return/enter on the last you’ll be prompted to enter your password. Do this, and then let the installation complete.
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2013/04/20130320161830-geary-yorba.png)
+
+Once done, open your desktop environment’s app launcher and seek out the ‘Geary’ icon. Click it, add your account(s) and discover [what the email mail man has dropped off through the information superhighway][3] and into the easy to use graphical interface.
+
+**Don’t forget: you can always tip us with news, app suggestions, and anything else you’d like to see us cover by using the power of electronic mail. Direct your key punches to joey [at] oho [dot] io.**
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2015/03/install-geary-ubuntu-linux-email-update
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:https://wiki.gnome.org/Apps/Geary/FullTextSearchStrategy
+[2]:http://www.omgubuntu.co.uk/2014/10/california-calendar-natural-language-parser
+[3]:https://www.youtube.com/watch?v=rxM8C71GB8w
\ No newline at end of file
diff --git a/sources/tech/20150401 ZMap Documentation.md b/sources/tech/20150401 ZMap Documentation.md
new file mode 100644
index 0000000000..3cde747acf
--- /dev/null
+++ b/sources/tech/20150401 ZMap Documentation.md
@@ -0,0 +1,745 @@
+translating by martin.
+
+ZMap Documentation
+================================================================================
+1. Getting Started with ZMap
+1. Scanning Best Practices
+1. Command Line Arguments
+1. Additional Information
+ 1. TCP SYN Probe Module
+ 1. ICMP Echo Probe Module
+ 1. UDP Probe Module
+ 1. Configuration Files
+ 1. Verbosity
+ 1. Results Output
+ 1. Blacklisting
+ 1. Rate Limiting and Sampling
+ 1. Sending Multiple Probes
+1. Extending ZMap
+ 1. Sample Applications
+ 1. Writing Probe and Output Modules
+
+----------
+
+### Getting Started with ZMap ###
+
+ZMap is designed to perform comprehensive scans of the IPv4 address space or large portions of it. While ZMap is a powerful tool for researchers, please keep in mind that by running ZMap, you are potentially scanning the ENTIRE IPv4 address space at over 1.4 million packets per second. Before performing even small scans, we encourage users to contact their local network administrators and consult our list of scanning best practices.
+
+By default, ZMap will perform a TCP SYN scan on the specified port at the maximum rate possible. A more conservative configuration that will scan 10,000 random addresses on port 80 at a maximum 10 Mbps can be run as follows:
+
+ $ zmap --bandwidth=10M --target-port=80 --max-targets=10000 --output-file=results.csv
+
+Or more concisely specified as:
+
+ $ zmap -B 10M -p 80 -n 10000 -o results.csv
+
+ZMap can also be used to scan specific subnets or CIDR blocks. For example, to scan only 10.0.0.0/8 and 192.168.0.0/16 on port 80, run:
+
+ zmap -p 80 -o results.csv 10.0.0.0/8 192.168.0.0/16
+
+If the scan started successfully, ZMap will output status updates every one second similar to the following:
+
+ 0% (1h51m left); send: 28777 562 Kp/s (560 Kp/s avg); recv: 1192 248 p/s (231 p/s avg); hits: 0.04%
+ 0% (1h51m left); send: 34320 554 Kp/s (559 Kp/s avg); recv: 1442 249 p/s (234 p/s avg); hits: 0.04%
+ 0% (1h50m left); send: 39676 535 Kp/s (555 Kp/s avg); recv: 1663 220 p/s (232 p/s avg); hits: 0.04%
+ 0% (1h50m left); send: 45372 570 Kp/s (557 Kp/s avg); recv: 1890 226 p/s (232 p/s avg); hits: 0.04%
+
+These updates provide information about the current state of the scan and are of the following form: %-complete (est time remaining); packets-sent curr-send-rate (avg-send-rate); recv: packets-recv recv-rate (avg-recv-rate); hits: hit-rate
+
+If you do not know the scan rate that your network can support, you may want to experiment with different scan rates or bandwidth limits to find the fastest rate that your network can support before you see decreased results.
+
+By default, ZMap will output the list of distinct IP addresses that responded successfully (e.g. with a SYN ACK packet) similar to the following. There are several additional formats (e.g. JSON and Redis) for outputting results as well as options for producing programmatically parsable scan statistics. As wells, additional output fields can be specified and the results can be filtered using an output filter.
+
+ 115.237.116.119
+ 23.9.117.80
+ 207.118.204.141
+ 217.120.143.111
+ 50.195.22.82
+
+We strongly encourage you to use a blacklist file, to exclude both reserved/unallocated IP space (e.g. multicast, RFC1918), as well as networks that request to be excluded from your scans. By default, ZMap will utilize a simple blacklist file containing reserved and unallocated addresses located at `/etc/zmap/blacklist.conf`. If you find yourself specifying certain settings, such as your maximum bandwidth or blacklist file every time you run ZMap, you can specify these in `/etc/zmap/zmap.conf` or use a custom configuration file.
+
+If you are attempting to troubleshoot scan related issues, there are several options to help debug. First, it is possible can perform a dry run scan in order to see the packets that would be sent over the network by adding the `--dryrun` flag. As well, it is possible to change the logging verbosity by setting the `--verbosity=n` flag.
+
+----------
+
+### Scanning Best Practices ###
+
+We offer these suggestions for researchers conducting Internet-wide scans as guidelines for good Internet citizenship.
+
+- Coordinate closely with local network administrators to reduce risks and handle inquiries
+- Verify that scans will not overwhelm the local network or upstream provider
+- Signal the benign nature of the scans in web pages and DNS entries of the source addresses
+- Clearly explain the purpose and scope of the scans in all communications
+- Provide a simple means of opting out and honor requests promptly
+- Conduct scans no larger or more frequent than is necessary for research objectives
+- Spread scan traffic over time or source addresses when feasible
+
+It should go without saying that scan researchers should refrain from exploiting vulnerabilities or accessing protected resources, and should comply with any special legal requirements in their jurisdictions.
+
+----------
+
+### Command Line Arguments ###
+
+#### Common Options ####
+
+These options are the most common options when performing a simple scan. We note that some options are dependent on the probe module or output module used (e.g. target port is not used when performing an ICMP Echo Scan).
+
+
+**-p, --target-port=port**
+
+TCP port number to scan (e.g. 443)
+
+**-o, --output-file=name**
+
+Write results to this file. Use - for stdout
+
+**-b, --blacklist-file=path**
+
+File of subnets to exclude, in CIDR notation (e.g. 192.168.0.0/16), one-per line. It is recommended you use this to exclude RFC 1918 addresses, multicast, IANA reserved space, and other IANA special-purpose addresses. An example blacklist file is provided in conf/blacklist.example for this purpose.
+
+#### Scan Options ####
+
+**-n, --max-targets=n**
+
+Cap the number of targets to probe. This can either be a number (e.g. `-n 1000`) or a percentage (e.g. `-n 0.1%`) of the scannable address space (after excluding blacklist)
+
+**-N, --max-results=n**
+
+Exit after receiving this many results
+
+**-t, --max-runtime=secs**
+
+Cap the length of time for sending packets
+
+**-r, --rate=pps**
+
+Set the send rate in packets/sec
+
+**-B, --bandwidth=bps**
+
+Set the send rate in bits/second (supports suffixes G, M, and K (e.g. `-B 10M` for 10 mbps). This overrides the `--rate` flag.
+
+**-c, --cooldown-time=secs**
+
+How long to continue receiving after sending has completed (default=8)
+
+**-e, --seed=n**
+
+Seed used to select address permutation. Use this if you want to scan addresses in the same order for multiple ZMap runs.
+
+**--shards=n**
+
+Split the scan up into N shards/partitions among different instances of zmap (default=1). When sharding, `--seed` is required
+
+**--shard=n**
+
+Set which shard to scan (default=0). Shards are indexed in the range [0, N), where N is the total number of shards. When sharding `--seed` is required.
+
+**-T, --sender-threads=n**
+
+Threads used to send packets (default=1)
+
+**-P, --probes=n**
+
+Number of probes to send to each IP (default=1)
+
+**-d, --dryrun**
+
+Print out each packet to stdout instead of sending it (useful for debugging)
+
+#### Network Options ####
+
+**-s, --source-port=port|range**
+
+Source port(s) to send packets from
+
+**-S, --source-ip=ip|range**
+
+Source address(es) to send packets from. Either single IP or range (e.g. 10.0.0.1-10.0.0.9)
+
+**-G, --gateway-mac=addr**
+
+Gateway MAC address to send packets to (in case auto-detection does not work)
+
+**-i, --interface=name**
+
+Network interface to use
+
+#### Probe Options ####
+
+ZMap allows users to specify and write their own probe modules for use with ZMap. Probe modules are responsible for generating probe packets to send, and processing responses from hosts.
+
+**--list-probe-modules**
+
+List available probe modules (e.g. tcp_synscan)
+
+**-M, --probe-module=name**
+
+Select probe module (default=tcp_synscan)
+
+**--probe-args=args**
+
+Arguments to pass to probe module
+
+**--list-output-fields**
+
+List the fields the selected probe module can send to the output module
+
+#### Output Options ####
+
+ZMap allows users to specify and write their own output modules for use with ZMap. Output modules are responsible for processing the fieldsets returned by the probe module, and outputing them to the user. Users can specify output fields, and write filters over the output fields.
+
+**--list-output-modules**
+
+List available output modules (e.g. tcp_synscan)
+
+**-O, --output-module=name**
+
+Select output module (default=csv)
+
+**--output-args=args**
+
+Arguments to pass to output module
+
+**-f, --output-fields=fields**
+
+Comma-separated list of fields to output
+
+**--output-filter**
+
+Specify an output filter over the fields defined by the probe module
+
+#### Additional Options ####
+
+**-C, --config=filename**
+
+Read a configuration file, which can specify any other options.
+
+**-q, --quiet**
+
+Do not print status updates once per second
+
+**-g, --summary**
+
+Print configuration and summary of results at the end of the scan
+
+**-v, --verbosity=n**
+
+Level of log detail (0-5, default=3)
+
+**-h, --help**
+
+Print help and exit
+
+**-V, --version**
+
+Print version and exit
+
+----------
+
+### Additional Information ###
+
+#### TCP SYN Scans ####
+
+When performing a TCP SYN scan, ZMap requires a single target port and supports specifying a range of source ports from which the scan will originate.
+
+**-p, --target-port=port**
+
+TCP port number to scan (e.g. 443)
+
+**-s, --source-port=port|range**
+
+Source port(s) for scan packets (e.g. 40000-50000)
+
+**Warning!** ZMap relies on the Linux kernel to respond to SYN/ACK packets with RST packets in order to close connections opened by the scanner. This occurs because ZMap sends packets at the Ethernet layer in order to reduce overhead otherwise incurred in the kernel from tracking open TCP connections and performing route lookups. As such, if you have a firewall rule that tracks established connections such as a netfilter rule similar to `-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT`, this will block SYN/ACK packets from reaching the kernel. This will not prevent ZMap from recording responses, but it will prevent RST packets from being sent back, ultimately using up a connection on the scanned host until your connection times out. We strongly recommend that you select a set of unused ports on your scanning host which can be allowed access in your firewall and specifying this port range when executing ZMap, with the `-s` flag (e.g. `-s '50000-60000'`).
+
+#### ICMP Echo Request Scans ####
+
+While ZMap performs TCP SYN scans by default, it also supports ICMP echo request scans in which an ICMP echo request packet is sent to each host and the type of ICMP response received in reply is denoted. An ICMP scan can be performed by selecting the icmp_echoscan scan module similar to the following:
+
+ $ zmap --probe-module=icmp_echoscan
+
+#### UDP Datagram Scans ####
+
+ZMap additionally supports UDP probes, where it will send out an arbitrary UDP datagram to each host, and receive either UDP or ICMP Unreachable responses. ZMap supports four different methods of setting the UDP payload through the --probe-args command-line option. These are 'text' for ASCII-printable payloads, 'hex' for hexadecimal payloads set on the command-line, 'file' for payloads contained in an external file, and 'template' for payloads that require dynamic field generation. In order to obtain the UDP response, make sure that you specify 'data' as one of the fields to report with the -f option.
+
+The example below will send the two bytes 'ST', a PCAnwywhere 'status' request, to UDP port 5632.
+
+ $ zmap -M udp -p 5632 --probe-args=text:ST -N 100 -f saddr,data -o -
+
+The example below will send the byte '0x02', a SQL Server 'client broadcast' request, to UDP port 1434.
+
+ $ zmap -M udp -p 1434 --probe-args=hex:02 -N 100 -f saddr,data -o -
+
+The example below will send a NetBIOS status request to UDP port 137. This uses a payload file that is included with the ZMap distribution.
+
+ $ zmap -M udp -p 1434 --probe-args=file:netbios_137.pkt -N 100 -f saddr,data -o -
+
+The example below will send a SIP 'OPTIONS' request to UDP port 5060. This uses a template file that is included with the ZMap distribution.
+
+ $ zmap -M udp -p 1434 --probe-args=file:sip_options.tpl -N 100 -f saddr,data -o -
+
+UDP payload templates are still experimental. You may encounter crashes when more using more than one send thread (-T) and there is a significant decrease in performance compared to static payloads. A template is simply a payload file that contains one or more field specifiers enclosed in a ${} sequence. Some protocols, notably SIP, require the payload to reflect the source and destination of the packet. Other protocols, such as portmapper and DNS, contain fields that should be randomized per request or risk being dropped by multi-homed systems scanned by ZMap.
+
+The payload template below will send a SIP OPTIONS request to every destination:
+
+ OPTIONS sip:${RAND_ALPHA=8}@${DADDR} SIP/2.0
+ Via: SIP/2.0/UDP ${SADDR}:${SPORT};branch=${RAND_ALPHA=6}.${RAND_DIGIT=10};rport;alias
+ From: sip:${RAND_ALPHA=8}@${SADDR}:${SPORT};tag=${RAND_DIGIT=8}
+ To: sip:${RAND_ALPHA=8}@${DADDR}
+ Call-ID: ${RAND_DIGIT=10}@${SADDR}
+ CSeq: 1 OPTIONS
+ Contact: sip:${RAND_ALPHA=8}@${SADDR}:${SPORT}
+ Content-Length: 0
+ Max-Forwards: 20
+ User-Agent: ${RAND_ALPHA=8}
+ Accept: text/plain
+
+In the example above, note that line endings are \r\n and the end of this request must contain \r\n\r\n for most SIP implementations to correcly process it. A working example is included in the examples/udp-payloads directory of the ZMap source tree (sip_options.tpl).
+
+The following template fields are currently implemented:
+
+
+- **SADDR**: Source IP address in dotted-quad format
+- **SADDR_N**: Source IP address in network byte order
+- **DADDR**: Destination IP address in dotted-quad format
+- **DADDR_N**: Destination IP address in network byte order
+- **SPORT**: Source port in ascii format
+- **SPORT_N**: Source port in network byte order
+- **DPORT**: Destination port in ascii format
+- **DPORT_N**: Destination port in network byte order
+- **RAND_BYTE**: Random bytes (0-255), length specified with =(length) parameter
+- **RAND_DIGIT**: Random digits from 0-9, length specified with =(length) parameter
+- **RAND_ALPHA**: Random mixed-case letters from A-Z, length specified with =(length) parameter
+- **RAND_ALPHANUM**: Random mixed-case letters from A-Z and digits from 0-9, length specified with =(length) parameter
+
+### Configuration Files ###
+
+ZMap supports configuration files instead of requiring all options to be specified on the command-line. A configuration can be created by specifying one long-name option and the value per line such as:
+
+ interface "eth1"
+ source-ip 1.1.1.4-1.1.1.8
+ gateway-mac b4:23:f9:28:fa:2d # upstream gateway
+ cooldown-time 300 # seconds
+ blacklist-file /etc/zmap/blacklist.conf
+ output-file ~/zmap-output
+ quiet
+ summary
+
+ZMap can then be run with a configuration file and specifying any additional necessary parameters:
+
+ $ zmap --config=~/.zmap.conf --target-port=443
+
+### Verbosity ###
+
+There are several types of on-screen output that ZMap produces. By default, ZMap will print out basic progress information similar to the following every 1 second. This can be disabled by setting the `--quiet` flag.
+
+ 0:01 12%; send: 10000 done (15.1 Kp/s avg); recv: 144 143 p/s (141 p/s avg); hits: 1.44%
+
+ZMap also prints out informational messages during scanner configuration such as the following, which can be controlled with the `--verbosity` argument.
+
+ Aug 11 16:16:12.813 [INFO] zmap: started
+ Aug 11 16:16:12.817 [DEBUG] zmap: no interface provided. will use eth0
+ Aug 11 16:17:03.971 [DEBUG] cyclic: primitive root: 3489180582
+ Aug 11 16:17:03.971 [DEBUG] cyclic: starting point: 46588
+ Aug 11 16:17:03.975 [DEBUG] blacklist: 3717595507 addresses allowed to be scanned
+ Aug 11 16:17:03.975 [DEBUG] send: will send from 1 address on 28233 source ports
+ Aug 11 16:17:03.975 [DEBUG] send: using bandwidth 10000000 bits/s, rate set to 14880 pkt/s
+ Aug 11 16:17:03.985 [DEBUG] recv: thread started
+
+ZMap also supports printing out a grep-able summary at the end of the scan, similar to below, which can be invoked with the `--summary` flag.
+
+ cnf target-port 443
+ cnf source-port-range-begin 32768
+ cnf source-port-range-end 61000
+ cnf source-addr-range-begin 1.1.1.4
+ cnf source-addr-range-end 1.1.1.8
+ cnf maximum-packets 4294967295
+ cnf maximum-runtime 0
+ cnf permutation-seed 0
+ cnf cooldown-period 300
+ cnf send-interface eth1
+ cnf rate 45000
+ env nprocessors 16
+ exc send-start-time Fri Jan 18 01:47:35 2013
+ exc send-end-time Sat Jan 19 00:47:07 2013
+ exc recv-start-time Fri Jan 18 01:47:35 2013
+ exc recv-end-time Sat Jan 19 00:52:07 2013
+ exc sent 3722335150
+ exc blacklisted 572632145
+ exc first-scanned 1318129262
+ exc hit-rate 0.874102
+ exc synack-received-unique 32537000
+ exc synack-received-total 36689941
+ exc synack-cooldown-received-unique 193
+ exc synack-cooldown-received-total 1543
+ exc rst-received-unique 141901021
+ exc rst-received-total 166779002
+ adv source-port-secret 37952
+ adv permutation-gen 4215763218
+
+### Results Output ###
+
+ZMap can produce results in several formats through the use of **output modules**. By default, ZMap only supports **csv** output, however support for **redis** and **json** can be compiled in. The results sent to these output modules may be filtered using an **output filter**. The fields the output module writes are specified by the user. By default, ZMap will return results in csv format and if no output file is specified, ZMap will not produce specific results. It is also possible to write your own output module; see Writing Output Modules for information.
+
+**-o, --output-file=p**
+
+File to write output to
+
+**-O, --output-module=p**
+
+Invoke a custom output module
+
+
+**-f, --output-fields=p**
+
+Comma-separated list of fields to output
+
+**--output-filter=filter**
+
+Specify an output filter over fields for a given probe
+
+**--list-output-modules**
+
+Lists available output modules
+
+**--list-output-fields**
+
+List available output fields for a given probe
+
+#### Output Fields ####
+
+ZMap has a variety of fields it can output beyond IP address. These fields can be viewed for a given probe module by running with the `--list-output-fields` flag.
+
+ $ zmap --probe-module="tcp_synscan" --list-output-fields
+ saddr string: source IP address of response
+ saddr-raw int: network order integer form of source IP address
+ daddr string: destination IP address of response
+ daddr-raw int: network order integer form of destination IP address
+ ipid int: IP identification number of response
+ ttl int: time-to-live of response packet
+ sport int: TCP source port
+ dport int: TCP destination port
+ seqnum int: TCP sequence number
+ acknum int: TCP acknowledgement number
+ window int: TCP window
+ classification string: packet classification
+ success int: is response considered success
+ repeat int: is response a repeat response from host
+ cooldown int: Was response received during the cooldown period
+ timestamp-str string: timestamp of when response arrived in ISO8601 format.
+ timestamp-ts int: timestamp of when response arrived in seconds since Epoch
+ timestamp-us int: microsecond part of timestamp (e.g. microseconds since 'timestamp-ts')
+
+To select which fields to output, any combination of the output fields can be specified as a comma-separated list using the `--output-fields=fields` or `-f` flags. Example:
+
+ $ zmap -p 80 -f "response,saddr,daddr,sport,seq,ack,in_cooldown,is_repeat,timestamp" -o output.csv
+
+#### Filtering Output ####
+
+Results generated by a probe module can be filtered before being passed to the output module. Filters are defined over the output fields of a probe module. Filters are written in a simple filtering language, similar to SQL, and are passed to ZMap using the **--output-filter** option. Output filters are commonly used to filter out duplicate results, or to only pass only sucessful responses to the output module.
+
+Filter expressions are of the form ``. The type of `` must be either a string or unsigned integer literal, and match the type of ``. The valid operations for integer comparisons are `= !=, <, >, <=, >=`. The operations for string comparisons are =, !=. The `--list-output-fields` flag will print what fields and types are available for the selected probe module, and then exit.
+
+Compound filter expressions may be constructed by combining filter expressions using parenthesis to specify order of operations, the `&&` (logical AND) and `||` (logical OR) operators.
+
+**Examples**
+
+Write a filter for only successful, non-duplicate responses
+
+ --output-filter="success = 1 && repeat = 0"
+
+Filter for packets that have classification RST and a TTL greater than 10, or for packets with classification SYNACK
+
+ --output-filter="(classification = rst && ttl > 10) || classification = synack"
+
+#### CSV ####
+
+The csv module will produce a comma-separated value file of the output fields requested. For example, the following command produces the following CSV in a file called `output.csv`.
+
+ $ zmap -p 80 -f "response,saddr,daddr,sport,seq,ack,in_cooldown,is_repeat,timestamp" -o output.csv
+
+----------
+
+ response, saddr, daddr, sport, dport, seq, ack, in_cooldown, is_repeat, timestamp
+ synack, 159.174.153.144, 10.0.0.9, 80, 40555, 3050964427, 3515084203, 0, 0,2013-08-15 18:55:47.681
+ rst, 141.209.175.1, 10.0.0.9, 80, 40136, 0, 3272553764, 0, 0,2013-08-15 18:55:47.683
+ rst, 72.36.213.231, 10.0.0.9, 80, 56642, 0, 2037447916, 0, 0,2013-08-15 18:55:47.691
+ rst, 148.8.49.150, 10.0.0.9, 80, 41672, 0, 1135824975, 0, 0,2013-08-15 18:55:47.692
+ rst, 50.165.166.206, 10.0.0.9, 80, 38858, 0, 535206863, 0, 0,2013-08-15 18:55:47.694
+ rst, 65.55.203.135, 10.0.0.9, 80, 50008, 0, 4071709905, 0, 0,2013-08-15 18:55:47.700
+ synack, 50.57.166.186, 10.0.0.9, 80, 60650, 2813653162, 993314545, 0, 0,2013-08-15 18:55:47.704
+ synack, 152.75.208.114, 10.0.0.9, 80, 52498, 460383682, 4040786862, 0, 0,2013-08-15 18:55:47.707
+ synack, 23.72.138.74, 10.0.0.9, 80, 33480, 810393698, 486476355, 0, 0,2013-08-15 18:55:47.710
+
+#### Redis ####
+
+The redis output module allows addresses to be added to a Redis queue instead of being saved to file which ultimately allows ZMap to be incorporated with post processing tools.
+
+**Heads Up!** ZMap does not build with Redis support by default. If you are building ZMap from source, you can build with Redis support by running CMake with `-DWITH_REDIS=ON`.
+
+### Blacklisting and Whitelisting ###
+
+ZMap supports both blacklisting and whitelisting network prefixes. If ZMap is not provided with blacklist or whitelist parameters, ZMap will scan all IPv4 addresses (including local, reserved, and multicast addresses). If a blacklist file is specified, network prefixes in the blacklisted segments will not be scanned; if a whitelist file is provided, only network prefixes in the whitelist file will be scanned. A whitelist and blacklist file can be used in coordination; the blacklist has priority over the whitelist (e.g. if you have whitelisted 10.0.0.0/8 and blacklisted 10.1.0.0/16, then 10.1.0.0/16 will not be scanned). Whitelist and blacklist files can be specified on the command-line as follows:
+
+**-b, --blacklist-file=path**
+
+File of subnets to blacklist in CIDR notation, e.g. 192.168.0.0/16
+
+**-w, --whitelist-file=path**
+
+File of subnets to limit scan to in CIDR notation, e.g. 192.168.0.0/16
+
+Blacklist files should be formatted with a single network prefix in CIDR notation per line. Comments are allowed using the `#` character. Example:
+
+ # From IANA IPv4 Special-Purpose Address Registry
+ # http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
+ # Updated 2013-05-22
+
+ 0.0.0.0/8 # RFC1122: "This host on this network"
+ 10.0.0.0/8 # RFC1918: Private-Use
+ 100.64.0.0/10 # RFC6598: Shared Address Space
+ 127.0.0.0/8 # RFC1122: Loopback
+ 169.254.0.0/16 # RFC3927: Link Local
+ 172.16.0.0/12 # RFC1918: Private-Use
+ 192.0.0.0/24 # RFC6890: IETF Protocol Assignments
+ 192.0.2.0/24 # RFC5737: Documentation (TEST-NET-1)
+ 192.88.99.0/24 # RFC3068: 6to4 Relay Anycast
+ 192.168.0.0/16 # RFC1918: Private-Use
+ 192.18.0.0/15 # RFC2544: Benchmarking
+ 198.51.100.0/24 # RFC5737: Documentation (TEST-NET-2)
+ 203.0.113.0/24 # RFC5737: Documentation (TEST-NET-3)
+ 240.0.0.0/4 # RFC1112: Reserved
+ 255.255.255.255/32 # RFC0919: Limited Broadcast
+
+ # From IANA Multicast Address Space Registry
+ # http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml
+ # Updated 2013-06-25
+
+ 224.0.0.0/4 # RFC5771: Multicast/Reserved
+
+If you are looking to scan only a random portion of the internet, checkout Sampling, instead of using whitelisting and blacklisting.
+
+**Heads Up!** The default ZMap configuration uses the blacklist file at `/etc/zmap/blacklist.conf`, which contains locally scoped address space and reserved IP ranges. The default configuration can be changed by editing `/etc/zmap/zmap.conf`.
+
+### Rate Limiting and Sampling ###
+
+By default, ZMap will scan at the fastest rate that your network adaptor supports. In our experiences on commodity hardware, this is generally around 95-98% of the theoretical speed of gigabit Ethernet, which may be faster than your upstream provider can handle. ZMap will not automatically adjust its send-rate based on your upstream provider. You may need to manually adjust your send-rate to reduce packet drops and incorrect results.
+
+**-r, --rate=pps**
+
+Set maximum send rate in packets/sec
+
+**-B, --bandwidth=bps**
+
+Set send rate in bits/sec (supports suffixes G, M, and K). This overrides the --rate flag.
+
+ZMap also allows random sampling of the IPv4 address space by specifying max-targets and/or max-runtime. Because hosts are scanned in a random permutation generated per scan instantiation, limiting a scan to n hosts will perform a random sampling of n hosts. Command-line options:
+
+**-n, --max-targets=n**
+
+Cap number of targets to probe
+
+**-N, --max-results=n**
+
+Cap number of results (exit after receiving this many positive results)
+
+**-t, --max-runtime=s**
+
+Cap length of time for sending packets (in seconds)
+
+**-s, --seed=n**
+
+Seed used to select address permutation. Specify the same seed in order to scan addresses in the same order for different ZMap runs.
+
+For example, if you wanted to scan the same one million hosts on the Internet for multiple scans, you could set a predetermined seed and cap the number of scanned hosts similar to the following:
+
+ zmap -p 443 -s 3 -n 1000000 -o results
+
+In order to determine which one million hosts were going to be scanned, you could run the scan in dry-run mode which will print out the packets that would be sent instead of performing the actual scan.
+
+ zmap -p 443 -s 3 -n 1000000 --dryrun | grep daddr
+ | awk -F'daddr: ' '{print $2}' | sed 's/ |.*//;'
+
+### Sending Multiple Packets ###
+
+ZMap supports sending multiple probes to each host. Increasing this number both increases scan time and hosts reached. However, we find that the increase in scan time (~100% per additional probe) greatly outweighs the increase in hosts reached (~1% per additional probe).
+
+**-P, --probes=n**
+
+The number of unique probes to send to each IP (default=1)
+
+----------
+
+### Sample Applications ###
+
+ZMap is designed for initiating contact with a large number of hosts and finding ones that respond positively. However, we realize that many users will want to perform follow-up processing, such as performing an application level handshake. For example, users who perform a TCP SYN scan on port 80 might want to perform a simple GET request and users who scan port 443 may be interested in completing a TLS handshake.
+
+#### Banner Grab ####
+
+We have included a sample application, banner-grab, with ZMap that enables users to receive messages from listening TCP servers. Banner-grab connects to the provided servers, optionally sends a message, and prints out the first message received from the server. This tool can be used to fetch banners such as HTTP server responses to specific commands, telnet login prompts, or SSH server strings.
+
+This example finds 1000 servers listening on port 80, and sends a simple GET request to each, storing their base-64 encoded responses in http-banners.out
+
+ $ zmap -p 80 -N 1000 -B 10M -o - | ./banner-grab-tcp -p 80 -c 500 -d ./http-req > out
+
+For more details on using `banner-grab`, see the README file in `examples/banner-grab`.
+
+**Heads Up!** ZMap and banner-grab can have significant performance and accuracy impact on one another if run simultaneously (as in the example). Make sure not to let ZMap saturate banner-grab-tcp's concurrent connections, otherwise banner-grab will fall behind reading stdin, causing ZMap to block on writing stdout. We recommend using a slower scanning rate with ZMap, and increasing the concurrency of banner-grab-tcp to no more than 3000 (Note that > 1000 concurrent connections requires you to use `ulimit -SHn 100000` and `ulimit -HHn 100000` to increase the maximum file descriptors per process). These parameters will of course be dependent on your server performance, and hit-rate; we encourage developers to experiment with small samples before running a large scan.
+
+#### Forge Socket ####
+
+We have also included a form of banner-grab, called forge-socket, that reuses the SYN-ACK sent from the server for the connection that ultimately fetches the banner. In `banner-grab-tcp`, ZMap sends a SYN to each server, and listening servers respond with a SYN+ACK. The ZMap host's kernel receives this, and sends a RST, as no active connection is associated with that packet. The banner-grab program must then create a new TCP connection to the same server to fetch data from it.
+
+In forge-socket, we utilize a kernel module by the same name, that allows us to create a connection with arbitrary TCP parameters. This enables us to suppress the kernel's RST packet, and instead create a socket that will reuse the SYN+ACK's parameters, and send and receive data through this socket as we would any normally connected socket.
+
+To use forge-socket, you will need the forge-socket kernel module, available from [github][1]. You should git clone `git@github.com:ewust/forge_socket.git` in the ZMap root source directory, and then cd into the forge_socket directory, and run make. Install the kernel module with `insmod forge_socket.ko` as root.
+
+You must also tell the kernel not to send RST packets. An easy way to disable RST packets system wide is to use **iptables**. `iptables -A OUTPUT -p tcp -m tcp --tcp-flgas RST,RST RST,RST -j DROP` as root will do this, though you may also add an optional --dport X to limit this to the port (X) you are scanning. To remove this after your scan completes, you can run `iptables -D OUTPUT -p tcp -m tcp --tcp-flags RST,RST RST,RST -j DROP` as root.
+
+Now you should be able to build the forge-socket ZMap example program. To run it, you must use the **extended_file** ZMap output module:
+
+ $ zmap -p 80 -N 1000 -B 10M -O extended_file -o - | \
+ ./forge-socket -c 500 -d ./http-req > ./http-banners.out
+
+See the README in `examples/forge-socket` for more details.
+
+----------
+
+### Writing Probe and Output Modules ###
+
+ZMap can be extended to support different types of scanning through **probe modules** and additional types of results **output through** output modules. Registered probe and output modules can be listed through the command-line interface:
+
+**--list-probe-modules**
+
+Lists installed probe modules
+
+**--list-output-modules**
+
+Lists installed output modules
+
+#### Output Modules ####
+
+ZMap output and post-processing can be extended by implementing and registering **output modules** with the scanner. Output modules receive a callback for every received response packet. While the default provided modules provide simple output, these modules are also capable of performing additional post-processing (e.g. tracking duplicates or outputting numbers in terms of AS instead of IP address)
+
+Output modules are created by defining a new output_module struct and registering it in [output_modules.c][2]:
+
+ typedef struct output_module {
+ const char *name; // how is output module referenced in the CLI
+ unsigned update_interval; // how often is update called in seconds
+
+ output_init_cb init; // called at scanner initialization
+ output_update_cb start; // called at the beginning of scanner
+ output_update_cb update; // called every update_interval seconds
+ output_update_cb close; // called at scanner termination
+
+ output_packet_cb process_ip; // called when a response is received
+
+ const char *helptext; // Printed when --list-output-modules is called
+
+ } output_module_t;
+
+Output modules must have a name, which is how they are referenced on the command-line and generally implement `success_ip` and oftentimes `other_ip` callback. The process_ip callback is called for every response packet that is received and passed through the output filter by the current **probe module**. The response may or may not be considered a success (e.g. it could be a TCP RST). These callbacks must define functions that match the `output_packet_cb` definition:
+
+ int (*output_packet_cb) (
+
+ ipaddr_n_t saddr, // IP address of scanned host in network-order
+ ipaddr_n_t daddr, // destination IP address in network-order
+
+ const char* response_type, // send-module classification of packet
+
+ int is_repeat, // {0: first response from host, 1: subsequent responses}
+ int in_cooldown, // {0: not in cooldown state, 1: scanner in cooldown state}
+
+ const u_char* packet, // pointer to struct iphdr of IP packet
+ size_t packet_len // length of packet in bytes
+ );
+
+An output module can also register callbacks to be executed at scanner initialization (tasks such as opening an output file), start of the scan (tasks such as documenting blacklisted addresses), during regular intervals during the scan (tasks such as progress updates), and close (tasks such as closing any open file descriptors). These callbacks are provided with complete access to the scan configuration and current state:
+
+ int (*output_update_cb)(struct state_conf*, struct state_send*, struct state_recv*);
+
+which are defined in [output_modules.h][3]. An example is available at [src/output_modules/module_csv.c][4].
+
+#### Probe Modules ####
+
+Packets are constructed using probe modules which allow abstracted packet creation and response classification. ZMap comes with two scan modules by default: `tcp_synscan` and `icmp_echoscan`. By default, ZMap uses `tcp_synscan`, which sends TCP SYN packets, and classifies responses from each host as open (received SYN+ACK) or closed (received RST). ZMap also allows developers to write their own probe modules for use with ZMap, using the following API.
+
+Each type of scan is implemented by developing and registering the necessary callbacks in a `send_module_t` struct:
+
+ typedef struct probe_module {
+ const char *name; // how scan is invoked on command-line
+ size_t packet_length; // how long is probe packet (must be static size)
+
+ const char *pcap_filter; // PCAP filter for collecting responses
+ size_t pcap_snaplen; // maximum number of bytes for libpcap to capture
+
+ uint8_t port_args; // set to 1 if ZMap requires a --target-port be
+ // specified by the user
+
+ probe_global_init_cb global_initialize; // called once at scanner initialization
+ probe_thread_init_cb thread_initialize; // called once for each thread packet buffer
+ probe_make_packet_cb make_packet; // called once per host to update packet
+ probe_validate_packet_cb validate_packet; // called once per received packet,
+ // return 0 if packet is invalid,
+ // non-zero otherwise.
+
+ probe_print_packet_cb print_packet; // called per packet if in dry-run mode
+ probe_classify_packet_cb process_packet; // called by receiver to classify response
+ probe_close_cb close; // called at scanner termination
+
+ fielddef_t *fields // Definitions of the fields specific to this module
+ int numfields // Number of fields
+
+ } probe_module_t;
+
+At scanner initialization, `global_initialize` is called once and can be utilized to perform any necessary global configuration or initialization. However, `global_initialize` does not have access to the packet buffer which is thread-specific. Instead, `thread_initialize` is called at the initialization of each sender thread and is provided with access to the buffer that will be used for constructing probe packets along with global source and destination values. This callback should be used to construct the host agnostic packet structure such that only specific values (e.g. destination host and checksum) need to be be updated for each host. For example, the Ethernet header will not change between headers (minus checksum which is calculated in hardware by the NIC) and therefore can be defined ahead of time in order to reduce overhead at scan time.
+
+The `make_packet` callback is called for each host that is scanned to allow the **probe module** to update host specific values and is provided with IP address values, an opaque validation string, and probe number (shown below). The probe module is responsible for placing as much of the verification string into the probe, in such a way that when a valid response is returned by a server, the probe module can verify that it is present. For example, for a TCP SYN scan, the tcp_synscan probe module can use the TCP source port and sequence number to store the validation string. Response packets (SYN+ACKs) will contain the expected values in the destination port and acknowledgement number.
+
+ int make_packet(
+ void *packetbuf, // packet buffer
+ ipaddr_n_t src_ip, // source IP in network-order
+ ipaddr_n_t dst_ip, // destination IP in network-order
+ uint32_t *validation, // validation string to place in probe
+ int probe_num // if sending multiple probes per host,
+ // this will be which probe number for this
+ // host we are currently sending
+ );
+
+Scan modules must also define `pcap_filter`, `validate_packet`, and `process_packet`. Only packets that match the PCAP filter will be considered by the scanner. For example, in the case of a TCP SYN scan, we only want to investigate TCP SYN/ACK or TCP RST packets and would utilize a filter similar to `tcp && tcp[13] & 4 != 0 || tcp[13] == 18`. The `validate_packet` function will be called for every packet that fulfills this PCAP filter. If the validation returns non-zero, the `process_packet` function will be called, and will populate a fieldset using fields defined in `fields` with data from the packet. For example, the following code processes a packet for the TCP synscan probe module.
+
+ void synscan_process_packet(const u_char *packet, uint32_t len, fieldset_t *fs)
+ {
+ struct iphdr *ip_hdr = (struct iphdr *)&packet[sizeof(struct ethhdr)];
+ struct tcphdr *tcp = (struct tcphdr*)((char *)ip_hdr
+ + (sizeof(struct iphdr)));
+
+ fs_add_uint64(fs, "sport", (uint64_t) ntohs(tcp->source));
+ fs_add_uint64(fs, "dport", (uint64_t) ntohs(tcp->dest));
+ fs_add_uint64(fs, "seqnum", (uint64_t) ntohl(tcp->seq));
+ fs_add_uint64(fs, "acknum", (uint64_t) ntohl(tcp->ack_seq));
+ fs_add_uint64(fs, "window", (uint64_t) ntohs(tcp->window));
+
+ if (tcp->rst) { // RST packet
+ fs_add_string(fs, "classification", (char*) "rst", 0);
+ fs_add_uint64(fs, "success", 0);
+ } else { // SYNACK packet
+ fs_add_string(fs, "classification", (char*) "synack", 0);
+ fs_add_uint64(fs, "success", 1);
+ }
+ }
+
+--------------------------------------------------------------------------------
+
+via: https://zmap.io/documentation.html
+
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://github.com/ewust/forge_socket/
+[2]:https://github.com/zmap/zmap/blob/v1.0.0/src/output_modules/output_modules.c
+[3]:https://github.com/zmap/zmap/blob/master/src/output_modules/output_modules.h
+[4]:https://github.com/zmap/zmap/blob/master/src/output_modules/module_csv.c
diff --git a/sources/tech/20150407 5 Linux Command Line Based Tools for Downloading Files and Browsing Websites.md b/sources/tech/20150407 5 Linux Command Line Based Tools for Downloading Files and Browsing Websites.md
new file mode 100644
index 0000000000..1bbc9e9928
--- /dev/null
+++ b/sources/tech/20150407 5 Linux Command Line Based Tools for Downloading Files and Browsing Websites.md
@@ -0,0 +1,156 @@
+5 Linux Command Line Based Tools for Downloading Files and Browsing Websites
+================================================================================
+Linux command-line, the most adventurous and fascinating part of GNU/Linux is very cool and powerful tool. Command line itself is very productive and the availability of various inbuilt and third party command line application makes Linux robust and powerful. The Linux Shell supports a variety of web application of various kind be it torrent downloader, dedicated downloader or Internet Surfing.
+
+![Command Line Internet Tools](http://www.tecmint.com/wp-content/uploads/2014/02/Command-Line-Internet-Tools.jpg)
+5 Command Line Internet Tools
+
+Here we are presenting 5 great command line Internet tools, which are very useful and proves to be very handy.
+
+### 1. rTorrent ###
+
+rTorrent is a text-based Torrent Client which is written in C++ aimed at high performance. It is available for most of the standard Linux Distributions including FreeBSD and Mac OS X.
+
+#### Installation of rTorrent ####
+
+ # apt-get install rtorrent (on APT based System)
+
+----------
+
+ # yum install rtorrent (on YUM based System)
+
+Check if rtorrent is installed correctly by running the following command in the terminal.
+
+ # rtorrent
+
+![Command line torrent download](http://www.tecmint.com/wp-content/uploads/2014/02/rTorrent.jpeg)
+rTorrent Command Line Tool
+
+#### Functioning of rTorrent ####
+
+Some of the useful Key-bindings and their use.
+
+- CTRL+ q – Quit rTorrent Application
+- CTRL+ s – Start Download
+- CTRL+ d – Stop an active Download or Remove an already stopped Download.
+- CTRL+ k – Stop and Close an active Download.
+- CTRL+ r – Hash Check a torrent before Upload/Download Begins.
+- CTRL+ q – When this key combination is executed twice, rTorrent shutdown without sending a stop Signal.
+- Left Arrow Key – Redirect to Previous screen.
+- Right Arrow Key – Redirect to Next Screen
+
+### 2. Wget ###
+
+Wget, is a part of GNU Project, the name is derived from World Wide Web (WWW). Wget is a brilliant tool which is useful for recursive download, offline viewing of HTML from local Server and is available for most of the platforms be it Windows, Mac, Linux. Wget makes it possible to download files over HTTP, HTTPS and FTP. Moreover it can be useful in mirroring the whole website as well as support for proxy browsing, pausing/resuming Downloads.
+
+#### Installation of Wget ####
+
+Wget being a GNU project comes bundled with Most of the Standard Linux Distributions and there is no need to download and install it separately. If in-case, it’s not installed by default, you can still install it using apt or yum.
+
+ # apt-get install wget (on APT based System)
+
+----------
+
+ # yum install wget (on YUM based System)
+
+#### Some Basic Usage of Wget ####
+
+Download a single file using wget.
+
+ # wget http://www.website-name.com/file
+
+Download a whole website, recursively.
+
+ # wget -r http://www.website-name.com
+
+Download specific type of file (say pdf and png) from a website.
+
+ # wget -r -A png,pdf http://www.website-name.com
+
+Wget is a wonderful tool which enables custom and filtered download even on limited resource Machine. A screen shot of wget download, where we are mirroring a website (Yahoo.com).
+
+![Wget Download Files](http://www.tecmint.com/wp-content/uploads/2014/02/Wget.jpeg)
+Wget Command Line File Download
+
+For more such wget download examples, read our article that shows [10 Wget Download Command Examples][1].
+
+### 3. cURL ###
+
+cURL is a command line tool for transferring data over a number of protocols. cURL is a client side application which support protocols like FTP, HTTP, FTPS, TFTP, TELNET, IMAP, POP3, etc. cURL is a simple downloader which is different from wget in supporting LDAP, POP3 as compared to others. Moreover Proxy Downloading, pausing download, resuming download are well supported in cURL.
+
+#### Installation of cURL ####
+
+By default cURL is available in most of the distribution either in repository or installed. if it’s not installed, just do a apt or yum to get a required package from the repository.
+
+ # apt-get install curl (on APT based System)
+
+----------
+
+ # yum install curl (on YUM based System)
+
+Basic Usage of cURL
+
+ # curl www.tecmint.com
+
+![Curl Download](http://www.tecmint.com/wp-content/uploads/2014/02/Curl.jpeg)
+Curl Data Download
+
+![Curl Data Download](http://www.tecmint.com/wp-content/uploads/2014/02/Curl-2.jpeg)
+Curl Download
+
+### 4. w3m ###
+
+The w3m is a text based web browser released under GPL. W3m support tables, frames, color, SSL connection and inline images. W3m is known for fast browsing.
+
+#### Installation of w3m ####
+
+Again w3m is available by default in most of the Linux Distribution. If incase, it is not available you can always apt or yum the required package.
+
+ # apt-get install w3m (on APT based System)
+
+----------
+
+ # yum install w3m (on YUM based System)
+
+#### Basic Usage of w3m ####
+
+ # w3m www.tecmint.com
+
+![Command Line Browser](http://www.tecmint.com/wp-content/uploads/2014/02/w3m.jpeg)
+w3m Text Based Web Browser
+
+### 5. Elinks ###
+
+Elinks is a free text-based web browser for Unix and Unix based System. Elinks support HTTP, HTTP Cookies and also support browsing script in Perl and Ruby. Tab based browsing is well supported. The best thing is that it supports Mouse, Display Colours and support a number of Protocols like HTTP, FTP, SMB, Ipv4 and Ipv6.
+
+#### Installation of Elinks ####
+
+By default elinks also available in most of the Linux distributions. If not, install it via apt or yum.
+
+ # apt-get install elinks (on APT based System)
+
+----------
+
+ # yum install elinks (on YUM based System)
+
+Basic Usage of Elinks
+
+ # elinks www.tecmint.com
+
+![Command Line Internet Browsing](http://www.tecmint.com/wp-content/uploads/2014/02/Elinks.jpeg)
+Elinks Command Line Web Browsing
+
+That’s all for now. I’ll be here again with an interesting article which you people will love to read. Till then stay tuned and connected to Tecmint and don’t forget to give your valuable feedback in comment section.
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/linux-command-line-tools-for-downloading-files/
+
+作者:[Avishek Kumar][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:http://www.tecmint.com/10-wget-command-examples-in-linux/
\ No newline at end of file
diff --git a/sources/tech/20150407 How To Install CentOS Web Panel In CentOS.md b/sources/tech/20150407 How To Install CentOS Web Panel In CentOS.md
new file mode 100644
index 0000000000..ccad9d1b87
--- /dev/null
+++ b/sources/tech/20150407 How To Install CentOS Web Panel In CentOS.md
@@ -0,0 +1,329 @@
+How To Install CentOS Web Panel In CentOS
+================================================================================
+![](http://1102047360.rsc.cdn77.org/wp-content/uploads/2015/04/centos-790x427.jpg)
+
+### About CentOS Web Panel ###
+
+There are so many free and paid Control panels available nowadays. We will, today, discuss about [CentOS Web panel(CMP)][1], specially designed for RPM based distributions like CentOS, RHEL, Scientific Linux etc. **CWP** is a free, Open Source control panel that can be widely used for deploying a Web hosting environment easily. Unlike other Control panels, CWP is automatically deploy the LAMP stack with Varnish Cache server.
+
+### Features ###
+
+CWP comes with lot of features and free services. As I mentioned before, CWP automatically installs full LAMP stack (apache, php, phpmyadmin, webmail, mailserver etc.) on your server.
+
+Here is the complete list of features and software that will be automatically installed and configured during CWP installation.
+
+#### List of softwares to be installed and configured during CWP installation: ####
+
+- Apache Web Server
+- PHP 5.4
+- MySQL + phpMyAdmin
+- Postfix + Dovecot + roundcube webmail
+- CSF Firewall
+- File System Lock (no more website hacking, all your files are locked from changes)
+- Backups; AutoFixer for server configuration
+
+#### 3rd Party Applications: ####
+
+- CloudLinux + CageFS + PHP Selector
+- Softaculous – Script Installer (Free and Premium)
+
+#### Web Server: ####
+
+- Varnish Cache server
+- Compiles Apache from source
+- Apache reCompiler + Additional modules
+- Apache server status, configuration
+- Edit apache vhosts, vhosts templates, include configuration
+- Rebuild all apache Virtual hosts
+- suPHP & suExec
+- Mod Security + OWASP rules
+- Tomcat 8 server management
+- DoS protection
+- Perl cgi script support
+
+#### PHP: ####
+
+- PHP Switcher (switch between PHP versions like: 5.2, 5.3, 5.4, 5.5)
+- PHP Selector select PHP version per user or per folder (PHP 4.4, 5.2, 5.3, 5.4, 5.5, 5.6)
+- Simple php editor
+- Simple php.ini generator in the users panel
+- PHP addons
+- PHP.ini editor & PHP info & List modules
+- php.ini per user account
+- FFMPEG, For Video streaming websites
+- CloudLinux + PHP Selector
+
+#### User Management ####
+
+- Add, List, Edit adn Remove Users
+- User Monitoring
+- Shell access management
+- User Limit Managment
+- Limit Processes
+- Limit Open Files
+- User FTP & File Manager
+- CloudLinux + CageFS
+- Dedicated IP per account
+
+#### DNS: ####
+
+- FreeDNS
+- Add, Edit, List and Remove DNS zones
+- Edit nameserver IPs
+- DNS zone template editor
+- New Easy DNS Zone Manager (with ajax)
+- New DNS Zone list with Additional resolving information using google (also checking rDNS, nameservers….)
+
+#### Email: ####
+
+- Postfix & dovecot
+- MailBoxes, Alias
+- Roundcube webmail
+- Postfix Mail queue
+- rDNS Checker Module
+- AntiSPAM
+- SPF & DKIM Integration
+- Re-Build Postfix/Dovecot Mail server with AntiVirus, AntiSpam Protection
+- Email Auto Responder
+
+#### System: ####
+
+- CPU core and clock info
+- Memory usage info
+- Detailed Disk status
+- Software Info like kernel version, uptime etc.
+- Services Status
+- ChkConfig Manager
+- Network port usage
+- Network configuration
+- SSHD configuration
+- Auto-Fixer (checks important configuration and tries to auto-fix issues)
+
+#### Monitoring: ####
+
+- Monitor services eg. top, apache stats, mysql etc.
+- Use Java SSH Terminal/Console within panel
+- Services Configuration (eg. Apache, PHP, MySQL etc)
+- Run shell commands in screen/background
+
+#### Security: ####
+
+- CSF Firewall
+- SSL generator
+- SSL Certificate Manager
+- CloudLinux + CageFS
+
+#### SQL: ####
+
+- MySQL Database Management
+- Add local or remote access user
+- Live Monitor MySQL process list
+- Create, Remove database
+- Add additional users per database
+- MySQL server configuration
+- PhpMyAdmin
+- PostgreSQL, phpPgAdmin Support
+
+#### Additional options: ####
+
+- TeamSpeak 3 Manager
+- Shoutcast Manager
+- Auto-update
+- Backup manager
+- File Manager
+- Virtual FTP users per domain
+- cPanel Account Migration (restores files, databases and database users)
+- And many more.
+
+### Install CentOS Web Panel In CentOS 6 ###
+
+At the time writing this tutorial, CWP only supports upto CentOS 6.x versions. It doesn’t work on CentOS 7 and later versions.
+
+#### Prerequisites: ####
+
+**Before installing CWP, you must know the following information:**
+
+- CWP only supports static IP addresses. It does not support dynamic, sticky, or internal IP addresses.
+- CWP doesn’t has an uninstaller. After you install CWP, you must reinstall the server to remove it.
+- Only install CWP on a freshly installed operating system without any configuration changes.
+- Need atleast 512MB RAM for 32 bit systems.
+- 1024MB for 64 bit systems.
+- Need 4GB RAM or more to deploy all modules.
+- At least 20GB or hard disk space is required.
+
+For testing purpose in VirtualBox, 640MB RAM and 10GB hdd space is enough.
+
+#### Update server: ####
+
+Install wget package first. This is needed to download CWP.
+
+ yum install wget -y
+
+Update your server using command:
+
+ yum update -y
+
+Reboot once to take effect the changes.
+
+#### Install CWP: ####
+
+Change to **/usr/local/src/** directory:
+
+ cd /usr/local/src
+
+Download latest CWP version with command:
+
+ wget http://centos-webpanel.com/cwp-latest
+
+If the above URL doesn’t work, use the following link instead.
+
+ wget http://dl1.centos-webpanel.com/files/cwp-latest
+
+Then, start CWP installer using command:
+
+ sh cwp-latest
+
+**Sample output:**
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/root@server-usr-local-src_001.png)
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/root@server-usr-local-src_002.png)
+
+The installation will take upto 30 minutes or more depending upon your Internet speed.
+
+Finally, you’ll see the installation completed message like below. Note down the details such as mysql root user password and login URLs of CWP. You”ll need them later. Then Press Enter key to reboot your system.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/root@server-usr-local-src_004.png)
+
+After booting into the system, you will see the CWP welcome login message.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CentOS-6.5-Minimal-Running-Oracle-VM-VirtualBox_006.png)
+
+#### Adjust Firewall/Router: ####
+
+The CWP default web console ports are **2030(http)** and **2031(https)**. You should allow the both ports through firewall/Router in order to access the CWP web console from a remote system.
+
+To do that, edit:
+
+ vi /etc/sysconfig/iptables
+
+Add the following lines:
+
+ [...]
+ -A INPUT -p tcp -m state --state NEW -m tcp --dport 2030 -j ACCEPT
+ -A INPUT -p tcp -m state --state NEW -m tcp --dport 2031 -j ACCEPT
+ [...]
+
+Save and close the file. Restart iptables service to take effect the changes.
+
+ service iptables restart
+
+### Accessing CWP Web Console ###
+
+Open up your browser and type:
+
+**http://IP-Address:2030/**
+
+Or
+
+**https://IP-Address:2031/**
+
+You will see the following like screen.
+
+The login credentials are:
+
+- **Username**: root
+- **Password**: your root password
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/Login-CentOS-WebPanel-Mozilla-Firefox_007.png)
+
+This is how CWP dashboard will look:
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_008.png)
+
+Congratulations! CWP has been successfully has been installed.
+
+### CWP Basic Configuration ###
+
+Next, we have to do couple of things such as:
+
+1. Setup nameservers
+1. Setup shared ip (must be your public IP address)
+1. Setup at least one hosting package (or edit default package)
+1. Setup root email, etc.
+
+#### Setup nameservers: ####
+
+To setup nameservers, go to **DNS Functions -> Edit nameservers IPs**.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_009.png)
+
+Set your nameservers and click Save changes button.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_010.png)
+
+#### Setup Shared IP And Root mail ID: ####
+
+This is important step to host websites on your host. To setup shared IP, go to **CWP Settings -> Edit settings**.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_011.png)
+
+Enter your Static IP and Email ID, and Click Save settings button.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_012.png)
+
+Now, CWP is ready to host websites.
+
+#### Setup hosting package: ####
+
+A hosting package is nothing but a Web hosting plan that consists of allowed diskspace, bandwidth, no of FTP accounts, no of email ids, and no of databases etc. You can setup any number of web hosting plans as your wish.
+
+To add a package, go to **Packages – Add a Package** from the CWP console.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_013.png)
+
+Enter the name of the package, amount of Diskquota/RAM allowed, FTP/Email accounts, Databases, and subdomains etc. Click Save settings button to create the web hosting plan.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_014.png)
+
+Now, CWP is ready to host your domains.
+
+#### Adding Domains: ####
+
+To create a new Domain, you to have at least one user account.
+
+To add a user, go to **User Accounts -> New Account**.
+
+Enter the domain(ex.unixmen.com), username, password and Email id etc. Finally, click **Create**.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_016.png)
+
+Now, let us add a new domain.
+
+To add a domain, go to **Domains -> Add Domain**.
+
+Enter the Domain and assign the domain the users of your choice.
+
+![](http://www.unixmen.com/wp-content/uploads/2015/04/CWP.admin-Mozilla-Firefox_017.png)
+
+### Conclusion ###
+
+In this tutorial, we have seen how to install and configure CentOS Web Panel to create a simple web hosting environment. CWP is very simple to install and use. Even a novice user can create a basic web hosting server in a couple of hours. Also, CWP is completely free to use and open source. Give it a try! You won’t be disappointed.
+
+You can find the more details about CWP in the [CentOS Web Panel Wiki page][2].
+
+Cheers!
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/how-to-install-centos-web-panel-in-centos/
+
+作者:[SK][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/sk/
+[1]:http://centos-webpanel.com/
+[2]:http://wiki.centos-webpanel.com/
\ No newline at end of file
diff --git a/sources/tech/20150407 How to secure BGP sessions using authentication on Quagga.md b/sources/tech/20150407 How to secure BGP sessions using authentication on Quagga.md
new file mode 100644
index 0000000000..020e2277cc
--- /dev/null
+++ b/sources/tech/20150407 How to secure BGP sessions using authentication on Quagga.md
@@ -0,0 +1,85 @@
+How to secure BGP sessions using authentication on Quagga
+================================================================================
+The BGP protocol runs over TCP, and as such, it inherits all the vulnerabilities of a TCP connection. For example, within a BGP session, an attacker may impersonate a legitimate BGP neighbor, and convince the BGP routers on the other end to share their routing information with the attacker. The problem occurs when the attacker advertises and injects bogus routes towards neighboring routers. The unsuspecting neighboring routers may then start sending live traffic towards the attacker, which in most cases goes nowhere and simply gets dropped. Back in 2008, YouTube actually [fell victim][1] to such BGP route poisoning, and suffered major outage on their video service for more than an hour. In a far worse case, if the attacker is savvy enough, they can falsely act as a transparent transit router and sniff the transit traffic for any sensitive data. As you can imagine, this can have far reaching consequences.
+
+To protect active BGP sessions against such attacks, many service providers leverage [MD5 checksum and a pre-shared key][2] for their BGP sessions. In a protected BGP session, a BGP router which sends a packet generates an MD5 hash value by using a pre-shared key, portions of the IP and TCP headers and the payload. The MD5 hash is then stored as a TCP option field. Upon receipt of the packet, a receiving router uses the same method to generate its version of the MD5 hash using a pre-shared key. It compares the hash with the one of the received packet to decide whether to accept the packet. For an attacker, it is almost impossible to guess the checksum or the key. For BGP routers, they can be assured that each packet is validated before its content is consumed.
+
+In this tutorial, we will see how we can secure a BGP session between two neighbors using MD5 checksum and a pre-shared key.
+
+### Preparation ###
+
+Securing a BGP session is fairly straightforward. We will use the following routers.
+
+注:表格
+
+
+
Router name
+
AS
+
IP address
+
+
+
router-A
+
100
+
10.10.12.1/30
+
+
+
router-B
+
200
+
10.10.12.2/30
+
+
+
+The stock Linux kernel supports TCP MD5 option natively for IPv4 and IPv6. Thus if you built Quagga router from a brand new [Linux box][3], TCP MD5 capability will be automatically available for Quagga. It'll be just a matter of configuring Quagga to take advantage of the capability. But if you are using a FreeBSD box or built a custom kernel for Quagga, make sure that you enable TCP MD5 support on the kernel (e.g., CONFIG_TCP_MD5SIG kernel option in Linux).
+
+### Configuring Router-A for Authentication ###
+
+We will use the CLI shell of Quagga to configure the routers. The only new command that we will use is 'password'.
+
+ [root@router-a ~]# vtysh
+ router-a# conf t
+ router-a(config)# router bgp 100
+ router-a(config-router)# network 192.168.100.0/24
+ router-a(config-router)# neighbor 10.10.12.2 remote-as 200
+ router-a(config-router)# neighbor 10.10.12.2 password xmodulo
+
+The pre-shared key in this example is 'xmodulo'. Obviously, in a production environment you need to select a strong key.
+
+**Note**: in Quagga, the 'service password-encryption’ command is supposed to encrypt all plain-text passwords (e.g., login password) in its configuration file. However, when I use this command, I notice that the pre-shared key in BGP configuration still remains in clear text. I am not sure whether it's a limitation of Quagga, or whether it's a version issue.
+
+### Configuring Router-B for Authentication ###
+
+We will configure router-B in a similar fashion.
+
+ [root@router-b ~]# vtysh
+ router-b# conf t
+ router-b(config)# router bgp 200
+ router-b(config-router)# network 192.168.200.0/24
+ router-b(config-router)# neighbor 10.10.12.1 remote-as 100
+ router-b(config-router)# neighbor 10.10.12.1 password xmodulo
+
+### Verifying a BGP session ###
+
+If everything has been configured correctly, the BGP session should be up, and both routers should be exchanging routes. At this point, every outgoing packet in a TCP session carries a MD5 digest of the packet contents and a secret key, and the digest is automatically validated by the other end point.
+
+We can verify the active BGP session by viewing BGP summary as usual. MD5 checksum verification occurs transparently within Quagga, so you don't see it at the BGP level.
+
+![](https://farm8.staticflickr.com/7621/16837774368_e9ff66b370_c.jpg)
+
+If you want to test BGP authentication, you can configure one neighbor without a password or deliberately use a wrong pre-shared key and see what happens. You can also use a packet sniffer like tcpdump or Wireshark to analyze the packets that go through the BGP session. For example, tcpdump with "-M " option will validate the MD5 digests found in TCP option field.
+
+To sum up, in this tutorial we demonstrate how we can easily secure the BGP session between two routers. The process is very straightforward compared to other protocols. It is always recommended to secure your BGP session, especially if you are setting up the BGP session with another AS. The pre-shared key should also be kept safe.
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/bgp-authentication-quagga.html
+
+作者:[Sarmed Rahman][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
+[1]:http://research.dyn.com/2008/02/pakistan-hijacks-youtube-1/
+[2]:http://tools.ietf.org/html/rfc2385
+[3]:http://xmodulo.com/centos-bgp-router-quagga.html
\ No newline at end of file
diff --git a/translated/news/20150402 The VirtualBox 5.0 beta is finally here.md b/translated/news/20150402 The VirtualBox 5.0 beta is finally here.md
new file mode 100644
index 0000000000..ed2549d347
--- /dev/null
+++ b/translated/news/20150402 The VirtualBox 5.0 beta is finally here.md
@@ -0,0 +1,35 @@
+VirturalBox 5.0 beta版终于发布了
+=======================================
+**甲骨文公司的桌面虚拟化软件获得了近五年来的第一次重大改版,但是更像是改进而不是革命性的的变化。**
+
+VirtualBox,由Sun公司创建,现在由甲骨文管理的开源虚拟化系统,获得了近5年来第一次的主版本更新发布。
+
+从发行说明和测试版本身的表现来看,别期望任何真正革命性的改变。在此版本中,VirtualBox在视觉上和技术上都做了一些改进,但和VMware相比,它的主要优势仍然是相同核心功能的自由化。
+
+VirtualBox 4.0的最后一个主要版本在2010年12月发布,它采用了新的图形化用户界面,新的虚拟化硬件和重组的项目设计,带来了重大的改版。但项目主要版本的发布步伐缓慢,上一次重要版本(版本4.3)在2013年底才发布。从那时起,一切都被正式称为“维修”发布。
+
+**VirtualBox 5.0**
+
+*VirtualBox 5.0的第一个测试版增加了编辑菜单,VM窗口的快捷方式图标等功能,如下面所示。*
+
+VirtualBox 5.0最大的变化是增加了对硬件辅助虚拟化指令集扩展的支持。AES-NI指令集通常用于加密时的硬件加速,SSE 4.1和SSE 4.2指令集都包括在其中。另外一点是支持Windows和Linux客户机的半虚拟化,一个抽象主机音响的新的架构以及支持客户机中的USB 3(xHCI)控制器。
+
+大部分可用更新都是对VirtualBox 图形化用户界面的改进。一个大的变化就是支持给单个虚拟主机自定义菜单和工具栏,这样很少或者从不使用的选项就可以彻底删除。另外重要的一点是可以在VirtualBox接口内部对虚拟磁盘进行加密,而不依赖于客户机操作系统自身的磁盘加密功能(假设有的话)。
+
+甲骨文公司提醒由于这是个测试版软件,需要谨慎对待。当然,主界面和客户机系统界面在某方面都可能引起红黑测试版警告。但之前VirtualBox发行版(4.3.26)上创建的Windows 10虚拟机启动和运行都没问题,5.0版本中添加的VirtualBox客户机功能--更好的视频支持,双向复制和粘贴,以及其它功能--安装的时候也没有问题。(更好地支持Windows 10的修复从4.3.18版本后就开始出现)。
+
+虽然没有明确指出5.0的最终版什么时候会发布,但是甲骨文公司[鼓励用户][1]在非生产环境中下载和使用测试版,并在[测试版反馈论坛][2]中报告bug文件。
+
+--------------------------------------------------------------------------------
+
+via: http://www.infoworld.com/article/2905098/virtualization/oracle-virtualbox-5-0-beta-is-finally-here.html
+
+作者:[Serdar Yegulalp][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.infoworld.com/author/Serdar-Yegulalp/
+[1]:https://forums.virtualbox.org/viewtopic.php?f=15&t=66904
+[2]:https://forums.virtualbox.org/viewforum.php?f=15
diff --git a/translated/share/20150126 CD Audio Grabbers--Graphical Based.md b/translated/share/20150126 CD Audio Grabbers--Graphical Based.md
deleted file mode 100644
index 45254072cb..0000000000
--- a/translated/share/20150126 CD Audio Grabbers--Graphical Based.md
+++ /dev/null
@@ -1,129 +0,0 @@
-
-CD音频抓取器——基于图形界面
-================================================================================
-CD音频抓取器是为了从光盘中提取(“剖出”)原始数字音频(它在一个通常被称为CDDA的格式中)并把它保存成文件或以其他形式输出而设计的。这类软件使用户能把数字音频编码成各种格式,并能下载和上传在线CD目录服务——一个在线的光盘数据库——中的光盘信息。
-
-复制CD合法吗?在美国版权法中,把一个原始CD转换成数字文件用于个人使用在被引用时等同于‘合理使用’。然而,美国版权法并没有明确的允许或禁止拷贝私人音频CD,而且判例法还没有确立出在具体的哪种情况下可以视为合理使用。在英国版权的位置更清晰一些。从2014年开始,英国公民制造CD,MP3,DVD,蓝光和电子书的行为成为合法行为。这仅适用于这个人拥有被采集的媒体的实体,并且复制品仅用于他们个人使用。对于欧盟的其他国家,成员国可以允许私人复制这种特例。
-
-如果你不确定在你生活的国家里版权处于什么位置,在你使用这两页文章中所列举的软件前请查询本地的版权法以确定你处在合法的一边。
-
-在某种程度上,提取CD音轨看起来有点多余。如Spotify和Google Play Music这类流服务提供了一个巨大的以通用格式存在的音乐的库,无需采集你的CD集。但是,如果你已将收藏了一个数量巨大的CD集。能把你的CD转换成可以在便携设备如智能手机、平板和便携式MP3播放器上播放的格式仍然是个诱人的选择。
-
-这两页文章推荐了我最喜欢的音频CD抓取器。我挑了四个最好的图形界面的音频抓取器,四个最好的控制台音频抓取器。所有这些应用程序都是在开源许可下发行的。
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/freac.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-freac.png)
-
-fre:ac是个开源音频转换器和CD提取器,支持很多种流行格式和编码器。目前这个应用可以在MA3、MP4/M4A、WMA、Ogg Vorbis、FLAC、AAC、WAV和Bonk格式间转换。这来源于几种不同形式的LAME编码器。
-
-#### 功能包括: ####
-
-- 易学易用
-- MP3、MP4/M4A、WMA、Ogg Vorbis、FLAC、AAC、WAV和Bonk格式转换器
-- 集成了CDDB/freedb标题数据库支持的CD提取器
-- 多核优化的编码器加速了现代PC上的转换速度
-- 对于标签和文件名称的全Unicode支持
-- 易学易用,当你需要时还提供专家级选项
-- 任务列表
-- 可以使用Winamp 2加入附件
-- 多语言用户界面可以使用41种语言
-
-- 网址: [freac.org][1]
-- 开发人员:Robert Kausch
-- 许可证: GNU GPL v2
-- 版本号: 20141005
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/Audex.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-Audex.png)
-
-Audex是个简单易用的开源音频CD提取应用。虽然它还处于早期开发阶段,这个KDE桌面工具足够稳定、聪明和简单,可以使用。
-
-助手可以给LAME、OGG Vorbis(oggenc)、FLAC、FAAC(AAC/MP4)和RIFF WAVE创建配置文件。除去这个助手,你可以定义你自己的配置文件,这意味着,Audex适用于大部分的命令行编码器。
-
-#### 功能包括: ####
-
-- 可提取CDDA Paranoia
-- 提取和编码同时进行
-- 文件名采用本地和远程CDDB/FreeDB数据库
-- 提供新的CDDB/FreeDB数据库入口
-- 类似capitalize的元数据纠正工具
-- 多配置文件提取(每个配置文件文件有一个命令行编码器)
-- 从互联网上抓取封面并将他们存在数据库中
-- 在目标目录中创建播放列表、封面和基于模板的信息文件
-- 创建提取和编码协议
-- 将文件传送到FTP服务器
-- 支持国际化
-
-- 网址: [kde.maniatek.com/audex][2]
-- 开发人员: Marco Nelles
-- 许可证: GNU GPL v3
-- 版本号: 0.79
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/SoundJuicer.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-SoundJuicer.png)
-
-Sound Juicer是个使用GTK+和GStreamer的轻量级CD提取器。它从CD中提取音频并把它转换成音频文件。Sound Juicer还可以直接播放CD中的音轨,在提取前提供预览。
-
-由于GStreamer插件它支持任何音频编码,包括 MP3、Ogg Vorbis、FLAC和未压缩的PCM格式。
-
-它是GNOME桌面环境已建成的一部分。
-
-#### 功能包括: ####
-
-- 自动通过CDDB给音轨加标签
-- 可编码成ogg/vorbis、FLAC和原始WAV
-- 编码路径的设置很简单
-- 多种流派
-- 国际化支持
-
-- 网址:[burtonini.com][3]
-- 开发人员: Ross Burton
-- 许可证:GNU GPL v2
-- 版本号:3.14
-
-----------
-
-![](http://www.linuxlinks.com/portal/content2/png/ripperX.png)
-
-![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-ripperX.png)
-
-ripperX是个开源的图形交互界面,用于提取CD音轨并把他们编码成Ogg、MP2、MP3或FLAC格式。它的目的是容易使用,只需要点几下鼠标就能转换整张专辑。它支持在CDDB寻找专辑和音轨信息。
-
-他使用cdparanoia把CD音轨转换(也就是“提取”)成WAV文件,然后访问Vorbis/Ogg编码器oggenc把WAV文件转换成OGG文件。它还可以访问flac让WAV文件有无损压缩的表现,制成FLAC文件。
-
-#### 功能包括: ####
-
-- 非常简单易用
-- 可以把CD音轨提取成WAV、MP3、OGG或FLAC文件
-- 支持CDDB查找
-- 支持ID3v2标签
-- 可暂停提取进程
-
-- 网址:[sourceforge.net/projects/ripperx][4]
-- 开发人员:Marc André Tanner
-- 许可证:MIT/X Consortium License
-- 版本号:2.8.0
-
---------------------------------------------------------------------------------
-
-转自:http://www.linuxlinks.com/article/20150125043738417/AudioGrabbersGraphical.html
-
-作者:Frazer Kline
-译者:[H-mudcup](https://github.com/H-mudcup)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[1]:http://www.freac.org/
-[2]:http://kde.maniatek.com/audex/
-[3]:http://burtonini.com/blog/computers/sound-juicer
-[4]:http://sourceforge.net/projects/ripperx/
diff --git a/translated/share/20150227 Chess in a Few Bytes.md b/translated/share/20150227 Chess in a Few Bytes.md
new file mode 100644
index 0000000000..60b5598c76
--- /dev/null
+++ b/translated/share/20150227 Chess in a Few Bytes.md
@@ -0,0 +1,114 @@
+几 KB 的国际象棋程序
+================================================================================
+当我提及到我用来介绍计算(注:这里翻译的有问题)的是一台 ZX81 电脑时,我已经暴露了我的年龄。ZX81 是一个由英国(UK,the United Kingdom) 开发者(Sincilair 研究所)生产的家庭电脑,它拥有"高达" 1KB 的随机存储器(RAM)。上面的 1kB 并不是打印错误,这个家庭电脑确实只配置有 1KB 的板载内存。但这个内存大小上的限制并没有阻止爱好者制作种类繁多的软件。事实上,这个机器引发了一代编程奇才的出现,这迫使他们掌握让程序在该机上正常运行的方法。这个机器可以通过一个 16 KB 的 RAM 包来进行升级,这就提供了更多的编程可能。但未经扩展的 1KB 机器仍然激励着编程者发布卓越的软件。
+
+![1K ZX Chess ](http://www.linuxlinks.com/portal/content2/reviews/Games2/1KZXChess.jpg)
+
+我最喜爱的 ZX81 游戏有: Flight Simulation, 3D Monster Maze, Galaxians, 以及最重要的 1K ZX Chess。 只有最后一个程序是为未扩展的 ZX81 电脑设计的。事实上,David Horne 开发的 1K ZX Chess 只使用了仅仅 672 字节的 RAM(注:如果读者有兴趣,可以看看 [这里](http://users.ox.ac.uk/~uzdm0006/scans/1kchess/)对该程序的代码及解释)。尽管如此,该游戏尽力去实现大多数的国际象棋规则,并提供了一个计算机虚拟对手。虽然一些重要的规则被忽略了(如:王车易位,兵的升变,和吃过路兵)
+(注:参考了[这里](http://zh.wikibooks.org/zh/%E5%9B%BD%E9%99%85%E8%B1%A1%E6%A3%8B/%E8%A7%84%E5%88%99)和[这里](http://en.wikipedia.org/wiki/Rules_of_chess)),但能够和人工智能相对抗,这仍然令人惊讶。这个游戏占据了我逝去的青春里的相当一部分。
+
+1K ZX Chess 保持着在任何计算机上国际象棋的最小实现的地位长达 33 年,直到今年由 BootChess 打破了该记录,紧接着由 Toledo AtomChess 打破。这三个程序都没有实现所有的国际象棋规则,所以为了完整性,我介绍了我最喜爱的,实现了所有国际象棋规则的极小的国际象棋。
+
+Linux 有着一系列极其强大的国际象棋引擎,如 Stockfish, Critter, Togo II, Crafty, GNU Chess, 和 Komodo 。 在这篇文章精选的国际象棋程序虽敌不过一个好的国际象棋程序,但它们展示了使用微不足道的代码库究竟可以实现多少东西。
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/ToledoAtomchess.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Toledo.png)
+
+你可能已经看到了大量有关 BootChess 新闻报道,一个只用 487 字节写就的国际象棋程序,一举打破了先前最小的国际象棋程序,1K ZX Chess 的记录。Óscar Toledo Gutiérrez 拿起外套并决定编写一个更加紧凑的国际象棋游戏。Toledo Atomchess 是仅有 481 字节的 x86 汇编代码,它适合在引导扇区里。 在给定的极小代码库限制下,这个引擎实现了一个适当的国际象棋游戏。
+
+特点包括:
+
+- 基本的象棋移动
+- 象棋盘的 ASCII 文本表现
+- 以代数形式来输入移动(注:如 D2D4)
+- 3 层的搜索深度
+
+显然,为了将这个国际象棋程序压缩到 481 字节中,作者必须做出某些牺牲,这些局限包括:
+
+- 没有兵的升变
+- 没有王车易位
+- 没有吃过路兵
+- 没有移动确认
+
+该作者也使用 C,JavaScript 和 Java 来写这个国际象棋程序,每种实现都非常小。
+
+- 网站: [nanochess.org/chess6.html][1]
+- 开发者: Óscar Toledo Gutiérrez
+- 协议: 对非商业使用免费(Free for non-commercial use)
+- 版本号: -
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/BootChess.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-BootChess.png)
+
+BootChess 是一个国际象棋的极其小巧的计算机实现。这个程序被塞进到仅仅 487 字节里,并可运行在 Windows, Mac OS X 和 Linux 等操作系统。BootChess 的棋盘和棋子单独用文本表示,其中 P 代表兵, Q 用来代表王后,以及输入的任何停顿代表空白方块。
+
+特点包括:
+
+- 象棋棋盘和用户输入的图形化文本表示
+- 引导扇区大小(512 字节)的可玩的象棋游戏
+- 只需 x86 bios 硬件引导程序(没有软件依赖)
+- 所有主要的正规移动包括 double square pawn start(注:这个我没有查到是什么意思)
+- 兵升变为王后(与 1k ZX Chess 相反)
+- 名为 taxiMax > minMax half-ply 的 CPU 人工智能
+- 硬编码的西班牙白子开局
+
+同样,它也存在一些重要的限制。这些遗漏包括:
+
+- 正在推广
+- 吃过路兵
+- 没有王车易位
+- 3 次位置重复和局规则(注:下一步之前,同样的移动出现了两次;可以参考[这里](http://www.netplaces.com/chess-basics/ending-the-game/three-position-repetition.htm))
+- 50 步移动和局规则(注:在连续的50个回合内,双方既没有棋子被吃掉,也没有兵被移动过,则和局;可以参考[这里](http://www.chessvariants.org/d.chess/chess.html))
+- 没有开放或封闭的书籍
+- 一个或多个 minMAX/negaMax 全层人工智能
+
+- 网站: [www.pouet.net/prod.php?which=64962][2]
+- 开发者: Olivier "Baudsurfer/RSi" Poudade
+- 协议: WTFPL v2
+- 版本号: .02
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/Micro-Max.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Micro-Max.png)
+
+Micro-Max 是一个用 C 写就的 133 行象棋源程序。
+
+作者实现了一个 hash 变换表,该引擎检查输入移动的合法性,以及支持 FIDE(注: World Chess Federation 缩写,[这里](https://www.fide.com/)为其官网) 的全部规则,除了正在推广的规则。
+
+特点包括:
+
+- 递归的 negamax 搜索
+- 重新夺回的静态搜索
+- 重新夺回规则的扩展
+- 迭代深化
+- 最好的先走策略 `排序`
+- 存储分数和最佳移动的 Hash 表
+- 完整的 FIDE 规则(不包括正在推广的规则) 和移动合法性检查
+
+同样存在一个简装的 1433个字符的版本,但允许你使用符合 FIDE 规则的正在推广的规则。
+
+- 网站: [home.hccnet.nl/h.g.muller/max-src2.html][3]
+- 开发者: Harm Geert Muller
+- 协议: The MIT License
+- 版本号: 3.2
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/20150222033906262/ChessBytes.html
+
+作者:Frazer Kline
+译者:[FSSlc](https://github.com/FSSlc)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://nanochess.org/chess6.html
+[2]:http://www.pouet.net/prod.php?which=64962
+[3]:http://home.hccnet.nl/h.g.muller/max-src2.html
\ No newline at end of file
diff --git a/translated/share/20150323 Papyrus--An Open Source Note Manager.md b/translated/share/20150323 Papyrus--An Open Source Note Manager.md
new file mode 100644
index 0000000000..87c80fa0ac
--- /dev/null
+++ b/translated/share/20150323 Papyrus--An Open Source Note Manager.md
@@ -0,0 +1,61 @@
+Papyrus:开源笔记管理工具
+================================================================================
+![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_4.jpeg)
+
+在上一篇帖子中,我们介绍了[任务管理软件Go For It!][1].今天我们将介绍一款名为**Papyrus的开源笔记软件**
+
+[Papyrus][2] 是[Kaqaz笔记管理][3]的变体并使用了QT5.它不仅有简洁、易用的界面,还具备了较好的安全性。由于强调简洁,我觉得Papyrus与OneNote比较相像。你可以将你的笔记像"纸张"一样分类整理,还可以给他们添加标签进行分组。够简单的吧!
+
+### Papyrus的功能: ###
+
+## Papyrus的功能: ###
+
+虽然Papyrus强调简洁,它依然有很多丰富的功能。他的一些主要功能如下:
+- 按类别和标签管理笔记
+- 高级搜索选项
+- 触屏模式
+- 全屏选项
+- 备份至Dropbox/硬盘
+- 某些页面允许加密
+- 可与其他软件共享笔记
+- 与Dropbox加密同步
+- 除Linux外,还可在Android,Windows和OS X使用
+
+### Install Papyrus ###
+
+Papyrus为Android用户提供了APK安装包。Windows和OS X也有安装文件。Linux用户还可以获取程序的源码。使用Ubuntu及其他基于Ubuntu的发行版可以使用.deb包进行安装。根据你的系统及习惯,你可以从Papyrus的下载页面中获取不同的文件:
+
+- [下载 Papyrus][4]
+
+### 软件截图 ###
+
+以下是此软件的一些截图:
+
+
+![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_3-700x450_c.jpeg)
+
+![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_2-700x450_c.jpeg)
+
+![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux_1-700x450_c.jpeg)
+
+![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Papyrus_Linux-700x450_c.jpeg)
+
+试试Papyrus吧,你会喜欢上它的。
+
+(译者注;此软件暂无中文版)
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/papyrus-open-source-note-manager/
+
+作者:[Abhishek][a]
+译者:[KevinSJ](https://github.com/KevinSJ)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/abhishek/
+[1]:http://itsfoss.com/go-for-it-to-do-app-in-linux/
+[2]:http://aseman.co/en/products/papyrus/
+[3]:https://github.com/sialan-labs/kaqaz/
+[4]:http://aseman.co/en/products/papyrus/
diff --git a/translated/share/20150324 How to Install Telegram Messenger Application on Linux.md b/translated/share/20150324 How to Install Telegram Messenger Application on Linux.md
new file mode 100644
index 0000000000..8721488444
--- /dev/null
+++ b/translated/share/20150324 How to Install Telegram Messenger Application on Linux.md
@@ -0,0 +1,132 @@
+如何在Linux上安装Telegram Messenger应用
+================================================================================
+Telegram是和whatsapp类似的及时通讯应用。它有一个非常庞大的用户群。它有很多能和其他通讯应用区分开来的特性。
+
+![在Linux上安装Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/Install-Telegram-in-Linux.png)
+Telegram Messenger for Linux
+
+这篇文章让你了解Telegram应用,以及在Linux Box上的详细安装命令。
+
+#### Telegram的特性 ####
+
+- 支持移动设备
+- 有桌面版本
+- 第三方开发者可以访问Telegram的应用程序接口(API)。
+- 支持Android, iphone/ipad, Windows Phone, Web-Version, PC, Mac 和 Linux。
+- 以上应用支持重度加密和自销毁信息。
+- 可以让你从多种设备和平台查看你的信息。
+- 整体的处理和消息传送都非常快
+- 为了安全和效率,在全球有分布式服务器
+- 开放的API和自由协议
+- 没有广告,没有认购费用。-永久免费
+- 强大-没有媒体和聊天限制
+- 多种安全措施使其免受黑客侵害
+- 在群组中回复特定信息。使用@username提醒群组里的多个用户
+
+#### 为什么使用Telegram? ####
+
+当像WhatsApp的和其他的及时通讯应用都提供了几乎同样的功能的情况下,为什么要选择Telegram?
+
+第三方开发者可以使用API这一点就足够了。更多PC的可用性意味着你不必再纠结在你的移动设备上打字,你可以使用你的PC,这样更具有可用性。
+
+另外,支持连接远程地点,协作-多达200个成员的群组,在所有设备上同步,发送各种类型的文件,信息加密,自毁信息,在云上存储媒体,基于完全可用API构建自己的工具。
+
+**测试环境**
+
+我们使用Debian GNU/Linux, x86_64结构测试,所有的步骤都非常顺利。以下是我们的详细步骤。
+
+### 在Linux上安装Telegram Messenger ###
+
+首先去Telegram的官方网站,下载Linux系统版本的Telegram源码包([tsetup.0.7.23.tar.xz][1]),你也可以使用下面的wget命令直接下载。
+
+ # wget https://updates.tdesktop.com/tlinux/tsetup.0.7.23.tar.xz
+
+下载好安装包后,解压安装包,并从当前目录进入解压后的文件夹。
+
+ # tar -xf tsetup.0.7.23.tar.xz
+ # cd Telegram/
+
+然后,如下所示,在命令行中执行二进制文件‘Telegram’.
+
+ # ./Telegram
+
+1. 第一个界面, 点击 “START MESSAGING”.
+
+![开始安装](http://www.tecmint.com/wp-content/uploads/2015/03/Start-Messaging.jpeg)
+开始安装
+
+2. 输入你的手机号码,点击"Next"。如果在这之前你没有注册过Telegram,使用和之前输入相同的号码你会看到警告说你还没有Telegram账户。点击“Register Here”。
+
+![注册Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Register.png)
+注册Telegram
+
+3. 提交你的手机号码之后,Telegram很快会给你发送一个验证码。你需要输入它。
+
+![Telegram验证码](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Verfication-Code.png)
+Telegram验证码
+
+4. 输入你的姓名,昵称并点击“SIGNUP”.
+
+![输入账户详细信息](http://www.tecmint.com/wp-content/uploads/2015/03/Enter-Account-Details.jpeg)
+输入账户详细信息
+
+5. 新建账户之后,我看到这个界面。一切准备就绪,尽管我是Telegram的新用户。这个界面真的很简洁。
+
+![Telegram界面](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Interface.jpeg)
+Telegram界面
+
+6. 点击新建联系人,输入他们的姓名和手机号码,完成后点击新建。
+
+![新建Telegram联系人](http://www.tecmint.com/wp-content/uploads/2015/03/Add-New-Telegram-Contact.png)
+新建Telegram联系人
+
+7. 如果Telegram中还没有你输入的联系人,你会收到一个提示信息,当这个联系人加入Telegram的时候Telegram会通知你。
+
+![Telegram联系人提示](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Contact-Notification.jpeg)
+Telegram联系人提示
+
+8. 当联系人加入Telegram的时候,你会收到信息(类似弹出提示)显示[YOUR_CONTACT]加入了Telegram。
+
+9. 在Linux系统上正式的聊天窗口。 很好的体验…
+
+![联系人加入Telegram消息](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Contact-Join-Message.jpeg)
+联系人加入Telegram消息
+
+10. 同时,我试着在我的Android移动设备上发送信息,两者之间界面非常相似。
+
+![移动版Telegram界面](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Mobile-Interface.png)
+移动版Telegram界面
+
+11. Telegram设置页面. 你有很多可以配置的选项.
+
+![设置Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/Telegram-Settings.png)
+设置Telegram
+
+12. 关于Telegram.
+
+![关于Telegram](http://www.tecmint.com/wp-content/uploads/2015/03/About-Telegram.jpeg)
+关于Telegram
+
+#### 有趣的几点 ####
+
+- Telegram使用MTProto移动协议
+- 一开始在2013年(8月14号)发布iPhone版
+- 惊人项目背后的人物:Pavel and Nikolai Durov..
+
+就是这些了。我还会有你喜欢阅读的其它有趣的文章。很高兴能代表Tecmint感谢我们尊贵的读者以及使得我们通过不断的自我进步走到这里的批评者。保持联系!继续评论。如果你关注我们就请和我们分享吧。
+
+- [https://telegram.org/][2]
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/install-telegram-in-linux/
+
+作者:[Avishek Kumar][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:https://tdesktop.com/linux
+[2]:https://telegram.org/
\ No newline at end of file
diff --git a/translated/share/20150326 Mydumper--Mysql Database Backup tool.md b/translated/share/20150326 Mydumper--Mysql Database Backup tool.md
new file mode 100644
index 0000000000..97e83e0933
--- /dev/null
+++ b/translated/share/20150326 Mydumper--Mysql Database Backup tool.md
@@ -0,0 +1,110 @@
+Mydumper - MySQL数据库备份工具
+================================================================================
+Mydumper 是MySQL数据库服务器备份工具,它比MySQL自带的mysqldump快很多。它还有在转储本身的时候检索远程服务器二进制日志文件的能力。
+
+### Mydumper 的优势 ###
+
+o 并行性 (因此有高速度) 和 性能 (避免了昂贵的字符集转换例程, 高效的代码)
+
+o 更容易管理输出 (每个表独立的文件,转储元数据等,简单的查看/解析数据)
+
+o 一致性 -- 在所有线程中维护快照, 提供准确的主从结点日志位置等。
+
+o 可管理性 -- 支持对包含和排除指定的数据库和表的PCRE操作(译者注:PCRE,Perl Compatible Regular Expression,Perl兼容正则表达式)
+
+### 在Ubuntu上安装 mydumper ###
+
+打开终端运行以下命令
+
+ sudo apt-get install mydumper
+
+### 使用 Mydumper ###
+
+#### 语法 ####
+
+ mydumper [options]
+
+应用程序选项:
+
+- -B, --database 转储的数据库
+- -T, --tables-list 逗号分隔的转储表列表(不排除正则表达式)
+- -o, --outputdir 保存输出文件的目录
+- -s, --statement-size 插入语句的字节大小, 默认是1000000个字节
+- -r, --rows 把表分为每个这么多行的块
+- -c, --compress 压缩输出文件
+- -e, --build-empty-files 尽管表中没有数据也创建输出文件
+- -x, --regex 匹配‘db.table'的正则表达式
+- -i, --ignore-engines 逗号分隔的忽略存储引擎列表
+- -m, --no-schemas 不转储有数据的表架构
+- -k, --no-locks 不执行临时共享读锁. 警告: 这会导致备份的不一致性
+- -l, --long-query-guard 设置长查询的计时器秒数,默认是60秒
+- --kill-long-queries 杀死长查询 (而不是退出)
+- -b, --binlogs 获取二进制日志文件和转储数据的快照
+- -D, --daemon 开启守护进程模式
+- -I, --snapshot-interval 每个转储快照之间的间隔时间(分钟), 需要开启 --daemon, 默认是60分钟
+- -L, --logfile 日志文件的名字,默认是stdout
+- -h, --host 要连接的主机
+- -u, --user 有转储权限的用户名
+- -p, --password 用户密码
+- -P, --port 连接的TCP/IP端口
+- -S, --socket 用于连接的Unix套接字文件
+- -t, --threads 使用的线程数,默认是4
+- -C, --compress-protocol 在MySQL连接上使用压缩
+- -V, --version 查看程序版本号
+- -v, --verbose 输出信息的等级, 0 = silent, 1 = errors, 2 = warnings, 3 = info, 默认是2
+
+#### Mydumper 例子 ####
+
+ mydumper \
+ --database=$DB_NAME \
+ --host=$DB_HOST \
+ --user=$DB_USER \
+ --password=$DB_PASS \
+ --outputdir=$DB_DUMP \
+ --rows=500000 \
+ --compress \
+ --build-empty-files \
+ --threads=2 \
+ --compress-protocol
+
+Mydumper输出数据的说明
+
+Mydumper不直接指定输出的文件,而是输出到文件夹的文件中。--outputdir 选项指定要使用的目录名称。
+
+输出分为两部分
+
+架构
+
+对数据库中的每个表,创建包含 CREATE TABLE 语句的文件。文件命名为:
+
+dbname.tablename-schema.sql.gz
+
+数据
+
+对于每个行数多余--rows参数的表, 创建文件名字为:
+
+dbname.tablename.0000n.sql.gz
+
+"n"从0开始.
+
+你可以使用Myloader恢复这些备份
+
+ myloader \
+ --database=$DB_NAME \
+ --directory=$DB_DUMP \
+ --queries-per-transaction=50000 \
+ --threads=10 \
+ --compress-protocol \
+ --verbose=3
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/mydumper-mysql-database-backup-tool.html
+
+作者:[ruchi][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.ubuntugeek.com/author/ubuntufix
\ No newline at end of file
diff --git a/translated/tech/20150202 How to Bind Apache Tomcat to IPv4 in Centos or Redhat.md b/translated/tech/20150202 How to Bind Apache Tomcat to IPv4 in Centos or Redhat.md
new file mode 100644
index 0000000000..5aff088f99
--- /dev/null
+++ b/translated/tech/20150202 How to Bind Apache Tomcat to IPv4 in Centos or Redhat.md
@@ -0,0 +1,77 @@
+在CentOS或者Redhat中如何为Apache Tomcat绑定IPv4
+================================================================================
+今天我们来学习一下如何在CentOS 7 Linux分布式系统中为Tomcat绑定IPv4
+
+**Apache Tomcat** 是由[Apache Software Foundation][1] 开发的开源web服务器和servlet容器。它实现了Java Servlet,JavaServer页面(JSP),Java的统一表达式语言,以及Sun Microsystems的Java的WebSocket规范,并提供了一个运行java代码的web服务器环境。
+
+如果由于默认绑定tomcat到IPv6而导致我们的web服务器不能正常工作,就有必要将tomcat绑定到IPv4。众所周知,IPv6是为设备分配IP地址的现代方法,虽然在不久的将来也许会得到应用,但是现在并没有得到完全应用。由于没有用处,目前我们并不需要将我们的Tomcat服务器向IPv6转换,我们应该将其绑定到IPv4。
+
+在开始将tomcat绑定到IPv4之前,我们应该确保在我们的CentOS 7中已经安装了tomcat。这是一个[如何在CentOS 7.0服务器中安装tomcat 8][2]的指导。
+
+### 1. 切换到tomcat用户 ###
+
+首先,我们要切换到 **tomcat** 用户。我们可以通过在shell或者终端中运行 **su tomcat** 命令完成。
+
+ # su tomcat
+
+![切换到tomcat用户](http://blog.linoxide.com/wp-content/uploads/2015/01/switch-user-tomcat.png)
+
+### 2. 找到文件 Catalina.sh ###
+
+现在我们要进入Apache Tomcat安装目录下的bin文件夹,通常是 **/usr/share/apache-tomcat-8.0.x/bin/**, 这里的x是 Apache Tomcat发行版的子版本号。因为我的CentOS 7服务器中安装的版本是8.0.18,这里我的目录是 **/usr/share/apache-tomcat-8.0.18/bin/**。
+
+ $ cd /usr/share/apache-tomcat-8.0.18/bin
+
+**注意:请用你系统中安装的Apache Tomcat的版本号替换8.0.18。**
+
+在bin目录中,有一个名字是catalina.sh的脚本文件。这就是我们要编辑的文件,我们将在里面增加一行将tomcat绑定到IPv4的配置信息。你可以通过在shell或者终端中运行命令 **ls** 来查看这个文件。
+
+ $ ls
+
+![查找文件 catalina.sh](http://blog.linoxide.com/wp-content/uploads/2015/01/finding-catalina.sh_.png)
+
+### 3. 配置 Catalina.sh ###
+
+如图所示,我们将在catalina.sh脚本文件的最后增加一行 **JAVA_OPTS= "$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"**。我们可以使用我们喜欢的文本编辑器来编辑这个文件,例如nano,vim等等。这里我们使用nano。
+
+ $ nano catalina.sh
+
+![Catalina script](http://blog.linoxide.com/wp-content/uploads/2015/01/catalina-script.png)
+
+然后,如下图所示,将 **JAVA_OPTS= "$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"** 增加到文件。
+
+![配置 catalina](http://blog.linoxide.com/wp-content/uploads/2015/01/configured-catalina.png)
+
+现在,我们已经将配置信息增加到文件中。保存文件并退出nano。
+
+### 4. 重启 ###
+
+现在,我们通过重启tomcat服务器使配置生效。我们要先运行shutdown.sh,然后运行startup.sh。
+
+ $ ./shutdown.sh
+
+运行可执行文件startup.sh:
+
+ $ ./startup.sh
+
+![重启apache tomcat 服务器](http://blog.linoxide.com/wp-content/uploads/2015/01/restarting-tomcat-server.png)
+
+这将重启我们的tomcat服务器并加载将服务器绑定到IPv4的配置信息。
+
+### 结尾 ###
+
+好了,我们终于将我们运行在CentOS 7 Linux分布式系统上的tomcat服务器绑定到IPv4上了。尽管IPv6在不久的将来也许会得到应用,但由于现在还没有使用,如果因为将你的Tomcat服务器绑定到IPv6上而使得你的tomcat服务器不工作,就有必要将tomcat绑定到IPv4上,这也很简单。如果你有任何疑问,建议,反馈,请在下面的评论框中写下来,让我们知道有什么需要增加或者改进。非常感谢!
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/bind-apache-tomcat-ipv4-centos/
+
+作者:[Arun Pyasi][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
+[1]:http://www.apache.org/
+[2]:http://linoxide.com/linux-how-to/install-tomcat-8-centos-7/
diff --git a/translated/tech/20150205 How To Install or Configure VNC Server On CentOS 7.0.md b/translated/tech/20150205 How To Install or Configure VNC Server On CentOS 7.0.md
new file mode 100644
index 0000000000..58c846e4d6
--- /dev/null
+++ b/translated/tech/20150205 How To Install or Configure VNC Server On CentOS 7.0.md
@@ -0,0 +1,167 @@
+===>> boredivan翻译中 <<===
+怎样在CentOS 7.0上安装/配置VNC服务器
+================================================================================
+这是一个关于怎样在你的 CentOS 7 上安装配置 [VNC][1] 服务的教程。当然这个教程也适合 RHEL 7 。在这个教程里,我们将学习什么是VNC以及怎样在 CentOS 7 上安装配置 [VNC 服务器][1]。
+
+我们都知道,作为一个系统管理员,大多数时间是通过网络管理服务器的。在管理服务器的过程中很少会用到图形界面,多数情况下我们只是用 SSH 来完成我们的管理任务。在这篇文章里,我们将配置 VNC 来提供一个连接我们 CentOS 7 服务器的方法。VNC 允许我们开启一个远程图形会话来连接我们的服务器,这样我们就可以通过网络远程访问服务器的图形界面了。
+
+VNC 服务器是一个自由且开源的软件,它可以让用户可以远程访问服务器的桌面环境。另外连接 VNC 服务器需要使用 VNC viewer 这个客户端。
+
+** 一些 VNC 服务器的优点:**
+
+ 远程的图形管理方式让工作变得简单方便。
+ 剪贴板可以在 CentOS 服务器主机和 VNC 客户端机器之间共享。
+ CentOS 服务器上也可以安装图形工具,让管理能力变得更强大。
+ 只要安装了 VNC 客户端,任何操作系统都可以管理 CentOS 服务器了。
+ 比 ssh 图形和 RDP 连接更可靠。
+
+那么,让我们开始安装 VNC 服务器之旅吧。我们需要按照下面的步骤一步一步来搭建一个有效的 VNC。
+
+
+首先,我们需要一个有效的桌面环境(X-Window),如果没有的话要先安装一个。
+
+**注意:以下命令必须以 root 权限运行。要切换到 root ,请在终端下运行“sudo -s”,当然不包括双引号(“”)**
+
+### 1. 安装 X-Window ###
+
+首先我们需要安装 [X-Window][2],在终端中运行下面的命令,安装会花费一点时间。
+
+ # yum check-update
+ # yum groupinstall "X Window System"
+
+![installing x windows](http://blog.linoxide.com/wp-content/uploads/2015/01/installing-x-windows.png)
+
+ #yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
+
+![install gnome classic session](http://blog.linoxide.com/wp-content/uploads/2015/01/gnome-classic-session-install.png)
+
+ # unlink /etc/systemd/system/default.target
+ # ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
+
+![configuring graphics](http://blog.linoxide.com/wp-content/uploads/2015/01/configuring-graphics.png)
+
+ # reboot
+
+在服务器重启之后,我们就有了一个工作着的 CentOS 7 桌面环境了。
+
+现在,我们要在服务器上安装 VNC 服务器了。
+
+### 2. 安装 VNC 服务器 ###
+
+现在要在我们的 CentOS 7 上安装 VNC 服务器了。我们需要执行下面的命令。
+
+ # yum install tigervnc-server -y
+
+![vnc server](http://blog.linoxide.com/wp-content/uploads/2015/01/install-tigervnc.png)
+
+### 3. 配置 VNC ###
+
+然后,我们需要在 **/etc/systemd/system/** 目录里创建一个配置文件。我们可以从 **/lib/systemd/sytem/vncserver@.service** 拷贝一份配置文件范例过来。
+
+ # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
+
+![copying vnc server configuration](http://blog.linoxide.com/wp-content/uploads/2015/01/copying-configuration.png)
+
+接着我们用自己最喜欢的编辑器(这儿我们用的 **nano** )打开 **/etc/systemd/system/vncserver@:1.service** ,找到下面这几行,用自己的用户名替换掉 。举例来说,我的用户名是 linoxide 所以我用 linoxide 来替换掉 :
+
+ ExecStart=/sbin/runuser -l -c "/usr/bin/vncserver %i"
+ PIDFile=/home//.vnc/%H%i.pid
+
+替换成
+
+ ExecStart=/sbin/runuser -l linoxide -c "/usr/bin/vncserver %i"
+ PIDFile=/home/linoxide/.vnc/%H%i.pid
+
+如果是 root 用户则
+
+ ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
+ PIDFile=/root/.vnc/%H%i.pid
+
+![configuring user](http://blog.linoxide.com/wp-content/uploads/2015/01/configuring-user.png)
+
+好了,下面重启 systemd 。
+
+ # systemctl daemon-reload
+
+Finally, we'll create VNC password for the user . To do so, first you'll need to be sure that you have sudo access to the user, here I will login to user "linoxide" then, execute the following. To login to linoxide we'll run "**su linoxide" without quotes** .
+最后还要设置一下用户的 VNC 密码。要设置某个用户的密码,必须要获得该用户的权限,这里我用 linoxide 的权限,执行“**su linoxide**”就可以了。
+
+ # su linoxide
+ $ sudo vncpasswd
+
+![setting vnc password](http://blog.linoxide.com/wp-content/uploads/2015/01/vncpassword.png)
+
+**确保你输入的密码多于6个字符**
+
+### 4. 开启服务 ###
+
+用下面的命令(永久地)开启服务:
+
+ $ sudo systemctl enable vncserver@:1.service
+
+启动服务。
+
+ $ sudo systemctl start vncserver@:1.service
+
+### 5. 防火墙设置 ###
+
+我们需要配置防火墙来让 VNC 服务正常工作。
+
+ $ sudo firewall-cmd --permanent --add-service vnc-server
+ $ sudo systemctl restart firewalld.service
+
+![allowing firewalld](http://blog.linoxide.com/wp-content/uploads/2015/01/allowing-firewalld.png)
+
+现在就可以用 IP 和端口号(例如 192.168.1.1:1 ,这里的端口不是服务器的端口,而是视 VNC 连接数的多少从1开始排序——译注)来连接 VNC 服务器了。
+
+### 6. 用 VNC 客户端连接服务器 ###
+
+好了,现在已经完成了 VNC 服务器的安装了。要使用 VNC 连接服务器,我们还需要一个在本地计算机上安装的仅供连接远程计算机使用的 VNC 客户端。
+
+![remote access vncserver from vncviewer](http://blog.linoxide.com/wp-content/uploads/2015/01/vncviewer.png)
+
+你可以用像 [Tightvnc viewer][3] 和 [Realvnc viewer][4] 的客户端来连接到服务器。
+
+要用其他用户和端口连接 VNC 服务器,请回到第3步,添加一个新的用户和端口。你需要创建 **vncserver@:2.service** 并替换配置文件里的用户名和之后步骤里响应的文件名、端口号。**请确保你登录 VNC 服务器用的是你之前配置 VNC 密码的时候使用的那个用户名**
+
+
+
+VNC 服务本身使用的是5900端口。鉴于有不同的用户使用 VNC ,每个人的连接都会获得不同的端口。配置文件名里面的数字告诉 VNC 服务器把服务运行在5900的子端口上。在我们这个例子里,第一个 VNC 服务会运行在5901(5900 + 1)端口上,之后的依次增加,运行在5900 + x 号端口上。其中 x 是指之后用户的配置文件名 **vncserver@:x.service** 里面的 x 。
+
+在建立连接之前,我们需要知道服务器的 IP 地址和端口。IP 地址是一台计算机在网络中的独特的识别号码。我的服务器的 IP 地址是96.126.120.92,VNC 用户端口是1。执行下面的命令可以获得服务器的公网 IP 地址。
+
+ # curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
+
+### 总结 ###
+
+好了,现在我们已经在运行 CentOS 7 / RHEL 7 (Red Hat Enterprises Linux)的服务器上安装配置好了 VNC 服务器。VNC 是自由及开源的软件中最简单的一种能实现远程控制服务器的一种工具,也是 Teamviewer Remote Access 的一款优秀的替代品。VNC 允许一个安装了 VNC 客户端的用户远程控制一台安装了 VNC 服务的服务器。下面还有一些经常使用的相关命令。好好玩!
+
+#### 其他命令: ####
+
+- 关闭 VNC 服务。
+
+ # systemctl stop vncserver@:1.service
+
+- 禁止 VNC 服务开机启动。
+
+ # systemctl disable vncserver@:1.service
+
+- 关闭防火墙。
+
+ # systemctl stop firewalld.service
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/install-configure-vnc-server-centos-7-0/
+
+作者:[Arun Pyasi][a]
+译者:[boredivan](https://github.com/boredivan)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
+[1]:http://en.wikipedia.org/wiki/Virtual_Network_Computing
+[2]:http://en.wikipedia.org/wiki/X_Window_System
+[3]:http://www.tightvnc.com/
+[4]:https://www.realvnc.com/
diff --git a/translated/tech/20150215 How to analyze and view Apache web server logs interactively on Linux.md b/translated/tech/20150215 How to analyze and view Apache web server logs interactively on Linux.md
new file mode 100644
index 0000000000..51ad96d272
--- /dev/null
+++ b/translated/tech/20150215 How to analyze and view Apache web server logs interactively on Linux.md
@@ -0,0 +1,167 @@
+如何在Linux中以交互方式分析和查看Apache web服务器日志?
+================================================================================
+
+无论你是在网站托管业务,还是在自己的VPS上运行几个网站,你总会有机会想要显示访客数量例如前几的房客,请求使用的文件(无论是动态或者是静态),带宽的使用,客户端的浏览器,和相关的网站,等等。
+
+
+[GoAccess][1] 是一款用于Apache或者Nginx命令行日志分析和交互式查看器。有了这款工具,你不仅可以浏览到之前提及的相关数据,还可以分析网站服务器日志来进一步挖掘数据 - 然而 **这一切都可以在一个终端窗口实时输出**.由于今天的[大多数web服务器][2]使用一个Debian的衍生版或者基于红帽发行版来作为底层操作系统,我将会告诉你如何在Debian和CentOS中安装和使用GoAccess。
+
+
+### 在Linux系统安装GoAccess ###
+
+
+在Debian,Ubuntu及其衍生版本,运行一下命令来安装GoAccess:
+
+ # aptitude install goaccess
+
+在CentOS中,你将需要使你的[EPEL 仓库][3]可用然后执行以下命令:
+
+ # yum install goaccess
+
+在Fedora,同样使用yum命令:
+
+ # yum install goaccess
+
+
+如果你想从源码安装GoAccess来使后续的功能可用(例如 GeoIP 的位置),为你的操作系统安装[必需的依赖包][4],按以下步骤进行:
+
+ # wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz
+ # tar -xzvf goaccess-0.8.5.tar.gz
+ # cd goaccess-0.8.5/
+ # ./configure --enable-geoip
+ # make
+ # make install
+
+
+以上安装的版本是 0.8.5,但是你也可以在该软件的网站[下载页][5]确认是否是最新版本。
+
+
+由于GoAccess不需要后续的配置,一旦安装你就可以马上使用。
+
+
+### 运行 GoAccess ###
+
+开始使用GoAccess,只需要对它运行你的Apache访问日志。
+
+
+对于Debian及其衍生版本:
+
+ # goaccess -f /var/log/apache2/access.log
+
+
+基于红帽的发型版本:
+
+ # goaccess -f /var/log/httpd/access_log
+
+
+当你第一次启动GoAccess,你将会看到下方屏幕中选择日期和日志格式。正如前面所述,你可以选择在空格键和F10之间相互切换。至于日期和日志格式,你可能希望参考[Apache 文档][6]来刷新你的记忆。
+
+
+在这个例子中,选择常见日志格式(CLI):
+
+![](https://farm8.staticflickr.com/7422/15868350373_30c16d7c30.jpg)
+
+然后按F10.你将会从屏幕中获得统计数据。为了简约,只显示首部,也就是总结日志文件的摘要,如下图所示:
+
+
+![](https://farm9.staticflickr.com/8683/16486742901_7a35b5df69_b.jpg)
+
+### 通过 GoAccess来浏览网站服务器统计数据 ###
+
+当你通过向下的剪头滚动页面,你会发现一下章节,按要求进行排序。这里提及的目录顺序可能会根据你的发型版本或者(从源和库)首选的安装方式:
+
+1. 每天唯一访客(具有同样IP,同一日期和统一代理被认为是)
+
+![](https://farm8.staticflickr.com/7308/16488483965_a439dbc5e2_b.jpg)
+
+2. 请求的文件(网页URL)
+
+
+![](https://farm9.staticflickr.com/8651/16488483975_66d05dce51_b.jpg)
+
+3. 请求的静态文件(例如,.png文件,.js文件等等)
+
+4. 请求的URLs(每一个URL请求的出处)
+
+5. HTTP 404 不能找到响应的代码
+
+![](https://farm9.staticflickr.com/8669/16486742951_436539b0da_b.jpg)
+
+6. 操作系统
+
+7. 浏览器
+
+8. 主机(客户端IP地址)
+
+![](https://farm8.staticflickr.com/7392/16488483995_56e706d77c_z.jpg)
+
+9. HTTP 状态代码
+
+![](https://farm8.staticflickr.com/7282/16462493896_77b856f670_b.jpg)
+
+10. 前几位的推荐站点
+
+11. 在谷歌的搜索引擎使用的排名在前的关键字
+
+
+如果你还想检查已经存档的日志,你可以在GoAccess通过使用管道符号如下。
+
+在Debian及其衍生版本:
+
+ # zcat -f /var/log/apache2/access.log* | goaccess
+
+在基于红帽的发型版本:
+
+ # cat /var/log/httpd/access* | goaccess
+
+
+如果你需要任何更多关于以上的详细报告(1至11项),直接按下章节序号再按O(大写o),就可以显示出你需要的详细视图。下面的图像显示5-O的输出(先按5,再按O)
+
+![](https://farm8.staticflickr.com/7382/16302213429_48d9233f40_b.jpg)
+
+
+如果要现实GeoIP位置信息,打开详细视图的主机部分,如前面所述,你将会看到客户端IP地址所在的位置以及显示web服务器的请求。
+
+
+![](https://farm8.staticflickr.com/7393/16488484075_d778aa91a2_z.jpg)
+
+
+如果你的系统还尚未达到很忙碌的状态,以上提及的章节将不会显示大量的信息,但是这种情形可以通过在你网站服务器越来越多的请求发生改变。
+
+### 在线保存分析的报告 ###
+
+
+当然有时候你不想每次都实时去检查你的系统状态,但是保存一份在线的分析文件或者打印版是由必要的。要生成一个HTML报告,只需要通过之前提到GoAccess命令输出来简单地重定向道一个HTML文件。然后,你只需通过web浏览器来将这份报告打开即可。
+
+
+
+ # zcat -f /var/log/apache2/access.log* | goaccess > /var/www/webserverstats.html
+
+
+一旦报告生成,你将需要点击展开的链接来显示每个类别详细的视图信息:
+
+![](https://farm9.staticflickr.com/8658/16486743041_bd8a80794d_o.png)
+
+注释:youtube视频
+
+
+
+正如我们通过这篇文章讨论,GoAccess是一个非常可贵的工具,它提供给作为百忙之中的系统管理员一份HTTP统计的静态可是报告。虽然GoAccess默认其输出结果为标准输出,但是你也可以将他们保存到JSON,HTML或者CSV文件。这样的转换,GoAccess将作为一个非常有用的工具来监控和显示网站服务器的统计数据。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/interactive-apache-web-server-log-analyzer-linux.html
+
+作者:[Gabriel Cánepa][a]
+译者:[disylee](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://goaccess.io/
+[2]:http://w3techs.com/technologies/details/os-linux/all/all
+[3]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[4]:http://goaccess.io/download#dependencies
+[5]:http://goaccess.io/download
+[6]:http://httpd.apache.org/docs/2.4/logs.html
diff --git a/translated/tech/20150302 How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle.md b/translated/tech/20150302 How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle.md
new file mode 100644
index 0000000000..b8ed29b47c
--- /dev/null
+++ b/translated/tech/20150302 How to Limit the Network Bandwidth Used by Applications in a Linux System with Trickle.md
@@ -0,0 +1,314 @@
+如何在linux上使用Trickle来限制应用程序的网络宽带使用.
+================================================================================
+有没有遇到过系统中的某个应用程序独占了你所有的网络宽带的情形?如果你有过这样的遭遇,那么你就会感受到Trickle宽带调整应用角色的价值.不管你是一个系统管理员还是仅仅Linux用户,都需要学习如何控制应用程序的上下行速度,来确保你的网络宽带不会被某个程序
+霸占.
+
+![Install Trickle Bandwidth Limit in Linux](http://www.tecmint.com/wp-content/uploads/2013/11/Bandwidth-limit-trickle.png)
+Install Trickle Bandwidth Limit in Linux
+
+### 什么是 Trickle? ###
+
+Trickle是一个网络宽带调整工具,可以让我们管理应用程序的网络上下行速度,使得可以避免其中的某个应用程序吃掉了全部或大部分可用的宽带.换句话说,Trickle可以让你基于单个应用程序来控制
+网络流量速率,而不是仅仅针对与单个用户--在客户端网络环境中经典的宽带调整样例,
+
+### Trickle是如何工作的?###
+
+另外,tricle可以帮助我们基于应用来定义优先级,所以当对整个系统进行了全局限制设定,高优先级的应用依然会自动地获取更多的宽带。为了实现这个目标,tricle设置通过TCP连接的套接字对数
+据发送、数据接收路径的流量限制。我们必须注意到,除了影响传输速率之外,tricle任何时候都不会以任何方式来改变其处理过程。
+
+### Trickle不能做什么? ###
+
+这么说吧,唯一的限制就是,tricle静态连接的应用或者具有SUID或SGID位设置的二进制--因为他们使用动态链接并且将其自身加载到调整过程以及其关联的网络套接字之间。 Trickle此时会在这两种软件
+组件之间扮演代理的角色。
+
+由于trickle并不会需要超级用户的权限来运行,所以用户可以设置用户独立的流量限制,可能这并不是你想要的,我们会探索如何使用全局设定来限制系统中的所有用户的流量限制。也即是说,此时系统中的每个用户具有管理
+各自的流量速率,但是无论如何,都会受到系统管理员给他们设置的边界限制。
+
+在这边文章中,我们会描述如何通过trickle在linux平台上管理应用程序使用的网络宽带。为了生成必要流量,在此会在客户端(CentOS 7 server – dev1: 192.168.0.17)上使用 ncftpput 和
+ ncftpget, 在服务器(Debian Wheezy 7.5 – dev2: 192.168.0.15)上使用vsftpd 来进行演示。 相同的指令也可以在RedHat,Fedora和Ubuntu等系统使用。
+
+#### 前提条件 ####
+
+1. 对于 RHEL/CentOS 7/6, [开启EPEL仓库][1]。EPEL的Extra Packages是一个 有Fedora项目维护的高质量、开源的软件仓库,而且百分之百与其衍生产品相兼容,如
+企业版本Linux和CentOS. 在这个仓库中trickle和ncftp两者都是可用的。
+
+2. 按照如下方式安装ncftp:
+
+ # yum update && sudo yum install ncftp [On RedHat based systems]
+ # aptitude update && aptitude install ncftp [On Debian based systems]
+
+3. 在单独的服务器上设置一个FTP服务器。需要注意的是,尽管FTP天生就不安全,但是
+仍然被广泛应用在安全性无关紧要的文件上传下载中。 在这篇文章中我们使用它来演示
+trickle的优点,同时它也会在客户端的标准输出流中显示传输速率,我们将是否在另外
+的日期时间中使用放在一边讨论。
+
+ # yum update && yum install vsftpd [On RedHat based systems]
+ # aptitude update && aptitude install vsftpd [On Debian based systems]
+
+现在,在FTP服务器上按照以下方式编辑 /etc/vsftpd/vsftpd.conf 文件。
+
+ anonymous_enable=NO
+ local_enable=YES
+ chroot_local_user=YES
+ allow_writeable_chroot=YES
+
+在此之后,确保在你的当前会话中开启了vsftpd,并在之后的启动中让其自动启动。
+
+ # systemctl start vsftpd [For systemd-based systems]
+ # systemctl enable vsftpd
+ # service vsftpd start [For init-based systems]
+ # chkconfig vsftpd on
+
+4. 如果你选在在一个CentOS/RHEL 7中为FTP服务器的远程访问配备SSH秘钥,你需要
+一个具有适合访问root目录之外的目录和文件内容上传下载权限并密码受保护的用户账户。
+
+你可以通过在你的浏览器中输入以下的URL来浏览你的Home目录。一个登陆窗口会弹出来
+提示你输入FTP服务器中的有效的用户名和密码。
+
+ ftp://192.168.0.15
+
+如果验证成功,你就会看到你的home目录中的内容。该教程的稍后部分中,你将可以刷新
+页面来显示在你之前上传过的文件。
+
+![FTP Directory Tree](http://www.tecmint.com/wp-content/uploads/2013/11/FTP-Directory-Tree.png)
+FTP Directory Tree
+
+### 如何在Linux中安装 Tricle ###
+
+1. 通过yum或aptitude来安装tricle.
+
+为了确保能够成功安装,最好在安装工具之前,保证当前的安装包是最新的版本。
+
+
+ # yum -y update && yum install trickle [On RedHat based systems]
+ # aptitude -y update && aptitude install trickle [On Debian based systems]
+
+2. 确认trickle是否对特定的二进制包有用。
+
+之前我们解释过,trickle只对使用动态或共享包的二进制包有用。为了确认我们是否可以对某个特定的应用使用trickle,我们可以使用著名的ldd(
+列出动态依赖)工具。 特别地,我们会查看任何给定程序的动态依赖中检查其当前使用的glibc,因为其准确地定义了使用套接字交流中使用的系统调用。
+
+对一个给定的二进制包执行以下命令来查看是否能对其使用trickle进行宽带调整:
+
+ # ldd $(which [binary]) | grep libc.so
+
+例如,
+
+ # ldd $(which ncftp) | grep libc.so
+
+其输出是:
+
+ # libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)
+
+输出中的括号中的字符可能在不同的系统平台中发生改变,甚至相同的命令在不同的时候运行也会,因为其代表包加载到物理内存中的地址。
+
+如果上面的命令没有返回任何的结果,就说明这个二进制包没有使用libc包,因此tricle对其不能起到宽带调整的作用。
+
+### 学习如何使用Trickle###
+
+最基本的用法就是使用其单模式,通过这种方式,trickle用来显示地定义给定应用程序的上传下载速率。如前所述,为了简单性,我们会使用相同的应用
+来进行上传下载测试。
+
+#### 在单模式下运行trickle####
+
+我们会比较在有无trickle的情况下的上传下载速率, ‘-d’选项指示下载速率(KB/s单位),而'-u'选项指示相同单位的上传速率。另外我们会使用到‘-s’
+选项来指定trickle应该以单模式运行。
+
+以单模式运行trickle的基本语法如下:
+
+ # trickle -s -d [download rate in KB/s] -u [upload rate in KB/s]
+
+为了能够让你自己运行以下样例,确保你在自己的客户端安装了trickle和ncftp(我的是192.168.0.17)。
+
+**样例1:在有无trickle的情况下上传一个2.8 MB的PDF文件。**
+
+我们使用一个自由发布的LInux基础知识PDF文件来进行下面的测试[文件链接][2]。
+
+你可以首先使用下面的命令将这个文件下载到你当前的工作目录中:
+ # wget http://linux-training.be/files/books/LinuxFun.pdf
+
+下面是在没有trickle的情况下将一个文件上传到我们的FTP服务器的语法:
+
+ # ncftpput -u username -p password 192.168.0.15 /remote_directory local-filename
+
+其中的 /remote_directory 是相对于用户名的Home目录的上传路径,而local-filename是一个你当前工作目录中的文件。
+
+特别的是,在没有trickle的情形下,我们可以得到上传峰值速率52.02MB/s(请注意,这个不是真正的平均上传速率,而是峰值开始的瞬时值),而且这个文件几乎
+在瞬间就完成了上传。
+
+ # ncftpput -u username -p password 192.168.0.15 /testdir LinuxFun.pdf
+
+输出:
+
+ LinuxFun.pdf: 2.79 MB 52.02 MB/s
+
+在使用trickle的情况下,我们会限制上传速率在5KB/s。在第二次上传文件之前,我们需要在目标目录中删除这个文件,否则ncftp就会通知我们在目标
+目录中已经存在了与上传文件相同的文件,从而不会执行文件的传输:
+ # rm /absolute/path/to/destination/directory/LinuxFun.pdf
+
+然后:
+
+ # trickle -s -u 5 ncftpput -u username -p password 111.111.111.111 /testdir LinuxFun.pdf
+
+输出:
+
+ LinuxFun.pdf: 2.79 MB 4.94 kB/s
+
+在上面的样例中,我们看到平均的上传速率下降到了5KB/s。
+
+**样例2:在有无trickle的情况下下载相同过得2.8MB的PDF文件**
+
+首先,记得从原来的源文目录中删除这个PDF:
+
+ # rm /absolute/path/to/source/directory/LinuxFun.pdf
+
+请注意,下面的样例中将远程的文件下载到客户端机器的当前目录下,这是由FTP服务器的IP地址后面的·.·决定的。
+
+没有trickle的情况下:
+
+ # ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf
+
+输出:
+
+ LinuxFun.pdf: 2.79 MB 260.53 MB/s
+
+在有trickle的情况下,限制下载速率在20KB/s:
+
+ # trickle -s -d 30 ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf
+
+输出:
+
+ LinuxFun.pdf: 2.79 MB 17.76 kB/s
+
+### 在有监督的模式下运行Trickle [未管理的]###
+
+Tricle也可以在未管理的模式下运行,通过跟随在/etc/tricled.conf文件中定义的一系列参数。 这个文件定义了守护线程 trickled的行为以及如何管理tricle。
+
+另外,如果你想要全局设置被所有的应用程序使用的话,我们就会需要使用tricle命令。 这个命令运行守护线程并允许我们通过trickle定义所有应用程序共享的上传下载限制,不需要我们每次来进行指定。
+
+例如,运行:
+
+ # trickled -d 50 -u 10
+
+会导致任何通过tricle运行的应用程序的上传下载速率分别限制在30kb/s和10kb/s。
+
+请注意,你可以在任何时间都能确认守护线程tricled是否正在运行以及其运行参数:
+
+ # ps -ef | grep trickled | grep -v grep
+
+输出:
+
+ root 16475 1 0 Dec24 ? 00:00:04 trickled -d 50 -u 10
+
+**样例3:在是否使用tricle的情形下上传一个 19MB 的mp4文件到我们的FTP服务器。**
+
+在这个样例中,我们会使用“He is the gift”的自由分布视频,可以通过这个[链接][3]下载。
+
+我们将会在开始通过以下的命令将这个文件下载到你的当前工作目录中:
+
+ # wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
+
+首先,我们会使用之前列出的命令来开启守护进程trickled:
+
+ # trickled -d 30 -u 10
+
+在没有trickle时:
+
+ # ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
+
+输出:
+
+ 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 36.31 MB/s
+
+有trickle的时:
+
+ # trickle ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
+
+输出:
+
+ 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 9.51 kB/s
+
+我们可以看到上面的输出,上传的速率下降到了约 10KB/s。
+
+** 样例4:在有无trickle的情形下下载这个相同的视频 **
+
+与样例2一样,我们会将该文件下载到当前工作目录中。
+
+在没有trickle时:
+
+ # ncftpget -u username -p password 192.168.0.15 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
+
+输出:
+
+ 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 108.34 MB/s
+
+有trickle的时:
+
+ # trickle ncftpget -u username -p password 111.111.111.111 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
+
+输出:
+ 2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 29.28 kB/s
+
+上面的结果与我们之前设置的下载限速相对应(30KB/s)。
+
+**注意:** 一旦守护进程开启之后,没有必要使用trickle来为每个应用程序来单独设置限制。
+
+如前所述,每个人都可以进一步地通过tricled.conf来客制化tricle的宽带速率调整,该文件的一个典型的分区有以下部分组成:
+
+ [service]
+ Priority =
+ Time-Smoothing =
+ Length-Smoothing =
+
+其中,
+
+- [service] 用来指示我们想要对其进行宽带使用调整的应用程序名称
+- Priority 用来让我们为某个服务制定一个相对于其他服务高的优先级,这样就不允许守护进程管理中的一个单独的应用程序来占用所有的宽带。越小的数字代表更高的优先级。
+- Time-Smoothing [以秒计]: 定义了trickled让各个应用程序传输或接收数据的时间间隔。小的间隔值(0.1-1秒)对于交互式应用程序是理想的,因为这样会具有一个更加平滑的会话体验,而一个相对较大
+的时间间隔值(1-10秒)对于需要批量传输应用程序就会显得更好。如果没有指定该值,默认是5秒。
+- Length-smoothing [KB 单位]: 该想法与Time-Smoothing如出一辙,但是是基于I/O操作而言。如果没有指定值,会使用默认的10KB。
+
+平滑值的改变会被翻译为将指定的服务的使用一个间隔值而不是一个固定值。不幸的是,没有一个特定的公式来计算间隔值的上下限,主要依赖于特定的应用场景。
+
+下面是一个在CentOS 7 客户端中的tricled.conf 样例文件(192.168.0.17):
+
+ [ssh]
+ Priority = 1
+ Time-Smoothing = 0.1
+ Length-Smoothing = 2
+
+ [ftp]
+ Priority = 2
+ Time-Smoothing = 1
+ Length-Smoothing = 3
+
+使用该设置,tricled会为SSH赋予比FTP较高的传输优先级。值得注意的是,一个交互进程,例如SSH,使用了一个较小的时间间隔值,然而一个处理批量数据传输的服务如FTP使用一个较大的时间
+间隔来负责之前的样例中的上传下载速率,尽管不是百分百的有trickled指定的值,但是也已经非常接近了。
+
+### 总结 ###
+在该文章中,我们探索了任何使用trickle在基于Fedora发行版和Debian衍生版平台上来限制应用程序的宽带使用.也包含了其他的可能用法,但是不对以下情形进行限制:
+
+- 限制系统下载工具的下载速度,例如[wget][4],或 BT客户端.
+
+- 限制你的系统的包管理工具`[yun][5]`更新的速度 (如果是基于Debian系统的话,其包管理工具为`[aptitude][6]`)。
+
+- 如果你的服务器是在一个代理或防火墙后面(或者其本身即是代理或防火墙的话),你可以使用trickle来同时设定下载和上传速率,或者与客户端或外部交流速率。
+
+欢迎提问或留言.
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/manage-and-limit-downloadupload-bandwidth-with-trickle-in-linux/
+
+作者:[Gabriel Cánepa][a]
+译者:[theo-l](https://github.com/theo-l)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/gacanepa/
+[1]:http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
+[2]:http://linux-training.be/files/books/LinuxFun.pdf
+[3]:http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
+[4]:http://www.tecmint.com/10-wget-command-examples-in-linux/
+[5]:http://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/
+[6]:http://www.tecmint.com/dpkg-command-examples/
diff --git a/translated/tech/20150302 How to Setup Passwordless SSH Logon to Ubuntu 14.04.md b/translated/tech/20150302 How to Setup Passwordless SSH Logon to Ubuntu 14.04.md
deleted file mode 100644
index a3020446ee..0000000000
--- a/translated/tech/20150302 How to Setup Passwordless SSH Logon to Ubuntu 14.04.md
+++ /dev/null
@@ -1,85 +0,0 @@
-设置Ubuntu14.04无密码登录SSH
-================================================================================
-大家好,今天我来向大家介绍如何在可信的Ubuntu12.04上设置无密码登录SSH功能。仅在工作站有正确的(公私)密钥以供匹配时SSH服务端才会允许你登录,反之访问将不会被允许。
-
-正常情况下,我们需要连上SSH的控制台输入用户名和密码,两者结合使用。如果两者全部正确,我们就可以访问,反之访问被服务端拒绝。不过相比而言还有一种比用密码更安全的登录方式,我们用的不是密码在登录SSH我们用的是密钥。
-
-如果你想使用这个安全的方式,我们只需简单的禁用密码登录并只允许密钥即可。使用这种方式时,客户端计算机上会产生公私一对密钥。接着客户端得把公钥上传到SSH服务端的密要验证文件中去。在访问被授予前,服务器及客户端电脑互验密钥对。如果服务器上的公钥与客服端提交的私钥匹配访问开始,否则访问被拒绝。
-
-这是获取SSH服务器认证中非常安全的一种做法,如果你想为SSH用户登录实施安全的认证,这也是备受推崇的方式。这里快速的过一遍允许无密码登录SSH的配置过程。
-
-### 1.安装Openssh服务端 ###
-
-首先,我们需要更新我们的本地库索引。所以如下所见,我们需要先输入“apt-get update”
-
- $ sudo apt-get update
-
-![Updating Repo Index](http://blog.linoxide.com/wp-content/uploads/2015/02/updating-repo-list.png)
-
-现在我们可以通过以下命令安装openssh-server:
-
- $ sudo apt-get install openssh-server
-
-![Installing openssh server](http://blog.linoxide.com/wp-content/uploads/2015/02/installing-openssh-server.png)
-
-### 2. 开启openssh服务 ###
-
-在OpenSSH已经成功安装在Ubuntu14.04操作系统上了之后,我们要启动OpenSSH的服务。以下命令让你启动/开启服务。
-
- $ sudo service ssh start
-
-OR
-
- $ sudo /etc/init.d/ssh start
-
-### 3. 配置密钥对 ###
-
-在我们安装并启动了OpenSSH服务以后。现在终于到了要我们搞定公私钥对的时候了,在终端中运行以下命令:
-
- $ ssh-keygen -t rsa
-
-在运行完以上命令了以后,我们完成一系列的提示的任务。首先选择保存密钥路径,按回车将会选择默认路径即家目录的一个隐藏的.ssh文件夹。下一个提示是请输入提醒。我个人将此留白(回车过)。之后密钥对就会创建,大功告成。
-
-![Generating Key Pair](http://blog.linoxide.com/wp-content/uploads/2015/02/generating-key-pair.png)
-
-在密钥对生成以后,我们需要将**客户端的上的公钥复制到SSH服务端**或者宿主来创建对客户端的信任关系。运行以下命令复制客户端的公钥到服务端。
-
- $ ssh-copy-id user@ip_address
-
-在公钥上传之后,我们现在可以不用通过密码登陆SSH了。为此,我们需要通过以下命令用文本编辑器打开**etc/ssh/ssh_config**。
-
- $ sudo nano /etc/ssh/sshd_config
-
-现在,我们需要按照下图所示去到几行注释并进行一些赋值。
-
-![Configuring sshd Config](http://blog.linoxide.com/wp-content/uploads/2015/02/configuring-sshd_config.png)
-
-### 4. 重启SSH服务 ###
-
-最后,在我们配置完SSH服务端后,为了使改动生效我们需要重启SSH服务。在终端或控制台运行以下命令重启。
-
- $ sudo service ssh restart
-
-OR
-
- $ sudo /etc/init.d/ssh restart
-
-![Restarting ssh](http://blog.linoxide.com/wp-content/uploads/2015/02/restarting-ssh.png)
-
-现在,我们可以试试不用密码仅用密钥配对的方式登录ssh服务端了。
-
-### 总结 ###
-
-太好了!我们成功的配置了无密码登录SSH。这是获取SSH服务器认证中非常安全的一种做法,如果你想为SSH但用户登录实施安全的认证这也是备受推崇的方式。所以,如果你还有什么问题或建议,请在意见框中向我们反馈。很欣慰你能读完,祝你SSH登录愉快 :-)
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/ubuntu-how-to/setup-passwordless-ssh-logon-ubuntu-14-04/
-
-作者:[Arun Pyasi][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunp/
diff --git a/translated/tech/20150304 How To Fix Windows Updates Stuck At 0%.md b/translated/tech/20150304 How To Fix Windows Updates Stuck At 0%.md
deleted file mode 100644
index ca09f61d1c..0000000000
--- a/translated/tech/20150304 How To Fix Windows Updates Stuck At 0%.md
+++ /dev/null
@@ -1,54 +0,0 @@
-如何修复Windows更新在0%卡住
-================================================================================
-当你在一个月后登录Windows,发现有一些更新需要安装, 你选择安装这些更新但是**Windows更新卡在0%**时你感觉怎么样?
-
-为什么我在Linux和开源专属的博客上谈论Windows更新呢?因为我喜欢[双启动Windows和Linux][1]。当我使用Linux作为我的主桌面时,过了一段时间我登录到Windows中。登录Windows后最烦人的事情是Windows更新。我偶尔遇到了几次**Windows更新不能工作**的情况。我选择安装更新而且Windows更新卡在了0%和0KB上,就像这样:
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Windows_Updates_stuck_at_zero.jpeg)
-
-本教程中,我们会让Windows更新再次可用。这个教程应该同样适用于Windows 7、Windows 8和Windows 8.1。
-
-### 修复Windows更新卡在0% ###
-
-请注意Windows更新可能卡在任何地方,我们将会使用的这个技巧需要你重新安装这些更新。我希望你不要觉得太麻烦。如果你准备好了,就让我们开始修复这个Windows更新问题。
-
-#### 步骤 1: ####
-
-按下Windows+R。这时会弹出运行窗口。在这里我们输入services.msc:
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Updates_3.png)
-
-#### 步骤 2: ####
-
-这里会显示Windows上安装的所有服务。这些服务以字母排序。向下拉到**Windows Update Service**。右击并停止服务。
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Windows_Updates_stuck_1.jpeg)
-
-#### 步骤 3: ####
-
-现在进入**C:\Windows\SoftwareDistribution并删除这里所有的内容**。实际上,这个文件夹是下载和保存安装文件的地方。但是由于Windows更新卡住了,所以这里的某个安装文件存在一些问题。
-
-#### 步骤 4: ####
-
-回到前面的服务(第一步中提到的)并右击重新启动Windows更新服务。再重新试一下Windows更新,这次应该可以用了。
-
-当系统更新可以工作时,你或许会发现在下次启动时会有很多更新要安装。这时打个电话:
-
-
-![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/03/Windows_update_suck.jpg)
-
-玩笑之余,我希望这个贴士能够帮助你拜托Windows更新卡在0%的情况。我希望Linux中的更新也能够含在[Windows 10从Linux复制的特性][2]列表中。这只是我的希望。
-
---------------------------------------------------------------------------------
-
-via: http://itsfoss.com/fix-windows-updates-stuck-0/
-
-作者:[Abhishek][a]
-译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://itsfoss.com/author/abhishek/
-[1]:http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/
-[2]:http://itsfoss.com/windows-10-inspired-linux/
diff --git a/translated/tech/20150306 Nmap--Not Just for Evil.md b/translated/tech/20150306 Nmap--Not Just for Evil.md
deleted file mode 100644
index ba923d178d..0000000000
--- a/translated/tech/20150306 Nmap--Not Just for Evil.md
+++ /dev/null
@@ -1,41 +0,0 @@
-Nmap--不只是邪恶.
-================================================================================
-如果SSH是系统管理员世界的"瑞士军刀"的话,那么Nmap就是一盒炸药. 炸药很容易被误用然后将你的双脚崩掉,但是也是一个很有威力的工具,能够胜任一些看似无法完成的任务.
-
-大多数人想到Nmap时,他们想到的是扫描服务器,查找开放端口来实施工具. 然而,在过去的这些年中,同样的超能力在当你管理服务器或计算机遇到问题时变得难以置信的有用.无论是你试图找出在你的网络上有哪些类型的服务器使用了指定的IP地址,或者尝试锁定一个新的NAS设备,以及扫描网络等,都会非常有用.
-
-图1显示了我的QNAP NAS的网络扫描.我使用该单元的唯一目的是为了NFS和SMB文件共享,但是你可以看到,它包含了一大堆大开大敞的端口.如果没有Nmap,很难发现机器到底在运行着什么玩意儿.
-
-![](http://www.linuxjournal.com/files/linuxjournal.com/ufiles/imagecache/large-550px-centered/u1002061/11825nmapf1.jpg)
-
-### 图1 网络扫描 ###
-
-另外一个无法想象的用处是用它来扫描一个网络.你甚至根本不需要root的访问权限,而且你也可以非常容易地来指定你想要扫描的网络块,例如,输入:
-
- nmap 192.168.1.0/24
-
-上述命令会扫描我局部网络中全部的254个可用的IP地址,让我可以知道那个使可以Ping的,以及那些端口时开放的.如果你刚刚插入一片新的硬件,但是不知道它通过DHCP获取的IP地址,那么此时Nmap就是无价之宝. 例如,上述命令在我的网络中揭示了这个问题.
-
- Nmap scan report for TIVO-8480001903CCDDB.brainofshawn.com (192.168.1.220)
- Host is up (0.0083s latency).
- Not shown: 995 filtered ports
- PORT STATE SERVICE
- 80/tcp open http
- 443/tcp open https
- 2190/tcp open tivoconnect
- 2191/tcp open tvbus
- 9080/tcp closed glrpc
-
-它不仅显示了新的Tivo单元,而且还告诉我那些端口是开放的. 由于它的可靠性,可用性以及黑色边框帽子的能力,Nmap获得了本月的 <<编辑推荐>>奖. 这不是一个新的程序,但是如果你是一个linux用户的话,你应该玩玩它.
-
---------------------------------------------------------------------------------
-
-via: http://www.linuxjournal.com/content/nmap%E2%80%94not-just-evil
-
-作者:[Shawn Powers][a]
-译者:[theo-l](https://github.com/theo-l)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://www.linuxjournal.com/users/shawn-powers
diff --git a/translated/tech/20150316 How to access Gmail from the command line on Linux with Alpine.md b/translated/tech/20150316 How to access Gmail from the command line on Linux with Alpine.md
new file mode 100644
index 0000000000..ce347ad4e6
--- /dev/null
+++ b/translated/tech/20150316 How to access Gmail from the command line on Linux with Alpine.md
@@ -0,0 +1,103 @@
+如何在 Linux 中使用 Alpine 在命令行里获取 Gmail
+================================================================================
+假如你是一个命令行爱好者,我很确信你将张开双臂欢迎任何可以使你使用这个强大的工作环境来执行哪怕一项日常任务的工具,例如从 [安排日程][1] 、 [管理财务][2] 到 获取 [Facebook][3] 、[Twitter][4]等任务。
+
+在这个帖子中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:**获取 Google 的 Gmail 服务**,为此,我们将使用 Alpine,一个基于 ncurses 的多功能命令行邮件客户端(不要和 Alpine Linux 搞混淆)。我们将在 Alphine 中配置 Gmail 的 IMAP 和 SMTP 设定来通过 Google 的邮件服务器在终端环境中收取和发送邮件。在这个教程的最后,你将意识到只需几步就可以在 Alpine 中使用其他的邮件服务。
+
+诚然,已有许多卓越的基于 GUI 的邮件客户端存在,例如 Thunderbird, Evolution 或者甚至是 Web 界面,那么为什么还有人对使用命令行的邮件客户端来收取 Gmail 这样的事感兴趣呢?答案很简单。假如你需要快速地处理好事情并想避免使用不必要系统资源;或者你正工作在一个最小化安装(注:这里我感觉自己翻译有误)的服务器上,而它没有安装 X 服务(注:这里也需要更改);又或者是 X 服务在你的桌面上崩溃了,而你需要在解决这个问题之前急切地发送一些邮件。在上述所有的情况下, Alpine 都可以派上用场并在任何时间满足你的需求。
+
+除了简单的编辑,发送和接收文本类的邮件信息等功能外, Alpine 还可以进行加密,解密和对邮件信息进行数字签名,以及与 TLS(注:Transport Layer Security) 无缝集成。
+
+### 在 Linux 上安装 Alpine ###
+
+在基于 Red Hat 的发行版本上,可以像下面那样来安装 Alpine。需要注意的是,在 RHEL 或 CentOS 上,你需要首先启用 [EPEL 软件仓库][5]。
+
+ # yum install alpine
+
+在 Debian,Ubuntu 或它们的衍生发行版本上,你可以这样做:
+
+ # aptitude install alpine
+
+在安装完成后,你可以运行下面的命令来启动该邮件客户端:
+
+ # alpine
+
+在你第一次启用 Alpine 时,它将在当前用户的家目录下创建一个邮件文件夹(`~/mail`),并显现出主界面,正如下面的截屏所显示的那样:
+
+注:youtube视频,发布的时候做个链接吧(注:这里我不知道该如何操作,不过我已经下载了该视频,如有需要,可以发送)
+
+
+它的用户界面有下列几个模块:
+
+![](https://farm9.staticflickr.com/8724/16618079590_6c236ce2c2_c.jpg)
+
+请随意地浏览,操作来熟悉 Alpine。你总是可以在任何时候通过敲 'Q' 来回到命令提示符界面。请注意,所有的字符界面下方都有与操作相关的帮助。
+
+在进一步深入之前,我们将为 Alpine 创建一个默认的配置文件。为此,请关闭 Alpine,然后在命令行中执行下面的命令:
+
+ # alpine -conf > /etc/pine.conf
+
+### 配置 Alpine 来使用 Gmail 账号 ###
+
+一旦你安装了 Alpine 并至少花费了几分钟的时间来熟悉它的界面和菜单,下面便是实际配置它来使用一个已有的 Gmail 账户的时候了。
+
+在 Alpine 中执行下面的步骤之前,记得要通过你的 Web 邮件界面,在你的 Gmail 设定里启用 IMAP 协议。一旦在你的 Gmail 账户中 IMAP 被启用,执行下面的步骤来在 Alpine 中启用阅读 Gmail 信息的功能。
+
+首先,启动 Alpine。
+
+按 'S' 来进行设置,再按 'L' 选择 `collectionLists` 选项来定义不同的文件夹类别以帮助你更好地组织你的邮件:
+
+![](https://farm8.staticflickr.com/7614/16779579656_690eda419c_o.png)
+
+按 'A' 来新建一个文件夹并填写必要的信息:
+
+- **昵称**: 填写任何你想写的名字;
+- **服务器**: imap.gmail.com/ssl/user=yourgmailusername@gmail.com
+
+你可以将 `Path` 和 `View` 留白不填。
+
+然后按 `Ctrl+X` 并在有提示时输入你的 Gmail 密码:
+
+![](https://farm9.staticflickr.com/8611/16618079640_6f7dca336a_b.jpg)
+
+假如一切如预期一样进展顺利,就会出现一个以你先前填写的昵称来命名的新文件夹。你应该可以在这里找到你的 Gmail 信箱:
+
+![](https://farm8.staticflickr.com/7598/16804355052_10c1a6c5bd_b.jpg)
+
+为了验证,你可以比较在 Alpine 中显示的 "Gmail Sent" 信箱和在 Web 界面下的信箱:
+
+![](https://farm8.staticflickr.com/7602/16619323939_d2eab3e162_c.jpg)
+
+默认情况下,每隔 150 秒,它将自动检查新邮件或提示,你可以在文件 `/etc/pine.conf`中改变这个值,同时你还可以修改许多其他设定。这个配置文件拥有详细且清晰的注释。例如,为了将检查新邮件的时间间隔设定为 10 秒,你需要这样设定:
+
+ # The approximate number of seconds between checks for new mail
+ mail-check-interval=10
+
+最后,我们需要配置一个 SMTP 服务器来通过 Alpine 发送邮件信息。回到先前解释过的 Alpine 的设置界面,然后按 'C' 来设定一个 Google 的 SMTP 服务器地址,你需要像下面这样编辑 `SMTP Server`(为了发送) 这一行内容:
+
+ smtp.gmail.com:587/tls/user=yourgmailusername@gmail.com
+
+当你按 'E' 离开设定界面时,将会提醒你保存更改。一旦你保存了更改,马上你就可以通过 Alpine 来发送邮件了!为此,来到主菜单中的 `Compose` 选项,接着开始从命令行中操作你的 Gmail 吧。
+
+### 总结 ###
+
+在这个帖子里,我们讨论了在终端环境中如何通过一个名为 Alpha 的轻量且强大的命令行邮件客户端来获取 Gmail。 Alpine 是一个发布在 Apache Software License 2.0 协议下的自由软件,该协议与 GPL 协议相兼容。 Alpine 引以自豪的是:它不仅对新手友好,同时还做到了让那些经验丰富的系统管理员认为它是强大的。我希望在你阅读完这篇文章后,你能意识到我最后一个论断是多么的正确。
+
+非常欢迎使用下面的输入框来留下你的评论或问题。我期待着你们的反馈!
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/gmail-command-line-linux-alpine.html
+
+作者:[Gabriel Cánepa][a]
+译者:[FSSlc](https://github.com/FSSlc)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://xmodulo.com/schedule-appointments-todo-tasks-linux-terminal.html
+[2]:http://xmodulo.com/manage-personal-expenses-command-line.html
+[3]:http://xmodulo.com/access-facebook-command-line-linux.html
+[4]:http://xmodulo.com/access-twitter-command-line-linux.html
+[5]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
diff --git a/translated/tech/20150316 Systemd Boot Process a Close Look in Linux.md b/translated/tech/20150316 Systemd Boot Process a Close Look in Linux.md
new file mode 100644
index 0000000000..a2c2ea28be
--- /dev/null
+++ b/translated/tech/20150316 Systemd Boot Process a Close Look in Linux.md
@@ -0,0 +1,150 @@
+走进Linux之systemd启动过程
+================================================================================
+Linux系统的启动方式有点复杂,而且总是有需要优化的地方。传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统也被确认会有效率不足的问题,systemd是Linux系统机器的另一种启动方式,宣称弥补了以[传统Linux SysV init][2]为基础的系统的缺点。在这里我们将着重讨论systemd的特性和争议,但是为了更好地理解它,也会看一下通过传统的以SysV init为基础的系统的Linux启动过程是什么样的。友情提醒一下systemd仍然处在测试阶段,而未来发布的Linux操作系统也正准备用systemd启动管理程序替代当前的启动过程。
+
+### 理解Linux启动过程 ###
+
+在我们打开Linux电脑的电源后第一个启动的进程就是init。分配给init进程的PID是1。它是系统其他所有进程的父进程。当一台Linux电脑启动后,处理器会先在系统存储中查找BIOS,之后BIOS会测试系统资源然后找到第一个引导设备,通常设置为硬盘,然后会查找硬盘的主引导记录(MBR),然后加载到内存中并把控制权交给它,以后的启动过程就由MBR控制。
+
+主引导记录会初始化引导程序(Linux上有两个著名的引导程序,GRUB和LILO,80%的Linux系统在用GRUB引导程序),这个时候GRUB或LILO会加载内核模块。内核会马上查找/sbin下的init进程并执行它。从这里开始init成为了Linux系统的父进程。init读取的第一个文件是/etc/inittab,通过它init会确定我们Linux操作系统的运行级别。它会从文件/etc/fstab里查找分区表信息然后做相应的挂载。然后init会启动/etc/init.d里指定的默认启动级别的所有服务/脚本。所有服务在这里通过init一个一个被初始化。在这个过程里,init每次只启动一个服务,所有服务/守护进程都在后台执行并由init来管理。
+
+关机过程差不多是相反的过程,首先init停止所有服务,最后阶段会卸载文件系统。
+
+以上提到的启动过程有一些不足的地方。而用一种更好的方式来替代传统init的需求已经存在很长时间了。也产生了许多替代方案。其中比较著名的有Upstart,Epoch,Muda和Systemd。而Systemd获得最多关注并被认为是目前最佳的方案。
+
+### 理解Systemd ###
+
+开发Systemd的主要目的就是减少系统引导时间和计算开销。Systemd(系统管理守护进程),最开始以GNU GPL协议授权开发,现在已转为使用GNU LGPL协议,它是如今讨论最热烈的引导和服务管理程序。如果你的Linux系统配置为使用Systemd引导程序,那么代替传统的SysV init,启动过程将交给systemd处理。Systemd的一个核心功能是它同时支持SysV init的后开机启动脚本。
+
+Systemd引入了并行启动的概念,它会为每个需要启动的守护进程建立一个管道套接字,这些套接字对于使用它们的进程来说是抽象的,这样它们可以允许不同守护进程之间进行交互。Systemd会创建新进程并为每个进程分配一个控制组。处于不同控制组的进程之间可以通过内核来互相通信。[systemd处理开机启动进程][2]的方式非常漂亮,和传统基于init的系统比起来优化了太多。让我们看下Systemd的一些核心功能。
+
+- 和init比起来引导过程简化了很多
+- Systemd支持并发引导过程从而可以更快启动
+- 通过控制组来追踪进程,而不是PID
+- 优化了处理引导过程和服务之间依赖的方式
+- 支持系统快照和恢复
+- 监控已启动的服务;也支持重启已崩溃服务
+- 包含了systemd-login模块用于控制用户登录
+- 支持加载和卸载组件
+- 低内存使用痕迹以及任务调度能力
+- 记录事件的Journald模块和记录系统日志的syslogd模块
+
+Systemd同时也清晰地处理了系统关机过程。它在/usr/lib/systemd/目录下有三个脚本,分别叫systemd-halt.service,systemd-poweroff.service,systemd-reboot.service。这几个脚本会在用户选择关机,重启或待机时执行。在接收到关机事件时,systemd首先卸载所有文件系统并停止所有内存交换设备,断开存储设备,之后停止所有剩下的进程。
+
+![](http://images.linoxide.com/systemd-boot-process.jpg)
+
+### Systemd结构概览 ###
+
+让我们看一下Linux系统在使用systemd作为引导程序时的开机启动过程的结构性细节。为了简单,我们将在下面按步骤列出来这个过程:
+
+**1.** 当你打开电源后电脑所做的第一件事情就是BIOS初始化。BIOS会读取引导设备设定,定位并传递系统控制权给MBR(假设硬盘是第一引导设备)。
+
+**2.** MBR从Grub或LILO引导程序读取相关信息并初始化内核。接下来将由Grub或LILO继续引导系统。如果你在grub配置文件里指定了systemd作为引导管理程序,之后的引导过程将由systemd完成。Systemd使用“target”来处理引导和服务管理过程。这些systemd里的“target”文件被用于分组不同的引导单元以及启动同步进程。
+
+**3.** systemd执行的第一个目标是**default.target**。但实际上default.target是指向**graphical.target**的软链接。Linux里的软链接用起来和Windows下的快捷方式一样。文件Graphical.target的实际位置是/usr/lib/systemd/system/graphical.target。在下面的截图里显示了graphical.target文件的内容。
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/graphical1.png)
+
+**4.** 在这个阶段,会启动**multi-user.target**而这个target将自己的子单元放在目录“/etc/systemd/system/multi-user.target.wants”里。这个target为多用户支持设定系统环境。非root用户会在这个阶段的引导过程中启用。防火墙相关的服务也会在这个阶段启动。
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/multi-user-target1.png)
+
+"multi-user.target"会将控制权交给另一层“**basic.target**”。
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/Basic-Target.png)
+
+**5.** "basic.target"单元用于启动普通服务特别是图形管理服务。它通过/etc/systemd/system/basic.target.wants目录来决定哪些服务会被启动,basic.target之后将控制权交给**sysinit.target**.
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/Sysint-Target.png)
+
+**6.** "sysinit.target"会启动重要的系统服务例如系统挂载,内存交换空间和设备,内核补充选项等等。sysinit.target在启动过程中会传递给**local-fs.target**。这个target单元的内容如下面截图里所展示。
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/local-FS-Target.png)
+
+**7.** local-fs.target,这个target单元不会启动用户相关的服务,它只处理底层核心服务。这个target会根据/etc/fstab和/etc/inittab来执行相关操作。
+
+### 系统引导性能分析 ###
+
+Systemd提供了工具用于识别和定位引导相关的问题或性能影响。**Systemd-analyze**是一个内建的命令,可以用来检测引导过程。你可以找出在启动过程中出错的单元,然后跟踪并改正引导组件的问题。在下面列出一些常用的systemd-analyze命令。
+
+**systemd-analyze time** 用于显示内核和普通用户空间启动时所花的时间。
+
+ $ systemd-analyze time
+
+ Startup finished in 1440ms (kernel) + 3444ms (userspace)
+
+**systemd-analyze blame** 会列出所有正在运行的单元,按从初始化开始到当前所花的时间排序,通过这种方式你就知道哪些服务在引导过程中要花较长时间来启动。
+
+ $ systemd-analyze blame
+
+ 2001ms mysqld.service
+ 234ms httpd.service
+ 191ms vmms.service
+
+**systemd-analyze verify** 显示在所有系统单元中是否有语法错误。**systemd-analyze plot** 可以用来把整个引导过程写入一个SVG格式文件里。整个引导过程非常长不方便阅读,所以通过这个命令我们可以把输出写入一个文件,之后再查看和分析。下面这个命令就是做这个。
+
+ systemd-analyze plot > boot.svg
+
+### Systemd的争议 ###
+
+Systemd并没有幸运地获得所有人的青睐,一些专家和管理员对于它的工作方式和开发有不同意见。根据对于Systemd的批评,它不是“类Unix”方式因为它试着替换一些系统服务。一些专家也不喜欢使用二进制配置文件的想法。据说编辑systemd配置非常困难而且没有一个可用的图形工具。
+
+### 在Ubuntu 14.04和12.04上测试Systemd ###
+
+本来,Ubuntu决定从Ubuntu 16.04 LTS开始使用Systemd来替换当前的引导过程。Ubuntu 16.04预计在2016年4月发布,但是考虑到Systemd的流行和需求,即将发布的**Ubuntu 15.04**将采用它作为默认引导程序。好消息是Ubuntu 14.04 Trusty Tahr和Ubuntu 12.04 Precise Pangolin的用户可以在他们的机器上测试Systemd。测试过程并不复杂,你所要做的只是把相关的PPA包含到系统中,更新仓库并升级系统。
+
+**声明**:请注意它仍然处于Ubuntu的测试和开发阶段。升级测试包可能会带来一些未知错误,最坏的情况下有可能损坏你的系统配置。请确保在尝试升级前已经备份好重要数据。
+
+在终端里运行下面的命令来添加PPA到你的Ubuntu系统里:
+
+ sudo add-apt-repository ppa:pitti/systemd
+
+你将会看到警告信息因为我们尝试使用临时/测试PPA,而它们是不建议用于实际工作机器上的。
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/PPA-Systemd1.png)
+
+然后运行下面的命令更新APT包管理仓库。
+
+ sudo apt-get update
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/Update-APT1.png)
+
+运行下面的命令升级系统。
+
+ sudo apt-get dist-upgrade
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/System-Upgrade.png)
+
+就这些,你应该已经可以在你的Ubuntu系统里看到Systemd配置文件了,打开/lib/systemd/目录可以看到这些文件。
+
+好吧,现在让我们编辑一下grub配置文件指定systemd作为默认引导程序。可以使用Gedit文字编辑器编辑grub配置文件。
+
+ sudo gedit /etc/default/grub
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/Edit-Grub.png)
+
+在文件里修改GRUB_CMDLINE_LINUX_DEFAULT项,设定它的参数为:“**init=/lib/systemd/systemd**”
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/Grub-Systemd.png)
+
+就这样,你的Ubuntu系统已经不在使用传统的引导程序了,改为使用Systemd管理器。重启你的机器然后查看systemd引导过程吧。
+
+![](http://blog.linoxide.com/wp-content/uploads/2015/03/Sytemd-Boot.png)
+
+### 结论 ###
+
+Systemd毫无疑问为改进Linux引导过程前进了一大步;它包含了一套漂亮的库和守护进程配合工作来优化系统引导和关闭过程。许多Linux发行版正准备将它作为自己的正式引导程序。在以后的Linux发行版中,我们将有望看到systemd开机。但是另一方面,为了获得成功并广泛应用,systemd仍需要认真处理批评意见。
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/systemd-boot-process/
+
+作者:[Aun Raza][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunrz/
+[1]:http://linoxide.com/booting/boot-process-of-linux-in-detail/
+[2]:http://0pointer.de/blog/projects/self-documented-boot.html
diff --git a/translated/tech/20150318 11 Linux Terminal Commands That Will Rock Your World.md b/translated/tech/20150318 11 Linux Terminal Commands That Will Rock Your World.md
new file mode 100644
index 0000000000..fce6ed5c80
--- /dev/null
+++ b/translated/tech/20150318 11 Linux Terminal Commands That Will Rock Your World.md
@@ -0,0 +1,266 @@
+11个Linux终端命令,让你的世界摇滚起来
+================================================================================
+我已经用了十年的Linux了,通过今天这篇文章我将向大家展示一系列的,我希望一开始就有人教导而不是曾在我成长道路上绊住我的Linux命令、工具和花招。
+
+![Linux Keyboard Shortcuts.](http://f.tqn.com/y/linux/1/L/m/J/1/keyboardshortcuts.png)
+Linux的快捷键。
+
+### 1. 命令行日常系快捷键 ###
+
+如下的快捷方式非常有用,能够极大的提升你的工作效率:
+
+- CTRL + U - 剪切光标前的内容
+- CTRL + K - 剪切光标至行末的内容
+- CTRL + Y - 粘贴
+- CTRL + E - 移动光标到行末
+- CTRL + A - 移动光标到行首
+- ALT + F - 跳向下一个空格
+- ALT + B - 跳回上一个空格
+- ALT + Backspace - 删除前一个字
+- CTRL + W - 剪切光标后一个字
+- Shift + Insert - 向终端内粘贴文本
+
+那么为了让上诉内容更易理解来看下面的这行命令。
+
+ sudo apt-get intall programname
+
+如你所见,命令中存在拼写错误,为了正常执行需要把“intall”替换成“install”。
+
+想象现在光标正在行末,我们有很多的方法将她退回单词install并替换它。
+
+我可以按两次ALT+B这样光标就会在如下的位置(这里用^代替光标的位置)。
+
+ sudo apt-get^intall programname
+
+现在你可以按两下方向键并将“s”插入到install中去了。
+
+如果你想将浏览器中的文本复制到终端,可以使用快捷键"shift + insert"。
+
+![](http://f.tqn.com/y/linux/1/L/n/J/1/sudotricks2.png)
+
+### 2. SUDO !! ###
+
+这个命令如果你还不知道我觉得你应该好好感谢我,因为如果你不知道那每次你在输入长串命令后看到“permission denied”后一定会痛恼不堪。
+
+- sudo !!
+
+如何使用sudo !!?很简单。试想你刚输入了如下命令:
+
+ apt-get install ranger
+
+一定会出现"Permission denied"除非你的登录了足够高权限的账户。
+
+sudo !!就会用sudo的形式运行上一条命令。所以上一条命令可以看成是这样:
+
+ sudo apt-get install ranger
+
+如果你不知道什么是sudo[戳这里][1]。
+
+![Pause Terminal Applications.](http://f.tqn.com/y/linux/1/L/o/J/1/pauseapps.png)
+暂停终端运行的应用程序。
+
+### 3. 暂停并在后台运行命令 ###
+
+我曾经写过一篇如何在终端后台运行命令的指南。
+
+- CTRL + Z - 暂停应用程序
+- fg - 重新将程序唤到前台
+
+如何使用这个技巧呢?
+
+试想你正用nano编辑一个文件:
+
+ sudo nano abc.txt
+
+文件编辑到一半你意识到你需要马上在终端输入些命令,但是nano在前台运行让你不能输入。
+
+你可能觉得唯一的方法就是保存文件,推出nano,运行命令以后在重新打开nano。
+
+其实你只要按CTRL + Z前台的命令就会暂停,画面就切回到命令行了。然后你就能运行你想要运行命令,等命令运行完后在终端窗口输入“fg”就可以回到先前暂停的任务。
+
+有一个尝试非常有趣就是用nano打开文件,输入一些东西然后暂停会话。再用nano打开另一个文件,输入一些什么后再暂停会话。如果你输入“fg”你将回到第二个用nano打开的文件。只有退出nano再输入“fg”,你才会回到第一个用nano打开的文件。
+
+![nohup.](http://f.tqn.com/y/linux/1/L/p/J/1/nohup3.png)
+nohup.
+
+### 4. 使用nohup在登出SSH会话后仍运行命令 ###
+
+如果你用ssh登录别的机器时,[nohup命令]真的非常有用。
+
+那么怎么使用nohup呢?
+
+想象一下你使用ssh远程登录到另一台电脑上,你运行了一条非常耗时的命令然后退出了ssh会话,不过命令仍在执行。而nohup可以将这一场景变成现实。
+
+举个例子以测试为目的我用[树莓派][3]来下载发行版。
+
+我绝对不会给我的树莓派外接显示器、键盘或鼠标。
+
+一般我总是用[SSH] [4]从笔记本电脑连接到树莓派。如果我在不用nohup的情况下使用树莓派下载大型文件,那我就必须等待到下载完成后才能登出ssh会话关掉笔记本。如果是这样那我为什么要使用树莓派下文件呢?
+
+使用nohup的方法也很简单,只需如下例中在nohup后输入要执行的命令即可:
+
+ nohup wget http://mirror.is.co.za/mirrors/linuxmint.com/iso//stable/17.1/linuxmint-17.1-cinnamon-64bit.iso &
+
+![Schedule tasks with at.](http://f.tqn.com/y/linux/1/L/q/J/1/at.png)
+At管理任务日程
+
+### 5. ‘在’特定的时间运行Linux命令 ###
+
+‘nohup’命令在你用SSH连接到服务器,并在上面保持执行SSH登出前任务的时候十分有用。
+
+想一下如果你需要在特定的时间执行同一个命令,这种情况该怎么办呢?
+
+命令‘at’就能妥善解决这一情况。以下是‘at’使用示例。
+
+ at 10:38 PM Fri
+ at> cowsay 'hello'
+ at> CTRL + D
+
+上面的命令能在周五下午10时38分运行程序[cowsay] [5]。
+
+使用的语法就是‘at’后追加日期时间。
+
+当at>提示符出现后就可以输入你想在那个时间运行的命令了。
+
+CTRL + D返回终端。
+
+还有许多日期和时间的格式都是值得的你好好翻一翻‘at’的man手册来找到更多的使用方式。
+
+![](http://f.tqn.com/y/linux/1/L/l/J/1/manmost.png)
+
+### 6. Man手册 ###
+
+Man手册会为你列出命令和参数的使用大纲,教你如何使用她们。
+
+Man手册看起开沉闷呆板。(我思忖她们也不是被设计来娱乐我们的)。
+
+不过这不代表你不能做些什么来使她们变得性感点。
+
+ export PAGER=most
+
+你需要 ‘most’;她会使你的你的man手册的色彩更加绚丽。
+
+你可以用一下命令给man手册设定指定的行长:
+
+ export MANWIDTH=80
+
+最后,如果你有浏览器,你可以使用-H在默认浏览器中打开任意的man页。
+
+ man -H
+
+注意啦,以上的命令只有在你将默认的浏览器已经设置到环境变量$BROWSER中了之后才效果哟。
+
+![View Processes With htop.](http://f.tqn.com/y/linux/1/L/r/J/1/nohup2.png)
+使用htop查看进程。
+
+### 7. 使用htop查看和管理进程 ###
+
+你用哪个命令找出电脑上正在运行的进程的呢?我敢打赌是‘[ps][6]’并在其后加不同的参数来得到你所想要的不同输出。
+
+安装‘[htop][7]’吧!绝对让你相见恨晚。
+
+htop在终端中将进程以列表的方式呈现,有点类似于Windows中的任务管理器。
+
+你可以使用功能键的组合来切换排列的方式和展示出来的项。你也可以在htop中直接杀死进程。
+
+在终端中简单的输入htop即可运行。
+
+ htop
+
+![Command Line File Manager - Ranger.](http://f.tqn.com/y/linux/1/L/s/J/1/ranger.png)
+命令行文件管理 - Ranger.
+
+### 8. 使用ranger浏览文件系统 ###
+
+如果说htop是命令行进程控制的好帮手那么[ranger][8]就是命令行浏览文件系统的好帮手。
+
+你在用之前可能需要先安装,不过一旦安装了以后就可以在命令行输入以下命令启动她:
+
+ ranger
+
+在命令行窗口中ranger和一些别的文件管理器很像,但是她是左右结构的比起上下的来意味着你按左方向键你将前进到上一个文件夹结构而右方向键则会切换到下一个。
+
+在使用前ranger的man手册还是值得一读的,这样你就可以用快捷键操作ranger了。
+
+![Cancel Linux Shutdown.](http://f.tqn.com/y/linux/1/L/t/J/1/shutdown.png)
+Linux取消关机。
+
+### 9. 取消关机 ###
+
+无论是在命令行还是图形用户界面[关机][9]后发现自己不是真的想要关机。
+
+ shutdown -c
+
+需要注意的是,如果关机已经开始则有可能来不及停止关机。
+
+以下是另一个可以尝试命令:
+
+- [pkill][10] shutdown
+
+![Kill Hung Processes With XKill.](http://f.tqn.com/y/linux/1/L/u/J/1/killhungprocesses.png)
+使用XKill杀死挂起进程。
+
+### 10. 杀死挂起进程的简单方法 ###
+
+想象一下,你正在运行的应用程序不明原因的僵死了。
+
+你可以使用‘ps -ef’来找到该进程后杀掉或者使用‘htop’。
+
+有一个更快、更容易的命令叫做[xkill][11]。
+
+简单的在终端中输入以下命令并在窗口中点击你想杀死的应用程序。
+
+ xkill
+
+那如果整个系统挂掉了怎么办呢?
+
+按住键盘上的‘alt’和‘sysrq’同时输入:
+
+- [REISUB][12]
+
+这样不按电源键你的计算机也能重启了。
+
+![youtube-dl.](http://f.tqn.com/y/linux/1/L/v/J/1/youtubedl2.png)
+youtube-dl.
+
+### 11. 下载Youtube视频 ###
+
+一般来说我们大多数人都喜欢看Youtube的视频,也会通过钟爱的播放器播放Youtube的流。
+
+如果你需要离线一段时间(比如:从苏格兰南部坐飞机到英格兰南部旅游的这段时间)那么你可能希望下载一些视频到存储设备中,到闲暇时观看。
+
+你所要做的就是从包管理器中安装youtube-dl。
+
+你可以用以下命令使用youtube-dl:
+
+ youtube-dl url-to-video
+
+你能在Youtubu视频页面点击分享链接得到视频的url。只要简单的复制链接在粘帖到命令行就行了(要用shift + insert快捷键哟)。
+
+### 总结 ###
+
+希望你在这篇文章中得到帮助,并且在这11条中找到至少一条让你惊叹“原来可以这样”的技巧。
+
+--------------------------------------------------------------------------------
+
+via: http://linux.about.com/od/commands/tp/11-Linux-Terminal-Commands-That-Will-Rock-Your-World.htm
+
+作者:[Gary Newell][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linux.about.com/bio/Gary-Newell-132058.htm
+[1]:http://linux.about.com/cs/linux101/g/sudo.htm
+[2]:http://linux.about.com/library/cmd/blcmdl1_nohup.htm
+[3]:http://linux.about.com/od/mobiledevicesother/a/Raspberry-Pi-Computer-Running-Linux.htm
+[4]:http://linux.about.com/od/commands/l/blcmdl1_ssh.htm
+[5]:http://linux.about.com/cs/linux101/g/cowsay.htm
+[6]:http://linux.about.com/od/commands/l/blcmdl1_ps.htm
+[7]:http://www.linux.com/community/blogs/133-general-linux/745323-5-commands-to-check-memory-usage-on-linux
+[8]:http://ranger.nongnu.org/
+[9]:http://linux.about.com/od/commands/l/blcmdl8_shutdow.htm
+[10]:http://linux.about.com/library/cmd/blcmdl1_pkill.htm
+[11]:http://linux.about.com/od/funnymanpages/a/funman_xkill.htm
+[12]:http://blog.kember.net/articles/reisub-the-gentle-linux-restart/
diff --git a/translated/tech/20150323 How to enable ssh login without entering password.md b/translated/tech/20150323 How to enable ssh login without entering password.md
new file mode 100644
index 0000000000..4f9a4c317d
--- /dev/null
+++ b/translated/tech/20150323 How to enable ssh login without entering password.md
@@ -0,0 +1,41 @@
+如何实现ssh无密码登录
+================================================================================
+假设你是hostA上的一个用户"aliceA",想以用户“aliceB”的身份ssh到hostB上,但又不想输入密码。那么,你可以参考这篇教程实现ssd无密码登录。
+
+首先,你需要以用户“aliceA”的身份登录到hostA上。
+
+然后,使用ssh-keygen生成一对rsa公私钥,生成的密钥对会存放在~/.ssh目录下。
+
+ $ ssh-keygen -t rsa
+
+接下来,使用下面的命令在目标主机hostB上的aliceB用户目录下创建~/.ssh目录。如果在aliceB@hostB上已经存在.ssh目录,这一步会被略过。
+
+ $ ssh aliceB@hostB mkdir -p .ssh
+
+最后,将hostA上用户“aliceA”的公钥拷贝到aliceB@hostB上,来实现无密码ssh。
+
+ $ cat .ssh/id_rsa.pub | ssh aliceB@hostB 'cat >> .ssh/authorized_keys'
+
+自此以后,从aliceA@hostA上ssh到aliceB@hostB上再也不需要输入密码。
+
+### 疑难解答 ###
+
+1. 即使在密钥认证生效后,你可能仍然需要输入SSH密码。如果遇到这种情况,请检查系统日志(如/var/log/secure)以查看是否出现下面的异常。
+
+ Authentication refused: bad ownership or modes for file /home/aliceB/.ssh/authorized_keys
+
+在这种情况下,密钥认证的失败是由于~/.ssh/authorized_keys文件的权限或拥有者不正确。一般情况,如果这个文件对除了你之外的所有用户都可读,就会出现这个错误。用下面的方式改变文件的权限以修正错误。
+
+ $ chmod 700 ~/.ssh/authorized_keys
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/how-to-enable-ssh-login-without.html
+
+作者:[Dan Nanni][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
\ No newline at end of file
diff --git a/translated/tech/20150323 Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS.md b/translated/tech/20150323 Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS.md
new file mode 100644
index 0000000000..3108d1ed32
--- /dev/null
+++ b/translated/tech/20150323 Linux FAQs with Answers--How to install and access CentOS remote desktop on VPS.md
@@ -0,0 +1,121 @@
+Linux有问必答-- 如何在VPS上安装和访问CentOS远程桌面
+================================================================================
+> **提问**: 我想在VPS中安装CentOS桌面,并可以直接从我家远程访问GUI桌面。有什么建议可以在VPS上设置和访问CentOS远程桌面?
+
+如何远程办公或者远程弹性化工作制在技术领域正变得越来越流行。这个趋势背后的一个技术就是远程桌面。你的桌面环境在云中,你可以在任何你去的地方,或者在家或者工作场所访问你的远程桌面。
+
+这个教程介绍如何VPS中设置基于CentOS的远程桌面。现在,我们会先展示CentOS的基础环境。
+
+我们假设你已经创建了CentOS 7的VPS实例(比如,使用[DigitalOcean][1] 或者 Amazon EC2)。请确保你的VPS实例有至少1GB的内存。不然,CentOS将会在你访问远程桌面的时候回崩溃。
+
+### 第一步: 安装CentOS桌面 ###
+
+如果现在的CentOS版本是没有桌面的最小版本,你需要先在VPS上安装桌面(比如GNOME)。比如,DigitalOcean的镜像就是最小版本,它需要如下安装[桌面GUI][2]
+
+ # yum groupinstall "GNOME Desktop"
+
+在安装完成之后重启VPS。
+
+### 第二步:安装和配置VNC服务器 ###
+
+接下来就是安装和配置VNC服务器。我们使用的是TigerVNC,一个开源的VNC服务实现。
+
+ # yum install tigervnc-server
+
+现在创建一个用户账户(比如:xmodulo)用来访问远程桌面。
+
+ # useradd xmodulo
+ # passwd xmodulo
+
+当一个用户尝试使用VNC访问远程桌面时,VNC守护进程就会启动来处理这个请求。这意味着你需要为每个用户创建一个独立的VNC配置文件。
+
+CentOS依靠systemd来管理和配置系统服务。所以我们将使用systemd来为用户xmodulo配置VNC服务器。
+
+首先让我们使用下面任意一条命令来检查VNC服务器的状态。
+
+ # systemctl status vncserver@:.service
+ # systemctl is-enabled vncserver@.service
+
+默认上,刚安装的VNC服务并没有激活(禁用)。
+
+![](https://farm8.staticflickr.com/7613/16877514732_8ccffe7b6b_b.jpg)
+
+现在服务一份通用的VNC服务文件来位用户xmodulo创建一个VNC服务配置。
+
+ # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
+
+用本文编辑器来打开配置文件,用实际的用户名(比如:xmodulo)来替换[Service]下面的。同样。在ExecStart后面追加 "-geometry " 参数。最后,要修改下面两行加粗字体的两行。
+
+ # vi /etc/systemd/system/vncserver@:1.service
+
+----------
+
+ [Service]
+ Type=forking
+ # Clean any existing files in /tmp/.X11-unix environment
+ ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+ ExecStart=/sbin/runuser -l xmodulo -c "/usr/bin/vncserver %i -geometry 1024x768"
+ PIDFile=/home/xmodulo/.vnc/%H%i.pid
+ ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+
+现在为用户xmodulo设置密码(可选)。首先切换到该用户,并运行vncserver命令。
+
+ # su - xmodulo
+ # vncserver
+
+你会被提示输入用户的VNC密码。密码设置完成后,你下次需要用这个密码来访问你的远程桌面。
+
+![](https://farm9.staticflickr.com/8752/16692564599_9c4e5da1b6_b.jpg)
+
+最后,重新加载服务来使新的VNC配置生效:
+
+ # systemctl daemon-reload
+
+在启动时自动启动VNC服务:
+
+ # systemctl enable vncserver@:1.service
+
+检查vnc服务正在监听的端口:
+
+ # netstat -tulpn | grep vnc
+
+![](https://farm8.staticflickr.com/7625/16692646729_7bb16c4897_b.jpg)
+
+端口5901是VNC默认的客户端连接到VNC服务器使用的端口。
+
+### 第三步:通过SSH连接到远程桌面 ###
+
+设计上,VNC使用的远程帧缓存(RFB)并不是一种安全的协议。那么在VNC客户端上直接连接到VNC服务器上并不是一个好主意。任何敏感信息比如密码都可以在VNC流量中被轻易地泄露。因此,我强烈建议使用SSH隧道来[加密你的VNC流量][3]。
+
+在你要运行VNC客户端的本机上,使用下面的命令来创建一个连接到远程VPS的SSH通道。当被要输入SSH密码时,输入用户的密码。
+
+ $ ssh xmodulo@ -L 5901:127.0.0.1:5901
+
+用你自己的VNC用户名来替换“xmodulo”,并填上你自己的VPS IP地址。
+
+一旦SSH通道建立之后,远程VNC流量就会通过ssh通道路由并发送到127.0.0.1:5901。
+
+现在启动你最爱的VNC客户端(比如:vinagre),来连接到127.0.0.1:5901。
+
+![](https://farm8.staticflickr.com/7639/16691289910_fae83510fb_o.png)
+
+你将被要求输入VNC密码。当你输入VNC密码时,你就可以安全地连接到CentOS的远程桌面了.
+
+![](https://farm8.staticflickr.com/7614/16877678411_aa8349f6b1_c.jpg)
+
+![](https://farm9.staticflickr.com/8702/16256320434_81f9b5b70c_c.jpg)
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/centos-remote-desktop-vps.html
+
+作者:[Dan Nanni][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://ask.xmodulo.com/author/nanni
+[1]:http://xmodulo.com/go/digitalocean
+[2]:http://xmodulo.com/how-to-install-gnome-desktop-on-centos.html
+[3]:http://xmodulo.com/how-to-set-up-vnc-over-ssh.html
diff --git a/translated/tech/20150324 4 Tools to Securely Delete Files from Linux.md b/translated/tech/20150324 4 Tools to Securely Delete Files from Linux.md
new file mode 100644
index 0000000000..bbf0dcb3bf
--- /dev/null
+++ b/translated/tech/20150324 4 Tools to Securely Delete Files from Linux.md
@@ -0,0 +1,130 @@
+# Linux 下四种安全删除文件的工具 #
+
+任何一个普通水平的计算机用户都知道,从计算机系统中删除的任意数据都可以稍候通过一些努力恢复出来。当你不小心删除了你的重要数据,这是一个不错的方案。但是大多数情况,你不希望你的隐私数据被轻易地恢复。不论何时,我们删除任意的文件,操作系统删除的仅仅是特定数据的索引。这就意味着,数据仍然保存在磁盘的某块地方,这种方法是不安全的,任何一个聪明的计算机黑客可以使用任意不错的数据恢复工具来恢复你删除的数据。Linux 用户利用我们都知晓的 "rm" 命令来从他们的操作系统中删除数据,但是 "rm" 命令在约定俗成的场景下工作。从这个命令删除的数据也可以使用特殊的文件恢复工具恢复。
+
+让我们看看怎样安全并且完整地从你地 Linux 系统中删除文件或者文件夹。以下提到的工具可以完全地删除数据,因此那些恢复工具很难找到真实数据的痕迹然后恢复它。
+
+### Secure-Delete ###
+
+Secure-Delete 是一组为 Linux 操作系统而生的工具集合,他们为永久删除文件提供高级的技术支持。一旦 Secure-Delete 安装在任意的 Linux 系统,它会提供如下的四个命令:
+
+- srm
+- smem
+- sfill
+- sswap
+
+在 ubuntu 的终端中运行如下命令安装此工具:
+
+ sudo apt-get install secure-delete
+
+![secure delete](http://blog.linoxide.com/wp-content/uploads/2015/03/secure-delete.png)
+
+在 RHEL,Fedora 或者 Centos 中运行如下命令安装此工具:
+
+ sudo yum install secure-delete
+
+“**srm**” 命令的工作方式和 "rm" 命令类似,但是它不仅仅是删除文件,它首先使用一些随机的数据重写数次文件,然后彻底地删除此文件。这个命令的语法是相当地简单,仅仅指定要删除的文件或者目录,然后它会负责此任务。
+
+ sudo srm /home/aun/Documents/xueo/1.png
+
+"**sfill**" 检测在指定的分区或者目录被标记为空闲或者可用的空间,然后使用它自身的算法用一些随机数据填充。因此它保证了在此分区没有可以恢复的文件或者文件夹。
+
+ sudo sfill /home
+
+"**sswap**" 命令用来安全地清除你的交换分区。交换分区用来存放运行程序的数据。首先我们需要运行如下命令来找到你的交换分区。
+
+ cat /proc/swaps
+
+如下是上述命令的输出示例:
+
+ aun@eagle:~$ cat /proc/swaps
+ Filename Type Size Used Priority
+ /dev/sda5 partition 2084860 71216 -1
+
+从现在起,你可以看到你的交换分区设置在哪个分区,然后使用如下命令安全地清除。替换 "/dev/sda5" 部分为你的交换分区名字。
+
+ sudo sswap /dev/sda5
+
+“**smem**” 用来清理在内存中的内容,它保证当系统重启或者关机时随机存取存储器(RAM)中的内容被清理,但是残余的数据痕迹仍然保存在内存。这个命令提供安全的内存清理,简单地在终端中运行 smem 命令。
+
+ smem
+
+### Shred ###
+
+"shred" 命令销毁文件或者文件夹的内容,在某种程度上,不可能恢复。它使用随机生成的数据模式来持续重写文件,因此很难恢复任意的被销毁的数据,即使是那些黑客或者窃贼使用高水平的数据恢复工具或者设备。Shred 在 Linux 发行版中时默认安装的,如果你想,你可以运行如下命令来找到它的安装目录:
+
+ aun@eagle:~$ whereis shred
+
+ shred: /usr/bin/shred /usr/share/man/man1/shred.1.gz
+
+使用 shred 工具运行如下命令来删除文件:
+
+ shred /home/aun/Documents/xueo/1.png
+
+使用 shred 运行如下命令来删除任意的分区,用你期望的分区来替换分区名字。
+
+ shred /dev/sda5
+
+Shred 默认情况下使用随机内容重写数据 25 次。如果你想它重写文件更多次数,可以使用 "shred -n" 选项来简单地指定你所期望的次数。
+
+ shred -n 100 filename
+
+如果你想在重写后截断或者删除文件,使用 "shred -u" 选项:
+
+ shred -u filename
+
+### dd ###
+
+这个命令起初是用于磁盘克隆的。它用于一个分区或者一个磁盘复制到另一个分区或者磁盘。但是它还用于安全地清除硬盘或者分区的内容。运行如下命令使用随机数据来重写你的当前数据。你不需要安装 dd 命令,所有的 Linux 分发版都已经包含了此命令。
+
+ sudo dd if=/dev/random of=/dev/sda
+
+你也可以重写磁盘或者分区中的内容,只需要简单地将所有替换为 “zero”。
+
+ sudo dd if=/dev/zero of=/dev/sda
+
+### Wipe ###
+
+Wipe 起初开发的目的是从磁媒体中安全地擦除文件。这个命令行工具使用特殊的模式来重复地写文件。它使用 fsync() 调用和或 O_SYNC 位来强制访问磁盘,并且使用 Gutmann 算法来重复地写。你可以使用此命令删除单个文件,文件夹或者整个磁盘的内容,但是使用 wipe 命令来删除整个磁盘的模式会耗费大量的时间。另外,安装和使用这个工具相当容易。
+
+在 ubuntu 的终端中运行如下命令来安装 wipe。
+
+ sudo aptitude install wipe
+
+![Wipe Linux](http://blog.linoxide.com/wp-content/uploads/2015/03/wipe.png)
+
+使用如下命令在 Redhat Linux,Centos 或者 Fedora 中安装 Wipe:
+
+ sudo yum install wipe
+
+一旦安装完成,在终端中运行如下命令来获得完整的可用选项列表:
+
+ man wipe
+
+删除任意文件或者目录:
+
+ wipe filename
+
+运行如下命令来安全地移除 tmp 分区:
+
+ wipe -r /tmp
+
+使用如下的命令来删除完整分区的内容(替换分区名字为你所期望的分区)。
+
+ wipe /dev/sda1
+
+### 小结 ###
+
+我们期望这篇文章对你有帮助,你的数据隐私是有决定性意义的,在你的系统中安装这些安全的删除工具对你来说非常重要,因此你可以删除你的隐私数据而不用担心它们被轻易地恢复。上面提到的所有工具都是相当轻量的,它们只需要耗费最低的系统资源来运行,并且无论如何也不会影响你的系统性能。享受它们带来的便利吧!
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/security/delete-files-permanatly-linux/
+
+作者:[Aun Raza][a]
+译者:[dbarobin](https://github.com/dbarobin)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunrz/
\ No newline at end of file
diff --git a/translated/tech/20150324 How to Interactively Create a Docker Container.md b/translated/tech/20150324 How to Interactively Create a Docker Container.md
new file mode 100644
index 0000000000..9661e8d3f2
--- /dev/null
+++ b/translated/tech/20150324 How to Interactively Create a Docker Container.md
@@ -0,0 +1,99 @@
+如何交互式地创建一个Docker容器
+===============================================================================
+大家好,今天我们来学习如何使用一个docker镜像交互式地创建一个Docker容器。一旦我们从镜像中启动一个Docker进程,Docker就会在父镜像与子镜像间来回搬运,重复工作,直到到达子镜像。然后联合文件系统会在顶层添加一个读写层。读写层又叫一个 **Container** 包含一些信息,关于它的父镜像和一些其他的信息,如单独的ID,网络配置和资源限制。容器已经声明,他们可以从 **running** 切换到 **exited** 状态。一个处于 **running** 状态的容器包含了很多分支在CPU上面运行,独立于其他在主机上运行的进程,而主机上 **exited** 是文件系统的状态,它的退出变量值是保留的。你可以使用读写层来启动,停止和重启一个容器。
+
+Docker技术为IT界带来了巨大的改变,它使得云服务可以用来共享应用和工作流程自动化,使得应用可以从组件快速组合,消除了开发与品质保证和产品环境间的摩擦。在这篇文章中,我们将会建立CentOS环境,然后维护一个网站,在Apache网络服务器下运行。
+
+这是快速且容易的教程,讨论我们怎样使用一个交互的shell,以一个交互的方式来创建一个容器。
+
+### 1. 运行一个Docker实例 ###
+
+Docker一开始尝试从本地取得和运行所需的镜像,如果在本地主机上没有发现,它就会从[Docker公共注册中心][1]拉取。这里,我们将会在一个DOcker容器里取得并创建一个fedora实例,附加一个bash shell到tty
+
+ # docker run -i -t fedora bash
+
+![Downloading Fedora Base Image](http://blog.linoxide.com/wp-content/uploads/2015/03/downloading-fedora-base-image.png)
+
+### 2.安装Apache网络服务器 ###
+
+现在,在我们的Fedora基本镜像准备好后,我们将会开始交互式地安装Apache网络服务器,而不必为它创建Dockerfile。为了做到这点,我们需要在终端或者shell运行以下命令。
+
+ # yum update
+
+![Installing httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/installing-httpd2.png)
+
+ # yum install httpd
+
+![Installing httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/installing-httpd2.png)
+
+ # exit
+
+### 3.Saving the Image ###
+
+现在,我们要去保存在Fedora实例里做的修改。要做到这个,我们首先需要知道实例的容器ID。而为了得到ID,我们又需要运行以下命令。
+
+ # docker ps -a
+
+![Docker Running Container](http://blog.linoxide.com/wp-content/uploads/2015/03/docker-running-container.png)
+
+然后,我们会保存这些改变为一个新的镜像,请运行以下命令。
+
+ # docker commit c16378f943fe fedora-httpd
+
+![committing fedora httpd](http://blog.linoxide.com/wp-content/uploads/2015/03/committing-fedora-httpd.png)
+
+这里,修改已经通过使用容器ID保存起来了,镜像名字叫fedora-httpd。为了确认新的镜像时候在运行,我们将运行以下命令
+
+ # docker images
+
+![view docker images](http://blog.linoxide.com/wp-content/uploads/2015/03/view-docker-images.png)
+
+### 4. 添加内容到新的镜像 ###
+
+我们自己新的Fedora Apache镜像正成功的运行,现在我们想添加一些网页内容到Apache网络服务器,包括我们的网站,使得网站能够脱离盒子正确运行。为做到这点,我们需要创建一个新的Dockerfile,它会处理从复制网页内容到使用80端口的所有操作。而为做到这,我们又需要使用我们最喜欢的文本编辑器创建Dockerfile文件,像下面演示的一样。
+
+ # nano Dockerfile
+
+现在,我们需要添加以下的命令行到文件中。
+
+ FROM fedora-httpd
+ ADD mysite.tar /tmp/
+ RUN mv /tmp/mysite/* /var/www/html
+ EXPOSE 80
+ ENTRYPOINT [ "/usr/sbin/httpd" ]
+ CMD [ "-D", "FOREGROUND" ]
+
+![configuring Dockerfile](http://blog.linoxide.com/wp-content/uploads/2015/03/configuring-Dockerfile.png)
+
+这里,运行Dockerfile,mysite.tar里的网页内容会自动解压到/temp/文件夹里。然后,整个文件会被转移到Apache网页根目录/var/www/html/,命令expose 80会打开80端口,这样网站就能正常访问。其次,入口点放在了/usr/sbin/https里面,保证Apache服务器能够执行。
+
+### 5. 建立并运行一个容器 ###
+
+现在,为了添加我们网站在上面,我们要用刚刚创建的Dockerfile创建我们的容器,为做到这,我们需要运行以下命令。
+
+ # docker build -rm -t mysite .
+
+![Building mysite Image](http://blog.linoxide.com/wp-content/uploads/2015/03/building-mysite-image.png)
+
+我们建立自己的容器后,我们想要用下面的命令来运行容器。
+
+ # docker run -d -P mysite
+
+![Running mysite Container](http://blog.linoxide.com/wp-content/uploads/2015/03/running-mysite-container.png)
+
+### 总结 ###
+
+最后,我们已经成功的以交互式的方式建立了一个Docker容器。在本节方法中,我们是直接通过交互的shell命令建立我们的容器和镜像。这种方法十分简单且快速,在建立与配置镜像与容器方面。如果你有任何问题,建议和反馈,请在下方的评论框里写下来,以便我们可以提升或者更新我们的文章。谢谢!祝生活快乐 :-)
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/interactively-create-docker-container/
+
+作者:[Arun Pyasi][a]
+译者:[wi-cuckoo](https://github.com/wi-cuckoo)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
+[1]:https://registry.hub.docker.com/
diff --git a/translated/tech/20150326 A Peep into Process Management Commands in Linux.md b/translated/tech/20150326 A Peep into Process Management Commands in Linux.md
new file mode 100644
index 0000000000..f8c92f871d
--- /dev/null
+++ b/translated/tech/20150326 A Peep into Process Management Commands in Linux.md
@@ -0,0 +1,193 @@
+12个进程管理命令
+================================================================================
+每个程序在执行时叫进程。当程序是在存储中是可执行文件并且运行的时候,每个进程会被动态得分配系统资源,内存,安全属性和与之相关的状态。可以有多个进程关联同一个程序,并同时执行不会互相干扰。操作系统会有效地管理和追踪所有运行着的进程。
+
+为了管理这些进程,用户应该能够:
+
+- 查看所有运行中的进程
+- 查看进程消耗资源
+- 定位个别进程并且可以执行指定动作
+- 改变进程的优先级
+- 杀死指定进程
+- 限制进程的有效系统资源
+- 等
+
+Linux提供了许多命令给用户来高效掌控上述的操作。接下来,一个一个的来讲解下。
+
+### 1. ps ###
+
+'ps'是最基础浏览系统中的进程的命令。能列出系统中运行的进程,包括进程号,命令,CPU使用量,内存使用量等。下述选项可以得到更多有用的消息。
+
+ ps -a - 列出所有运行中/激活进程
+
+![Output of "ps -a" command](http://blog.linoxide.com/wp-content/uploads/2015/02/ps-a2.png)
+
+ ps -ef |grep - 列出需要进程
+
+ ps -aux - 展示进程包括、终端(x)和用户(u)信息,如USER, PID, %CPU, %MEM等
+
+### 2. pstree ###
+
+linux中,每一个进程都是由父进程创建的。此命令帮助可视化进程,通过显示进程树状图表展示进程间关系。如果使用pid了,那么树的根是pid。不然将会是init。
+
+![pstree](http://blog.linoxide.com/wp-content/uploads/2015/02/pstree.png)
+
+### 3. top ###
+
+‘top’是一个更加有用的命令,通过不同的进程所使用的资源可以监视系统。它提供实时的系统状态信息。显示进程的数据包括PID,进程用户,优先值,%CPU,%memory等。可以使用这些显示指示出资源使用量。
+
+![top](http://blog.linoxide.com/wp-content/uploads/2015/02/top.png)
+
+### 4. htop ###
+
+htop与top很类似,但是htop是交互式的模式进程查看器。它通过文字图像显示每一个CPU和内存使用量、swap使用量。上下键选择进程,F7和F8改变优先级,F9杀死进程。Htop不是系统默认,所以需要额外安装。
+
+![htop output](http://blog.linoxide.com/wp-content/uploads/2015/03/htop1.png)
+
+### 5. nice ###
+
+通过nice命令的帮助,用户可以设置和改变进程的优先级。提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。默认情况下,进程以0的优先级启动。进程优先级可以通过top命令显示的NI(nice value)列查看。
+
+进程优先级值的范围从-20到19。值越低,越优先。
+
+ nice <优先值> <进程名> - 通过给定的优先值启动一个程序
+
+![nice command](http://blog.linoxide.com/wp-content/uploads/2015/02/nice-cmd.png)
+
+![changed nice value of 'top'](http://blog.linoxide.com/wp-content/uploads/2015/02/top-nice.png)
+
+上述命令例子,可以看到‘top’命令获得了-3的优先值。
+
+### 6. renice ###
+
+renice命令类似nice命令。使用这个命令可以改变正在运行的进程优先值。注意,用户只能改变属于他们的进程的优先值。
+
+ renice -n -p - 改变指定进程的优先值
+
+![renice command](http://blog.linoxide.com/wp-content/uploads/2015/02/renice2.png)
+
+优先值初始化为0的3806号进程优先值已经变成了4.
+
+ renice -u -g - 通过指定用户和组来改变进程优先值
+
+![output of renice for a user group](http://blog.linoxide.com/wp-content/uploads/2015/02/renice1.png)
+
+上述例子中,用户为‘mint’的所有进程优先值变为‘-3’。
+
+### 7. kill ###
+
+这个命令通过发送信号结束进程。如果一个进程没有响应杀死命令,这也许就需要强制杀死,使用-9参数来执行。注意,使用强制杀死的时候一定要小心,因为没有机会确定是否写入完成、是否结束等。如果我们不知道进程PID或者打算用名字杀死进程时候,killall就能派上用场。
+
+ kill
+
+ kill -9
+
+ killall -9 - 杀死所有拥有同样名字的进程
+
+如果你使用kill,你需要知道进程ID号。pkill是类似的命令但只需要一个模式,如果进程名,进程拥有者等
+
+ pkill <进程名>
+
+![kill initiated](http://blog.linoxide.com/wp-content/uploads/2015/02/kill-initiated.png)
+
+![kill](http://blog.linoxide.com/wp-content/uploads/2015/02/kill.png)
+
+### 8. ulimit ###
+
+命令在控制系统资源在shell和进程上的分配量。对于系统管理员是最有用的,可以管理系统倾向和性能问题。限制资源大小可以确保重要进程持续运行,其他进程不会占用过多资源。
+
+ ulimit -a - 显示当前用户关联的资源限制
+
+![ulimit -a](http://blog.linoxide.com/wp-content/uploads/2015/02/ulimit-a.png)
+
+ -f - 最大文件大小
+
+ -v - 最大虚拟内存大小(KB)
+
+ -n - 最大文件描述符加1
+
+ -H : 改变和报告硬限制
+
+ -S : 改变和报告软限制
+
+浏览ulimit man页面获取更多选项。
+
+### 9. w ###
+
+w提供正确登录的用户和其执行的进程的信息。显示信息头包含信息像现在时间,系统运行时长,登录用户总数,过去1,5,15分钟负载均衡数。
+
+基于这些用户信息,用户可以在终止进程前查看不属于他们的进程。
+
+!['w' command](http://blog.linoxide.com/wp-content/uploads/2015/02/w.png)
+
+**who**是类似命令,提供列表,包含当前登录用户,系统启动时间,运行级别等。
+
+!['who' command](http://blog.linoxide.com/wp-content/uploads/2015/02/who.png)
+
+**whoami** 命令输出当前用户ID
+
+!['whoami' command](http://blog.linoxide.com/wp-content/uploads/2015/02/whoami.png)
+
+### 10. pgrep ###
+
+pgrep为"进程号全局正则匹配打印"。命令扫描当前运行进程,然后列出选择标准匹配出的进程ID到标准输出。对于通过名字检索进程号是很有用。
+
+ pgrep -u mint sh
+
+这个命令将会显示用户为‘mint’和进程名为‘sh’的进程ID。
+
+![output of pgrep](http://blog.linoxide.com/wp-content/uploads/2015/03/pgrep.png)
+
+### 11. fg , bg ###
+
+有时,命令需要很长的时间才能执行完成。对于这种情况,我们使用‘bg’命令可以将任务放在后台执行,而是用‘fg’可以调到前台来使用。
+
+通过‘&’,我们后台启动一个程序:
+
+ find . -name *iso > /tmp/res.txt &
+
+一个正在运行的程序也可以通过“CTRL+Z”和“bg”命令组合放到后台运行。
+
+ find . -name *iso > /tmp/res.txt & - 启动一个程序
+
+ ctrl+z - 挂起当前执行程序
+
+ bg - 将程序发送到后台运行
+
+我们可以使用‘jobs’命令列出所有后台进程。
+
+ jobs
+
+使用‘fg’命令可以将后台程序调到前台执行。
+
+ fg %
+
+![output of fg, bg and jobscommands](http://blog.linoxide.com/wp-content/uploads/2015/03/fg-bg-jobs.png)
+
+### 12. ipcs ###
+
+ipcs命令报告进程间通信设施状态。(共享内存,信号量和消息队列)
+
+用-p参数联合-m、-s或-q使用,可以获得相关的进程间通信的进程ID。
+
+ ipcs -p -m
+
+下面屏幕截图列出了共享内存段的创建者ID和进程ID。
+
+![ipcs command](http://blog.linoxide.com/wp-content/uploads/2015/03/ipcs.png)
+
+### 总结 ###
+
+总之 ,这些命令可以帮助管理员修复问题和改善性能。同样作为一名普通用户也需要解决进程间出现的问题。所以,熟悉如此繁多的命令,从能有效管理进程是行之有效。
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-command/process-management-commands-linux/
+
+作者:[B N Poornima][a]
+译者:[VicYu/Vic020](http://vicyu.net)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/bnpoornima/
diff --git a/translated/tech/20150330 2 Ways to Create Your Own Docker Base Image.md b/translated/tech/20150330 2 Ways to Create Your Own Docker Base Image.md
new file mode 100644
index 0000000000..63188ebc5b
--- /dev/null
+++ b/translated/tech/20150330 2 Ways to Create Your Own Docker Base Image.md
@@ -0,0 +1,57 @@
+创建你自己的Docker基本映像的2中方式
+================================================================================
+欢迎大家,今天我们学习一下docker基本映像以及如何构建我们自己的docker基本映像。[Docker][1]是一个开源项目,为打包,装载和运行任何应用提供开发平台的轻量级容器。它没有语言支持,框架和打包系统的限制,从小型的家用电脑到高端的服务器,在何时何地都可以运行。这使它们成为不依赖于特定栈和供应商,很好的部署和扩展网络应用,数据库和后端服务的构建块。
+
+Docker映像是不可更改的只读层。Docker使用**Union File System**在只读文件系统上增加读写文件系统。但所有更改都发生在最顶层的可写层,最底部,在只读映像上的原始文件仍然不会改变。由于映像不会改变,也就没有状态。基本映像是没有父类的那些映像。Docker基本映像主要的好处是它允许我们有一个独立允许的Linux操作系统。
+
+下面是我们如何可以创建自定义基本映像的方式。
+
+### 1. 使用Tar创建Docker基本映像 ###
+
+我们可以使用tar构建我们自己的基本映像,我们从将要打包为基本映像的运行中的Linux发行版开始构建。这过程可以会有些不同,它取决于我们打算构建的发行版。在Linux的发行版Debian中,已经预装了debootstrap。在开始下面的步骤之前,我们需要安装debootstrap。debootstrap用来获取构建基本系统需要的包。这里,我们构建基于Ubuntu 14.04 "Trusty" 的映像。做这些,我们需要在终端或者shell中运行以下命令。
+
+ $ sudo debootstrap trusty trusty > /dev/null
+ $ sudo tar -C trusty -c . | sudo docker import - trusty
+
+![使用debootstrap构建docker基本映像](http://blog.linoxide.com/wp-content/uploads/2015/03/creating-base-image-debootstrap.png)
+
+上面的命令为当前文件夹创建了一个tar文件并输出到STDOUT中,"docker import - trusty"从STDIN中获取这个tar文件并根据它创建一个名为trusty的基本映像。然后,如下所示,我们将运行映像内部的一条测试命令。
+
+ $ docker run trusty cat /etc/lsb-release
+
+[Docker GitHub Repo][2] 中有一些允许我们快速构建基本映像的事例脚本.
+
+### 2. 使用Scratch构建基本映像 ###
+
+在Docker的注册表中,有一个被称为Scratch的使用空tar文件构建的特殊库:
+
+ $ tar cv --files-from /dev/null | docker import - scratch
+
+![使用scratch构建docker基本映像](http://blog.linoxide.com/wp-content/uploads/2015/03/creating-base-image-using-scratch.png)
+
+
+我们可以使用这个映像构建新的小容器:
+
+FROM scratch
+ADD script.sh /usr/local/bin/run.sh
+CMD ["/usr/local/bin/run.sh"]
+
+上面的Docker文件来自一个很小的映像。这里,它首先从一个完全空的文件系统开始,然后它复制新建的/usr/local/bin/run.sh为script.sh,然后运行脚本/usr/local/bin/run.sh。
+
+### 结尾 ###
+
+这这个教程中,我们学习了如果构建一个自定义的Docker基本映像。构建一个docker基本映像是一个很简单的任务,因为这里有很多已经可用的包和脚本。如果我们想要在里面安装想要的东西,构建docker基本映像非常有用。如果有任何疑问,建议或者反馈,请在下面的评论框中写下来。非常感谢!享受吧 :-)
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/2-ways-create-docker-base-image/
+
+作者:[Arun Pyasi][a]
+译者:[ictlyh](https://github.com/ictlyh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunp/
+[1]:https://www.docker.com/
+[2]:https://github.com/docker/docker/blob/master/contrib/mkimage-busybox.sh
\ No newline at end of file
diff --git a/translated/tech/20150330 Linux FAQs with Answers--How to upgrade Docker on Ubuntu.md b/translated/tech/20150330 Linux FAQs with Answers--How to upgrade Docker on Ubuntu.md
new file mode 100644
index 0000000000..8d993c1c47
--- /dev/null
+++ b/translated/tech/20150330 Linux FAQs with Answers--How to upgrade Docker on Ubuntu.md
@@ -0,0 +1,35 @@
+Linux有问必答-- 如何在Ubuntu中升级Docker
+================================================================================
+> **提问**: 我使用了Ubuntu的标准仓库安装了Docker。然而,默认安装的Docker不能满足我另外一个依赖Docker程序的版本需要。我该如何在Ubuntu中升级到Docker的最新版本?
+
+Docker第一次在2013年发布,它快速地演变成了一个针对分布式程序的开发平台。为了满足工业期望,Docker正在紧密地开发并持续地带来新特性的升级。这样Ubuntu发行版中的Docker版本可能很快就会过时。比如,, Ubuntu 14.10 Utopic 中的Docker版本是1.2.0, 然而最新的Docker版本是1.5.0。
+
+![](https://farm9.staticflickr.com/8730/16351300024_9acb9086da_b.jpg)
+
+对于那些想要跟随Docker的最新开发的人而言,Canonical为Docker维护了一个独立的PPA。使用这个PPA仓库,你可以很容易地在Ubuntu上升级到最新的Docker版本。
+
+下面是如何设置Docker的PPA和升级Docker。
+
+ $ sudo add-apt-repository ppa:docker-maint/testing
+ $ sudo apt-get update
+ $ sudo apt-get install docker.io
+
+检查安装的Docker版本:
+
+ $ docker --version
+
+----------
+
+ Docker version 1.5.0-dev, build a78ce5c
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/upgrade-docker-ubuntu.html
+
+作者:[Dan Nanni][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://ask.xmodulo.com/author/nanni
diff --git a/translated/tech/20150331 Its Now Worth Try Installing PHP 7.0 on CentOS 7.x or Fedora 21.md b/translated/tech/20150331 Its Now Worth Try Installing PHP 7.0 on CentOS 7.x or Fedora 21.md
new file mode 100644
index 0000000000..bc27aec4ec
--- /dev/null
+++ b/translated/tech/20150331 Its Now Worth Try Installing PHP 7.0 on CentOS 7.x or Fedora 21.md
@@ -0,0 +1,322 @@
+现在值得去尝试一下在CentOS 7.x或Fedora 21上面安装PHP 7.0
+===============================================================================
+PHP是一种为我们熟知的通用的,服务器网页脚本语言。超大量的在线网站都是用PHP编写的。PHP过去一直在更新,丰富功能,易于使用,而且很好组织的脚本语言。目前PHP的开发团队正筹备下一个PHP版本的发行,名字是PHP 7。现在的PHP版本为PHP 5.6,可能你清楚PHP 6已经流产了,PHP 7的支持者们不希望下一个重要的版本被其他分支混淆,即过去已经停止很久的PHP 6。所以决定下一个PHP主要的发行版本叫PHP 7,而不是PHP 6。PHP 7.0预计在今年十一月份发行。
+
+在下一个主要的PHP发行版里有一些不错的功能。
+
+- 为了提升执行效率与记忆痕迹,PHPNG功能被添加到新的发行版中。
+- JIT引擎被收入来动态编译Zend操作码为自然机器码,以此来达到更快的处理性能。这项功能允许随后的程序调用同一份代码,这样会运行快很多。
+- AST(抽象语法树)是最新添加的功能,它可以增强支持PHP的扩展性和用户应用。
+- 异步编程功能会添加支持并行任务,在同样的需求下。
+-新的版本会支持独立多线程网页服务,这样可以使用一个单独的存储块处理很多并发的请求。
+
+### 在CcentOS/Fedora上安装PHP 7 ###
+
+让我们来看看怎样在CentOS 7和Fedora 21安装PHP7。为了安装PHP7,我们首先需要克隆php-src 仓库。当克隆工作完成,我们会配置和编译它。进行下一步之前,我们要确保已经在LInux系统下安装了如下的东西,否则PHP编译会返回错误,然后流产。
+
+- Git
+- autoconf
+- gcc
+- bison
+
+所有上面提到的要求可以使用Yum软件包管理器安装。用连续的一个命令应该这样:
+
+ yum install git autoconf gcc bison
+
+准备好开始安装PHP7了吗?让我们先创建一个PHP7目录,作为你的工作目录。
+
+ mkdir php7
+
+ cd php7
+
+现在克隆php-src仓库,在终端里运行下面的命令。
+
+ git clone https://git.php.net/repository/php-src.git
+
+工作应该会在几分钟后完成,这里是一个样例输出,你应该会在任务完成时看见。
+
+ [root@localhost php7]# git clone https://git.php.net/repository/php-src.git
+
+ Cloning into 'php-src'...
+
+ remote: Counting objects: 615064, done.
+
+ remote: Compressing objects: 100% (127800/127800), done.
+
+ remote: Total 615064 (delta 492063), reused 608718 (delta 485944)
+
+ Receiving objects: 100% (615064/615064), 152.32 MiB | 16.97 MiB/s, done.
+
+ Resolving deltas: 100% (492063/492063), done.
+
+让我们来配置,编译PHP7,在终端运行下面的命令,开始配置工作:
+
+ cd php-src
+
+ ./buildconf
+
+下面是./buildconf命令的样例输出。
+
+ [root@localhost php-src]# ./buildconf
+
+ buildconf: checking installation...
+
+ buildconf: autoconf version 2.69 (ok)
+
+ rebuilding aclocal.m4
+
+ rebuilding configure
+
+ rebuilding main/php_config.h.in
+
+使用下面的命令,继续配置进程:
+
+ ./configure \
+
+ --prefix=$HOME/php7/usr \
+
+ --with-config-file-path=$HOME/php7/usr/etc \
+
+ --enable-mbstring \
+
+ --enable-zip \
+
+ --enable-bcmath \
+
+ --enable-pcntl \
+
+ --enable-ftp \
+
+ --enable-exif \
+
+ --enable-calendar \
+
+ --enable-sysvmsg \
+
+ --enable-sysvsem \
+
+ --enable-sysvshm \
+
+ --enable-wddx \
+
+ --with-curl \
+
+ --with-mcrypt \
+
+ --with-iconv \
+
+ --with-gmp \
+
+ --with-pspell \
+
+ --with-gd \
+
+ --with-jpeg-dir=/usr \
+
+ --with-png-dir=/usr \
+
+ --with-zlib-dir=/usr \
+
+ --with-xpm-dir=/usr \
+
+ --with-freetype-dir=/usr \
+
+ --with-t1lib=/usr \
+
+ --enable-gd-native-ttf \
+
+ --enable-gd-jis-conv \
+
+ --with-openssl \
+
+ --with-mysql=/usr \
+
+ --with-pdo-mysql=/usr \
+
+ --with-gettext=/usr \
+
+ --with-zlib=/usr \
+
+ --with-bz2=/usr \
+
+ --with-recode=/usr \
+
+ --with-mysqli=/usr/bin/mysql_config
+
+这会花去不少的时间,一旦完成,你应该会看到如下面的输出:
+
+ creating libtool
+
+ appending configuration tag "CXX" to libtool
+
+ Generating files
+
+ configure: creating ./config.status
+
+ creating main/internal_functions.c
+
+ creating main/internal_functions_cli.c
+
+ +--------------------------------------------------------------------+
+
+ | License: |
+
+ | This software is subject to the PHP License, available in this |
+
+ | distribution in the file LICENSE. By continuing this installation |
+
+ | process, you are bound by the terms of this license agreement. |
+
+ | If you do not agree with the terms of this license, you must abort |
+
+ | the installation process at this point. |
+
+ +--------------------------------------------------------------------+
+
+
+
+ Thank you for using PHP.
+
+
+
+ config.status: creating php7.spec
+
+ config.status: creating main/build-defs.h
+
+ config.status: creating scripts/phpize
+
+ config.status: creating scripts/man1/phpize.1
+
+ config.status: creating scripts/php-config
+
+ config.status: creating scripts/man1/php-config.1
+
+ config.status: creating sapi/cli/php.1
+
+ config.status: creating sapi/cgi/php-cgi.1
+
+ config.status: creating ext/phar/phar.1
+
+ config.status: creating ext/phar/phar.phar.1
+
+ config.status: creating main/php_config.h
+
+ config.status: executing default commands
+
+
+运行下面的命令,完成编译过程。
+
+ manke
+
+“make”命令过后的样例输出如下所示:
+
+ Generating phar.php
+
+ Generating phar.phar
+
+ PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
+
+ clicommand.inc
+
+ directorytreeiterator.inc
+
+ directorygraphiterator.inc
+
+ pharcommand.inc
+
+ invertedregexiterator.inc
+
+ phar.inc
+
+
+
+ Build complete.
+
+ Don't forget to run 'make test'.
+
+活儿干完了,该安装PHP7了,运行下面的命令安装它。
+
+ make install
+
+成功安装的进程的样例输出应该像这样:
+
+ [root@localhost php-src]# make install
+
+ Installing shared extensions: /root/php7/usr/lib/php/extensions/no-debug-non-zts-20141001/
+
+ Installing PHP CLI binary: /root/php7/usr/bin/
+
+ Installing PHP CLI man page: /root/php7/usr/php/man/man1/
+
+ Installing PHP CGI binary: /root/php7/usr/bin/
+
+ Installing PHP CGI man page: /root/php7/usr/php/man/man1/
+
+ Installing build environment: /root/php7/usr/lib/php/build/
+
+ Installing header files: /root/php7/usr/include/php/
+
+ Installing helper programs: /root/php7/usr/bin/
+
+ program: phpize
+
+ program: php-config
+
+ Installing man pages: /root/php7/usr/php/man/man1/
+
+ page: phpize.1
+
+ page: php-config.1
+
+ Installing PEAR environment: /root/php7/usr/lib/php/
+
+ [PEAR] Archive_Tar - installed: 1.3.13
+
+ [PEAR] Console_Getopt - installed: 1.3.1
+
+ [PEAR] Structures_Graph- installed: 1.0.4
+
+ [PEAR] XML_Util - installed: 1.2.3
+
+ [PEAR] PEAR - installed: 1.9.5
+
+ Wrote PEAR system config file at: /root/php7/usr/etc/pear.conf
+
+ You may want to add: /root/php7/usr/lib/php to your php.ini include_path
+
+ /root/php7/php-src/build/shtool install -c ext/phar/phar.phar /root/php7/usr/bin
+
+ ln -s -f /root/php7/usr/bin/phar.phar /root/php7/usr/bin/phar
+
+ Installing PDO headers: /root/php7/usr/include/php/ext/pdo/
+
+恭喜你,PHP7已经安装在你的Linux系统上了。安装完后,进入PHP7安装文件里的sapi/cli里面。
+
+ cd sapi/cli
+
+在这里验证PHP的版本。
+
+ [root@localhost cli]# ./php -v
+
+ PHP 7.0.0-dev (cli) (built: Mar 28 2015 00:54:11)
+
+ Copyright (c) 1997-2015 The PHP Group
+
+ Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
+
+### 总结 ###
+
+PHP 7也被[添加到了remi仓库][1],即将到来的版本主要关注执行效率的提升,新的特性致力于使PHP较好满足现代编程的需求和趋势。PHP 7.0将会有许多新的特性,丢弃一些老版本的东西。在接下来的日子里,我们希望看到新特性和弃用功能的具体情况。尽情享受吧!
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-how-to/install-php-7-centos-7-fedora-21/
+
+作者:[Aun Raza][a]
+译者:[wi-cuckoo](https://github.com/wi-cuckoo)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/arunrz/
+[1]:http://blog.famillecollet.com/post/2015/03/25/PHP-7.0-as-Software-Collection