+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[ wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://li.nux.ro/download/nux/dextop/
+[2]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
\ No newline at end of file
diff --git a/published/201409/20140825 Linux FAQs with Answers--How to fix 'failed to run aclocal--No such file or directory'.md b/published/201409/20140825 Linux FAQs with Answers--How to fix 'failed to run aclocal--No such file or directory'.md
new file mode 100644
index 0000000000..63ce6a4862
--- /dev/null
+++ b/published/201409/20140825 Linux FAQs with Answers--How to fix 'failed to run aclocal--No such file or directory'.md
@@ -0,0 +1,50 @@
+Linux有问必答:如何修复“运行aclocal失败:没有该文件或目录”
+================================================================================
+> **问题**:我试着在Linux上构建一个程序,该程序的开发版本是使用“autogen.sh”脚本进行的。当我运行它来创建配置脚本时,却发生了下面的错误:
+>
+> Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
+> autoreconf: failed to run aclocal: No such file or directory
+>
+> 我怎样才能修复这个程序?
+
+开发版本常常是通过autogen.sh使用程序源代码生成的,构建过程包括验证程序功能和生成配置脚本。autogen.sh脚本依赖于autoreconf来调用autoconf,automake,aclocal和其它相关工具。
+
+丢失的aclocal是automake包的一部分,因此,要修复该错误,请安装以下包。
+
+在Debian,Ubuntu或Linux Mint上:
+
+ $ sudo apt-get install automake
+
+在CentOS,Fedora或RHEL上:
+
+ $ sudo yum install automake
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/fix-failed-to-run-aclocal.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:
+[2]:
+[3]:
+[4]:
+[5]:
+[6]:
+[7]:
+[8]:
+[9]:
+[10]:
+[11]:
+[12]:
+[13]:
+[14]:
+[15]:
+[16]:
+[17]:
+[18]:
+[19]:
+[20]:
diff --git a/published/201409/20140825 Linux Terminal--speedtest_cli checks your real bandwidth speed.md b/published/201409/20140825 Linux Terminal--speedtest_cli checks your real bandwidth speed.md
new file mode 100644
index 0000000000..0b180074cc
--- /dev/null
+++ b/published/201409/20140825 Linux Terminal--speedtest_cli checks your real bandwidth speed.md
@@ -0,0 +1,153 @@
+Linux终端:speedtest_cli检测你的实时带宽速度
+===
+
+
+
+你在家(或者办公室)的上传和下载速度如何?你能保证,你支付费用给ISP的同时得到了等价的回报?
+
+要想测试我们因特网连接的速度,当下存在着一些因特网服务,比如说SpeedTest,这是一种可以通过Web浏览器和手机应用程序浏览的web服务。
+
+现在,你可以很容易地检测你的网速,使用speedtest_cli同样很简单,它是一个使用[speedtest.net][2]来测试因特网[带宽][1]的命令行界面。通过这种方式,你也可以在没有浏览器或者图形化界面的服务器上做带宽测试。
+
+### 安装 ###
+
+speedtest_cli是一个python脚本,所以它真的很容易安装和使用,你可以通过许多方式安装它:
+
+#### 1)pip / easy_install ####
+
+打开一个终端,输入下面的命令:
+
+ pip install speedtest_cli
+
+或者
+
+ easy_install speedtest_cli
+
+#### 2)Github ####
+
+想要直接从github安装,你得这么做:
+
+ pip install git+https://github.com/sivel/speedtest-cli.git
+
+或者
+
+ git clone https://github.com/sivel/speedtest-cli.git
+ python speedtest-cli/setup.py install
+
+#### 3)作为Ubuntu/Debian或者Mint包 ####
+
+getdeb仓库给我们提供了[安装包][3],按照下面的步骤,就可以轻松安装:
+
+- 安装[getdeb包][4]
+
+或者
+
+- 手动配置仓库:
+
+进入系统管理软件源,第三方软件选项,加上:
+
+ deb http://archive.getdeb.net/ubuntu trusty-getdeb apps
+
+增加仓库GPG钥匙,打开终端窗口,然后输入:
+
+ wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
+
+现在,你就可以使用下面的命令安装speedtest_cli包了:
+
+ sudo apt-get update
+ sudo apt-get install python-speedtest-cli
+
+#### 4)下载(和以前的方式一样) ####
+
+最后一个选择,只需要下载python脚本,然后在你想运行的地方运行脚本:
+
+ wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
+ chmod +x speedtest-cli
+
+或者
+
+ curl -o speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
+ chmod +x speedtest-cli
+
+### 基本用法 ###
+
+你可以不带任何选项地运行speedtest_cli.py,然后你会在终端获得关于你带宽速度的报告,这就是我那糟糕的意大利Adsl输出:
+
+ $ ./speedtest_cli.py
+ Retrieving speedtest.net configuration...
+ Retrieving speedtest.net server list...
+ Testing from Telecom Italia (87.13.73.66)...
+ Selecting best server based on latency...
+ Hosted by LepidaSpA (Bologna) [12.20 km]: 104.347 ms
+ Testing download speed........................................
+ Download: 6.35 Mbits/s
+ Testing upload speed...............................................
+ Upload: 0.34 Mbits/s
+
+这就是基本用法,这足以让你知道你因特网连接的好坏,但是可能你想要和朋友分享这条信息,那么,只需要-share选项就可以
+
+ ./speedtest_cli.py --share
+ Retrieving speedtest.net configuration...
+ Retrieving speedtest.net server list...
+ Testing from Telecom Italia (87.13.73.66)...
+ Selecting best server based on latency...
+ Hosted by LepidaSpA (Bologna) [12.20 km]: 93.778 ms
+ Testing download speed........................................
+ Download: 6.20 Mbits/s
+ Testing upload speed...............................................
+ Upload: 0.33 Mbits/s
+ Share results: http://www.speedtest.net/result/3700218352.png
+
+这将会产生一个类似于下面的图像(但是我希望你图像里面的值更好):
+
+ 
+
+另一个有趣的选项是-list,它会按照距离列出所有speedtest.net服务器,下面是我运行的结果:
+
+ Retrieving speedtest.net configuration...
+ Retrieving speedtest.net server list...
+ 2872) LepidaSpA (Bologna, Italy) [12.20 km]
+ 1561) MYNETWAY S.R.L. (Cesena, Italy) [80.97 km]
+ 2710) ReteIVO by D.t.s. Srl (Florence, Italy) [90.90 km]
+ 4826) Inteplanet Srl (Verona, Italy) [100.45 km]
+ 3998) Wolnext srl (Verona, Italy) [100.45 km]
+ 2957) Wifiweb s.r.l. (Altavilla Vicentina, Italy) [103.11 km]
+ 3103) E4A s.r.l. (Vicenza, Italy) [107.17 km]
+ 3804) Interplanet Srl (Vicenza, Italy) [107.17 km]
+ 1014) NTRnet (Vicenza, Italy) [107.17 km]
+ 3679) Hynet s r l (Vicenza, Italy) [107.17 km]
+ 3745) Comeser Srl (Fidenza, Italy) [114.00 km]
+ 5011) Welcomeitalia spa (Massarosa, Italy) [119.26 km]
+ 2864) ReteIVO by D.t.s. Srl (Massa, Italy) [120.92 km]
+ 2918) ReteIVO by D.t.s. Srl (Arezzo, Italy) [129.79 km]
+ ...
+
+既然我知道了围绕在我周围的服务器的ID,我可以使用-server选项选择一个特定的服务器,所以,要想选择位于佛罗伦萨(ID 2710)的服务器,我使用下面的命令:
+
+ ./speedtest_cli.py --server 2710
+ Retrieving speedtest.net configuration...
+ Retrieving speedtest.net server list...
+ Testing from Telecom Italia (87.13.73.66)...
+ Hosted by ReteIVO by D.t.s. Srl (Florence) [90.90 km]: 106.505 ms
+ Testing download speed........................................
+ Download: 6.18 Mbits/s
+ Testing upload speed..............................................
+ Upload: 0.35 Mbits/s
+
+文章由[Asapy Programming Company][5]发表
+
+---
+
+via: http://linuxaria.com/howto/linux-terminal-speedtest_cli-checks-your-real-bandwidth-speed
+
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://linuxaria.com/article/tool-command-line-bandwidth-linux
+[2]:http://linuxaria.com/howto/speedtest.net
+[3]:http://www.getdeb.net/
+[4]:http://archive.getdeb.net/install_deb/getdeb-repository_0.1-1~getdeb1_all.deb
+[5]:http://www.asapy.com/
+
diff --git a/published/201409/20140826 Linus Torvalds is my hero, says 13 year old Zachary DuPont.md b/published/201409/20140826 Linus Torvalds is my hero, says 13 year old Zachary DuPont.md
new file mode 100644
index 0000000000..53e6416202
--- /dev/null
+++ b/published/201409/20140826 Linus Torvalds is my hero, says 13 year old Zachary DuPont.md
@@ -0,0 +1,45 @@
+“林纳斯·托瓦兹是我的英雄”13岁的扎卡里杜邦说
+================================================================================
+
+Zachary DuPon是一名6年级的学生,他马上年满13岁。他过去是Arch liunx的用户,并期待着尽快安装Gentoo Linux。
+
+Zachary DuPon的故事是这样的-他的学校组织了一个活动,要求学生们给他们的英雄写一封信,大多数孩子写给社会名流,而Zachary DuPon写给了现代科技世界的“真”英雄-林纳斯·托瓦兹。
+
+由于林纳斯在家工作,他没有透露自己的办公地点,Zach的信送到了Linux基金会,工作人员会在发送给林纳斯之前浏览全部的信件内容。当基金会看到了这封信,他们联系了扎克的学校,慷慨地邀请他做客LinuxCon,这样他就能见到他的英雄本人。
+
+linux的执行董事长Jim Zemlin在主题小组讨论过后,引领Zach来到人群中。Zach见到了林纳斯并得到了linux之父签名的《linux圣经》;他也得到了林纳斯签名自传[《只为了好玩:一次偶然的革命》][1]
+
+
+林纳斯·托瓦兹为扎克里杜邦签名
+
+
+扎克里杜邦一家
+
+
+本文作者 Swapnil Bhartiya和扎克里杜邦
+
+我不想失去这个机会,所以他们和林纳斯交谈一结束,我就走向这个家庭,安排了这次视频采访。我是一个两岁孩子的父亲,而作为一名父亲,我着实对Zach自信、清晰,明确的思想所感到惊讶。
+
+我提供给你这次视屏采访的细节
+
+- 他使用Arch linux。
+- 他打算一旦他擅长编程就做出自己的贡献。
+- 他没有提交任何漏洞报告,并且他认为他应该这样做。他也表示他没有发现任何漏洞。
+- 他对WINE没太大的兴趣。
+- 他喜欢KDE的原始桌面,但是它在他的网关机器上工作不是很好。
+- 他是一个装有XFCE桌面环境的Debian GNU/linux用户。
+
+林纳斯也许是扎克的英雄,但是扎克是整个GNU/linux和自由软件社区的英雄,他不断地提醒我们,未来尽在我们掌握中。
+
+--------------------------------------------------------------------------------
+
+via: http://www.themukt.com/2014/08/24/linus-torvalds-hero-says-13-years-old-zachary-dupont/
+
+作者:[Swapnil Bhartiya][a]
+译者:[luoyutiantang](https://github.com/luoyutiantang)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.themukt.com/author/swapnil_bhartiya/
+[1]:http://www.amazon.com/gp/product/0066620732/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0066620732&linkCode=as2&tag=muktware-20&linkId=HBKEBIFVZQC35GGK
diff --git a/published/201409/20140828 GIMP 2.8.12 Released--Here' s How to Install it on Ubuntu.md b/published/201409/20140828 GIMP 2.8.12 Released--Here' s How to Install it on Ubuntu.md
new file mode 100644
index 0000000000..16c638f99a
--- /dev/null
+++ b/published/201409/20140828 GIMP 2.8.12 Released--Here' s How to Install it on Ubuntu.md
@@ -0,0 +1,45 @@
+GIMP 2.8.12 发布了,来看看如何在Ubuntu上安装
+================================================================================
+**GIMP是深受欢迎的开源Photoshop替代软件,它的[新版本][1]现在可以下载了。**
+
+
+GIMP是一款免费的可替代Photoshop的软件
+
+正如在GIMP 2.8.x 系列中的最新条目——[自2012年起开始发布][2]并着重介绍长期追求的“单窗口模式”——版本2.8.12并没有重新去做它而是继续改进。如其所说,软件并没有发现面向用户的新特点。
+
+然而,开发人员修复了一批新的漏洞,旨在提高整体的稳定性,安全性以及这款著名软件的风格。
+
+- 插件的笔刷大小不再变形。
+- .XCF 文件的加载更稳固。
+- 小部件的方向现在匹配界面语言(例如 RTL)。
+- script-fu-server 的安全性提高。
+
+文档,帮助以及翻译的更新也包括在其中。想了解在版本 2.8.10 和 2.8.12 之间所有修复完整更改日志,可以看[GNOME Git日志][2]。
+
+### 在Ubuntu上安装最新的GIMP ###
+
+最新发布的源代码可以从官方网站上或者从[官方种子文件][3]下载。
+
+在Ubuntu上呢?在Ubuntu 12.04 和14.04 LTS 上你可以通过添加[以下第三方PPA][4]软件源来安装GIMP 2.8.12:
+
+ sudo add-apt-repository ppa:otto-kesselgulasch/gimp
+
+ sudo apt-get update && sudo apt-get install gimp
+
+在安装完成后,你可以从Unity Dash(或者类似途径)来启动GIMP 2.8.12。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/08/whats-new-in-gimp-2-8-12-plus-install-ubuntu
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[linuhap](https://github.com/linuhap)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2012/05/gimp-2-8-released
+[2]:https://git.gnome.org/browse/gimp/plain/NEWS?h=gimp-2-8
+[3]:http://download.gimp.org/pub/gimp/v2.8/gimp-2.8.12.tar.bz2.torrent
+[4]:https://launchpad.net/~otto-kesselgulasch/+archive/ubuntu/gimp
diff --git a/published/201409/20140829 Linux Doesn't Need to Own the Desktop.md b/published/201409/20140829 Linux Doesn't Need to Own the Desktop.md
new file mode 100644
index 0000000000..4011fefb74
--- /dev/null
+++ b/published/201409/20140829 Linux Doesn't Need to Own the Desktop.md
@@ -0,0 +1,32 @@
+Linux 应当放弃桌面
+================================================================================
+Linus Torvalds 前不久发布了 Linux 3.17 rc-2,这[偏离了他正常的发布时间表][1],因为8月25日是 Linux 的第23个生日。“Hello 大家好,你还在使用minix吗?”,23年前的8月25日,Torvalds 在 Linux 的第一次发布中这样写道。
+
+与此同时,最近 PCMag.com 网站声称[Linux 的时间已经不多了][2]。但是你们不觉得这样没玩没了地讨论 Linux 在桌面端是否成功其实是毫无意义的吗?Linux 已经广泛应用于超级计算机和车载系统,它构建了 Android 的基础,同时还是最流行的云整合(例如 OpenStack)的运行平台 —— 以上这些还只是 Linux 的一部分成就。桌面并不是 Linux 唯一的战场。
+
+Jon Buys 在他[最近的文章][3]中谈到了 Linux 专业化以及与桌面有关的内容:
+
+> “最近,IT业在追问‘[Linus 是否还在执著于 Linux 桌面?][4]’,来自 Teck Republic 的 Matt Asay 也在说‘[拜托不要再讨论 Linux 桌面了行吗?][5]’。这两篇文章都对 Linux 在个人计算机方面的发展空间持怀疑态度,还拿 Android 的成功故事来说事…… 但是它们都忽略了,Linux的灵活性以及它开源许可证的开放性,也许这两者正是拯救 Linux 桌面的关键。”
+
+也许这是事实,但是 Linux 对于如此众多的桌面用户来说,还是太多余了。Linux 分享庞大市场的最佳机会已经来也匆匆去也匆匆了。
+
+事实其实很简单,Linux已经改变了世界,获得了无与伦比的成功 —— 除了桌面系统,这毋庸置疑。Android已经不仅仅是一个基于Linux的平台,它已经成为了一个伟大的标志。Linux在服务器端和嵌入式技术领域占有巨大的份额,同时也为平台整合方面不断提供创新动力。Ubuntu已经成为部署搭建 OpenStack 最流行的平台。全世界的超级计算机都运行着 Linux,Chrome OS 也是基于 Linux。
+
+因此,Linux 正在不断推动着整个世界的巨变,批评家们是时候停下来执著于 Linux 在桌面端的状态了。
+
+--------------------------------------------------------------------------------
+
+via: http://ostatic.com/blog/linux-doesnt-need-to-own-the-desktop
+
+作者:[Sam Dean][a]
+译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://ostatic.com/member/samdean
+[1]:http://www.theregister.co.uk/2014/08/26/linux_turns_23_and_linus_torvalds_celebrates_as_only_he_can/
+[2]:http://www.pcmag.com/article2/0,2817,2465125,00.asp
+[3]:http://ostatic.com/blog/specialization-and-the-linux-desktop
+[4]:http://www.itworld.com/open-source/432816/does-it-still-make-sense-linus-want-desktop-linux
+[5]:http://www.techrepublic.com/article/can-we-please-stop-talking-about-the-linux-desktop/
\ No newline at end of file
diff --git a/published/201409/20140901 Awesome systemd Commands to Manage Linux System.md b/published/201409/20140901 Awesome systemd Commands to Manage Linux System.md
new file mode 100644
index 0000000000..770fb09c1d
--- /dev/null
+++ b/published/201409/20140901 Awesome systemd Commands to Manage Linux System.md
@@ -0,0 +1,290 @@
+真的超赞!用systemd命令来管理linux系统!
+================================================================================
+
+Systemd是一种新的linux系统服务管理器。
+
+它替换了init系统,能够管理系统的启动过程和一些系统服务,一旦启动起来,就将监管整个系统。在本文中,我们用的是[安装有 systemd 216 版本的centos 7.0][1],其最新版本[可以从 freedesktop.org 下载得到][2]。
+
+因为linux操作系统里出现的这一个新人,PID 1被“systemd”占据了,这能通过**pstree**命令看到。
+
+ [root@linoxide ~]# pstree
+
+
+
+那么现在让我们来探索systemd擅长什么,它又有多大的可能性成为sysVinit的新的替代品。
+
+### 1. 更快启动 ###
+
+sysvinit一次一个串行地启动进程。
+
+而Systemd则并行地启动系统服务进程,并且最初仅启动确实被依赖的那些服务,极大地减少了系统引导的时间。
+
+你可以用下面的命令看到系统引导用时:
+
+ [root@linoxide ~]# systemd-analyze
+
+
+
+使用 **time** 参数也能够显示同样的内容。
+
+ [root@linoxide ~]# systemd-analyze time
+
+
+
+如果你想以进程初始化所占用时间排序打印出所有正在运行的单元列表,那么**systemd-analyze**命令可以帮助你完成这个任务。
+
+ [root@linoxide ~]# systemd-analyze blame
+
+
+
+上面的截屏只显示了小部分进程,你可以就像less分页器那样用箭头滚动列表。
+
+### 2. systemctl 命令 ###
+
+systemctl命令是自systemd出现以来被广泛讨论的命令。你可以通过这个命令管理你的整个系统,让我们通过探究这个命令来更进一步。
+
+#### 2.1 列出单元 ####
+
+**systemctl**命令可以带上list-units,也可以什么选项都不带来列出所有正在运行的单元。
+
+ [root@linoxide ~]# systemctl
+
+或
+
+ [root@linoxide ~]# systemctl list-units
+
+
+
+#### 2.2 列出失败的单元 ####
+
+运行失败的单元可以用带--failed选项的命令显示出来。
+
+ [root@linoxide ~]# systemctl --failed
+
+
+
+你可以在这篇文章很多地方看到systemctl的用法。
+
+### 3. 管理服务 ###
+
+让我们来看看systemd是怎么管理系统服务的。
+
+#### 3.1 激活的服务 ####
+
+所有被激活的服务可以同下面这条命令来查看。
+
+ [root@linoxide ~]# systemctl list-units -t service
+
+
+
+#### 3.2 服务状态 ####
+
+在sysvinit中,我们可以用“**service**”命令来管理服务,但在systemd中,我们用systemctl这个命令。
+我们可以用下面这个命令来查看服务是否在运行。
+
+ [root@linoxide ~]# systemctl status dnsmasq
+
+
+
+#### 3.3 启动一个服务 ####
+
+用下面这条命令来启动服务。
+
+ [root@linoxide ~]# systemctl start dnsmasq
+
+对应于**service**命令,这个命令不进行输出。但是毋庸置疑,我们可以通过再次查看这个刚刚被启动的服务的status(状态)来确认他是否被成功地启动了。
+
+
+
+#### 3.4 停止一个服务 ####
+
+现在聪明的你一定知道怎么在systemd下用命令来关闭服务了吧。
+
+ [root@linoxide ~]# systemctl stop dnsmasq
+
+
+
+#### 3.5 重启一个服务 ####
+
+类似的,重启系统服务是用‘**systemctl restart**’来管理的。
+
+ [root@linoxide ~]# systemctl restart dnsmasq
+
+
+
+#### 3.6 重新加载一个服务 ####
+
+在我们需要重新加载服务的配置文件又不想重启这个服务(例如ssh)时,我们可以用这个命令。
+
+ [root@linoxide ~]# systemctl reload sshd
+
+
+
+虽然上述几个命令的语法是可以工作的,但是官方文档建议我们用下面这种语法形式来运行命令(LCTT 译注,即使用在服务名后面跟上“.service”的完整名称):
+
+ [root@linoxide ~]# systemctl status dnsmasq.service
+
+
+
+### 4. 管理引导时的服务 ###
+
+**chkconfig**命令被用来管理系统引导时的服务。同样用systemd也可以管理引导时的系统服务。
+
+#### 4.1 检查服务引导时是否运行 ####
+
+这条命令用来确定服务是否是引导时启动的。
+
+ [root@linoxide ~]# systemctl is-enabled dnsmasq.service
+
+
+
+#### 4.2 让服务在引导时运行 ####
+
+**systemctl**命令是这样来enable(使之在引导时启动)一个服务的。(这相当于sysvinit中的‘**chkconfig on**’)
+
+ [root@linoxide ~]# systemctl enable dnsmasq.service
+
+
+
+#### 4.3 取消服务在引导时运行 ####
+
+类似的,使服务不在引导时启动用这个命令。
+
+ [root@linoxide ~]# systemctl disable dnsmasq.service
+
+
+
+### 5. 管理远程系统 ###
+
+所有刚才提到的systemctl命令通常都能被用来管理远程主机,完成这个任务将用到**ssh**来进行通讯。你只需要像这样将远程主机和用户名添加到systemctl命令后。
+
+ [root@linoxide ~]# systemctl status sshd -H root@1.2.3.4
+
+
+
+### 6. 管理目标 ###
+
+Systemd有一个完成与sysVinit的runlevels相似任务的构想。
+
+sysVinit的runlevels大多是以数字分级的。这里是runlevers在systemd中的对应元素。
+
+> 0 runlevel0.target, poweroff.target
+>
+> 1, s, single runlevel1.target, rescue.target
+>
+> 2, 4 runlevel2.target, runlevel4.target, multi-user.target
+>
+> 3 runlevel3.target, multi-user.target
+>
+> 5 runlevel5.target, graphical.target
+>
+> 6 runlevel6.target, reboot.target
+>
+> emergency emergency.target
+
+#### 6.1 改变当前目标 ####
+
+当前target可以用这个命令切换。
+
+ [root@linoxide ~]# systemctl isolate graphical.target
+
+
+
+#### 6.2 列出当前目标 ####
+
+如果你想查看你正处于哪个target中,你需要列出相应的单元。虽然这样操作可能让你不太爽,但是这就是systemd工作的方式。
+
+ [root@linoxide ~]# systemctl list-units --type=target
+
+
+
+你可以看到“graphical.target”列在此处,这就是我们刚才切换到的目标。现在,让我们切换runlevel到multi-user.target,然后分析下列命令的输出。
+
+ [root@linoxide ~]# systemctl isolate multi-user.target
+ [root@linoxide ~]# systemctl list-units --type=target
+
+
+
+#### 6.3 列出默认目标 ####
+
+用这个systemctl命令来查看默认目标。
+
+ [root@linoxide ~]# systemctl get-default
+
+
+
+#### 6.4 改变默认目标 ####
+
+通过systemctl的set-default命令可以将某个目标设置成默认目标。
+
+ [root@linoxide ~]# systemctl set-default graphical.target
+
+
+
+### 7. 记录 systemd 的日志 ###
+
+journald是systemd独有的日志系统,替换了sysVinit中的syslog守护进程。命令**journalctl**用来读取日志。
+
+ [root@linoxide ~]# journalctl
+
+
+
+#### 7.1 查看引导信息 ####
+
+运行**journalctl -b**命令来查看所有引导日志。
+
+ [root@linoxide ~]# journalctl -b
+
+
+
+#### 7.2 即时显示引导日志 ####
+
+下面这个命令可以实时显示系统日志(类似**tail -f**)。
+
+ [root@linoxide ~]# journalctl -f
+
+
+
+#### 7.3 查看特定服务的日志 ####
+
+你可以像这样运用**journalctl**来查看你只想看到的服务或可执行程序的日志。
+
+ [root@linoxide ~]# journalctl /usr/sbin/dnsmasq
+
+
+
+### 8. 电源管理 ###
+
+systemctl命令也可以用来关机,重启或者休眠。
+
+要关机、重启、挂起和休眠,分别使用如下命令:
+
+ [root@linoxide ~]# systemctl poweroff
+
+ [root@linoxide ~]# systemctl reboot
+
+ [root@linoxide ~]# systemctl suspend
+
+ [root@linoxide ~]# systemctl hibernate
+
+### 9. 又及 ###
+
+**systemd**带来了一整套与操作系统交互的新途径,并且极具特色。举个栗子,你可以用hostnamectl命令来获得你的linux机器的hostname和其它有用的独特信息。
+
+ [root@linoxide ~]# hostnamectl
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-command/linux-systemd-commands/
+
+作者:[Raghu][a]
+译者:[szrlee](https://github.com/szrlee)
+校对:[ wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/raghu/
+[1]:http://linoxide.com/linux-how-to/install-systemd-centos-redhat/
+[2]:http://www.freedesktop.org/software/systemd/
diff --git a/published/201409/20140901 Remarkable--A New MarkDown Editor For Linux.md b/published/201409/20140901 Remarkable--A New MarkDown Editor For Linux.md
new file mode 100644
index 0000000000..25198752f6
--- /dev/null
+++ b/published/201409/20140901 Remarkable--A New MarkDown Editor For Linux.md
@@ -0,0 +1,55 @@
+Remarkable:Linux平台下一个新的MarkDown编辑器
+===
+
+
+
+[Remarkable][1]是一个全新,免费,功能齐全的Linux发行版Markdown编辑器。它拥有许多特性,比如:在线预览,这让你的Markdown编辑变得更加容易。它是一个轻量级的编辑器,而且它还有一个简洁的用户界面(UI)。
+
+下面是Remarkable的主要特性:
+
+- 实时预览
+- 支持Github Markdown 语法
+- 支持导出为PDF和HTML
+- 自定义CSS
+- 语法高亮
+- 高度可定制
+- 字数实时计数
+- 键盘快捷键
+
+
+
+你可以观看[这部YouTube视频][2](请自备梯子:-])了解Linux下的Remakable。
+
+### 安装 ###
+
+根据不同的Linux发行版本,Remarkable拥有许多可供使用的安装源,下面是不同Linux发行版以及它们对应的安装文件
+
+#### Ubuntu / Linux Mint: ####
+
+- [Dowbnload .DEB][3]
+
+#### Fedora: ####
+
+- [Download .RPM][4]
+
+#### Arch Linux (AUR): ####
+
+ sudo yaourt -S remarkable
+
+喜欢吗?
+
+---
+
+via: http://www.unixmen.com/remarkable-new-markdown-editor-linux/
+
+作者:[Enock Seth Nyamador][a]
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/seth/
+[1]:http://remarkableapp.net/
+[2]:https://www.youtube.com/watch?v=UpjAIcXti9s
+[3]:http://remarkableapp.net/files/remarkable_0.965_all.deb
+[4]:http://remarkableapp.net/files/remarkable-0.965.rpm
diff --git a/published/201409/20140901 Ubuntu Wallpaper Contest Closes, These Are Our 8 Faves.md b/published/201409/20140901 Ubuntu Wallpaper Contest Closes, These Are Our 8 Faves.md
new file mode 100644
index 0000000000..5363965014
--- /dev/null
+++ b/published/201409/20140901 Ubuntu Wallpaper Contest Closes, These Are Our 8 Faves.md
@@ -0,0 +1,72 @@
+Ubuntu壁纸大赛落幕,推荐八张我们喜欢的
+================================================================================
+
+**盖上你的镜头,放下你的笔,拔掉手绘板的电源,从你的GIMP前离开,[Ubuntu 14.10 壁纸大赛][1] 现在结束了**
+
+为 Ubuntu 发行版的配套的一年两次的社区壁纸大赛总是会带来人们的激动、热情和争议的讨论。*太单调了!太亮了!植物在哪里? 你为什么没有猫??!!* —— 他们总是这样吵吵。
+
+随着终结时间的到来。。好吧,这就是最后期限了,现在不再接收任何新的提交了。
+
+在接下来的一周,为了评选出最喜爱的作品,会由上一年获胜的艺术家组成的评委会将会对每一个作品进行筛选。**获胜的壁纸将会在2014年9月9日宣布**.
+
+### 我们最喜爱的仅仅意味着:这是属于我们的。 ###
+
+我们从[大约400张][2]中搜罗了一些我们最喜爱的,如同以往,这是一个非常苦难的任务,如此多的杰作,但我们的磁盘空间却如此的小...
+
+**否认声明**:我们不属于评委会,我们也没有直接或间接影响评委会的决定。每个提交作品都会根据他们的价值进行判断和展示。
+
+如果喜欢下列作品,你可以点击进入艺术家作者在Flickr上的主页
+
+#### Glden leaves ####
+
+[][3]
+
+#### Reminiscent Rain ####
+
+[][4]
+
+#### Bamboo Mat ####
+
+[][5]
+
+#### LSC_0440 ####
+
+[][6]
+
+#### Ubuntu Wallpaper ####
+
+[][7]
+
+#### Ubur ####
+
+[][8]
+
+#### Abstract ####
+
+[][9]
+
+#### 500 ####
+
+[][10]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/08/best-ubuntu-wallpaper-contest-entries-1410
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[lfzark](https://github.com/lfzark)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/08/ubuntu-14-10-wallpaper-contest
+[2]:https://www.flickr.com/groups/1410wallpapersubmissions/
+[3]:https://www.flickr.com/photos/mauro_campanelli/14919901295
+[4]:https://www.flickr.com/photos/fixem/14858973848
+[5]:https://www.flickr.com/photos/havaxinhua/14222953450
+[6]:https://www.flickr.com/photos/laurentschenkel/14698997457
+[7]:https://www.flickr.com/photos/57135082@N05/14573905897
+[8]:https://www.flickr.com/photos/anomalous_saga/8423532123
+[9]:https://www.flickr.com/photos/el_nando/14969203701
+[10]:https://www.flickr.com/photos/e4v/14660376638
diff --git a/published/201409/20140902 Happy Birthday Email.md b/published/201409/20140902 Happy Birthday Email.md
new file mode 100644
index 0000000000..6d8256419a
--- /dev/null
+++ b/published/201409/20140902 Happy Birthday Email.md
@@ -0,0 +1,25 @@
+他发明了 Email ?
+================================================================================
+[编者按:本文所述的 Email 发明人的观点存在很大的争议,请读者留意,以我的观点来看,其更应该被称作为某个 Email 应用系统的发明人,其所发明的一些功能和特性,至今沿用。——wxy]
+
+**一个印度裔美国人用他天才的头脑发明了电子邮件,而从此以后我们没有哪一天可以离开电子邮件。**
+
+
+
+8月30日,电子邮件满32岁了。现在让我们一起熟悉一下这个快捷迅速的信息传递方式是怎么诞生的。这要感谢以为印度裔美国人,Shiva Ayyadurai。Shiva开发了一个全功能的办公室间邮件系统软件并命名为email。
+
+在1982年8月30日,他被美国政府正式承认作为这个电脑程序的发明者。Shiva生于孟买的一个泰米尔家庭,发明email系统的时候只有14岁。当时他还在新泽西的利文斯顿高中学习,并开始为新泽西牙科和医科大学开发这个系统。email系统被授予版权,因为当时还没有其他方式被用来保护软件发明。
+
+Ayyadurai从日常办公室之间的内部邮件往来方式里找到email系统的点子。他尝试复制普遍用来传送办公室之间邮件的‘气动管道系统’。这个系统使用了一个物理的管道网络来传送打印好的邮件给秘书。每一位秘书都有收件箱,发件箱,草稿箱,复写纸,文件夹,地址本,别针,或是附件等等。所有这些都用作建立和处理接收和发送邮件。
+
+Shiva也记下了一些常用的模板,像“发给”,“来自”,“主题”,“日期”,“正文”,“抄送”,“密送”等等。所有这些模版也都被纳入电子邮件的版本中。电子邮件系统是用FORTRAN编程语言写的,Shiva发明了一个同样系统的电子版本。因为这件非凡的作品,Shiva获得了无数嘉奖,也赢得了1981年度高中毕业生的西屋科学天才奖。如今,由史密森学会美国历史国家博物馆持有“Email”的正式美国版权。但是,也有争论说不是Ayyadurai而是其他什么人发明了email。
+
+--------------------------------------------------------------------------------
+
+via: http://www.efytimes.com/e1/fullnews.asp?edid=147170
+
+作者:Sanchari Banerjee
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201409/20140902 How to share on linux the output of your shell commands.md b/published/201409/20140902 How to share on linux the output of your shell commands.md
new file mode 100644
index 0000000000..f077f36895
--- /dev/null
+++ b/published/201409/20140902 How to share on linux the output of your shell commands.md
@@ -0,0 +1,111 @@
+如何在linux上分享你shell命令的输出
+================================================================================
+前段时间我发布了一篇关于[shelr.tv][1]这个网站的文章,它提供一个服务允许你从网站上直接分享你的[终端][2]记录。
+
+现在shelr.tv这个网站似乎关闭了,然后我四处寻找是否有类似的网站,于是我发现了[commands.com][3]。
+
+从它的主页上来看,它的服务和其他网站提供的服务是类似的,因此让我们来测试它。
+
+### 步骤 1 – 在网站上注册 ###
+
+只需要[注册][4]一个新的 用户名/密码,或者直接使用你的github账户快速登录。
+
+### 步骤 2 – 下载安装monitor程序 ###
+
+[Monitor][5]是一个命令行工具,它能捕获命令行的输入输出并且发送到commands.com网站上,这个程序是开源的,并托管在github上。
+
+Monitor使得仓库的设置/安装变得更简单。通过它,你能方便地向人们展示最常见的错误与命令的输出。
+
+简而言之,你能方便地和世界分享你的命令及其输出。
+
+通过如下简单几步来安装它:
+
+1) 克隆github上的这个项目的仓库,这样你能获得最新的源代码。
+
+要完成这步,你需要在系统中已经安装了git命令,如果你得到关于这个命令的报错信息,你可以使用包管理工具来安装它,例如:
+
+基于Debian的发布版:
+
+ apt-get install git
+
+Redhat/Centos/Fedora发布版:
+
+ yum install git
+
+现在从终端克隆这个仓库:
+
+ git clone https://github.com/dtannen/monitor.git
+
+2) 安装readline和curl,这些库是通过源码构建程序的先决条件:
+
+基于Debian的发布版:
+
+ apt-get install libreadline-dev libcurl4-openssl-dev
+
+Redhat/Centos/Fedora发布版:
+
+ yum install readline-devel curl-devel
+
+3) 构建程序:
+
+要完成这步,你必须进入刚刚用git克隆的目录,然后编译这个c程序:
+
+ cd monitor
+ make
+ sudo make install
+
+默认安装将把二进制文件放入/usr/local/bin目录下。
+
+
+
+### 步骤 3 – 使用monitor命令###
+
+monitor命令特别简单易用:
+
+ monitor {-d} {-h} {-u }
+
+ -d : 不删除/tmp下的文件
+ -h : 帮助
+ -u : commands.com用户名
+
+要退出monitor程序,需要按ctrl-c。
+
+对我来说这仅仅意味着打开一个终端然后执行这些命令:
+
+ riccio@mint-desktop ~ $ monitor -u ricciocri
+ Password:
+
+ Successfully logged in...
+ AuthKey saved to /tmp/.riccio.commands.com. Delete file to return to Anonymous posting.
+ monitor$ cd /tmp
+ ...
+
+想知道在这之后我使用过的哪个命令吗?我已经把这个会话公开(默认是私有),因此你可以去这个url查看:[https://commands.com/JTNSHRLQJA][6]
+
+在这里,你能看我已经使用过的命令以及它们的输出,一个有趣的选项是“fold/expand”你可以折叠(fold)所有的命令的输出或者仅仅展开(expand)你喜欢的那个命令的输出。
+
+### 总结 ###
+
+这只是一个简单的安装指南,在这个网站上你能参加更多“社会化”的活动,比如评论脚本/shell会话,派生它们或者选择你的最爱。
+
+和github一样,你能派生任何一个公开的脚本/命令并能直接在网站上改变它,然后你也能得到一个公开(或私有)的url。你可以直接运行你脚本,就像这样:
+
+ curl commands.io/JTNSHRLQJA | sh
+
+在网络上储存一些你在电脑/服务器上经常使用到的脚本,这是极好的,通常不要放置任何密码或敏感信息,这样你的信息才足够安全。
+
+--------------------------------------------------------------------------------
+
+via: http://linuxaria.com/article/how-to-share-on-linux-the-output-of-your-shell-commands
+
+译者:[guodongxiaren](https://github.com/guodongxiaren)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://linuxaria.com/recensioni/shelr-broadcast-your-linux-shell-on-the-net
+[2]:http://linuxaria.com/tag/shell
+[3]:https://commands.com/
+[4]:https://commands.com/Register/Index
+[5]:https://github.com/dtannen/monitor
+[6]:https://commands.com/JTNSHRLQJA
diff --git a/published/201409/20140902 Use SearchMonkey To Search Text In All Files Within A Directory In Ubuntu.md b/published/201409/20140902 Use SearchMonkey To Search Text In All Files Within A Directory In Ubuntu.md
new file mode 100644
index 0000000000..06f10c0615
--- /dev/null
+++ b/published/201409/20140902 Use SearchMonkey To Search Text In All Files Within A Directory In Ubuntu.md
@@ -0,0 +1,37 @@
+Ubuntu文本检索神器——SearchMonkey
+================================================================================
+有时候,我们需要搜索包含有某些特定文本或单词的文件。如果你是个开发者或者程序员,经常会碰到这样的问题。现在,我们总是能够使用[Linux命令来查找包含有指定文本的所有文件][1],但不是每个人都热衷于命令行。我见过那些优秀的程序员,他们更多的是依赖于图形化工具,而不是命令行。
+
+如果你也更喜欢图形化工具,那么[SearchMonkey][2]对于你而言是个十分完美的应用。
+
+### SearchMonkey是你的桌面搜索引擎 ###
+
+SearchMonkey递归搜索目录,因此你可以在它工作的时候坐下放松一下。用户可以使用强大的正则表达式来搜索文件名和内容,这使得SearchMonky返回结果时更为精确。
+
+此外,SearchMonkey不仅仅给你列出可能包含有你正在查找的内容的文件,它也高亮显示匹配的内容。
+
+### 在Ubuntu 14.04中安装SearchMonkey ###
+
+SearchMonkey可以在Ubuntu 14.04的软件仓库中找到,你只需要通过Ubuntu软件中心或者通过以下命令来安装:
+
+ sudo apt-get install searchmonkey
+
+安装完毕后,你可以从Unity Dash中启动SearchMonkey。界面简明直观,易于使用。
+
+
+
+SearchMonkey帮助你快速查找到你所需要的文件,不需要先构建一个驱动映射。每次搜索都是实时的,结果也会在找到后立即在上下文中显示!尤,其,它还是一个免费又开源的软件。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/searchmonkey-search-text-files-linux/
+
+作者:[Amit Asthana][a]
+译者:[GOLinux](https://github.com/GOLinux )
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/amit/
+[1]:http://www.computerandyou.net/2011/06/how-to-find-all-files-containing-specific-text-in-linux/
+[2]:http://searchmonkey.embeddediq.com/
diff --git a/published/201409/20140904 The Masked Avengers.md b/published/201409/20140904 The Masked Avengers.md
new file mode 100644
index 0000000000..8d81cf3188
--- /dev/null
+++ b/published/201409/20140904 The Masked Avengers.md
@@ -0,0 +1,377 @@
+戴着面具的复仇者 —— 揭秘:激进黑客组织“匿名者”
+
+从“突尼斯政变 ”到“弗格森枪击事件 ”,“匿名者”组织是如何煽动起网络示威活动的。
+
+
+
+通过入会声明,任何人都能轻易加入“匿名者”组织。某人类学家称,组织成员会“根据影响程度对重大事件保持着不同关注,特别是那些能挑起强烈争端的事件”。
+
+纸雕作品:Jeff Nishinaka / 摄影:Scott Dunbar
+
+1
+
+上世纪七十年代中期,当 Christopher Doyon 还是一个生活在缅因州乡村的孩童时,就终日泡在 CB radio 上与各种陌生人聊天。他的昵称是“Big red”(大红),因为他有一头红色的头发。Christopher Doyon 把发射机挂在了卧室的墙壁上,并且说服了父亲在自家屋顶安装了两根天线。CB radio 主要用于卡车司机间的联络,但 Doyon 和一些人却将之用于不久后出现在 Internet 上的虚拟社交——自定义昵称、成员间才懂的笑话,以及施行变革的强烈愿望。
+
+Doyon 很小的时候母亲就去世了,兄妹二人由父亲抚养长大,他俩都说受到过父亲的虐待。由此 Doyon 在 CB radio 社区中找到了慰藉和目标感。他和他的朋友们轮流监听当地紧急事件频道。其中一个朋友的父亲买了一个气泡灯并安装在了他的车顶上;每当这个孩子收听到来自孤立无援的乘车人的求助后,都会开车载着所有人到求助者所在的公路旁。除了拨打 911 外他们基本没有什么可做的,但这足以让他们感觉自己成为了英雄。
+
+短小精悍的 Doyon 有着一口浓厚的新英格兰口音,并且非常喜欢《星际迷航》和阿西莫夫的小说。当他在《大众机械》上看到一则“组装你的专属个人计算机”构件广告时,就央求祖父给他买一套,接下来 Doyon 花了数月的时间把计算机组装起来并连接到 Internet 上去。与鲜为人知的 CB 电波相比,在线聊天室确实不可同日而语。“我只需要点一下按钮,再选中某个家伙的名字,然后我就可以和他聊天了,” Doyon 在最近回忆时说道,“这真的很惊人。”
+
+十四岁那年,Doyon 离家出走,两年后他搬到了马萨诸塞州的剑桥,那里是一个新出现的计算机反主流文化的中心。同一时间,早在 34 年前就已由麻省理工学院的铁路狂热爱好者们创立的铁路模型技术俱乐部,已经演变成了“黑客”——也是推广该词的第一个组织。Richard Stallman,在那时还是一名任职于麻省理工学院人工智能实验室的计算机科学家,指出早期黑客们比起引发技术战争更乐于讨论“哥德尔、艾舍尔、巴赫”之类的话题。“我们没有任何约束”,Stallman 说,“这不是一项运动,而是一种可以让人们相互留下深刻印象的行为。”其中有些“行为”很有趣(制作电子游戏);有些非常实用(提高计算机处理速度);还有些则属于发生在真实世界里的恶作剧(在校园内放置模拟街道标识)。Michael Patton,在七十年代里管理着铁路模型技术俱乐部的人,谈起初代黑客间不成文的规定,说第一条就是“不要搞破坏”。
+
+在剑桥,Doyon 以打零工和乞讨为生,他宁愿为了自由而睡在公园的长椅上,也不愿被单调的固定工作所束缚。1985 年,他和其他六个活跃分子共同组建了一支电子“义勇军”。模仿“动物解放阵线”,他们称呼自己为“人民解放阵线”(Peoples Liberation Front,PLF)。所有人都使用化名:如组织的创建者,声称自己是老兵的一位高大中年男子,自称“Commander Adama”;Doyon 则选择了“Commander X”这个称呼。受 “Merry Pranksters” 启示,他们在 Grateful Dead 的演唱会上出售 LSD(lysergic acid diethylamide,麦角酸酰二乙胺,一种迷幻药),并用收入的一部分购置了一辆二手校车,以及扩音器、相机,还有电源充电器。同时在剑桥租了一间地下公寓,Doyon 偶尔会在那里歇息。
+
+Doyon 深深地沉溺于计算机中,虽然他并不是一位专业的程序员。在过去一年的几次谈话中,他告诉我他将自己视为激进主义分子,继承了 Abbie Hoffman 和 Eldridge Cleaver 的激进传统;技术不过是他抗议的工具。八十年代,哈佛大学和麻省理工学院的学生们举行集会,强烈抗议他们的学校从南非撤资。为了帮助抗议者通过安全渠道进行交流,PLF 制作了无线电套装:移动调频发射器、伸缩式天线,还有麦克风,所有部件都内置于背包内。Willard Johnson,麻省理工学院的一位激进分子和政治学家,表示黑客们出席集会并不意味着一次变革。“我们的大部分工作仍然是通过扩音器来完成的,”他解释道。
+
+1992 年,在印第安纳的一场 Grateful Dead 的演唱会上,Doyon 秘密地向一位瘾君子出售了 300 粒药。由此他被判决在印第安纳州立监狱服役十二年,后来改为五年。服役期间,他对宗教和哲学产生了浓厚的兴趣,并于鲍尔州立大学学习了相应课程。
+
+1994 年,第一款商业 Web 浏览器 Netscape Navigator(网景领航员)正式发布,同一年 Doyon 被捕入狱。当他出狱并再次回到剑桥后,PLF 依然活跃着,并且他们的工具有了实质性的飞跃。Doyon 回忆起他和入狱之前对比的变化,“非常巨大——好比是‘烽火狼烟’跟‘电报传信’之间那么大的差距。”黑客们入侵了一个印度的军事网站,并修改其首页文字为“拯救克什米尔”。在塞尔维亚,黑客们攻陷了一个阿尔巴尼亚网站。Stefan Wray,一位早期网络激进主义分子,为一次纽约“反哥伦布日”集会上的黑客行径辩护。“我们视之为电子形式的公众抗议,”他告诉大家。
+
+1999 年,美国唱片业协会因为版权侵犯问题起诉了 Napster,一款文件共享服务。最终,Napster 于 2001 年关闭。Doyon 与其他黑客使用分布式拒绝服务(Distributed Denial of Service,DDoS,使大量数据涌入网站导致其响应速度减缓直至奔溃)的手段,攻击了美国唱片业协会的网站,使之停运时间长达一星期之久。Doyon为自己的行为进行了辩解,并高度赞扬了其他的“黑客主义者”。“我们很快意识到保卫 Napster 的战争象征着保卫 Internet 自由的战争,”他在后来写道。
+
+2008 年的一天,Doyon 和 “Commander Adama” 在剑桥的 PLE 地下公寓相遇。Adama 当着 Doyon 的面点击了癫痫基金会的一个链接,与意料中将要打开的论坛不同,出现的是一连串闪烁的彩光。有些癫痫病患者对闪光灯非常敏感——这完全是出于恶意,有人想要在无辜群众中诱发癫痫病。已经出现了至少一名受害者。
+
+Doyon 愤怒了。他质问 Adama 什么样的人才会做出这样的事来。
+
+“你听说过‘匿名者’组织吗?” Adama 问。
+
+2
+
+2003 年,一位来自纽约的已经患病 15 年的失眠症患者 Christopher Poole,推出了 4chan 讨论社区,在这里用户们可以随意发布照片或者尖锐评论。随后其关注点迅速从动漫延伸到许多 Internet 的早期文化基因,如:LOLcats、Chocolate Rain、RickRolls。当用户没有按照屏幕上的要求输入昵称时,将会得到系统默认的“匿名者”(Anonymous)称呼。
+
+
+
+“我得谈谈我的感受。”
+
+Poole 希望匿名这一举措可以延续社区的尖锐性因素。“我们无意参与理智的涉外事件讨论,”他在网站上写道。4chan 社区里最具价值的事之一便是寻求“挑起强烈的争端”(lulz),这个词源自缩写 LOL。Lulz 经常是通过分享幼稚的笑话或图片来实现的,其中大部分不是色情的就是下流的。其中最令人震惊的部分被贴在了网站的“/b/”版块上,这里的用户们称呼自己为“/b/tards”。Doyon 知道 4chan 这个社区,但他认为它的用户是“一群愚昧无知的顽童”。2004 年前后,/b/ 上的部分用户开始把“匿名者”视为一个独立的实体。
+
+这是一个全新的黑客团体。“这不是一个传统意义上的组织,”一位领导计算机安全工作的研究员 Mikko Hypponen 告诉我——倒不如,视之为一个非传统的亚文化群体。Barrett Brown,德克萨斯州的一名记者,同时也是众所周知的“匿名者”高层领导,把“匿名者”描述为“一连串前仆后继的伟大友谊”。无需任何会费或者入会仪式。任何想要加入“匿名者”组织,成为一名匿名者(Anon)的人,都可以通过简短的象征性的宣誓加入。
+
+尽管 4chan 的关注焦点是一些琐碎的话题,但许多匿名者认为自己就是“正义的十字军”。如果网上有不良迹象出现,他们就会发起具有针对性的治安维护行动。不止一次,他们以未成年少女的身份使恋童癖陷入圈套,然后把他们的个人信息交给警察局。其他匿名者则是政治的厌恶者,为了挑起争端想方设法散布混乱的信息。他们中的一些人在 /b/ 上发布看着像是雷管炸弹的图片;另一些则叫嚣着要炸毁足球场并因此被联邦调查局逮捕。2007 年,一家洛杉矶当地的新闻联盟机构称呼“匿名者”组织为“互联网负能量制造机”。
+
+2008 年 1 月,Gawker Media 上传了一段关于汤姆克鲁斯大力吹捧山达基优点的视频。这段视频是受版权保护的,山达基教会致信 Gawker,勒令其删除这段视频。“匿名者”组织认为教会企图控制网络信息。“是时候让 /b/ 来干票大的了,”有人在 4chan 上写道。“我说的是‘入侵’或者‘攻陷’山达基官方网站。”一位匿名者使用 YouTube 放出一段“新闻稿”,其中包括暴雨云视频和经过计算机处理的语音。“我们要立刻把你们从 Internet 上赶出去,并且在现有规模上逐渐瓦解山达基教会,”那个声音说,“你们无处可躲。”不到一个星期,这段 YouTube 视频的点击率就超过了两百万次。
+
+“匿名者”组织已经不仅限于 4chan 社区。黑客们在专用的互联网中继聊天(Internet Relay Chat channels,IRC 聊天室)频道内进行交流,协商策略。通过 DDoS 攻击手段,他们使山达基的主网站间歇性崩溃了好几天。匿名者们制造了“谷歌炸弹”,由此导致 “dangerous cult” 的搜索结果中的第一条结果就是山达基主网站。其余的匿名者向山达基的欧洲总部寄送了数以百计的披萨,并用大量全黑的传真单耗干了洛杉矶教会总部的传真机墨盒。山达基教会,据报道是一个拥有超过十亿美元资产的组织,当然能经得起墨盒耗尽的考验。但山达基教会的高层可不这么认为,他们还收到了死亡恐吓,由此他们不得不向 FBI 申请调查“匿名者”组织的成员。
+
+2008 年 3 月 15 日,在从伦敦到悉尼的一百多个城市里,数以千计匿名者们游行示威山达基教会。为了切合“匿名”这个主题,组织者下令所有的抗议者都应该佩戴相同的面具。深思熟虑过蝙蝠侠后,他们选定了 2005 年上映的反乌托邦电影《 V 字仇杀队》中 Guy Fawkes 的面具。“在每个大城市里都能以很便宜的价格大量购买,”广为人知的匿名者、游行组织者之一 Gregg Housh 告诉我说道。漫画式的面具上是一个的脸颊红润的男人,八字胡,有着灿烂的笑容。
+
+匿名者们并未“瓦解”山达基教会。并且汤姆克鲁斯的那段视频任然保留在网络上。匿名者们证明了自己的顽强。组织选择了一个相当浮夸的口号:“我们是军团。绝不宽恕。永不遗忘。等待我们。”(We are Legion. We do not forgive. We do not forget. Expect us.)
+
+3
+
+2010 年,Doyon 搬到了加利福尼亚州的圣克鲁斯,并加入了当地的“和平阵营”组织。利用从木材堆置场偷来的木头,他在山上盖起了一间简陋的小屋,“借用”附近住宅的 WiFi,使用太阳能电池板发电,并通过贩卖种植的大麻换取现金。
+
+与此同时,“和平阵营”维权者们每天晚上开始在公共场所休息,以此抗议圣克鲁斯政府此前颁布的“流浪者管理法案”,他们认为这项法案严重侵犯了流浪者的生存权。Doyon 出席了“和平阵营”的会议,并在网上发起了抗议活动。他留着蓬乱的红色山羊胡,戴一顶米黄色软呢帽,类似军服的服装。因此维权者们送给了他“罪恶制裁克里斯”的称呼。
+
+“和平阵营”的成员之一 Kelley Landaker 曾几次和 Doyong 讨论入侵事宜。Doyon 有时会吹嘘自己的技术是多么的厉害,但作为一名资深程序员的 Landaker 却不为所动。“他说得很棒,但却不是行动派,”Landaker 告诉我。不过在那种场合下,的确更需要一位富有激情的领导者,而不是埋头苦干的技术员。“他非常热情并且坦率,”另一位成员 Robert Norse 如是对我说。“他创造出了大量的能够吸引媒体眼球的话题。我从事这行已经二十年了,在这一点上他比我见过的任何人都要厉害。”
+
+Doyon 在 PLF 的上司,Commander Adama 仍然住在剑桥,并且通过电子邮件和 Doyon 保持着联络,他下令让 Doyon 监视“匿名者”组织,以此获知其运作方式,并伺机为 PLF 招募新成员。因为癫痫基金会网站入侵事件的那段不愉快回忆,Doyon 拒绝了 Adama。Adama 给 Doyon 解释说,在“匿名者”组织里不怀好意的黑客只占极少数,与此相反,这个组织经常会有一些的轰动世界举动。Doyon 对这点表示怀疑。“4chan 怎么可能会有轰动世界的大举动?”他质问道。但出于对 PLF 的忠诚,他还是答应了 Adama 的请求。
+
+Doyon 经常带着一台宏基笔记本电脑出入于圣克鲁斯的一家名为 Coffee Roasting Company 的咖啡厅。“匿名者”组织的 IRC 聊天室主频道无需密码就能进入。Doyon 使用 PLF 的昵称进行登录并加入了聊天室。一段时间后,他发现了组织内大量的专用匿名者行动聊天频道,这些频道的规模更小,更多专门的组内匿名者间对话相互重复。要想参与行动,你必须知道行动的专用聊天频道名称,并且聊天频道随时会因为陌生的闯入者而进行变更。这套交流系统并不具备较高的安全系数,但它的确很凑效。“这些专用行动聊天频道确保了行动机密的高度集中”麦吉尔大学的人类学家 Gabriella Coleman 告诉我。
+
+有些匿名者提议了一项行动,名为“反击行动”。如同新闻记者 Parmy Olson 于 2012 年在书中写道的,“我们是匿名者,” 这项行动是以又一次支持文件共享的网站而创立,如同 Napster 的后继者海盗湾(Pirate Bay),但随后其目标却扩展到了政治领域。2010 年末,在美国国务院的要求下,包括万事达、Visa、PayPal 在内的几家公司终止了对维基解密的捐助,维基解密是一家公布了成百上千份外交文件的自发性组织。在一段在线视频中,“匿名者”组织扬言要进行报复,发誓会对那些阻碍维基解密发展的公司进行惩罚。Doyon 被这种抗议企业的精神所吸引,决定参加这次行动。
+
+
+
+潘多拉的魔盒
+
+在十二月初的“反击行动”中,“匿名者”组织指导那些新成员,或者说新兵,去看标题为“如何加入那个【哔~】的Hive”,参与者被要求“首先配置他们【哔~】的网络,这【哔~】的很重要。”同时他们被要求下载“低轨道离子炮”,一款易于使用的开源软件。Doyon 下载了软件并在聊天室内等待着下一步指示。当开始的指令发出后,数千名匿名者将同时发动进攻。Doyon 进入了目标网址——www.visa.com——同时,在软件的右上角有个按钮,上面写着“IMMA CHARGIN MAH LAZER.”(“反击行动”同时也发动了大量的复杂精密的入侵进攻。)几天后,“反击行动”攻陷了万事达、Visa、PayPal 公司的主页。在法院的控告单上,PayPal 称这次攻击给公司造成了 550 万美元的损失。
+
+但对 Doyon 来说,这是切实的激进主义体现。在剑桥反对种族隔离的行动中,他不能即可见效;而现在,只需指尖轻轻一点,就可以在攻陷大公司网站的行动中做出自己的贡献。隔天,赫芬顿邮报上出现了“万事达沦陷”的醒目标题。一位得意洋洋的匿名者发推特道:“有些事情维基解密是无能为力的。但这些事情却可以由‘反击行动’来完成。”
+
+4
+
+2010 年的秋天,“和平阵营”的抗议活动终止,政府只做出了略微让步,“流浪者管理法案”仍然有效。Doyon 希望通过借助“匿名者”组织的方略扭转局势。他回忆当时自己的想法,“也许我可以发动‘匿名者’组织来教训这种看似不堪一击的市政府网站,它们绝对会【哔~】地沦陷。最终我们使得市政府永久性废除‘流浪者管理法案’。”
+
+Joshua Covelli 是一位 25 岁的匿名者,他的昵称是“Absolem”,他非常钦佩 Doyon 的果敢。“过去我们的组织完全是各种混乱的一盘散沙,”Covelli 告诉我。在“Commander X”加入之后,“组织似乎开始变得有模有样了。”Covelli 的工作是俄亥俄州费尔伯恩的一所大学接待员,他从不了解任何有关圣克鲁斯的政治。但是当 Doyon 提及帮助“和平阵营”抗击活动的计划后,Covelli 立即回复了一封表示赞同的电子邮件:“我期待参加这样的行动已经很久了。”
+
+Doyon 使用 PLF 的昵称邀请 Covelli 在 IRC 聊天室进行了一次秘密谈话:
+
+Absolem:抱歉,有个比较冒犯的问题...请问 PLF 是组织的一部分还是分开的?
+
+Absolem:我会这么问,是因为看你们聊天,觉得你们都是非常有组织的。
+
+PLF:不不不,你的问题一点也不冒犯。很高兴遇到你。PLF 是一个来自波士顿的黑客组织,已经成立 22 年了。我在 1981 年就开始了我的黑客生涯,但那时我并没有使用计算机,而是使用的 PBX(Private Branch Exchange,电话交换机)。
+
+PLF:我们组织内所有成员的年龄都超过了 40 岁。我们当中有退伍士兵和学者。并且我们的成员“Commander Adama”,正在躲避一大帮警察还有间谍的追捕。
+
+Absolem:听起来很棒!我对这次行动很感兴趣,不过“匿名者”组织看起来太混乱无序,不知道我是否可以提供一些帮助。我的电脑技术还不错,但我在入侵技术上还完全是一个新手。我有一些小工具,但不知道怎么去使用它们。
+
+庄重的入会仪式后,Doyon 正式接纳 Covelli 加入 PLF:
+
+PLF:把所有可能使你受牵连的敏感文件加密。
+
+PLF:还有,想要联系任何一位 PLF 成员的话,给我发消息就行。从现在起,请叫我... Commander X。
+
+2012 年,美联社称“匿名者”组织为“一帮专家级的黑客”;Quinn Norton 在《连线》杂志上发文称“‘匿名者’组织可以入侵任何坚不可摧的网站”,并在文末赞扬他们为“一群卓越的民间黑客”。事实上,有些匿名者的确是很有天赋的程序员,但绝大部分成员根本不懂任何技术。人类学家 Coleman 告诉我只有大约五分之一的匿名者是真正的黑客——其他匿名者则是“极客与抗议者”。
+
+2010 年 12 月 16 日,Doyon 以 Commander X 的身份向几名记者发送了电子邮件。“明天当地时间 12:00 的时候,‘人民解放阵线’组织与‘匿名者’组织将从互联网中删除圣克鲁斯政府网站”,他在邮件中写道,“12:30 之后我们将恢复网站的正常运行。”
+
+圣克鲁斯数据中心的工作人员收到了警告,匆忙地准备应对攻击。他们在服务器上运行起安全扫描软件,并向当地的互联网供应商 AT & T 求助,后者建议他们向 FBI 报警。
+
+第二天,Doyon 走进了一家星巴克并启动了笔记本电脑。即便是在这样一个小镇上,Doyon 也显得格外醒目:一个疲惫的流浪汉疯狂地敲击着键盘。随后,Covelli 和他在一间秘密聊天室碰头。
+
+PLF:去社区,登录——检查一下右上角的“聊天”菜单栏,上面有今天的具体方案。感谢你对我们的支持。
+
+Absolem:一切为了 PLF,长官。
+
+他们都打开了 DDoS 软件。尽管只有少数人参加了这次“和平阵营”的行动,但 Doyon 好似统率千军万马般下令:
+
+PLF:注意:每一位支持 PLF 或者站在我们这边的朋友——还有那些对抗邪恶保卫正义的勇士们:‘和平阵营’行动进行中,战斗的号角已经响起!目标:www.co.santa-cruz.ca.us。随意开火。重复指令:开火!
+
+Absolem:收到,长官。
+
+数据中心的工作人员紧张地盯着服务器,上面反馈出一连串拒绝服务的请求。尽管他们尽了最大的努力,网站还是崩溃了。25 分钟后,Doyon 决定遵守承诺。他下令“停止攻击”,政府网站开始恢复了正常运行。(这次攻击后,“流浪者管理法案”依旧没有废除。)
+
+Doyon 没有时间去庆祝胜利,他显得焦躁不安。“我得走了,”他告诉 Covelli。他飞一般得逃回了山中小屋。Doyon 的感觉是正确的:一位 FBI 的探员早就在 IRC 上盯住了他。这位 FBI 的探员已经获许搜查 Doyon 的笔记本电脑。
+
+几周后,Doyon 的食物吃完了,他不得不下山进行采购。当 Doyon在 Coffee Roasting Company 咖啡厅逗留的时候,两位联邦探员走了进来将他拘捕。Doyon 给“和平阵营”的创建者,同时也是一名律师的 Ed Frey 打了一个电话,Ed Frey 来到了警察局。Doyon 告诉了 Frey 他的另一个身份“Commander X”的事。
+
+随后 Doyon 被释放,但 FBI 没收了他的笔记本电脑,里面满是犯罪证据。Frey 一个几乎不了解网络世界的维权律师,把 Doyon 载回了他的山边露营。“接着你要怎么办?”Frey 问道。
+
+
+
+“Zach 很聪明... 并且... 是一个天才... 但.. 你们... 不在一个班。”
+
+Doyon 引用了一句电影台词。“拼命地跑,”他说。“我会躲起来,尽可能保持我的行动自由,用尽全力和这帮混蛋们作斗争。”Frey 给了他两张 20 美元的钞票并祝他好运。
+
+5
+
+Doyon 搭着便车来到了旧金山,并在这里呆了三个月。他经常混迹于 Haight 大街 Ashbury 区的一家杂乱的咖啡馆里,在计算机前一坐就是几个小时,只有在抽烟时他才会起身走到室外活动。
+
+2011 年 1 月,Doyon 联系了新闻记者兼匿名者的 Barrett Brown。“我们的下一步计划是什么?”Doyon 问道。
+
+“突尼斯,” Brown 答道。
+
+“我知道,那是中东地区的一个国家,” Doyon 继续问,“具体任务是什么呢?”
+
+“我们准备打倒那里的独裁者,” Brown 再次答道。
+
+“啊?!那里有一位独裁者吗?” Doyon 有点惊讶。
+
+几天后,“突尼斯行动”正式展开。Doyon 作为参与者向突尼斯政府域名下的电子邮箱发送了大量的垃圾邮件,以此阻塞其服务器。“我会提前写好关于那次行动邮件,接着一次又一次地把它们发送出去,” Doyon 说,“有时候实在没有时间,我就只简短的写上一句‘问候对方母亲’的话,然后发送出去。”短短一天时间里,匿名者们就攻陷了包括突尼斯证券交易所、工业部、总统办公室、总统办公室在内的多个网站。他们把总统办公室网站的首页替换成了一艘海盗船的图片,并配以文字“恶有恶报,不是吗?”
+
+Doyon 不时会谈起他的网上“战斗”经历,似乎他刚从弹坑里爬出来一样。“伙计,自从干了这行我就变黑了,”他向我诉苦道。“你看我的脸,全是抽烟的时候熏的——而且可能已经粘在我的脸上了。我仔细地照过镜子,毫不夸张地说我简直就是一头棕熊。”很多个夜晚,Doyon 都是在 Golden Gate 公园里露营过夜的。“我就那样干了四天,我看了看镜子里的‘我’,感觉还可以——但其实我觉得‘我’也许应该去吃点东西、洗个澡了。”
+
+“匿名者”组织接着又在 YouTube 上声明了将要进行的一系列行动:“利比亚行动”、“巴林行动”、“摩洛哥行动”。作为解放广场事件的抗议者,Doyon 参与了“埃及行动”。在 Facebook 针对这次行动的宣传专页中,有一个为当地示威者准备的“行动套装”链接。“行动套装”通过文件共享网站 Megaupload 进行分发,其中含有一份加密软件以及应对瓦斯袭击的保护措施。在埃及政府关闭了埃及的所有互联网及子网络的时候不久后,“匿名者”组织继续向当地抗议者们提供连接网络的方法。
+
+2011 年夏季,Doyon 接替 Adama 成为 PLF 的最高指挥官。Doyon 招募了六个新成员,并力图发展 PLF 成为“匿名者”组织的中坚力量。Covelli 成为了他的其中一位技术顾问。另一名黑客 Crypt0nymous 负责在 YouTube 上发布视频;其余的人负责研究以及组装电子设备。与松散的“匿名者”组织不同,PLF 内部有一套极其严格的管理体系。“Commander X 事必躬亲,”Covelli 说。“这是他的行事风格,要么不做,要么做好。”一位创立了 AnonInsiders 博客的黑客通过加密聊天告诉我,他认为 Doyon 总是一意孤行——这在“匿名者”组织中是很罕见的现象。“当我们策划发起一项行动时,他并不在乎其他人是否同意,”这位黑客补充道,“他会一个人列出行动方案,确定攻击目标,登录 IRC 聊天室,接着告诉所有人在哪里‘碰头’,然后发起 DDoS 攻击。”
+
+一些匿名者把 PLF 视为“面子项目”,认为 Doyon 的所作所为完全是个笑柄。“他是因为吹牛出名的,”另一名昵称为 Tflow 的匿名者 Mustafa Al-Bassam 告诉我。不过,即使是那些极度反感 Doyon 的狂妄自大的人,也不得不承认他在“匿名者”组织发展过程中的重要性。“他所倡导的强硬路线有时很凑效,有时则是碍事,” Gregg Housh 说,并且补充道自己和其他优秀的匿名者都曾遇到过相同的问题。
+
+“匿名者”组织对外坚持声称自己是不分层次的平等组织。在由 Brian Knappenberger 制作的一部纪录片,《我们是军团》中,一名成员使用“一群鸟”来比喻组织,它们轮流领飞带动整个组织不断前行。Gabriella Coleman 告诉我,这个比喻不太切合实际,“匿名者”组织内实际上早就出现了一个非正式的领导阶层。“领导者非常重要,”她说。“有四五个人可以看做是我们的领头羊。”她把 Doyon 也算在了其中。但是匿名者们仍然倾向于反抗这种体制结构。在一本即将出版的关于“匿名者”组织的书,《黑客、骗子、告密者、间谍》中,Coleman 这么写道,在匿名者中,“成员个体以及那些特立独行的人依然在一些重大事件上保持着服从的态度,优先考虑集体——特别是那些能引发强烈争端的事件。”
+
+匿名者们谑称那些特立独行的成员为“自尊心超强的疯子”和“想让自己出名的疯子”。(不过许多匿名者已经不会再随便给他人取那种具有冒犯性的称号了。)“但还是有令人惊讶的极少数成员违反规则”打破传统上的看法,Coleman 说。“这么做的人,像 Commander X 这样的,都会在组织里受到排斥。”去年,在一家网络论坛上,有人写道,“当他开始把自己比作‘蝙蝠侠’的时候我就不想理他了。”
+
+Peter Fein,是一位以 n0pants 为昵称而出名的网络激进分子,也是众多反对 Doyon 的浮夸行为的众多匿名者之一。Fein 浏览了 PLF 的网站,其封面上有一个徽章,还有关于组织的宣言——“为了解放众多人类的灵魂而不断战斗”。Fein 沮丧的发现 Doyon 早就使用真名为这家网站注册过了,使他这种,以及其他想要找事的匿名者们无机可乘。“如果有人要对我的网站进行 DDoS 攻击,那完全可以,” Fein 回想起通过私密聊天告诉 Doyon 时的情景,“但如果你要这么做了的话,我会揍扁你的屁股。”
+
+2011 年 2 月 5 日,《金融时报》报道了在一家名为 HBGary Federal 的网络安全公司,首席执行官 HBGary Federal 已经得到了“匿名者”组织骨干成员名单的消息。Barr 的调查结果表明,三位最高领导人其中之一就是‘ Commander X’,是一位潜伏在加利福尼亚州的黑客而且有能力“策划一些大型网络攻击事件”。Barr 联系了 FBI 并提交了自己的调查结果。
+
+和 Fein 一样,Barr 也发现了 PLF 网站的注册法人名为 Christopher Doyon,地址是 Haight 大街。基于 Facebook 和 IRC 聊天室的调查,Barr 断定‘ Commander X’的真实身份是一名家庭住址在 Haight 大街附近的网络激进分子 Benjamin Spock de Vries。Barr 通过 Facebook 和 de Vries 取得了联系。“请告诉我组织里的其他人,我并不是来抓你们的,” Barr 留言道,“只是想让‘领导阶层’知晓我的意图。”
+
+“‘领导阶层’? 2333,笑死我了,” de Vries 回复道。
+
+《金融时报》发布报道的第二天,“匿名者”组织就进行了反击。HBGary Federal 的网站被进行了恶意篡改。Barr 的私人 Twitter 账户被盗取,他的上千封电子邮件被泄漏到了网上,同时匿名者们还公布了他的住址以及其他私人信息——这就是“冲动的惩罚”。不到一个月后,Barr 就从 HBGary Federal 辞职了。
+
+6
+
+2011 年 4 月,Doyon 离开了旧金山搭便车向西部前行,过着夜晚露宿公园、白天混迹于星巴克的生活。他的背包里只有一台笔记本电脑、Guy Fawkes 面具,还有在 Pall 超市里购买的一些东西。
+
+
+
+“这是我在 TED 夏令营里学到的东西。”
+
+他时刻关注着“匿名者”组织的内部消息。那年春季,在 Barr 调查报告中提到的六位匿名者精锐成员,组建了“LulzSec 安全”组织(Lulz Security),简称 LulzSec。这个组织正如其名,这些成员认为“匿名者”组织已经变得太过严肃;他们的目标是重新引发起那些“能挑起强烈争端”的事件。当“匿名者”组织还在继续支持“阿拉伯之春”的抗议者时,LulzSec 入侵了公共电视网(Public Broadcasting Service,PBS)网站,并发布了一则虚假声明称已故说唱歌手 Tupac Shakur 仍然生活在新西兰。
+
+匿名者之间会通过 Pastebin.com 网站来共享文本。在这个网站上,LulzSec 发表了一则声明,称“很不幸,我们注意到北约和我们的好朋友巴拉克奥萨马——来自24世纪的奥巴马 已经提升了关于黑客的筹码,他们把黑客入侵行为视作一种战争的表现。”目标越高远,挑起的纷争就越大。6 月 15 日,LulzSec 表示对 CIA 网站受到的袭击行为负责,他们发表了一条推特,上面写道“目标击毙(Tango down,亦即target down)—— cia.gov ——这是起挑衅行为。”
+
+2011 年 6 月 20 日,LulzSec 的一名十九岁的成员 Ryan Cleary 因为对 CIA 的网站进行了 DDoS 攻击而被捕。7 月,FBI 探员逮捕了七个月前对 PayPal 进行 DDoS 攻击的其他十四名黑客。这十四名黑客,每人都面临着 15 年的牢狱之灾以及 50 万美元的罚款。他们因为图谋不轨以及故意破坏互联网而被控违反了计算机欺诈与滥用法案。(Computer Fraud and Abuse Act,该法案允许检察官拥有宽泛的起诉裁量权,并在去年网络激进分子 Aaron Swartz 因为被判处 35 年牢狱之灾而自杀身亡之后,受到了广泛的质疑和批评。)
+
+LulzSec 的成员之一 Jake (Topiary) Davis 因为付不起法律诉讼费,给组织的成员们写了一封请求帮助的信件。Doyon 进入了 IRC 聊天室把 Davis 需要帮助的消息进行了扩散:
+
+CommanderX:那么请大家阅读信件并给予 Topiary 帮助...
+
+Toad:你真是为了抓人眼球什么都做啊!
+
+Toad:这么说你得到 Topiary 的消息了?
+
+CommanderX:Toad 你这个混蛋!
+
+Katanon:唉...
+
+Doyon 越来越大胆。在佛罗里达州当局逮捕了支持流浪者的激进分子后,他就攻击 了奥兰多商务部商会网站。他使用个人笔记本电脑通过公用无线网络实施了攻击,并且没有花费太多精力来隐藏自己的网络行踪。“这种做法很勇敢,但也很愚蠢,”一位自称 Kalli 的 PLF 的资深成员告诉我。“他看起来并不在乎是否会被抓。他完全是一名自杀式黑客。”
+
+两个月后,Doyon 参与了针对旧金山湾区快速交通系统(Bay Area Rapid Transit)的 DDoS 攻击,以此抗议一名 BART 的警官杀害一名叫做 Charles Hill 的流浪者的事件。随后 Doyon 现身“CBS 晚间新闻”为这次行动辩护,当然,他处理了自己的声音,用印花大手帕盖住了脸。他把 DDoS 攻击比作为公民的抗议行为。“与占用 Woolworth 午餐柜台的座位相比,这真的没什么不同,真的,”他说道。CBS 的主播 Bob Schieffer 笑称:“就我所见,它并不完全是一项民权运动。”
+
+2011 年 9 月 22 日,在加利福尼亚州的一家名为 Mountain View 的咖啡店里,Doyon 被捕,同时面临着“使用互联网非法破坏受保护的计算机”的罪名指控。他被拘留了一个星期的时间,接着在签署协议之后获得假释。两天后,他不顾律师的反对,宣布将在圣克鲁斯郡法院召开会议。他梳起了马尾辫,戴着一副墨镜、一顶黑色海盗帽,同时还在脖子上围了一条五彩手帕。
+
+Doyon 通过非常夸大的方式揭露了自己的身份。“我就是 Commander X,”他告诉蜂拥的记者。他举起了拳头。“作为‘匿名者’组织的一员,作为一名核心成员,我感到非常的骄傲。”他在接受一名记者的采访时说,“想要成为一名顶尖黑客的话,你只需要准备一台电脑以及一副墨镜。任何一台电脑都行。”
+
+Kalli 非常担心 Doyon 会不小心泄露组织机密或者其他匿名者的信息。“这是所有环节中最薄弱的地方,如果这里出问题了,那么组织就完了,”他告诉我。曾在“和平阵营行动”中给予 Doyon 大力帮助的匿名者 Josh Covelli 告诉我,当他在网上看见 Doyon 的新闻发布会视频的时候,他感觉瞬间“下巴掉地上了”。“他的所作所为变得越来越不可捉摸,” Covelli 评价道。
+
+三个月后,Doyon 的指定律师 Jay Leiderman 出席了圣荷西联邦法庭的辩护。Leiderman 已经好几个星期没有得到 Doyon 的消息了。“我需要得知被告无法出席的具体原因,”法官说。Leiderman 无法回答。Doyon 再次缺席了两星期后的另一场听证会。检控方表示:“很明显,看来被告已经逃跑了。”
+
+7
+
+“Xport 行动”是“匿名者”组织进行的所有同类行动中的第一个行动。这次行动的目标是协助如今已经背负两项罪名的通缉犯 Doyon 潜逃出国。负责调度的人是 Kalli 以及另一位曾在八十年代剑桥的迷幻药派对上和 Doyon 见过面的匿名者老兵。这位老兵是一位已经退休的软件主管,在组织内部威望很高。
+
+Doyon 的目的地是这位软件主管家,位于加拿大的偏远乡村。2011 年 12 月,他搭便车前往旧金山,并辗转来到了市区组织大本营。他找到了他的指定联系人,后者带领他到达了奥克兰的一家披萨店。凌晨 2 点,Doyon 通过披萨店的无线网络,接收了一条加密聊天消息。
+
+“你现在靠近窗户吗?”那条消息问道。
+
+“是的,” Doyon 回复道。
+
+“往大街对面看。看见一个绿色的邮箱了吗?十五分钟后,你去站到那个邮箱旁边,把你的背包取下来,然后把你的面具放在上面。”
+
+一连几个星期的时间,Doyon 穿梭于海湾地区的安全屋之间,按照加密聊天那头的指示不断行动。最后,他搭上了前往西雅图的长途公交车,软件主管的一个朋友在那里接待了他。这个朋友是一名非常富有的退休人员,他花费了几小时的时间通过谷歌地球来帮助 Doyon 规划前往加拿大的路线。他们共同前往了一家野外用品供应商店,这位朋友为 Doyon 购置了价值 1500 美元的商品,包括登山鞋以及一个全新的背包。接着他又开车载着 Doyon 北上,两小时后到达距离国界只有几百英里的偏僻地区。随后 Doyon 见到了 Amber Lyon。
+
+几个月前,广播新闻记者 Lyon 曾在 CNN 的关于“匿名者”组织的节目里采访过 Doyon。Doyon 很欣赏她的报道,他们一直保持着联络。Lyon 要求加入 Doyon 的逃亡行程,为一部可能会发行的纪录片拍摄素材。软件主管认为这样太过冒险,但 Doyon 还是接受了她的请求。“我觉得他是想让自己出名,” Lyon 告诉我。四天的时间里,她用影像记录下了 Doyon 徒步北上,在林间露宿的行程。“那一切看起来不太像是仔细规划过的,” Lyon 回忆说。“他实在是无家可归了,所以他才会想要逃到国外去。”
+
+
+
+“这里是我们存放各种情感的仓库。如果你产生了某种情感,把它带到这里然后锁起来。”
+
+2012 年 2 月 11 日,Pastebin 上出现了一条消息。“PLF 很高兴的宣布‘ Commander X’,也就是 Christopher Mark Doyon,已经离开了美国的司法管辖区,抵达了加拿大一个比较安全的地方,”上面写着,“PLF 呼吁美国政府,希望政府能够醒悟过来并停止无谓的骚扰与监视行为——不要仅仅逮捕‘匿名者’组织的成员,对所有的激进组织应该一视同仁。”
+
+8
+
+Doyon 和软件主管在加拿大的小木屋里呆了几天。在一次同 Barrett Brown 的聊天中,Doyon 难掩内心的喜悦之情。
+
+BarrettBrown:你现在足够多安全的藏身之处等等吧?
+
+CommanderX:是的,我现在很安全,现在加拿大既不缺钱也不缺藏身的地方。
+
+CommanderX:Amber Lyon 想要你的一张照片。
+
+CommanderX:去你【哔~】的怪人,Barrett,相信你会喜欢我的回复。我一直爱你,永远爱你。
+
+CommanderX::-)
+
+CommanderX:我告诉她你是一个英雄。
+
+BarrettBrown:你才是真正的英雄...
+
+BarrettBrown:很高兴你现在安全了
+
+BarrettBrown:如果你还需要什么,告诉我一声就可以了
+
+CommanderX:我会的,如果这种方式的确很凑效的话,可以让其他被通缉的人也这样逃出来....
+
+BarrettBrown:当然,估计我们不久后也得这样了
+
+在 Doyon 出逃十天后,《华尔街日报》上刊登了关于不久后升职为美国国家安全局及网络指挥部主任的 Keith Alexander 的报道,他在白宫以及其他场合举行的秘密会晤,表达了对“匿名者”组织的高度关注。Alexander 发出警告,两年内,该组织必将会是国家电网改造的大患。参谋长联席会议的主席 General Martin Dempsey 告诉记者,这群人是国家的敌人。“他们有能力把这些使用恶意软件造成破坏的技术扩散到其他的边缘组织去,”随后又补充道,“我们必须防范这种情况发生。”
+
+3 月 8 日,国会议员们在国会大厦附近的一个敏感信息隔离设施附近举行了关于网络安全的会议。包括 Alexander、Dempsey、美国联邦调查局局长 Robert Mueller,以及美国国土安全部部长 Janet Napolitano 在内的多名美国安全方面的高级官员出席了这次会议。会议上,通过计算机向与会者模拟了东部沿海地区电力设施可能会遭受到的网络攻击时的情境。“匿名者”组织目前应该还不具备发动此种规模攻击的能力,但安全方面的官员担心他们会联合其他更加危险的组织来共同发动攻击。“在我们着手于不断增加的网络风险事故时,政府仍在就具体的处理细节进行不断协商讨论,” Napolitano 告诉我。当谈及潜在的网络安全隐患时,她补充道,“我们通常会把‘匿名者’组织的行动当做 A 级威胁来应对。”
+
+“匿名者”也许是当今世界上最强大的无政府主义黑客组织。即使如此,它却从未表现出过任何的会对公共基础设施造成破坏的迹象或意愿。一些网络安全专家称,那些关于“匿名者”组织的谣传太过危言耸听。“在奥兰多发布战前宣言和实际发动 Stuxnet 蠕虫病毒攻击之间是有很大的差距的,” Internet 研究与战略中心的一位职员 James Andrew Lewis 告诉我,这和 2007 年美国与以色列对伊朗原子能网站发动的黑客袭击有关。哈佛大学法学院的教授 Yochai Benkler 告诉我,“我们所看见的只是以主要防御为理由而进行的开销,否则,将很难自圆其说。”
+
+Keith Alexander 最近刚从政府部门退休,他拒绝就此事发表评论,因为他并不能代表国家安全局、联邦调查局、中央情报局以及国土安全部。尽管匿名者们从未真正盯上过政府部门的计算机网络,但他们对于那些激怒他们的人有着强烈的报复心理。前国土安全部国家网络安全部门负责人 Andy Purdy 告诉我他们“害怕被报复,”无论机构还是个人,都不同意政府公然反对“匿名者”组织。“每个人都容易成为被攻击对象,”他说。
+
+9
+
+2012 年 3 月 6 日,Hector Xavier Monsegur,昵称为 Sabu 的 LulzSec 骨干成员,被发现是 FBI 派来的卧底。为了换取减刑,Monsegur 花费了数月的时间卧底,协助搜集其他 LulzSec 成员的罪证。同一天,五位匿名者领导被捕,同时面临着包括“计算机某犯罪”在内的多项罪名指控。联邦调查局的一名官员在接受福克斯新闻记者采访时说道,“这对那个组织是一个毁灭性的打击。我们的行动如同砍掉了 LulzSec 组织的头。”接下来的十个月里, Barrett Brown 收到了 17 项联邦罪名的指控,其中的大部分后来被撤销了。(他将在十月被宣判最终结果。)
+
+Doyon 感到很烦躁,但他还是继续扮演着一名黑客——以此吸引关注。他在多伦多上映的纪录片上以戴着面具的匿名者形象出现。在接受《National Post》的采访时,他向记者大肆吹嘘未经证实的消息,“我们已经入侵了美国政府的所有机密数据库。现在的问题是我们该何时泄露这些机密数据,而不是我们是否会泄露。”
+
+2013 年 1 月,在另一名匿名者介入俄亥俄州斯托本维尔未成年少女强奸案 ,发起抗议行动之后,Doyon 重新启用了他两年前创办的网站 LocalLeaks,作为那起强奸事件的信息汇总处理中心。如同许多其他“匿名者”组织的所作所为一样,LocalLeaks 网站非常具有影响力,但却也不承担任何责任。LocalLeaks 网站是第一家公布 12 分钟斯托本维尔高中毕业生猥亵视频的网站,这激起了众多当事人的愤怒。LocalLeaks 网站上同时披露了几份未被法庭收录的关于案件的材料,并且由此不小心透漏出了案件受害人的名字。Doyon向我承认他公开这些未经证实的信息的策略是存在争议的,但他同时回忆起自己当时的想法,“我们可以选择销毁这些斯托本维尔案件的材料...也可以选择公开所有我们搜集的信息,基本上,给公众以提醒,不过,前提是你们得相信我们。”
+
+2013 年 3 月,一个名为 Rustle League 的组织入侵了 Doyon 的 Twitter 账户,该组织此前经常挑衅“匿名者”组织。Rustle League 的领导者之一 Shm00p 告诉我,“我们的本意并不是伤害那些家伙,只不过,哦,那些家伙说的话你就当是在放屁好了——我会这么做只是因为我感到很好笑。” Rustle League 组织使用 Doyon 的账户发布了含有如 www.jewsdid911.org 链接这样的,种族主义和反犹太主义的信息。
+
+2013 年 8 月 27 日,Doyon 发布了一则退出“匿名者”组织的声明。“我的一生都用在了追求正义和自由上,”他写道,“也许‘ Commander X’是无敌的,但我在这种高节奏的全球网络斗争中已经感到很累了,感觉自己好像病了。”各界对此反应不一,有同情的(“你是该休息了”),也有嘲讽的(“可怜的疯狂小老头。也许他现在有时间洗澡了”)。 Covelli 告诉我,“‘匿名者’的身份对他产生了较大的影响,他已经不能再应付了。”
+
+
+
+1998 年 8 月 17 日 “我们还有‘巴黎’吗?仔细想想,我等会儿去检查一下。”
+
+10
+
+2013 年 11 月 5 日举行了第一次“百万面具游行”活动。在全世界四百五十个城市里,发起了数千人的支持“匿名者”组织的游行。伦敦的一名抗议者摘下了盖伊·福克斯面具后,露出了演员罗素·布兰德的脸。这种的迹象表明,“匿名者”组织已经深入到了流行文化中。
+
+我参加了华盛顿的集会,Doyon 则呆在了加拿大观看现场直播。通过移动电话,我和 Doyon 不断交换着电子邮件。“只能坐在这里看直播而不能亲自去现场真的很令人沮丧——尤其是当这里面包含有你努力的结果的时候,”他在邮件里写道。“不过至少一切都已有所改变。”
+
+我们约定了一次面谈。Doyon 坚持让我通过加密聊天把面谈的详细情况提前告诉他。我坐了几个小时的飞机,租车来到了加拿大的一个偏远小镇,并且禁用了我的电话。
+
+最后,我在一个狭小安静的住宅区公寓里见到了 Doyon。他穿了一件绿色的军人夹克衫以及印有“匿名者”组织 logo 的 T 恤衫:一个脸被问号所替代的黑衣人形象。公寓里基本上没有什么家具,充满了一股烟味。他谈论起了美国政治(“我基本没怎么在众多的选举中投票——它们不过是暗箱操作的游戏罢了”),好战的伊斯兰教(“我相信,尼日利亚政府的人不过是相互勾结,以创建一个名为‘博科圣地’的基地组织的下属机构罢了”),以及他对“匿名者”组织的小小看法(“那些自称为怪人的人是真的是烂透了,其实是邪恶的人”)。
+
+Doyon 剃去了他的胡须,但他却显得更加憔悴了。他说那是因为他病了的原因,他几乎很少出去。很小的写字台上有两台笔记本电脑、一摞关于佛教的书,还有一个堆满烟灰的烟灰缸。另一面裸露的泛黄墙壁上挂着盖伊·福克斯面具。他告诉我,“所谓‘Commander X’不过是一个处于极度痛苦中的小老头罢了。”
+
+在刚过去的圣诞节里,匿名者的新网站 AnonInsiders 的创建者拜访了 Doyon,并给他带来了馅饼和香烟。Doyon 询问来访的朋友是否可以接替自己成为 PLF 的最高指挥官,同时希望能够递交出自己手里的“王国钥匙”——手里的所有密码,以及几份关于“匿名者”组织的机密文件。这位朋友委婉的拒绝了。“我有自己的生活,”他告诉了我拒绝的理由。
+
+11
+
+2014 年 8 月 9 日,当地时间下午 5 时 09 分,来自密苏里州圣路易斯郊区德尔伍德的一位说唱歌手同时也是激进分子的 Kareem (Tef Poe) Jackson,在 Twitter 上谈起了邻近城镇的一系列令人担忧的举措。“基本可以断定弗格森已经实施了戒严,任何人都无法出入,”他在 Twitter 上写道。“国内外的朋友们请帮助我们!!!”五个小时前,弗格森,一位十八岁的手无寸铁的非裔美国人 Michael Brown,被一位白人警察射杀。射杀警察声称自己这么做的原因是 Brown 意图伸手抢夺自己的枪支。而事发当时和 Brown 在一起的朋友 Dorian Johnson 却说,Brown 唯一做得不对的地方在于他当时拒绝离开街道中间。
+
+不到两小时,Jackson 就收到了一位名为 CommanderXanon 的 Twitter 用户的回复。“你完全可以相信我们,”回复信息里写道。“你是否可以给我们详细描述一下现场情况,那样会对我们很有帮助。”近几周的时间里,仍然呆在加拿大的 Doyon 复出了。六月,他在还有两个月满 50 岁的时候,成功戒烟(“#戒瘾成功 #电子香烟功不可没 #老了,”他在戒烟成功后在 Twitter 上写道)。七月,在加沙地带爆发武装对抗之后,Doyon 发表 Twiter 支持“匿名者”组织的“拯救加沙行动”,并发动了一系列针对以色列网站的 DDoS 攻击。Doyon 认为弗格森枪击事件更加令人关注。抛开他本人的个性,他有能力在事件发展到引人注目之前,就迅速注意该事件。
+
+“正在网上搜索关于那名警察以及当地政府的信息,” Doyon 发 Twitter 道。不到十分钟,他就为此专门在 IRC 聊天室里创建了一个频道。“‘匿名者’组织‘弗格森’行动正式启动,”他又发了一条 Twitter。但只有两个人转推了此消息。
+
+次日早晨,Doyon 发布了一条链接,链接指向的是一个初具雏形的网站,网站首页有一条致弗格森市民的信息——“你们并不孤单,我们将尽一切努力支持你们”——以及致当地警察的警告:“如果你们对弗格森的抗议者们滥用职权、骚扰,或者伤害了他们,我们绝对会让你们所有政府部门的网站瘫痪。这不是威胁,这是承诺。”同时 Doyon 呼吁有 130 万粉丝的“匿名者”组织的 Twitter 账号 YourAnonNews 给与支持。“请支持‘弗格森’行动”,他发送了消息。一分钟后,YourAnonNews 回复表示同意。当天,包含话题 #OpFerguson 的 Twitter 被转发了超过六千次。
+
+这个事件迅速成为头条新闻,同时匿名者们在弗格森周围进行了大集会。与“阿拉伯之春行动”类似,“匿名者”组织向抗议者们发送了电子关怀包,包括抗暴指导(“把瓦斯弹捡起来回丢给警察”)与可打印的盖伊·福克斯面具。Jackson 和其他示威者在弗格森进行示威游行时,警察企图通过橡皮子弹和催泪瓦斯来驱散他们。“当时的情景真像是布鲁斯·威利斯的电影里的情节,” Jackson 后来告诉我。“不过巴拉克·奥巴马应该并不会支持‘匿名者’组织传授给我们的这些知识,”他说道。“知道有人在你的背后支持你,真是感觉欣慰。”
+
+有个网址是 www.opferguson.com 的网站,后来发现不过是一个骗局——一个用来收集访问者 ip 地址的陷阱,随后这些地址会被移交给执法机构。有些人怀疑 Commander X 是政府的线人。在 IRC 聊天室 #OpFerguson 频道,一个名叫 Sherlock 写道,“现在频道里每个人说的已经让我害怕去点击任何陌生的链接了。除非是一个我非常熟悉的网址,否则我绝对不会去点击。”
+
+弗格森的抗议者要求当局公布射杀 Brown 的警察的名字。几天后,匿名者们附和了抗议者们的请求。有人在 Twitter 上写道,“弗格森警察局最好公布肇事警察的名字,否则‘匿名者’组织将会替他们公布。”8 月 12 的新闻发布会上,圣路易斯警察局的局长 Jon Belmar 拒绝了这个请求。“我们不会这样做,除非他们被某个罪名所指控,”他说道。
+
+作为报复,一名黑客使用名为 TheAnonMessage 的 Twitter 账户公布了一条链接,该链接指向一段来自警察的无线电设备所记录的音频文件,文件记录时间是 Brown 被枪杀的两小时左右。TheAnonMessage 同时也把矛头指向了 Belmar,在 Twitter 上公布了这位警察局长的家庭住址、电话号码以及他的家庭照片——一张是他的儿子在长椅上睡觉,另一张则是 Belmar 和他的妻子的合影。“不错的照片,Jon,” TheAnonMessage 在 Twitter 上写道。“你的妻子在她这个年龄算是一个美人了。你已经爱她爱得不耐烦了吗?”一个小时后,TheAnonMessage 又以 Belmar 的女儿为把柄进行了恐吓。
+
+Richard Stallman,来自 MIT 的初代黑客,告诉我虽然他在很多地方赞同“匿名者”组织的行为,但他认为这些泄露私人信息的攻击行为是要受到谴责的。即使是组织内部,TheAnonMessage 的行为也受到了谴责。“为何要泄露无辜的人的信息到网上?”一位匿名者通过 IRC 发问,并且表示威胁 Belmar 的家人实在是“相当愚蠢的行为”。但是 TheAnonMessage 和其他的一些匿名者仍然进行着不断搜寻,并企图在将来再次进行泄露信息的攻击。在互联网上可以得到所有弗格森警察局警员的名字,匿名者们不断地搜索着信息,企图找出具体是哪一个警察找出杀害了 Brown。
+
+
+
+ 1999 年 4 月 12 日 “我应该把镜头对向谁?”
+
+8 月 14 日清晨,几位匿名者基于 Facebook 上的照片还有其他的证据,确定了射杀 Brown 的凶手是一位名叫 Bryan Willman 的 32 岁男子。根据一份 IRC 聊天记录,一位匿名者贴出了 Willman 的肿胀面孔的照片;另一位匿名者提醒道,“凶手声称自己的脸没有被任何人看到。”另一位昵称为 Anonymous|11057 的匿名者承认他对 Willman 的怀疑确实是“跳跃性的可能错误的逻辑过程推导出来的。”不过他还是写道,“我只是无法动摇自己的想法。虽然我没有任何证据,但我非常非常地确信就是他。”
+
+TheAnonMessage 看起来被这次对话逗乐了,写道,“#愿逝者安息,凶手是 BryanWillman。”另一位匿名者发出了强烈警告。“请务必确认,” Anonymous|2252 写道。“这不仅仅关乎到一个人的性命,我们可以不负责任地向公众公布我们的结果,但却很可能有无辜的人会因此受到不应受到的对待。”
+
+争论超过了一个小时。一些匿名者指出没有证据表明 Willman 曾经在弗格森警察局任过职。
+
+Anonymous|3549:@gs 我们依旧没有证据能够证明 Bryan 曾在警局呆过
+
+Intangir:现在的形势已经够紧张的了,一旦我们把这个消息公布出去,可能就会有人因此去杀了他
+
+Anonymous|11057:唯一的证明方法是犯罪现场目击者报告。否则我们的结果只是一个谣言
+
+Anonymous|11057:最快的排除嫌疑的方法是称他为嫌疑犯...我们都害怕犯下不公正的错误,但这种方法恰好可以避免这些...
+
+大部分匿名者都反对在网上泄露他人信息。但是早晨七点左右匿名者们进行了一次投票。聊天记录显示,当时聊天室里有 80 人左右,只有不到十人参与了投票表决。因此他们决定在互联网上公布 Willman 的私人信息。
+
+Anonymous|2252:还在 Twitter 上公布?
+
+anondepp:lol
+
+Anonymous|2252:用 @theanonmessage 公布?
+
+TheAnonMessage:当然
+
+TheAnonMessage:去发吧
+
+anondepp:搞定了
+
+Anonymous|2252:我去
+
+TheAnonMessage:上帝保佑...
+
+Anonymous|3549:...请拯救我们的灵魂
+
+anondepp:lol
+
+早晨 9 时 45 分,圣路易斯警察局对 TheAnonMessage 进行了答复。“Bryan Willman 从来没有在 警察局或者圣路易斯警察局任过职,” 他们在 Twitter 上写道。“请不要再公布这位无辜市民的信息了。”(随后 FBI 对弗格森警察的电脑遭黑客入侵的事情展开了调查。)Twitter 管理员迅速封禁了 TheAnonMessage 的账户,但 Willman 的名字和家庭住址仍然被广泛传开。
+
+实际上,Willman 是弗格森西郊圣安区的警察外勤负责人。当圣路易斯警察局的情报处打电话告诉 Willman,他已经被“确认”为凶手时,他告诉我,“我以为不过是个奇怪的笑话。”几小时后,他的社交账号上就收到了成百上千条死亡恐吓。他在警察的保护下,独自一人在家里呆了将近一个星期。“我只希望这一切都尽快过去,”他告诉我他的感受。他认为“匿名者”组织已经不可挽回地损害了他的名誉。“我不知道他们怎么会以为自己可以被再次信任的,”他说。
+
+“我们并不完美,” OpFerguson 在 Twitter 上说道。“‘匿名者’组织确实犯错了,过去的几天我们制造一些混乱。为此,我们道歉。”尽管 Doyon 并不应该为这次错误的信息泄露攻击负责,但其他的匿名者却因为他发起了一次无法控制的行动,而归咎他。YourAnonNews 在 Pastebin 上发表了一则消息,上面写道,“你们也许注意到了组织不同的 Twitter 账户发表的话题 #Ferguson 和 #OpFerguson,这两个话题下的 Twitter 与信息是相互矛盾的。为什么会在这些关键话题上出现分歧,部分原因是因为 CommanderX 是一个‘想让自己出名的疯子/想让公众认识自己的疯子’——这种人喜欢,或者至少不回避媒体的宣传——并且显而易见的,组织内大部分成员并不喜欢这样。”
+
+在个人 Twitter 上,Doyon 否认了所有关于“弗格森行动”的职责,他写道,“我讨厌这样。我不希望这样的情况发生,我也不希望和我认为是朋友的人战斗。”沉寂了几天后,他又再度获吹响了战斗的号角。他最近在 Twitter 上写道,“你们称他们是暴民,我们却称他们是压迫下的反抗之声”以及“解放西藏”。
+
+Doyon 仍然处于藏匿状态。甚至连他的律师 Jay Leiderman 也不知道他在哪里。Leiderman 表示,除了在圣克鲁斯受到的指控,Doyon 很有可能因为攻击了 PayPal 和奥兰多而面临新的指控。一旦他被捕,所有的刑期加起来,他的余生就要在监狱里度过了。借鉴 Edward Snowden 的先例,他希望申请去俄罗斯避难。我们谈话时,他用一支点燃的香烟在他的公寓里比划着。“这里比【哔~】的牢房强多了吧?我绝对不会出去,”他愤愤道。“我不会再联系我的家人了....这是相当高的代价,但我必须这么做,我会尽我的努力让所有人活得自由、明白。”
+
+
+
+via: http://www.newyorker.com/magazine/2014/09/08/masked-avengers
+
+作者:David Kushner
+译者:SteveArcher
+校对:Caroline
+
+本文由 LCTT 原创翻译,Linux中国 荣誉推出
diff --git a/published/201409/20140905 Ubuntu Touch Now Has a Torrent Client in the Ubuntu Store.md b/published/201409/20140905 Ubuntu Touch Now Has a Torrent Client in the Ubuntu Store.md
new file mode 100644
index 0000000000..7c845fbb91
--- /dev/null
+++ b/published/201409/20140905 Ubuntu Touch Now Has a Torrent Client in the Ubuntu Store.md
@@ -0,0 +1,26 @@
+Ubuntu商城有了一款 Ubuntu Touch 的 BT 客户端了
+================================================================================
+
+
+**Ubuntu触屏平台已经拥有许多有趣应用程序,甚至看起来很多开发者已经开始实现许多超乎期望的软件,像BT客户端就是个很好的例子。**
+
+Ubuntu触屏设备的应用商店在过去几个月一直平稳增长并增添了许多有趣的应用程序。其中大多数都已经满足操作系统的基本需求,但也有不少远远超出普通用户的需求。
+
+你会发现在大多数手机中BT客户端并不是必备的东西。Android和Windows手机已经已经有这类的应用程序,看起来Ubuntu也将是支持的平台之一。Ubuntu开发者[Alan Pope][1]公布了一张正在为Ubuntu平台开发的应用程序的截图,该程序命名为DowNow。
+
+这是一个相对较新的应用程序,而且仍然在开发中,你可以在Launchpad点击DowNow 0.3安装包,如果你想要获得更多详情,你也可以从Ubuntu软件中心下载。
+
+目前,只有Nexus4和Nexus7设备支持,如果你想要在更多手机上尝试Ubuntu,也许还要等待几个月。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Ubuntu-Touch-Now-Has-a-Torrent-Clinent-in-the-Ubuntu-Store-457538.shtml
+
+作者:[Silviu Stahie][a]
+译者:[disylee](https://github.com/disylee)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:https://plus.google.com/u/0/+AlanPope/posts/Ej3vKVxBum8
\ No newline at end of file
diff --git a/published/201409/20140910 Colourful systemd vs sysVinit Linux Cheatsheet.md b/published/201409/20140910 Colourful systemd vs sysVinit Linux Cheatsheet.md
new file mode 100644
index 0000000000..329fd69e8d
--- /dev/null
+++ b/published/201409/20140910 Colourful systemd vs sysVinit Linux Cheatsheet.md
@@ -0,0 +1,38 @@
+systemd 与 sysVinit 彩版对照表
+================================================================================
+
+**systemd** 是一种新型init系统「译者注:每个操作系统都有一个启动程序,而Linux init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以init始终是第一个进程(其进程编号始终为1)」,最早在Fedora中使用「译者注:真的吗?不是Arch?」,经过调整适应了其它许多发行版,例如RedHat、Suse和CentOS。
+
+历史上,我们大部分人用过传统的SysV init 初始化脚本,它通常情况下在/etc/rc.d/init.d/文件夹下。这些脚本调用守护进程二进制代码,在后台fork一个进程。
+
+尽管shell脚本非常的灵活,但是很难实现像superviseing(监管)进程和并行执行命令这样的任务。
+
+通过对systemd的新式守护进程的介绍,我们发现systemd可以在runtime(运行时)更加简单的监管和控制守护进程,并且简化了监控的实现方式(implementation)。
+
+**systemctl**命令是systemd团队一个非常好的首创。
+
+这个命令能够显示更多的详细错误信息和包括启动错误在内的服务运行时错误。systemd引入了一个新术语:**cgroups**(控制组),它基本上是可被分层次安排的进程任务组。「译者注:这里简单介绍一下cgroup(control group)称为Containers,Containers着眼于资源的分配,利用configfs作配置。它有两个重要概念:第一是subsystem,内核可以给进程提供的服务/资源;第二是container,一个进程组,成员共享同样的一个或多个子系统分配限制。Containers是分层次的,一个container可以hold多个container。它的可取之处是创建了一个资源分配的框架,其它开发者可以利用这个框架去开发自己的资源分配patch,比如磁盘设备。」
+
+如果仅仅通过原来的初始化系统,决定哪个进程是做什么的、属于哪个用户的变得越来越困难。
+
+但是通过systemd,当一个进程派生其它进程时,这些子进程会被自动变成父进程控制组的成员,这样一来就可以避免继承的混乱。
+
+
+
+
+有许多新的运行[在 rhel / centos 7.0 上的 systemd 命令][1]可以替代 sysvinit 的对应命令。你也可以下载 [本文的 PDF 版本][2]。
+
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-command/systemd-vs-sysvinit-cheatsheet/
+
+作者:[Bobbin Zachariah][a]
+译者:[szrlee](https://github.com/szrlee)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/bobbin/
+[1]:http://linoxide.com/linux-command/linux-systemd-commands/
+[2]:http://images.linoxide.com/systemd-vs-sysVinit-cheatsheet.pdf
diff --git a/published/201409/20140910 Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop.md b/published/201409/20140910 Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop.md
new file mode 100644
index 0000000000..e4b0814c2b
--- /dev/null
+++ b/published/201409/20140910 Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop.md
@@ -0,0 +1,37 @@
+Jelly Conky为你的Linux桌面带来简约、时尚的状态信息
+================================================================================
+**我把Conky当成壁纸一样使用:我会找出一个我喜欢的样式,下一周当我厌烦了想要一点小改变时我就更换另外一个样式。**
+
+不断更换样式的部分原因是由于日益增多的样式目录。我最近最喜欢的样式是Jelly Conky。
+
+
+
+Jelly Conky遵循了许多我们推荐的Conky风格采用的最小设计原则。它并不想成为一个大杂烩。它不会被那些喜欢一眼就能看到他们硬盘温度和IP地址的人所青睐。
+
+它配备了三种不同的模式,它们都可以添加个性的或者静态背景图像:
+
+- 时钟
+- 时钟加日期
+- 时钟加日期和天气
+
+一些人不理解为什么要在桌面上拥有重复的时钟。这是很好理解的。对于我而言,这不仅仅是功能(虽然,个人而言,Conky的时钟比挤在上部面板上那渺小的数字要更容易看清)。
+
+我想如果你的Android主屏幕有一个时间小部件的话,你不会介意在你的桌面上也有这么一个的,对吧?
+
+你可以从下述链接下载Jelly Conky,zip 包里面有一个说明如何安装的 readme 文件。如果希望看到完整的教程,可以[参考我们的前一篇文章][3]。
+- [从Deviant Art上下载 Jelly Conky][2]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/jelly-conky-for-linux-desktop
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/07/conky-circle-theme-nod-lg-quick-cover
+[2]:http://zagortenay333.deviantart.com/art/Jelly-Conky-442559003
+[3]:http://www.omgubuntu.co.uk/2014/07/conky-circle-theme-nod-lg-quick-cover
\ No newline at end of file
diff --git a/published/201409/20140910 Meet the 12 Ubuntu 14.10 Wallpaper Contest Winners (So Far).md b/published/201409/20140910 Meet the 12 Ubuntu 14.10 Wallpaper Contest Winners (So Far).md
new file mode 100644
index 0000000000..2c2115d5c1
--- /dev/null
+++ b/published/201409/20140910 Meet the 12 Ubuntu 14.10 Wallpaper Contest Winners (So Far).md
@@ -0,0 +1,79 @@
+12张Ubuntu 14.10壁纸竞赛(目前为止的)获奖壁纸
+================================================================================
+让我们欣赏一组你在未来几个月会看到一大堆的图片吧。是的,在[Ubuntu 14.10壁纸竞赛获奖者壁纸][1]已经公布了。
+
+嗯,可以说是宣布吧。到目前为止12张背景图片已经正式被应用在Ubuntu 14.10版本中了。
+
+由四月份的获奖作者组成的评审团筛选了几乎400张图片,最终选择了出了视觉上丰富又多彩的一组。我知道我每6个月就要说一次这个,但是这一次的作品看起来还是那么的棒(不仅仅是因为当中一两张是[我们的最爱][2]!)。
+
+### 让我们瞧瞧这几张获奖图片 ###
+
+你能在下面看到目前选出的作品。需要强调的是,这是到目前为止的,如比赛的组织者[**Iain Farrell所说的**][3] :“我还在等一些回复,不过如果他们不给我回复就只能不包括他们的了!”
+
+
+
+不可缺少的经典吉祥物壁纸
+
+
+
+‘空’ —— Glenn Rayat
+
+
+
+沙漠与马 —— M. Siewert
+
+
+
+金色的叶
+
+
+
+游牧生活 —— Sal’
+
+
+
+‘xgu472hf2′ —— Lariliikala
+
+
+
+多石海岸 —— Juan PL.
+
+
+
+‘暖草’ —— dcsearle.t21
+
+
+
+克罗纳赫灯具 —— Brian Fox
+
+
+
+达沃多帕的海景
+
+
+
+托马西诺音乐
+
+
+
+阳光之秋
+
+如果有任何变化我们将会更新这篇文章,你可以[点击这里][4]获取这些参赛作品的压缩包。完整的乌托邦壁纸包,可能会包含进新的默认壁纸,这些都会在未来2天内发生。
+
+通过下方的评论来让我们知道哪张图你的最爱吧!不要吝啬赞美之词!
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/ubuntu-14-10-wallpaper-contest-winners
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[ZTinoZ](https://github.com/ZTinoZ)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/08/ubuntu-14-10-wallpaper-contest
+[2]:http://linux.cn/article-3745-1.html
+[3]:https://bugs.launchpad.net/ubuntu/+source/ubuntu-wallpapers/+bug/1354341/comments/2
+[4]:https://bugs.launchpad.net/ubuntu/+source/ubuntu-wallpapers/+bug/1354341/+attachment/4199899/+files/14.10%20images.zip
diff --git a/published/201409/20140910 [Quick Tip] How To List All Installed Packages On Linux Distributions.md b/published/201409/20140910 [Quick Tip] How To List All Installed Packages On Linux Distributions.md
new file mode 100644
index 0000000000..213e1cf279
--- /dev/null
+++ b/published/201409/20140910 [Quick Tip] How To List All Installed Packages On Linux Distributions.md
@@ -0,0 +1,53 @@
+怎么在Linux发行版下列出所有安装了的包
+================================================================================
+
+
+列出所有安装了的包的方法取决于你用什么发行版以及包管理器。
+
+在这个教程里,我们将提供主流发行版的命令。
+
+**注意**: 你可以用管道筛选或者用重定向符(>)来把结果重定向到一个文件。例子如下。
+
+ example | less
+
+----------
+
+ example > installed_packages.txt
+
+### Red Hat/Fedora Core/CentOS Linux: ###
+
+ rpm -qa
+
+### FreeBSD / OpenBSD: ###
+
+ pkg_info
+
+### Arch Linux: ###
+
+ pacman -Qq
+
+### Ubuntu / Debian / Linux Mint: ###
+
+ dpkg --get-selections
+
+----------
+
+ dpkg --list
+
+----------
+
+ dpkg -l
+
+祝你一天好心情。
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/quick-tip-list-installed-packages-linux-distributions/
+
+作者:[Enock Seth Nyamador][a]
+译者:[2q1w2007](https://github.com/2q1w2007)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/seth/
\ No newline at end of file
diff --git a/published/201409/20140911 Install UberWriter Markdown Editor In Ubuntu 14.04.md b/published/201409/20140911 Install UberWriter Markdown Editor In Ubuntu 14.04.md
new file mode 100644
index 0000000000..2b903e3c00
--- /dev/null
+++ b/published/201409/20140911 Install UberWriter Markdown Editor In Ubuntu 14.04.md
@@ -0,0 +1,59 @@
+在Ubuntu14.04上安装UberWriterMarkdown编辑器
+================================================================================
+这是一篇快速教程指导我们如何通过官方的PPA源在Ubuntu14.04上安装UberWriter编辑器。
+
+[UberWriter][1]是一款Ubuntu下的Markdown编辑器,它简洁的界面能让我们更致力于编辑文字。UberWriter利用了[pandoc][3](一个格式转换器)。但由于UberWriter的UI是基于GTK3的,因此不能完全兼容Unity桌面系统。以下是对UberWriter功能的列举:
+
+- 简洁的界面
+- 使用pandoc转换markdown
+- 可预览
+- 免打扰模式
+- 拼写检查
+- 语法高亮,能在html和pdf中出现数学公式
+- 支持导出到PDF,HTML,ODT等
+
+### 在Ubuntu14.04上安装UberWriter ###
+
+UberWriter可以在[Ubuntu软件中心][4]中找到但是安装需要支付5刀。如果你真的喜欢这款编辑器并想为开发者提供一些资金支持的话,我很建议你购买它。
+
+除此之外,UberWriter也能通过官方的PPA源来免费安装。通过如下命令:
+
+ sudo add-apt-repository ppa:w-vollprecht/ppa
+ sudo apt-get update
+ sudo apt-get install uberwriter
+
+安装完毕之后,你可以通过Unity的Dash运行使用。如你所见,它支持markdown的语法高亮:
+
+
+
+你可以使用预览功能来查看你的文档:
+
+
+
+我尝试导出到PDF的时候被提示安装texlive。
+
+
+
+虽然导出到HTML和ODT格式是好的。
+
+在Linux下还有一些其他的markdown编辑器。[Remarkable][5]是一款能够实时预览的编辑器,UberWriter却不能,不过总的来说它是一款很不错的应用。如果你在寻找文本编辑器的话,你可以试试[Texmaker LaTeX editor][6]。
+
+系统这个教程能够帮你在Ubuntu14.04上成功安装UberWriter。我猜想UberWriter在Ubuntu12.04,Linux Mint 17,Elementary OS和其他在Ubuntu的基础上的Linux发行版上也能成功安装。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/install-uberwriter-markdown-editor-ubuntu-1404/
+
+作者:[Abhishek][a]
+译者:[John](https://github.com/johnhoow)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://uberwriter.wolfvollprecht.de/
+[2]:http://en.wikipedia.org/wiki/Markdown
+[3]:http://johnmacfarlane.net/pandoc/
+[4]:apt://uberwriter
+[5]:http://itsfoss.com/remarkable-markdown-editor-linux/
+[6]:http://itsfoss.com/install-latex-ubuntu-1404/
diff --git a/published/201409/20140912 How to Go Hands On With the Utopic Unicorn--Literally.md b/published/201409/20140912 How to Go Hands On With the Utopic Unicorn--Literally.md
new file mode 100644
index 0000000000..b0c57b8273
--- /dev/null
+++ b/published/201409/20140912 How to Go Hands On With the Utopic Unicorn--Literally.md
@@ -0,0 +1,38 @@
+如何“上手”体验乌托邦独角兽!
+================================================================================
+**想要知道如何在正式发布前上手体验乌托邦独角兽(Utopic Unicorn)?现在你就可以做到!—— 真的是[“上手”][1]体验哦~!**
+
+显然是为了庆祝即将发布的同名Ubuntu,Canonical上线了一款“手把手教你独角兽折纸指南”。这一活动作为该公司[2014 Deconstruct][2] 大会的一部分出现,大会于九月上旬在英国Brighton举办。
+
+
+
+供图: Alejandra Obregon
+
+大会为期一天,为富有创造力的专家以及数字文化狂热者们提供了一个理想的交流场所,Canonical将展示一个正在开发中版本的 Ubuntu Phone,内容包括具体的设计以及用户交互界面,用以满足与会观众。
+
+人们对这一折纸活动的反响很积极。折纸独角兽作品最棒的人,将会获得一部全新的 Ubuntu 手机,这大大激发了人们的积极性。
+
+### 下载折纸独角兽 ###
+
+其余没有获奖的朋友,也不要气馁,下载折纸独角兽还是会有惊喜哦~
+
+如果你有五分钟的休息时间,为什么不玩玩这个折纸娱乐一下呢?如果你认为自己折出来的独角兽非常非常出(la)色(ji),请在[Twitter][3] 或 [Google+][4]上给我们发照片~(译者表示不爽!这是诚心不给我们天朝百姓获奖的机会吗?)
+
+- [下载 ‘Make a Unicorn’ 手工折纸][5]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/unicorn-origami-download-pdf-ubuntu-utopic
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://design.canonical.com/2014/09/canonical-and-ubuntu-at-dconstruct/
+[2]:http://2014.dconstruct.org/
+[3]:http://twitter.com/omgubuntu
+[4]:http://plus.google.com/+omgubuntu
+[5]:http://design.canonical.com/wp-content/uploads/042_CAN_dConstruct_instructions.pdf
diff --git a/published/201409/20140912 QuiteRSS--RSS Reader For Desktop Linux.md b/published/201409/20140912 QuiteRSS--RSS Reader For Desktop Linux.md
new file mode 100644
index 0000000000..c7da331e4c
--- /dev/null
+++ b/published/201409/20140912 QuiteRSS--RSS Reader For Desktop Linux.md
@@ -0,0 +1,53 @@
+QuiteRSS: Linux桌面的RSS阅读器
+================================================================================
+[QuiteRSS][1]是一个免费的[开源][2]RSS/Atome阅读器。它可以在Windows、Linux和Mac上运行。它用C++/QT编写。它有许多的特色功能。
+
+QuiteRSS的界面让我想起Lotus Notes mail,会有很多RSS信息排列在右侧面板上,你可以通过标签分组。点击一个 RSS 条目时,会在下方的面板里面显示该信息。
+
+
+
+除了上述功能,它还有一个广告屏蔽器,一个报纸视图,通过URL导入RSS源等众多功能。你可以在[这里][3]查找到完整的功能列表。
+
+### 在 Ubuntu 和 Linux Mint 上安装 QuiteRSS ###
+
+QuiteRSS在Ubuntu 14.04 和 Linux Mint 17中可用。你可以通过以下命令行轻松安装:
+
+ sudo apt-get install quiterss
+
+如果你想安装最新的稳定版本,你可以使用官方的[QuiteRSS PPA][4]:
+
+ sudo add-apt-repository ppa:quiterss/quiterss
+ sudo apt-get update
+ sudo apt-get install quiterss
+
+上面的命令支持所有基于Ubuntu的发行版,比如Linux Mint, Elementary OS, Linux Lite, Pinguy OS等等。对于其他Linux发行版和平台上,你可以从 [下载页][5]获得源码来安装。
+
+### 卸载 QuiteRSS ###
+
+用下列命令卸载 QuiteRSS:
+
+ sudo apt-get remove quiterss
+
+如果你使用了PPA,你还也应该从源列表中把仓库删除:
+
+ sudo add-apt-repository --remove ppa:quiterss/quiterss
+
+QuiteRSS是一个不错的开源RSS阅读器,尽管我更喜欢[Feedly][6]。不过现在 Feedly 还没有Linux桌面程序,但是你依然可以在网页浏览器中使用。希望你会觉得QuiteRSS值得在桌面Linux一试。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/quiterss-rss-reader-desktop-linux/
+
+作者:[Abhishek][a]
+译者:[2q1w2007](https://github.com/2q1w2007)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://quiterss.org/
+[2]:http://itsfoss.com/category/open-source-software/
+[3]:http://quiterss.org/en/about
+[4]:https://launchpad.net/~quiterss/+archive/ubuntu/quiterss/
+[5]:http://quiterss.org/en/download
+[6]:http://feedly.com/
diff --git a/published/201409/20140915 How To Uninstall Ubuntu Linux From Windows 8 Dual Boot.md b/published/201409/20140915 How To Uninstall Ubuntu Linux From Windows 8 Dual Boot.md
new file mode 100644
index 0000000000..247b4d1577
--- /dev/null
+++ b/published/201409/20140915 How To Uninstall Ubuntu Linux From Windows 8 Dual Boot.md
@@ -0,0 +1,127 @@
+从Windows双启动中卸载Ubuntu Linux
+================================================================================
+
+
+我在过去已经多次涉及到[在UEFI模式下安装Ubuntu 14.04与Windows 8/8.1双启动][1]的话题。 但是要怎么从**Windows双启动中卸载Ubuntu呢**?下面我们将看到的教程适用于任意的Linux操作系统,如Ubuntu,Linux Mint,Elementary OS或其它任意Linux发行版。
+
+如果你认为[在双启动模式下安装Ubuntu与Windows 8共存][2]是件难事,而从Windows双启动中移除Ubuntu将是很简单的,你的想法并不是完全错误的。如果你有个Windows安装介质的话,从Windows双启动中卸载Linux将是轻而易举的。
+
+这个教程将教你如何在有**Windows 8/8.1安装介质**的情况下将Linux从Windows 8或Windows 8.1双启动中完全移除。
+
+### 将Ubuntu从Windows 8双启动中安全卸载 ###
+
+你有没有Windows 8安装介质以及是否已经安装了Windows 8.1在你系统上这都不重要。它同样工作得很好。但是我不能说在Windows 7上也一样。如果你身边有Windows安装盘,让我们开始从Windows双启动中移除Ubuntu的进程吧。
+
+从双启动中删除Linux分为两部分。第一部分是删除Linux安装的所在分区。第二部分是修复Windows启动引导,因为简单地将Linux分区删除会引起[“Grub rescue”错误][3]。
+
+### 第一部分:在Windows下删除Linux分区 ###
+
+**第一步:**
+
+登录Windows。按下 **Windows+R** 然后在其中运行 diskmgmt.msc 命令。它将会打开Windows磁盘管理工具。
+
+
+
+**第二步:**
+
+在你安装了Linux之后,就能很容易地从大小上分辨出Linux分区。另一个分辨Linux分区的提示是找没有文件系统以及驱动器卷标的分区。Windows分区通常用卷标进行标记,比如C,D,E等等,而且通常是NTFS或FAT文件系统。
+
+就像你所能看到的,我在这里有三个Linux分区,因为我在安装Ubuntu时单独地创建了根分区(root),交换分区(swap)和家目录(home)。
+
+
+
+**Step 3:**
+**第三步:**
+
+选择Linux分区,右键点击并选择 **删除卷** 选项。
+
+
+
+如果出现了警告,在这里选择是即可。
+
+
+
+**Step 4:**
+**第四步:**
+
+被删除的分区会变成一块可用的空闲空间。你可以用它来扩展已有的卷或创建一个新的Windows分区。我会建议你创建一个新的驱动器(或是卷或者分区,随便你怎么叫),因为这样子万一你将来又想将Linux和Winodws双启动时会简单一点。
+
+
+
+#### 第二部分:修复Windows启动引导 ####
+
+一旦你删除了Linux分区,就是时候修复Windows启动引导了。这里的图片看起来可能不是很清楚,因为相对于Windows来说[在Ubuntu下对登录画面进行截图][4]要简单的多。我用手机相机拍下了这些照片。
+
+**第一步:**
+
+**插入Windows 8安装介质并重启**你的电脑。在启动的时候按下F10或F12进入BIOS/UEFI,选择**从可移除介质启动(boot from removable disk)**。
+
+
+
+**第二步:**
+
+选择修复你的计算机(repair your computer):
+
+
+
+**第三步:**
+
+在这里选择疑难解答(Troubleshoot):
+
+
+
+**第四步:**
+
+在疑难解答页面,选择高级选项(Advanced options):
+
+
+
+**第五步:**
+
+找到这里的命令提示符(command prompt):
+
+
+
+**第六步:**
+
+在命令行中输入下列命令来修复Windows启动引导:
+
+ bootrec.exe /fixmbr
+
+正常情况下,它是立即生效的,你甚至都不用等。
+
+
+
+**第七步:**
+
+一旦完成了这一步,重启你的电脑,这次从硬盘正常启动。你应该能够启动进入Windows。如果你仍然看到Grub rescue错误,试试下面的步骤。
+
+**第八步:如果第六步中的方法不起作用**
+
+如果第六步中的命令不起作用,试试高级疑难解答中的自动修复选项。
+
+
+
+它会花点时间查找问题然后修复它。
+
+
+
+现在如果你重启的话,你应该能够正常进入Windows,不再看到任何的Grub rescue错误提示。
+
+我希望这个指南能够帮助你**将Ubuntu从Windows 8双启动中完全移除**。欢迎提出任何问题与建议。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/uninstall-ubuntu-linux-windows-dual-boot/
+
+作者:[Abhishek][a]
+译者:[alim0x](https://github.com/alim0x)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://linux.cn/article-3178-1.html
+[2]:http://itsfoss.com/install-ubuntu-dual-boot-mode-windows/
+[3]:http://itsfoss.com/solve-error-partition-grub-rescue-ubuntu-linux/
+[4]:http://itsfoss.com/screenshot-login-screen-ubuntu-linux/
diff --git a/published/201409/20140915 Linux FAQs with Answers--How to find and remove obsolete PPA repositories on Ubuntu.md b/published/201409/20140915 Linux FAQs with Answers--How to find and remove obsolete PPA repositories on Ubuntu.md
new file mode 100644
index 0000000000..5df96720b1
--- /dev/null
+++ b/published/201409/20140915 Linux FAQs with Answers--How to find and remove obsolete PPA repositories on Ubuntu.md
@@ -0,0 +1,44 @@
+Linux有问必答——如何查找并移除Ubuntu上陈旧的PPA仓库
+================================================================================
+> **问题**:我试着通过运行apt-get update命令来再次同步包索引文件,但是却出现了“404 无法找到”的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引。我怎样才能清除这些破损而且陈旧的PPA仓库呢?
+
+ Err http://ppa.launchpad.net trusty/main amd64 Packages
+ 404 Not Found
+ Err http://ppa.launchpad.net trusty/main i386 Packages
+ 404 Not Found
+ W: Failed to fetch http://ppa.launchpad.net/finalterm/daily/ubuntu/dists/trusty/main/binary-amd64/Packages 404 Not Found
+
+ W: Failed to fetch http://ppa.launchpad.net/finalterm/daily/ubuntu/dists/trusty/main/binary-i386/Packages 404 Not Found
+
+ E: Some index files failed to download. They have been ignored, or old ones used instead.
+
+当你试着更新APT包索引时,“404 无法找到”错误总是会在版本更新之后发生。就是说,在你升级你的Ubuntu发行版后,你在旧的版本上添加的一些第三方PPA仓库就不再受新版本的支持。在此种情况下,你可以像下面这样来**鉴别并清除那些破损的PPA仓库**。
+
+首先,找出那些引起“404 无法找到”错误的PPA。
+
+ $ sudo apt-get update | grep "Failed"
+
+
+
+在本例中,Ubuntu Trusty不再支持的PPA仓库是“ppa:finalterm/daily”。
+
+去[移除PPA仓库][1]吧。
+
+ $ sudo add-apt-repository --remove ppa:finalterm/daily
+
+你得去重复重复再重复,把上面找到的所有过时的PPA仓库一个一个地移除。
+
+
+
+在移除所有过时的PPA仓库后,重新运行“apt-get update”命令来检查它们是否都被成功移除。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/find-remove-obsolete-ppa-repositories-ubuntu.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ask.xmodulo.com/how-to-remove-ppa-repository-from-command-line-on-ubuntu.html
diff --git a/published/201409/20140915 One of the Smallest Distros in the World, Tiny Core, Gets a Fresh Update.md b/published/201409/20140915 One of the Smallest Distros in the World, Tiny Core, Gets a Fresh Update.md
new file mode 100644
index 0000000000..eac233ac21
--- /dev/null
+++ b/published/201409/20140915 One of the Smallest Distros in the World, Tiny Core, Gets a Fresh Update.md
@@ -0,0 +1,39 @@
+世界上最小的发行版之一Tiny Core有了更新
+================================================================================
+
+
+Tiny Core
+
+**Robert Shingledecker 宣布了最终版本的Tiny Core 5.4 Linux操作系统已经可以即刻下载,这也使它成为世界上最小的发行版之一。**
+
+发行版的名字说明了一切,但是开发者依然集成了一些有意思的包和一个轻量的桌面来与它相匹配。这次最新的迭代只有一个候选版本,而且它也是迄今为止最安静的版本之一。
+
+官网上的开发者说"Tiny Core是一个简单的范例来说明核心项目可以提供什么。它提供了一个12MB的FLTK/FLWM桌面。用户对提供的程序和外加的硬件有完整的控制权。你可以把它用在桌面、笔记本或者服务器上,这可以由用户从在线库中安装附加程序时选择,或者用提供的工具编译大多数你需要的。"
+
+根据更新日志,NFS的入口被添加,'Done'将在新的一行里显示,udev也升级到174来修复竞态条件问题。
+
+关于修改和升级的完整内容可以在官方的[声明][1]里找到。
+
+你可以点击以下链接下载Tiny Core Linux 5.4.
+
+- [Tiny Core Linux 5.4 (ISO)][2][iso] [14 MB]
+- [Tiny Core Plus 5.4 (ISO)][3][iso] [72 MB]
+- [Core 5.4 (ISO)][4][iso] [8.90 MB]
+
+这些发行版都有Live,你可以在安装之前试用。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/One-of-the-Smallest-Distros-in-the-World-Tiny-Core-Gets-a-Fresh-Update-458785.shtml
+
+作者:[Silviu Stahie][a]
+译者:[2q1w2007](https://github.com/2q1w2007)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://forum.tinycorelinux.net/index.php/topic,17487.0.html
+[2]:http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/5.x/x86/release/TinyCore-5.4.iso
+[3]:http://repo.tinycorelinux.net/5.x/x86/release/CorePlus-5.4.iso
+[4]:http://distro.ibiblio.org/tinycorelinux/5.x/x86/release/Core-current.iso
diff --git a/published/201409/20140915 Potenza Icon Themes 2.0 Available For Download.md b/published/201409/20140915 Potenza Icon Themes 2.0 Available For Download.md
new file mode 100644
index 0000000000..992c8bfd91
--- /dev/null
+++ b/published/201409/20140915 Potenza Icon Themes 2.0 Available For Download.md
@@ -0,0 +1,44 @@
+Potenza 图标主题2.0已可下载
+=================================================
+
+
+[Potenza][1]图标主题版本2.0已经发布。Potenza 图标的灵感来自[faenza][2],faenza是我们在[Ubuntu 13.10的最佳图标][3]的列出的一款漂亮的图标主题。
+
+Potenza 的开发者 Alessandro Bompadre说,他曾试图建立一个适用于Linux的完整图标集,它应该适合各种桌面环境,包括如Unity,Gnome,Cinnamon,KDE等。
+
+###下载 Potenza 图标###
+
+Potenza 图标可在 Ubuntu,Linux Mint、Elementary OS、Linux Lite 等环境中通过Noobslab的PPA来安装。只有一点需要提醒你,因为要为所有主要类型的桌面环境提供了大量的图标,所以总下载字节大概是400 MB。
+
+打开一个终端,使用下面的命令:
+
+ sudo add-apt-repository ppa:noobslab/potenza
+ sudo apt-get update
+ sudo apt-get install potenza-2
+
+如果你不想使用PPA,您也可以从下面的链接安装该图标主题:
+
+- [下载 Potenza 图标主题][4]
+
+解压文件到 ~/.icons 目录。在Ubuntu的Unity环境中,你可以[使用Unity Tweak Tool把当前的图标主题切换][5] 为 Potenza 。
+
+希望你喜欢Potenza,您也可以试试[Dalisha图标主题][6]或看看我们的[Ubuntu 14.04的最佳图标主题列表][7]。
+
+-------------------------------------------------- ------------------------------
+
+via: http://itsfoss.com/potenza-icon-themes-20-download/
+
+作者:[Abhishek][a]
+译者:[fbigun](https://github.com/fbigun)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:https://github.com/AlessandroBompadre/Potenza/
+[2]:http://tiheum.deviantart.com/art/Faenza-Icons-173323228
+[3]:http://itsfoss.com/best-icon-themes-ubuntu-1310/
+[4]:http://gnome-look.org/content/show.php/Potenza+2.0?content=166853
+[5]:http://itsfoss.com/best-icon-themes-ubuntu-1404/
+[6]:http://itsfoss.com/dalisha-icon-ubuntu-linux/
+[7]:http://itsfoss.com/best-icon-themes-ubuntu-1404/
diff --git a/published/201409/20140917 GNOME Control Center 3.14 RC1 Corrects Lots of Potential Crashes.md b/published/201409/20140917 GNOME Control Center 3.14 RC1 Corrects Lots of Potential Crashes.md
new file mode 100644
index 0000000000..aef8750f6b
--- /dev/null
+++ b/published/201409/20140917 GNOME Control Center 3.14 RC1 Corrects Lots of Potential Crashes.md
@@ -0,0 +1,41 @@
+GNOME控制中心3.14 RC1修复了大量潜在崩溃问题
+================================================================================
+
+
+Arch Linux下的GNOME控制中心
+
+**GNOME控制中心,可以在GNOME中更改你的桌面各个方面设置的主界面,已经升级至3.14 RC1,伴随而来的是大量来自GNOME stack的包。**
+
+GNOME控制中心是在GNOME生态系统中十分重要的软件之一,尽管不是所有的用户意识到了它的存在。GNOME控制中心是管理由GNOME驱动的操作系统中所有设置的部分,就像你从截图里看到的那样。
+
+GNOME控制中心不是很经常被宣传,它实际上是GNOME stack中为数不多的源代码包和安装后的应用名称不同的软件包。源代码包的名字为GNOME控制中心,但用户经常看到的应用名称是“设置”或“系统设置”,取决于开发者的选择。
+
+### GNOME控制中心 3.14 RC1 带来哪些新东西 ###
+
+通过更新日志可以得知,升级了libgd以修复GdNotification主题,切换视图时背景选择对话框不再重新调整大小,选择对话框由三个不同视图组合而成,修复Flickr支持中的一个内存泄漏,在“日期和时间”中不再使用硬编码的字体大小,修复改换窗口管理器(或重启)时引起的崩溃,更改无线网络启用时可能引起的崩溃也已被修复,以及纠正了更多可能的WWAN潜在崩溃因素。
+
+此外,现在热点仅在设备活动时运行,所有虚拟桥接现在是隐藏的,不再显示VPN连接的底层设备,默认不显示空文件夹列表,解决了几个UI填充问题,输入焦点现在重新回到了账户对话框,将年份设置为0时导致的崩溃已修复,“Wi-Fi热点”属性居中,修复了打开启用热点时弹出警告的问题,以及现在打开热点失败时将弹出错误信息。
+
+完整的变动,更新以及bug修复,参见官方[更新日志][1]。
+
+你可以下载GNOME控制中心 3.14 RC1:
+
+- [tar.xz (3.12.1 稳定版)][2][sources] [6.50 MB]
+- [tar.xz (3.14 RC1 开发版)][3][sources] [6.60 MB]
+
+这里提供的仅仅是源代码包,你必须自己编译以测试GNOME控制中心。除非你真的知道自己在做什么,否则你应该等到完整的GNOME stack在源中可用时再使用。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/GNOME-Control-Center-3-14-RC1-Correct-Lots-of-Potential-Crashes-458986.shtml
+
+作者:[Silviu Stahie][a]
+译者:[alim0x](https://github.com/alim0x)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://ftp.acc.umu.se/pub/GNOME/sources/gnome-control-center/3.13/gnome-control-center-3.13.92.news
+[2]:http://ftp.acc.umu.se/pub/GNOME/sources/gnome-control-center/3.12/gnome-control-center-3.12.1.tar.xz
+[3]:http://ftp.acc.umu.se/pub/GNOME/sources/gnome-control-center/3.13/gnome-control-center-3.13.92.tar.xz
diff --git a/published/201409/20140919 Another Italian City Says Goodbye To Microsoft Office, Will Switch To OpenOffice Soon.md b/published/201409/20140919 Another Italian City Says Goodbye To Microsoft Office, Will Switch To OpenOffice Soon.md
new file mode 100644
index 0000000000..1fd4d81ec7
--- /dev/null
+++ b/published/201409/20140919 Another Italian City Says Goodbye To Microsoft Office, Will Switch To OpenOffice Soon.md
@@ -0,0 +1,36 @@
+欧洲现在很流行拥抱开源
+================================================================================
+
+
+看来拥抱[开源][1]最近在欧洲的国家很流行。上个月我们我只听说[都灵成为意大利首个官方接受开源产品的城市][2]。另一个意大利西北部城市,[乌迪内][3],已经宣布他们正在抛弃微软Office转而迁移到[OpenOffice][4]。
+
+乌迪内有100,000的人口并且行政部门有大约900台电脑,它们都运行着微软Windows以及它的默认产品套装。根据[预算文档][5],迁移将在大约12月份时进行,从80台新电脑开始。接着将会是旧电脑迁移到OpenOffice。
+
+迁移估计会节省一笔授权费用,不然将会每台电脑花费大约400欧元,总计360,000欧元。但是节约成本并不是迁移的唯一目的,获得常规的软件升级也是其中一个因素。
+
+当然从微软的Office到OpenOfifice不会太顺利。不过,全市的培训计划是先让少数员工使用安装了OpenOffice的电脑。
+
+如我先前说明的,这似乎在欧洲是一个趋势。在今年早些时候在[西班牙的加那利群岛][7]之后[法国城市图卢兹也使用了LibreOffice中从而节省了100万欧元][6]。相邻的法国城市[日内瓦也有开源方面的迹象][8]。在世界的另一边,政府机构[泰米尔纳德邦][9]和印度喀拉拉邦省也抛弃了微软而使用开源软件。
+
+伴随着经济的萧条,我觉得Windows XP的死亡一直是开源的福音。无论是什么原因,我很高兴看到这份名单越来越大。你看呢?
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/udine-open-source/
+
+作者:[Abhishek][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://itsfoss.com/category/open-source-software/
+[2]:http://linux.cn/article-3602-1.html
+[3]:http://en.wikipedia.org/wiki/Udine
+[4]:https://www.openoffice.org/
+[5]:http://www.comune.udine.it/opencms/opencms/release/ComuneUdine/comune/Rendicontazione/PEG/PEG_2014/index.html?lang=it&style=1&expfolder=???+NavText+???
+[6]:http://linux.cn/article-3575-1.html
+[7]:http://itsfoss.com/canary-islands-saves-700000-euro-open-source/
+[8]:http://itsfoss.com/170-primary-public-schools-geneva-switch-ubuntu/
+[9]:http://linux.cn/article-2744-1.html
\ No newline at end of file
diff --git a/published/201409/20140919 Mir and Unity 8 Status Update Arrives from Ubuntu Devs.md b/published/201409/20140919 Mir and Unity 8 Status Update Arrives from Ubuntu Devs.md
new file mode 100644
index 0000000000..97698ad575
--- /dev/null
+++ b/published/201409/20140919 Mir and Unity 8 Status Update Arrives from Ubuntu Devs.md
@@ -0,0 +1,35 @@
+来自Ubuntu开发团队关于Mir和Unity 8的状态更新
+================================================================================
+> 目前Unity 8和Mir的开发进度很慢,但是仍在进行中
+
+
+
+**和其他项目一样,Canonical也在开发Unity桌面环境与Mir显示服务。开发团队刚刚发布了一个小的更新,据此我们可以知道都有些什么进展**
+
+Ubuntu开发者可能刚刚集中精力在一些重要的发布上,就像接下来的Ubuntu 14.10(Utopic Unicorn) 或者是新的面向移动设备的Ubuntu Touch,但是他们同样也涉及像Mir以及Unity 8这样的项目。
+
+目前这代Ubuntu系统使用的是Unity 7桌面环境,但是新一代已经酝酿了很长一段时间。它与新的显示服务一起,已经在Ubuntu的移动版中了,但最终也要将它带到桌面上。
+
+这两个项目的领导Kevin Gunn经常发布一些来自开发者的进度信息以及这周以来的一些改变,虽然这些都很粗略。
+
+根据 [开发团队][1]的消息, 一些关于触摸/触发角的问题已经修正了,也修复了几个翻译问题,一些Dash UI相关的问题已经修复了,目前 团队在开发Mir 0.8,Mir 0.7.2将被升级,同时一些高优先级的bug处理也在进行中。
+
+你可以[下载 Ubuntu Next][7]来体验新的Unity 8以及Mir的特性,但是还不够稳定。要等到成熟还需要一些时间。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Mir-and-Unity-8-Update-Arrive-from-Ubuntu-Devs-459263.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:https://lists.launchpad.net/ubuntu-phone/msg09875.html
+[2]:http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-amd64.iso
+[3]:http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-i386.iso
+[4]:http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-amd64+mac.iso
+[5]:http://cdimage.ubuntu.com/ubuntu-desktop-next/daily-live/current/utopic-desktop-amd64.iso
+[6]:http://cdimage.ubuntu.com/ubuntu-desktop-next/daily-live/current/utopic-desktop-i386.iso
\ No newline at end of file
diff --git a/published/201409/20140919 Netflix Offers to Work with Ubuntu to Bring Native Playback to All.md b/published/201409/20140919 Netflix Offers to Work with Ubuntu to Bring Native Playback to All.md
new file mode 100644
index 0000000000..e8b1dc8bfd
--- /dev/null
+++ b/published/201409/20140919 Netflix Offers to Work with Ubuntu to Bring Native Playback to All.md
@@ -0,0 +1,48 @@
+Netflix支持 Ubuntu 上原生回放
+================================================================================
+
+
+**我们[上个月说的Netflix 的原生Linux支持很接近了][1],现在终于有了,我们只需几个简单的步骤就可以在Ubuntu桌面上启用HTML 5视频流了。
+
+现在Netflix更近一步提供了支持。它希望给Ubuntu带来真正的开箱即用的Netflix回放。现在只需要更新**网络安全(Network Security Services,NSS)**服务库就行。
+
+### 原生Netflix? Neato. ###
+
+在一封发给Ubuntu开发者邮件列表的[邮件中][2],Netflix的Paul Adolph解释了现在的情况:
+
+> “如果NSS的版本是3.16.2或者更高的话,Netflix可以在Ubuntu 14.04的稳定版Chrome中播放。如果版本超过了14.04,Netflix会作出一些调整,以避免用户必须对浏览器的 User-Agent 参数进行一些修改才能播放。”
+
+[LCTT 译注:此处原文是“14.02”,疑是笔误,应该是指Ubuntu 14.04。]
+
+很快要发布的Ubuntu 14.10提供了更新的[NSS v3.17][3], 而目前大多数用户使用的版本 Ubuntu 14.04 LTS 提供的是 v3.15.x。
+
+NSS是一系列支持多种安全功能的客户端和服务端应用的库,包括SSL,TLS,PKCS和其他安全标准。为了让Ubuntu LTS用户可以尽快用上原生的HTML5 Netflix, Paul 问道:
+
+>”让一个新的NSS版本进入更新流的过程是什么?或者有人可以给我提供正确的联系方式么?“
+
+Netflix今年早期时在Windows 8.1和OSX Yosemite上提供了HTML5视频回放,而不需要任何额外的下载或者插件。现在可以通过[加密媒体扩展][4]特性来使用。
+
+虽然我们等待这讨论取得进展(并且希望可以完全解决),但是你仍可以在Ubuntu上[下面的指导来][5]修改HTML5 Netflix。
+
+更新:9/19
+
+本文发表后,Canonical 已经确认所需版本的NSS 库会按计划在下个“安全更新”中更新,预计 Ubuntu 14.04 LTS 将在两周内得到更新。
+
+这个新闻让 Netflix 的Paul Adolph 很高兴,作为回应,他说当软件包更新后,他将“去掉 Chrome 中回放 Netflix HTML5 视频时的User-Agent 过滤,不再需要修改UA 了”。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/netflix-linux-html5-nss-change-request
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/08/netflix-linux-html5-support-plugins
+[2]:https://lists.ubuntu.com/archives/ubuntu-devel-discuss/2014-September/015048.html
+[3]:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.17_release_notes
+[4]:http://en.wikipedia.org/wiki/Encrypted_Media_Extensions
+[5]:http://www.omgubuntu.co.uk/2014/08/netflix-linux-html5-support-plugins
\ No newline at end of file
diff --git a/published/201409/20140919 Red Hat Acquires FeedHenry for $82 Million to Advance Mobile Development.md b/published/201409/20140919 Red Hat Acquires FeedHenry for $82 Million to Advance Mobile Development.md
new file mode 100644
index 0000000000..45f7718d45
--- /dev/null
+++ b/published/201409/20140919 Red Hat Acquires FeedHenry for $82 Million to Advance Mobile Development.md
@@ -0,0 +1,37 @@
+Red Hat公司8200万美元收购FeedHenry来推动移动开发
+================================================================================
+> 这是Red Hat公司进入移动开发领域的一次关键收获。
+
+Red Hat公司的JBoss开发者工具事业部一直注重于企业开发,而忽略了移动方面。而如今这一切将随着Red Hat公司宣布用8200万美元收购移动开发供应商 [FeedHenry][1] 开始发生改变。这笔交易将在Red Hat公司2015财年的第三季度结束。
+
+Red Hat公司的中间件总经理Mike Piech说当交易结束后FeedHenry公司的员工将会变成Red Hat公司的员工。
+
+FeedHenry公司的开发平台能让应用开发者快速地开发出Android、IOS、Windows Phone以及黑莓的移动应用。FeedHenry的平台Node.js的编程结构有着深远影响,而那不是过去JBoss所涉及的领域。
+
+"这次对FeedHenry公司的收购显著地提高了我们对于Node.js的支持与衔接。" Piech说。
+
+Red Hat公司的平台即服务(PaaS)技术OpenShift已经有了一个Node.js的cartridge组件。此外,Red Hat公司的企业版Linux把Node.js的技术预览来作为Red Hat公司软件包的一部分。
+
+尽管Node.js本身就是开源的,但不是所有FeedHenry公司的技术能在近期符合开源许可证的要求。作为Red Hat纵贯历史的政策, 现在也是致力于让FeedHenry开源的时候了。
+
+"我们完成了收购,那么开源我们所收购的技术就是公司的首要任务,并且我们没有理由因Feedhenry而例外。"Piech说。
+
+Red Hat公司最后一次主要的非开源性公司的收购是在2012年用104万美元收购 [ManageIQ][2] 公司。在今年的5月份,Red Hat公司成立了ManageIQ公司的开源项目,开放之前闭源的云管理技术代码。
+
+从整合的角度来看,Red Hat公司还尚未精确地提供FeedHenry公司如何融入它的完整信息。
+
+"我们已经确定了一些FeedHenry公司和我们已经存在的技术和产品能很好地相互融合和集成的范围," Piech说,"我们会在接下来的90天内分享更多我们发展蓝图的细节。"
+
+--------------------------------------------------------------------------------
+
+via: http://www.datamation.com/mobile-wireless/red-hat-acquires-feedhenry-for-82-million-to-advance-mobile-development.html
+
+作者:[Sean Michael Kerner][a]
+译者:[ZTinoZ](https://github.com/ZTinoZ)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.datamation.com/author/Sean-Michael-Kerner-4807810.html
+[1]:http://www.feedhenry.com/
+[2]:http://www.datamation.com/cloud-computing/red-hat-makes-104-million-cloud-management-bid-with-manageiq-acquisition.html
diff --git a/published/201409/20140922 Ten Blogs Every Ubuntu User Must Follow.md b/published/201409/20140922 Ten Blogs Every Ubuntu User Must Follow.md
new file mode 100644
index 0000000000..0bc0290e0f
--- /dev/null
+++ b/published/201409/20140922 Ten Blogs Every Ubuntu User Must Follow.md
@@ -0,0 +1,103 @@
+10个 Ubuntu 用户一定要知道的博客
+================================================================================
+
+
+**想要了解更多关于 ubuntu 的资讯,我们应该追哪些网站呢?**
+
+这是初学者经常会问的一个问题,在这里,我会告诉你们10个我最喜欢的博客,这些博客可以帮助我们解决问题,能让我们及时了解所有 Ubuntu 版本的更新消息。不,我谈论的不是通常的 Linux 和 shell 脚本一类的东东。我是在说一个流畅的 Linux 桌面系统和一个普通的用户所要的关于 Ubuntu 的经验。
+
+这些网站帮助你解决你正遇到的问题,提醒你关注各种应用和提供给你来自 Ubuntu 世界的最新消息。这个网站可以让你对 Ubuntu 更了解,所以,下面列出的是10个我最喜欢的博客,它们包括了 Ubuntu 的方方面面。
+
+###10个Ubutun用户一定要知道的博客###
+
+从我开始在 itsfoss 网站上写作开始,我特意把它排除在外,没有列入名单。我也并没有把[Planet Ubuntu][1]列入名单,因为它不适合初学者。废话不多说,让我们一起来看下**最好的乌邦图(ubuntu)博客**(排名不分先后):
+
+### [OMG! Ubuntu!][2] ###
+
+这是一个只针对 ubuntu 爱好者的网站。无论多小,只要是和乌邦图有关系的,OMG!Ubuntu 都会收入站内!博客主要包括新闻和应用。你也可以再这里找到一些关于 Ubuntu 的教程,但不是很多。
+
+这个博客会让你知道 Ubuntu 世界发生的各种事情。
+
+### [Web Upd8][3] ###
+
+Web Upd8 是我最喜欢的博客。除了涵盖新闻,它有很多容易理解的教程。Web Upd8 还维护了几个PPAs。博主[Andrei][4]有时会在评论里回答你的问题,这对你来说也会是很有帮助的。
+
+这是一个你可以了解新闻资讯,学习教程的网站。
+
+### [Noobs Lab][5] ###
+
+和Web Upd8一样,Noobs Lab上也有很多教程,新闻,并且它可能是PPA里最大的主题和图标集。
+
+如果你是个新手,去Noobs Lab看看吧。
+
+### [Linux Scoop][6] ###
+
+大多数的博客都是“文字博客”。你通过看说明和截图来学习教程。而 Linux Scoop 上有很多录像来帮助初学者来学习,完全是一个视频博客。
+
+比起阅读来,如果你更喜欢视频,Linux Scoop应该是最适合你的。
+
+### [Ubuntu Geek][7] ###
+
+这是一个相对比较老的博客。覆盖面很广,并且有很多快速安装的教程和说明。虽然,有时我发现其中的一些教程文章缺乏深度,当然这也许只是我个人的观点。
+
+想要快速小贴士,去Ubuntu Geek。
+
+### [Tech Drive-in][8] ###
+
+这个网站的更新频率好像没有以前那么快了,可能是 Manuel 在忙于他的工作,但是仍然给我们提供了很多的东西。新闻,教程,应用评论是这个博客的亮点。
+
+博客经常被收入到[Ubuntu的新闻邀请邮件中][9],Tech Drive-in肯定是一个很值得你去学习的网站。
+
+### [UbuntuHandbook][10] ###
+
+快速小贴士,新闻和教程是UbuntuHandbook的USP。[Ji m][11]最近也在参与维护一些PPAS。我必须很认真的说,这个博客的页面其实可以做得更好看点,纯属个人观点。
+
+UbuntuHandbook 真的很方便。
+
+### [Unixmen][12] ###
+
+这个网站是由很多人一起维护的,而且并不仅仅局限于Ubuntu,它也覆盖了很多的其他的Linux发行版。它有自己的论坛来帮助用户。
+
+紧跟着 Unixmen 的步伐。。
+
+### [The Mukt][13] ###
+
+The Mukt是Muktware新的代表。Muktware是一个逐渐消亡的Linux组织,并以Mukt重生。Muktware是一个很严谨的Linux开源的博客,The Mukt涉及很多广泛的主题,包括,科技新闻,极客新闻,有时还有娱乐新闻(听起来是否有一种混搭风的感觉?)The Mukt也包括很多你感兴趣的Ubuntu新闻。
+
+The Mukt 不仅仅是一个博客,它是一种文化潮流。
+
+### [LinuxG][14] ###
+
+LinuxG是一个你可以找到所有关于“怎样安装”类型文章的站点。几乎所有的文章都开始于一句话“你好,Linux geeksters,正如你所知道的……”,博客可以在不同的主题上做得更好。我经常发现有些是文章缺乏深度,并且是急急忙忙写出来的,但是它仍然是一个关注应用最新版本的好地方。
+
+这是个快速浏览新的应用和它们最新的版本好地方。
+
+### 你还有什么好的站点吗? ###
+
+这些就是我平时经常浏览的 Ubuntu 博客。我知道还有很多我不知道的站点,可能会比我列出来的这些更好。所以,欢迎把你最喜爱的 Ubuntu 博客写在下面评论区。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/ten-blogs-every-ubuntu-user-must-follow/
+
+作者:[Abhishek][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://planet.ubuntu.com/
+[2]:http://www.omgubuntu.co.uk/
+[3]:http://www.webupd8.org/
+[4]:https://plus.google.com/+AlinAndrei
+[5]:http://www.noobslab.com/
+[6]:http://linuxscoop.com/
+[7]:http://www.ubuntugeek.com/
+[8]:http://www.techdrivein.com/
+[9]:https://lists.ubuntu.com/mailman/listinfo/ubuntu-news
+[10]:http://ubuntuhandbook.org/
+[11]:https://plus.google.com/u/0/+JimUbuntuHandbook
+[12]:http://www.unixmen.com/
+[13]:http://www.themukt.com/
+[14]:http://linuxg.net/
diff --git a/published/201409/20140924 Canonical Closes nginx Exploit in Ubuntu 14.04 LTS.md b/published/201409/20140924 Canonical Closes nginx Exploit in Ubuntu 14.04 LTS.md
new file mode 100644
index 0000000000..5b87861224
--- /dev/null
+++ b/published/201409/20140924 Canonical Closes nginx Exploit in Ubuntu 14.04 LTS.md
@@ -0,0 +1,37 @@
+Canonical解决了一个Ubuntu 14.04 LTS中的nginx漏洞
+================================================================================
+> 用户应该更新他们的系统来修复这个漏洞!
+
+
+
+*Ubuntu 14.04 LTS*
+
+**Canonical已经在安全公告中公布了这个影响到Ubuntu 14.04 LTS (Trusty Tahr)的nginx漏洞的细节。这个问题已经被确定并被修复了**
+
+Ubuntu的开发者已经修复了nginx的一个小漏洞。他们解释nginx可能已经被利用来暴露网络上的敏感信息。
+
+根据安全公告,“Antoine Delignat-Lavaud和Karthikeyan Bhargavan发现nginx错误地重复使用了缓存的SSL会话。攻击者可能利用此问题,在特定的配置下,可以从不同的虚拟主机获得信息“。
+
+对于这些问题的更详细的描述,可以看到Canonical的安全[公告][1]。用户应该升级自己的Linux发行版以解决此问题。
+
+这个问题可以通过在系统升级到最新nginx包(和依赖v包)进行修复。要应用该补丁,你可以直接运行升级管理程序。
+
+如果你不想使用软件更新器,您可以打开终端,输入以下命令(需要root权限):
+
+ sudo apt-get update
+ sudo apt-get dist-upgrade
+
+在一般情况下,一个标准的系统更新将会进行必要的更改。要应用此修补程序您不必重新启动计算机。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Canonical-Closes-Nginx-Exploit-in-Ubuntu-14-04-LTS-459677.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://www.ubuntu.com/usn/usn-2351-1/
\ No newline at end of file
diff --git a/published/201409/20140924 Debian 8 Jessie to Have GNOME as the Default Desktop.md b/published/201409/20140924 Debian 8 Jessie to Have GNOME as the Default Desktop.md
new file mode 100644
index 0000000000..1a7f03e7fd
--- /dev/null
+++ b/published/201409/20140924 Debian 8 Jessie to Have GNOME as the Default Desktop.md
@@ -0,0 +1,42 @@
+Debian 8 "Jessie" 将把GNOME作为默认桌面环境
+================================================================================
+> Debian的GNOME团队已经取得了实质进展
+
+
+
+*GNOME 3.14桌面*
+
+**Debian项目开发者花了很长一段时间来决定将Xfce,GNOME或一些其他桌面环境中的哪个作为默认环境,不过目前看起来像是GNOME赢了。**
+
+[我们两天前提到了][1],GNOME 3.14的软件包被上传到 Debian Testing(Debian 8 “Jessie”)的软件仓库中,这是一个令人惊喜的事情。通常情况下,GNOME的维护者对任何类型的软件包都不会这么快地决定添加,更别说桌面环境。
+
+事实证明,关于即将到来的Debian 8的发行版中所用的默认桌面的争论已经尘埃落定,尽管这个词可能有点过于武断。无论什么情况下,总是有些开发者想要Xfce,另外一些则是喜欢 GNOME,看起来 MATE 也是不少人的备选。
+
+### 最有可能的是,GNOME将Debian 8“Jessie” 的默认桌面环境###
+
+我们之所以说“最有可能”是因为协议尚未达成一致,但它看起来GNOME已经遥遥领先了。Debian的维护者和开发者乔伊·赫斯解释了为什么会这样。
+
+“根据从 https://wiki.debian.org/DebianDesktop/Requalification/Jessie 初步结果看,一些所需数据尚不可用,但在这一点上,我百分之八十地确定GNOME已经领先了。特别是,由于“辅助功能”和某些“systemd”整合的进度。在辅助功能方面:Gnome和Mate都领先了一大截。其他一些桌面的辅助功能改善了在Debian上的支持,部分原因是这一过程推动的,但仍需要上游大力支持。“
+
+“Systemd /etc 整合方面:Xfce,Mate等尽力追赶在这一领域正在发生的变化,当技术团队停止了修改之后,希望有时间能在冻结期间解决这些问题。所以这并不是完全否决这些桌面,但要从目前的状态看,GNOME是未来的选择,“乔伊·赫斯[补充说][2]。
+
+开发者在邮件中表示,在Debian的GNOME团队对他们所维护的项目[充满了激情][3],而Debian的Xfce的团队是决定默认桌面的实际阻碍。
+
+无论如何,Debian 8“Jessie”没有一个具体发布时间,并没有迹象显示何时可能会被发布。在另一方面,GNOME 3.14已经发布了(也许你已经看到新闻了),它将很快应对好进行Debian的测试。
+
+我们也应该感谢Jordi Mallach,在Debian中的GNOME包的维护者之一,他为我们指引了正确的讯息。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Debian-8-quot-Jessie-quot-to-Have-GNOME-as-the-Default-Desktop-459665.shtml
+
+作者:[Silviu Stahie][a]
+译者:[fbigun](https://github.com/fbigun)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://news.softpedia.com/news/Debian-8-quot-Jessie-quot-to-Get-GNOME-3-14-459470.shtml
+[2]:http://anonscm.debian.org/cgit/tasksel/tasksel.git/commit/?id=dce99f5f8d84e4c885e6beb4cc1bb5bb1d9ee6d7
+[3]:http://news.softpedia.com/news/Debian-Maintainer-Says-that-Xfce-on-Debian-Will-Not-Meet-Quality-Standards-GNOME-Is-Needed-454962.shtml
diff --git a/published/201409/20140924 End of the Line for Red Hat Enterprise Linux 5.md b/published/201409/20140924 End of the Line for Red Hat Enterprise Linux 5.md
new file mode 100644
index 0000000000..c1a680ecdd
--- /dev/null
+++ b/published/201409/20140924 End of the Line for Red Hat Enterprise Linux 5.md
@@ -0,0 +1,29 @@
+Red Hat Enterprise Linux 5产品线终结
+================================================================================
+2007年3月,红帽公司首次宣布它的[Red Hat Enterprise Linux 5][1](RHEL)平台。虽然如今看来很普通,RHEL 5特别显著的一点是它是红帽公司第一个强调虚拟化的主要发行版本,而这点是如今现代发行版所广泛接受的特性。
+
+最初的计划是为RHEL 5提供七年的寿命,但在2012年该计划改变了,红帽为RHEL 5[扩展][2]至10年的标准支持。
+
+刚刚过去的这个星期,Red Hat发布的RHEL 5.11是RHEL 5.X系列的最后的、次要里程碑版本。红帽现在进入了将持续三年的名为“production 3”的支持周期。在这阶段将没有新的功能被添加到平台中,并且红帽公司将只提供有重大影响的安全修复程序和紧急优先级的bug修复。
+
+平台事业部副总裁兼总经理Jim Totton在红帽公司在一份声明中说:“红帽公司致力于建立一个长期,稳定的产品生命周期,这将给那些依赖Red Hat Enterprise Linux为他们的关键应用服务的企业客户提供关键的益处。虽然RHEL 5.11是RHEL 5平台的最终次要版本,但它提供了安全性和可靠性方面的增强功能,以保持该平台接下来几年的活力。”
+
+新的增强功能包括安全性和稳定性更新,包括改进了红帽帮助用户调试系统的方式。
+
+还有一些新的存储的驱动程序,以支持新的存储适配器和改进在VMware ESXi上运行RHEL的支持。
+
+在安全方面的巨大改进是OpenSCAP更新到版本1.0.8。红帽在2011年五月的[RHEL5.7的里程碑更新][3]中第一次支持了OpenSCAP。 OpenSCAP是安全内容自动化协议(SCAP)框架的开源实现,用于创建一个标准化方法来维护安全系统。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxplanet.com/news/end-of-the-line-for-red-hat-enterprise-linux-5.html
+
+作者:Sean Michael Kerner
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://www.internetnews.com/ent-news/article.php/3665641
+[2]:http://www.serverwatch.com/server-news/red-hat-extends-linux-support.html
+[3]:http://www.internetnews.com/skerner/2011/05/red-hat-enterprise-linux-57-ad.html
\ No newline at end of file
diff --git a/published/201409/20140924 Second Bugfix Release for KDE Plasma 5 Arrives with Lots of Changes.md b/published/201409/20140924 Second Bugfix Release for KDE Plasma 5 Arrives with Lots of Changes.md
new file mode 100644
index 0000000000..243a2c5027
--- /dev/null
+++ b/published/201409/20140924 Second Bugfix Release for KDE Plasma 5 Arrives with Lots of Changes.md
@@ -0,0 +1,39 @@
+KDE Plasma 5的第二个bug修复版本发布,带来了很多的改变
+================================================================================
+> 新的Plasma 5发布了,带来了新的外观
+
+ 
+
+*KDE Plasma 5*
+
+### Plasma 5的第二个bug修复版本发布,已可下载###
+
+KDE Plasma 5的bug修复版本不断来到,它新的桌面体验将会是KDE的生态系统的一个组成部分。
+
+[公告][1]称:“plasma-5.0.2这个版本,新增了一个月以来来自KDE的贡献者新的翻译和修订。Bug修复通常是很小但是很重要,如修正未翻译的文字,使用正确的图标和修正KDELibs 4软件的文件重复现象。它还增加了一个月以来辛勤的翻译成果,使其支持其他更多的语言”
+
+这个桌面还没有在任何Linux发行版中默认安装,这将持续一段时间,直到我们测试完成。
+
+开发者还解释说,更新的软件包可以在Kubuntu Plasma 5的开发版本中进行审查。
+
+如果你个人需要它们,你也可以下载源码包。
+
+- [KDE Plasma Packages][2]
+- [KDE Plasma Sources][3]
+
+如果你决定去编译它,你必须需要知道 KDE Plasma 5.0.2是一组复杂的软件,可能你需要解决不少问题。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Second-Bugfix-Release-for-KDE-Plasma-5-Arrives-with-Lots-of-Changes-459688.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://kde.org/announcements/plasma-5.0.2.php
+[2]:https://community.kde.org/Plasma/Packages
+[3]:http://kde.org/info/plasma-5.0.2.php
\ No newline at end of file
diff --git a/published/201409/20140924 Wal Commander GitHub Edition 0.17 released.md b/published/201409/20140924 Wal Commander GitHub Edition 0.17 released.md
new file mode 100644
index 0000000000..98ab4c8567
--- /dev/null
+++ b/published/201409/20140924 Wal Commander GitHub Edition 0.17 released.md
@@ -0,0 +1,43 @@
+文件管理器 Wal Commander Github 0.17版发布了
+================================================================================
+
+
+> ### 描述 ###
+>
+> Wal Commander GitHub 版是一款多平台的开源文件管理器。适用于Windows、Linux、FreeBSD、和OSX。
+>
+> 这个从项目的目的是创建一个模仿Far管理器外观和感觉的便携式文件管理器。
+
+Wal Commander 的下一个Github稳定版本0.17 已经出来了。主要功能包括:
+
+- 使用命令历史自动补全;
+- 文件关联绑定自定义命令对文件的各种操作;
+- 和用XQuartz实验性地支持OS X。
+
+很多新的快捷键添加在此版本中。预编译二进制文件适用于Windows64、Linux,FreeBSD和OS X版本,这些可以直接从[GitHub中的源代码][1]编译。
+
+### 主要特性 ###
+
+- 命令行自动补全 (使用Del键删除一条命令)
+- 文件关联 (主菜单 -> 命令 -> 文件关联)
+- XQuartz上实验性地支持OS X ([https://github.com/corporateshark/WalCommander/issues/5][2])
+
+### 下载 ###
+
+下载:[http://wcm.linderdaum.com/downloads/][3]
+源代码: [https://github.com/corporateshark/WalCommander][4]
+
+
+--------------------------------------------------------------------------------
+
+via: http://wcm.linderdaum.com/release-0-17-0/
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://github.com/corporateshark/WalCommander/releases
+[2]:https://github.com/corporateshark/WalCommander/issues/5
+[3]:http://wcm.linderdaum.com/downloads/
+[4]:https://github.com/corporateshark/WalCommander
\ No newline at end of file
diff --git a/published/201409/How to listen to Internet radio from the command line on Linux.md b/published/201409/How to listen to Internet radio from the command line on Linux.md
new file mode 100644
index 0000000000..25113f2e27
--- /dev/null
+++ b/published/201409/How to listen to Internet radio from the command line on Linux.md
@@ -0,0 +1,139 @@
+如何在Linux命令行下收听网络电台
+========================================================================
+
+对于花大量时间在Linux屏幕前的系统管理员和Linux爱好者来说,网络/本地电台上的音乐可以极大提高生产力,你们知道吗?不管你们相信与否,,在工作环境中有适当的声音,如音乐或者闲聊声包围,都可以提高我们的创造力。如果你喜欢在音乐环境中工作,这个教程也许会对你有用。我将会向你展示**如何在命令行中收听潘多拉(Pandora)在线电台**(LCTT译注:Pandora Internet Radio是一个仅为美国、澳大利亚和新西兰提供自动音乐推荐的系统。详细介绍[Prandoea电台][1])
+
+正如你已经知道的,Pandora是最有名的在线电台服务之一,它包含无数的不同种类的免费音乐流,同时它还有一个强大的音乐推荐引擎。Pandora可以通过不同的方式访问,如:浏览器,桌面客户端或者手机Apps,开源社区还给出了另一种访问Pandora音乐服务的方法:Linux命令行。
+
+[pianobar][2]是一个播放Pandora在线电台音乐的开源命令行音乐播放器。它有一个简单的终端接口,用于播放和管理音乐电台。同时还有其他包括歌曲评价,即将上线音乐列表,播放历史,自定义快捷键绑定,远程控制等功能。对于那些居住在不可访问Pandora音乐服务区域的用户(即美国、澳大利亚和新西兰以外的用户),Pianobar还配置了代理服务的支持。
+
+###在Linux中安装Pianobar###
+
+在Debian或者其他Debian的衍生品中,如Ubuntu或LinuxMint,Pianobar是一个已经编译好的软件包,因此安装Pianobar只是简单的输入如下命令:
+ $ sudo apt-get install pianobar
+
+在Fedora中,Pianobar并不包含在基础的软件库中。因此,你需要通过源代码编译安装Pianobar。整个安装过程会有点麻烦,但是下面的教程将会实现Pianobar在Frdora系统中编译安装。该教程在Fedora20版本中测试通过。
+
+首先,根据[FFmpeg安装教程][3]编译并安装FFmpeg。
+
+然后,[启用RPM Fusion源][4],并安装其他依赖软件:
+
+ $ sudo yum install wget gcc-c++ pkgconfig gnutls-devel json-c-devel libgcrypt-devel make libao-devel faad2-devel libmad-devel libao faad2-libs
+
+编译并安装Pianobar
+
+ $ wget http://6xq.net/projects/pianobar/pianobar-2014.06.08.tar.bz2
+ $ tar xvfvj pianobar-2014.06.08.tar.bz2
+ $ cd pianobar-2014.06.08
+ $ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH make
+ $ sudo make install
+
+最后允许Paniobar加载安装在/usr/local/lib目录下的FFmpeg共享库,在/etc/ld.so.conf配置文件中添加下面一行:
+
+>/usr/local/lib
+
+重载所有的共享库
+
+就这样,Pianobar已经在Fedora系统中安装完成。
+
+###在命令行中收听Pandora音乐###
+
+paniobar的基本用法是输入如下命令:
+
+> $ pianobar
+
+该命令将会要求你登录到Pandora并从你的个性化电台列表中选择要收听的电台。在你选择电台后,音乐就开始自动播放。
+
+
+
+按‘?’按键pianobar会列出一系列可用个命令,其中一些如下:
+
+>- s: 更换电台
+- u: 查看即将上线音乐列表
+- h: 查看播放历史
+- n: 播放下一首
+- b: 收藏歌曲或艺术家
+- ( 或者 ): 减少或增加播放音量
+- S: 暂停播放
+- P: 恢复播放
+- V:为当前收听的歌曲或者艺术家创建一个电台
+- +或者-:查看上一首或者下一首歌曲
+- a:添加音乐到电台
+- q:退出pianobar
+
+
+
+###将Pianobar配置为自动安装###
+
+你可以在一个单独的配置文件中配置Pianobar的各项默认配置。例如:你可以将你的登录信息放到配置文件中,这样你就不用每次都要手动输入。下面是如何创建一个配置文件的示例:
+
+> $ mkdir -p ~/.config/pianobar
+
+----------
+
+> $ vi ~/.config/pianobar/config
+
+----------
+
+> # Example pianobar configuration file
+>
+> # Pandora login info
+ user = your@email_address
+ password = plaintext_password
+>
+> # Users who cannot access Pandora in their region can set a proxy.
+ control_proxy = http://user:password@host:port/
+>
+> # Initial volume in dB: between -30 and +5
+ volume = 0
+>
+> # Audio quality: high, medium or low
+ audio_quality = high
+
+如需了解完整的配置选项,请参阅其man手册页。
+
+ $ man pianobar
+
+###远程控制Pianobar###
+
+Pianobar的另一个优秀特性是支持远程控制,你可以通过命令管道(FIFO)为Pianobar的一个运行实例发送命令。下面是远程控制Pianobar的示例:
+
+首先在目录~/.config/pianobar下创建一个FIFO命令管道
+
+> $ mkfifo ~/.config/pianobar/ctl
+
+然后运行Pianobar
+
+现在,你可以通过使用echo命令发送任何的单字符命令键到Pianobar中,例如:播放下一首歌曲:
+
+> $ echo -n 'n' > ~/.config/pianobar/ctl
+
+你可以很容易的将此配置扩展到远程计算机中,当Pianobar在主机X上运行,你可以从远程主机Y中通过SSH控制Pianobar,如下所示:
+
+在主机Y中,运行:
+
+> $ ssh user@host_X "echo -n 'n' > ~/.config/pianobar/ctl"
+
+当然,你希望为登录到主机X的SSH登录认证[启用秘钥认证][5],这样你就不用每次都输入SSH密码。
+
+当你想在[树莓Pi][6]上设置一个可以远程控制的在线电台播放器时,Pianobar的远程控制特性将会让你非常方便地实现该需求。
+
+希望你和我一样喜欢Pianobar,若有什么想法,请在评论中告诉我。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/listen-to-internet-radio-command-line-linux.html
+
+作者:[Dan Nanni][a]
+译者:[cvsher](https://github.com/cvsher)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://zh.wikipedia.org/wiki/Pandora%E7%94%B5%E5%8F%B0
+[2]:http://6xq.net/projects/pianobar/
+[3]:http://ask.xmodulo.com/compile-ffmpeg-centos-fedora-rhel.html
+[4]:http://xmodulo.com/2013/06/how-to-install-rpm-fusion-on-fedora.html
+[5]:http://xmodulo.com/2012/04/how-to-enable-ssh-login-without.html
+[6]:http://xmodulo.com/go/raspberrypi
diff --git a/published/201409/The Open Source Witch Hunts Have Returned.md b/published/201409/The Open Source Witch Hunts Have Returned.md
new file mode 100644
index 0000000000..a3c4d47878
--- /dev/null
+++ b/published/201409/The Open Source Witch Hunts Have Returned.md
@@ -0,0 +1,62 @@
+开源女巫狩猎归来!
+================================================================================
+
+
+> 开源软件社区已经做出了改变,就像之前的美好时光。
+
+开源已经变的温和了,之前我们有过各种不同的思潮,但是最近我们对分享代码和创新却有种奇怪的迷恋。
+
+幸运的是,这一系列的使用主义注定要结束了。在过去的一段时间里,我们团结在Mozilla身边支持DRM版权保护以及嘲笑Red Hat和OpenStack之间的竞争。开源社区那些年仅有的几个开源软件明星和[Open Core 这种商业模式][1]产生了冲突而被反噬了。
+
+噢,怎么变成这样了!
+
+
+### Red Hat 退回到2003年 ###
+
+Red Hat,开源软件理想主义的典范,在几周前拒绝支持它的竞争对手。Jodi Mardesich[出色的][2]揭露了真相,而Red Hat在努力辩护,这个真相就是:
+
+Red Hat不想支持它的竞争对手,它的OpenStack的竞争对手也不想这样做。
+
+在另外世界上这算是新闻吗?
+
+### Mozilla变成了麻瓜 ###
+
+Red Hat作为开源软件理想主义的典范代表很容易成为各种带颜色攻击的目标,Mozilla其实是更大的一个目标。
+
+Mozilla致力于为用户服务,它最近进行了一场自我牺牲似的CEO 下台,同意加入DRM的技术,即纯Firefox浏览器源码可以使用户观看视频。
+
+人们想看视频,Mozilla倾向于在它的浏览器中观看。
+
+总是找到别人的思想滑坡的问题,开源软件组织[批评了][3] Mozilla,深切表达了自己对于Mozilla的失望,因为这种“为减轻市场份额的流失而妥协重要原则的决定”令人担忧。
+
+但是,Mozilla为什么要做这样的傻事呢,为了用户,你懂的。
+
+抛开道德说教的部分不说,[电子前沿基金会哀叹][4],“开放网络最后的抗争已经失败了”。它对Mozilla投降的做法争论道:“接受DRM会改变这个行业”!DRM的倡导者一再妥协,一个公司又一个公司(PC行业)演变成一个行业,它通过锁定装置,监视器,接受每一个人的管理建立自己的利益关系。
+
+[Mitchell Bake解释道][5],Mozilla可能并没有投降:“Firefox用户会需要使用另外的浏览器来观看他们自己想看的视频,这会让人怀疑Firfox做一一个产品是否真的有用”。
+
+嗯,好吧。
+
+### 回到我们的思想源头 ###
+
+我们或许希望其它人都按照我们的想法来,但事实上他们却有着不同的考虑。免费的软件让步给更加务实的开源软件,认为只有“不二法门”的想法也逐渐消亡了。
+
+这种意识在目前还是有用的,但它并不总是方便和舒服。我崇尚开源软件的实用主义和Apache软件基金会,这样有很大的好处提醒GPL组织在意识形态上的危机感。软件自由真的很重要。
+
+这么多悲观的言论,我自己也感到了恐惧,希望回到一个不断会自我鞭策的免费的开软软件的组织。这使开源软件协作变少而且更难驾驭,但是会变得更有力而且关乎未来。
+
+(译者注:本文来源于一篇国外的杂文,译者和校对在翻译时感觉颇为吃力,因此肯定有大量谬误和不足,敬请大家谅解,或提出指正。虽然这篇文章说的事情已经过去了一段时间了,但是其反映的问题和潜伏的暗流也许影响更为深远。)
+
+--------------------------------------------------------------------------------
+
+via: http://readwrite.com/2014/05/21/open-source-witch-hunt-mozilla-openstack-redhat#feed=/hack&awesm=~oEYDhxfP0Qv5hE
+
+译者:[jiajia9linuxer](https://github.com/jiajia9linuxer) 校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://en.m.wikipedia.org/wiki/Open_core
+[2]:http://readwrite.com/2014/05/16/red-hat-openstack-mirantis-rhel-support
+[3]:http://www.fsf.org/news/fsf-condemns-partnership-between-mozilla-and-adobe-to-support-digital-restrictions-management
+[4]:https://www.eff.org/deeplinks/2014/05/mozilla-and-drm
+[5]:https://blog.mozilla.org/blog/2014/05/14/drm-and-the-challenge-of-serving-users/
diff --git "a/published/201410/20 Useful Commands of \342\200\230Sysstat\342\200\231 Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md" "b/published/201410/20 Useful Commands of \342\200\230Sysstat\342\200\231 Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md"
new file mode 100644
index 0000000000..d5a9708ec6
--- /dev/null
+++ "b/published/201410/20 Useful Commands of \342\200\230Sysstat\342\200\231 Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md"
@@ -0,0 +1,401 @@
+Sysstat性能监控工具包中20个实用命令
+===============================================================
+在我们[上一篇文章][1]中,我们已经学习了如何去安装和更新**sysstat**,并且了解了包中的一些实用工具。
+
+
+
+今天,我们将会通过一些有趣的实例来学习**mpstat**, **pidstat**, **iostat**和**sar**等工具,这些工具可以帮组我们找出系统中的问题。这些工具都包含了不同的选项,这意味着你可以根据不同的工作使用不同的选项,或者根据你的需求来自定义脚本。我们都知道,系统管理员都会有点懒,他们经常去寻找一些更简单的方法来完成他们的工作。
+
+### mpstat - 处理器统计信息 ###
+
+1.不带任何参数的使用mpstat命令将会输出所有CPU的平均统计信息
+
+ tecmint@tecmint ~ $ mpstat
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:23:57 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+ 12:23:57 IST all 37.35 0.01 4.72 2.96 0.00 0.07 0.00 0.00 0.00 54.88
+
+2.使用‘**-p**’ (处理器编号)和‘ALL’参数将会从0开始独立的输出每个CPU的统计信息,0表示第一个cpu。
+
+ tecmint@tecmint ~ $ mpstat -P ALL
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:29:26 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+ 12:29:26 IST all 37.33 0.01 4.57 2.58 0.00 0.07 0.00 0.00 0.00 55.44
+ 12:29:26 IST 0 37.90 0.01 4.96 2.62 0.00 0.03 0.00 0.00 0.00 54.48
+ 12:29:26 IST 1 36.75 0.01 4.19 2.54 0.00 0.11 0.00 0.00 0.00 56.40
+
+3.要进行‘**N**’次,平均每次间隔n秒的输出CPU统计信息,如下所示。
+
+ tecmint@tecmint ~ $ mpstat -P ALL 2 5
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:36:21 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+ 12:36:23 IST all 53.38 0.00 2.26 0.00 0.00 0.00 0.00 0.00 0.00 44.36
+ 12:36:23 IST 0 46.23 0.00 1.51 0.00 0.00 0.00 0.00 0.00 0.00 52.26
+ 12:36:23 IST 1 60.80 0.00 3.02 0.00 0.00 0.00 0.00 0.00 0.00 36.18
+
+ 12:36:23 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+ 12:36:25 IST all 34.18 0.00 2.30 0.00 0.00 0.00 0.00 0.00 0.00 63.52
+ 12:36:25 IST 0 31.63 0.00 1.53 0.00 0.00 0.00 0.00 0.00 0.00 66.84
+ 12:36:25 IST 1 36.73 0.00 2.55 0.00 0.00 0.00 0.00 0.00 0.00 60.71
+
+ 12:36:25 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+ 12:36:27 IST all 33.42 0.00 5.06 0.25 0.00 0.25 0.00 0.00 0.00 61.01
+ 12:36:27 IST 0 34.34 0.00 4.04 0.00 0.00 0.00 0.00 0.00 0.00 61.62
+ 12:36:27 IST 1 32.82 0.00 6.15 0.51 0.00 0.00 0.00 0.00 0.00 60.51
+
+(LCTT译注: 上面命令中‘2’ 表示每2秒执行一次‘mpstat -P ALL’命令, ‘5’表示共执行5次)
+
+4.使用‘**I**’参数将会输出每个处理器的中断统计信息
+
+ tecmint@tecmint ~ $ mpstat -I
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:39:56 IST CPU intr/s
+ 12:39:56 IST all 651.04
+
+ 12:39:56 IST CPU 0/s 1/s 6/s 8/s 9/s 12/s 16/s 17/s 20/s 21/s 22/s 23/s 45/s 46/s 47/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s
+ 12:39:56 IST 0 76.27 1.73 0.00 0.00 0.42 0.33 0.00 0.06 11.46 0.00 0.00 0.01 7.62 1.87 0.05 0.33 182.26 0.00 0.33 3.03 0.00 22.66 0.16 5.14 0.00 0.00 0.00 0.00 0.00 0.00
+ 12:39:56 IST 1 70.88 1.44 0.00 0.00 0.41 0.33 0.00 27.91 10.33 0.00 0.00 0.01 7.27 1.79 0.05 0.32 184.11 0.00 0.32 5.17 0.00 22.09 0.13 4.73 0.00 0.00 0.00 0.00 0.00 0.00
+
+ 12:39:56 IST CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
+ 12:39:56 IST 0 0.00 116.49 0.05 0.27 7.33 0.00 1.22 10.44 0.13 37.47
+ 12:39:56 IST 1 0.00 111.65 0.05 0.41 7.07 0.00 56.36 9.97 0.13 41.38
+
+5.使用‘**A**’参数将会输出上面提到的所有信息,等同于‘**-u -I All -p ALL**’。
+
+ tecmint@tecmint ~ $ mpstat -A
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:41:39 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
+ 12:41:39 IST all 38.70 0.01 4.47 2.01 0.00 0.06 0.00 0.00 0.00 54.76
+ 12:41:39 IST 0 39.15 0.01 4.82 2.05 0.00 0.02 0.00 0.00 0.00 53.95
+ 12:41:39 IST 1 38.24 0.01 4.12 1.98 0.00 0.09 0.00 0.00 0.00 55.57
+
+ 12:41:39 IST CPU intr/s
+ 12:41:39 IST all 651.73
+ 12:41:39 IST 0 173.16
+ 12:41:39 IST 1 225.89
+
+ 12:41:39 IST CPU 0/s 1/s 6/s 8/s 9/s 12/s 16/s 17/s 20/s 21/s 22/s 23/s 45/s 46/s 47/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s
+ 12:41:39 IST 0 76.04 1.77 0.00 0.00 0.41 0.36 0.00 0.06 11.60 0.00 0.00 0.01 7.42 1.83 0.05 0.34 182.89 0.00 0.34 2.97 0.00 22.69 0.16 5.22 0.00 0.00 0.00 0.00 0.00 0.00
+ 12:41:39 IST 1 70.70 1.48 0.00 0.00 0.40 0.36 0.00 27.47 10.46 0.00 0.00 0.01 7.08 1.75 0.05 0.32 184.83 0.00 0.32 5.10 0.00 22.19 0.13 4.91 0.00 0.00 0.00 0.00 0.00 0.00
+
+ 12:41:39 IST CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
+ 12:41:39 IST 0 0.00 116.96 0.05 0.26 7.12 0.00 1.24 10.42 0.12 36.99
+ 12:41:39 IST 1 0.00 112.25 0.05 0.40 6.88 0.00 55.05 9.93 0.13 41.20
+
+###pidstat - 进程和内核线程的统计信息###
+
+该命令是用于监控进程和当前受内核管理的线程。pidstat还可以检查子进程和线程的状态。
+
+#### 语法 ####
+
+ # pidstat [INTERVAL] [COUNT]
+
+6.不带任何参数使用pidstat将会输出所有活跃的任务。
+
+ tecmint@tecmint ~ $ pidstat
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:47:24 IST UID PID %usr %system %guest %CPU CPU Command
+ 12:47:24 IST 0 1 0.01 0.12 0.00 0.13 1 init
+ 12:47:24 IST 0 3 0.00 0.01 0.00 0.01 0 ksoftirqd/0
+ 12:47:24 IST 0 9 0.00 0.04 0.00 0.04 0 rcu_sched
+ 12:47:24 IST 0 10 0.00 0.00 0.00 0.00 0 watchdog/0
+ 12:47:24 IST 0 11 0.00 0.00 0.00 0.00 1 watchdog/1
+ 12:47:24 IST 0 12 0.00 0.00 0.00 0.00 1 migration/1
+ 12:47:24 IST 0 13 0.00 0.01 0.00 0.01 1 ksoftirqd/1
+ 12:47:24 IST 0 23 0.00 0.00 0.00 0.00 0 kworker/u9:0
+ 12:47:24 IST 0 29 0.00 0.61 0.00 0.61 0 kworker/0:1
+ 12:47:24 IST 0 30 0.00 0.06 0.00 0.06 1 kworker/1:1
+ 12:47:24 IST 0 224 0.00 0.01 0.00 0.01 1 jbd2/sda1-8
+ 12:47:24 IST 0 360 0.00 0.00 0.00 0.00 1 upstart-udev-br
+ 12:47:24 IST 0 365 0.01 0.00 0.00 0.01 0 systemd-udevd
+ 12:47:24 IST 0 476 0.00 0.00 0.00 0.00 0 kworker/u9:1
+
+7.使用‘**-p**’(进程)参数输出所有活跃和非活跃的任务。
+
+ tecmint@tecmint ~ $ pidstat -p ALL
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 12:51:55 IST UID PID %usr %system %guest %CPU CPU Command
+ 12:51:55 IST 0 1 0.01 0.11 0.00 0.12 1 init
+ 12:51:55 IST 0 2 0.00 0.00 0.00 0.00 0 kthreadd
+ 12:51:55 IST 0 3 0.00 0.01 0.00 0.01 0 ksoftirqd/0
+ 12:51:55 IST 0 5 0.00 0.00 0.00 0.00 0 kworker/0:0H
+ 12:51:55 IST 0 7 0.00 0.00 0.00 0.00 0 migration/0
+ 12:51:55 IST 0 8 0.00 0.00 0.00 0.00 0 rcu_bh
+ 12:51:55 IST 0 9 0.00 0.04 0.00 0.04 1 rcu_sched
+ 12:51:55 IST 0 10 0.00 0.00 0.00 0.00 0 watchdog/0
+ 12:51:55 IST 0 11 0.00 0.00 0.00 0.00 1 watchdog/1
+ 12:51:55 IST 0 12 0.00 0.00 0.00 0.00 1 migration/1
+ 12:51:55 IST 0 13 0.00 0.01 0.00 0.01 1 ksoftirqd/1
+ 12:51:55 IST 0 15 0.00 0.00 0.00 0.00 1 kworker/1:0H
+ 12:51:55 IST 0 16 0.00 0.00 0.00 0.00 1 khelper
+ 12:51:55 IST 0 17 0.00 0.00 0.00 0.00 0 kdevtmpfs
+ 12:51:55 IST 0 18 0.00 0.00 0.00 0.00 0 netns
+ 12:51:55 IST 0 19 0.00 0.00 0.00 0.00 0 writeback
+ 12:51:55 IST 0 20 0.00 0.00 0.00 0.00 1 kintegrityd
+
+8.使用‘**-d 2**’参数,我们可以看到I/O统计信息,2表示以秒为单位对统计信息进行刷新。这个参数可以方便的知道当系统在进行繁重的I/O时,那些进行占用大量的资源的进程。
+
+ tecmint@tecmint ~ $ pidstat -d 2
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 03:26:53 EDT PID kB_rd/s kB_wr/s kB_ccwr/s Command
+
+ 03:26:55 EDT PID kB_rd/s kB_wr/s kB_ccwr/s Command
+ 03:26:57 EDT 574 0.00 148.00 2.00 miniserv.pl
+
+ 03:27:01 EDT PID kB_rd/s kB_wr/s kB_ccwr/s Command
+ 03:27:03 EDT 1 0.00 8.00 2.00 init
+ 03:27:03 EDT 450 0.00 2.00 0.00 rsyslogd
+ 03:27:03 EDT 534 138.00 10.00 4.00 crond
+ 03:27:03 EDT 25100 0.00 6.00 0.00 sendmail
+ 03:27:03 EDT 30829 0.00 6.00 0.00 java
+
+9.想要每间隔**2**秒对进程**4164**的cpu统计信息输出**3**次,则使用如下带参数‘**-t**’(输出某个选定进程的统计信息)的命令。
+
+ tecmint@tecmint ~ $ pidstat -t -p 4164 2 3
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 01:09:06 IST UID TGID TID %usr %system %guest %CPU CPU Command
+ 01:09:08 IST 1000 4164 - 22.00 1.00 0.00 23.00 1 firefox
+ 01:09:08 IST 1000 - 4164 20.00 0.50 0.00 20.50 1 |__firefox
+ 01:09:08 IST 1000 - 4171 0.00 0.00 0.00 0.00 0 |__Gecko_IOThread
+ 01:09:08 IST 1000 - 4172 0.00 0.00 0.00 0.00 0 |__Socket
+ 01:09:08 IST 1000 - 4173 0.00 0.00 0.00 0.00 0 |__JS
+ 01:09:08 IST 1000 - 4174 0.00 0.00 0.00 0.00 0 |__JS
+ 01:09:08 IST 1000 - 4175 0.00 0.00 0.00 0.00 0 |__Hang
+ 01:09:08 IST 1000 - 4176 0.00 0.00 0.00 0.00 1 |__gdbus
+ 01:09:08 IST 1000 - 4177 0.00 0.00 0.00 0.00 1 |__gmain
+
+10.使用‘**-rh**’参数,将会输出进程的内存使用情况。如下命令每隔2秒刷新经常的内存使用情况。
+
+ tecmint@tecmint ~ $ pidstat -rh 2 3
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ # Time UID PID minflt/s majflt/s VSZ RSS %MEM Command
+ 1409816695 1000 3958 3378.22 0.00 707420 215972 5.32 cinnamon
+ 1409816695 1000 4164 406.93 0.00 1252024 461404 11.36 firefox
+ 1409816695 1000 6676 168.81 0.00 4436 984 0.02 pidstat
+
+ # Time UID PID minflt/s majflt/s VSZ RSS %MEM Command
+ 1409816697 0 1601 644.00 0.00 506728 316788 7.80 Xorg
+ 1409816697 1000 3958 3412.00 0.00 707420 215972 5.32 cinnamon
+ 1409816697 1000 4164 2667.00 0.00 1259576 471724 11.62 firefox
+ 1409816697 1000 6676 172.50 0.00 4436 1020 0.03 pidstat
+
+ # Time UID PID minflt/s majflt/s VSZ RSS %MEM Command
+ 1409816699 0 1601 644.00 0.00 506728 316788 7.80 Xorg
+ 1409816699 1000 3958 4094.00 0.00 710148 218700 5.39 cinnamon
+ 1409816699 1000 4164 599.00 0.00 1261944 476664 11.74 firefox
+ 1409816699 1000 6676 168.00 0.00 4436 1020 0.03 pidstat
+
+11.要使用‘**-G**’参数可以输出包含某个特定字符串的进程信息。如下命令输出所有包含‘**VB**’字符串的进程的统计信息,使用‘**-t**’参数将线程的信息也进行输出。
+
+ tecmint@tecmint ~ $ pidstat -G VB
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 01:09:06 IST UID PID %usr %system %guest %CPU CPU Command
+ 01:09:08 IST 1000 1492 22.00 1.00 0.00 23.00 1 VBoxService
+ 01:09:08 IST 1000 1902 4164 20.00 0.50 0.00 20.50 VBoxClient
+ 01:09:08 IST 1000 1922 4171 0.00 0.00 0.00 0.00 VBoxClient
+
+----------
+
+ tecmint@tecmint ~ $ pidstat -t -G VB
+ Linux 2.6.32-431.el6.i686 (tecmint) 09/04/2014 _i686_ (2 CPU)
+
+ 03:19:52 PM UID TGID TID %usr %system %guest %CPU CPU Command
+ 03:19:52 PM 0 1479 - 0.01 0.12 0.00 0.13 1 VBoxService
+ 03:19:52 PM 0 - 1482 0.00 0.00 0.00 0.00 0 |__timesync
+ 03:19:52 PM 0 - 1483 0.01 0.06 0.00 0.06 0 |__vminfo
+ 03:19:52 PM 0 - 1485 0.00 0.01 0.00 0.01 1 |__memballoon
+ 03:19:52 PM 0 - 1486 0.00 0.01 0.00 0.01 1 |__vmstats
+ 03:19:52 PM 0 - 1487 0.00 0.05 0.00 0.05 0 |__automount
+ 03:19:52 PM 0 1913 - 0.00 0.00 0.00 0.00 0 VBoxClient
+ 03:19:52 PM 0 - 1913 0.00 0.00 0.00 0.00 0 |__VBoxClient
+ 03:19:52 PM 0 - 1942 0.00 0.00 0.00 0.00 0 |__SHCLIP
+ 03:19:52 PM 0 1933 - 0.04 0.89 0.00 0.93 0 VBoxClient
+ 03:19:52 PM 0 - 1936 0.04 0.89 0.00 0.93 1 |__X11-NOTIFY
+
+12.使用‘**-R**’参数输出实时的进程优先级和调度信息。
+
+ tecmint@tecmint ~ $ pidstat -R
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 01:09:06 IST UID PID prio policy Command
+ 01:09:08 IST 1000 3 99 FIFO migration/0
+ 01:09:08 IST 1000 5 99 FIFO migration/0
+ 01:09:08 IST 1000 6 99 FIFO watchdog/0
+
+因为我们已经学习过iostat命令了,因此在本文中不在对其进行赘述。若想查看iostat命令的详细信息,请参看“[使用Iostat和Vmstat进行Linux性能监控][2]”
+
+###sar - 系统活动报告###
+
+我们可以使用‘**sar**’命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈,并且有助于我们找出这些烦人的性能问题的解决方法。
+
+Linux内核维护着一些内部计数器,这些计数器包含了所有的请求及其完成时间和I/O块数等信息,sar命令从所有的这些信息中计算出请求的利用率和比例,以便找出瓶颈所在。
+
+sar命令主要的用途是生成某段时间内所有活动的报告,因此,必需确保sar命令在适当的时间进行数据采集(而不是在午餐时间或者周末。)
+
+13.下面是执行sar命令的基本用法。它将会在当前目录下创建一个名为‘**sarfile**’的文件。‘**-u**’参数表示CPU详细信息,**5**表示生产5次报告,**2**表示每次报告的时间间隔为2秒。
+
+ tecmint@tecmint ~ $ sar -u -o sarfile 2 5
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 01:42:28 IST CPU %user %nice %system %iowait %steal %idle
+ 01:42:30 IST all 36.52 0.00 3.02 0.00 0.00 60.45
+ 01:42:32 IST all 43.32 0.00 5.04 0.00 0.00 51.64
+ 01:42:34 IST all 56.46 0.00 4.05 0.00 0.00 39.49
+ 01:42:36 IST all 44.44 0.00 3.79 0.00 0.00 51.77
+ 01:42:38 IST all 50.75 0.00 3.75 0.00 0.00 45.50
+ Average: all 46.30 0.00 3.93 0.00 0.00 49.77
+
+14.在上面的例子中,我们交互的执行sar命令。sar命令也提供了使用cron进行非交互的执行sar命令的方法,使用**/usr/local/lib/sa1**和**/usr/local/lib/sa2**脚本(如果你在安装时使用了**/usr/local**作为前缀的话)
+
+- **/usr/local/lib/sa1**是一个可以使用cron进行调度生成二进制日志文件的shell脚本。
+- **/usr/local/lib/sa2**是一个可以将二进制日志文件转换为用户可读的编码方式。
+
+使用如下Cron项目来将sar命令非交互化。
+
+ # 每10分钟运行sa1脚本来采集数据
+ */2 * * * * /usr/local/lib/sa/sa1 2 10
+
+ #在每天23:53时生成一个用户可读的日常报告
+ 53 23 * * * /usr/local/lib/sa/sa2 -A
+
+在sa1脚本的后端,sa1脚本会调用**sabc**(系统活动数据收集器,System Activity Data Collector)工具采集特定时间间隔内的数据。**sa2**脚本会调用sar来将二进制日志文件转换为用户可读的形式。
+
+15.使用‘**-q**’参数来检查运行队列的长度,所有进程的数量和平均负载
+
+ tecmint@tecmint ~ $ sar -q 2 5
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 02:00:44 IST runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
+ 02:00:46 IST 1 431 1.67 1.22 0.97 0
+ 02:00:48 IST 4 431 1.70 1.23 0.97 0
+ 02:00:50 IST 2 431 1.70 1.23 0.97 0
+ 02:00:52 IST 2 431 1.70 1.23 0.97 0
+ 02:00:54 IST 0 431 1.64 1.23 0.97 0
+ Average: 2 431 1.68 1.23 0.97 0
+
+16.使用‘**-F**’参数查看当前挂载的文件系统的使用统计信息
+
+ tecmint@tecmint ~ $ sar -F 2 4
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 02:02:31 IST MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
+ 02:02:33 IST 1001 449 30.95 1213790475088.85 18919505 364463 1.89 /dev/sda1
+
+ 02:02:33 IST MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
+ 02:02:35 IST 1001 449 30.95 1213790475088.85 18919505 364463 1.89 /dev/sda1
+
+ 02:02:35 IST MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
+ 02:02:37 IST 1001 449 30.95 1213790475088.85 18919505 364463 1.89 /dev/sda1
+
+ 02:02:37 IST MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
+ 02:02:39 IST 1001 449 30.95 1213790475088.86 18919505 364463 1.89 /dev/sda1
+
+ Summary MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
+ Summary 1001 449 30.95 1213790475088.86 18919505 364463 1.89 /dev/sda1
+
+17.使用‘**-n DEV**’参数查看网络统计信息
+
+ tecmint@tecmint ~ $ sar -n DEV 1 3 | egrep -v lo
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 02:11:59 IST IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
+ 02:12:00 IST wlan0 8.00 10.00 1.23 0.92 0.00 0.00 0.00
+ 02:12:00 IST vmnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00
+ 02:12:00 IST eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
+ 02:12:00 IST vmnet1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
+
+18.使用‘**-d**’参数查看块设备统计信息(与iostat类似)。
+
+ tecmint@tecmint ~ $ sar -d 1 3
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 02:13:17 IST DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
+ 02:13:18 IST dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
+
+ 02:13:18 IST DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
+ 02:13:19 IST dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
+
+ 02:13:19 IST DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
+ 02:13:20 IST dev8-0 7.00 32.00 80.00 16.00 0.11 15.43 15.43 10.80
+
+19.使用‘**-r**’参数输出内存统计信息。
+
+ tecmint@tecmint ~ $ sar -r 1 3
+
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+
+ 02:14:29 IST kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
+ 02:14:30 IST 1465660 2594840 63.90 133052 1549644 3710800 45.35 1133148 1359792 392
+ 02:14:31 IST 1472724 2587776 63.73 133060 1549792 3715504 45.40 1125816 1360000 836
+ 02:14:32 IST 1469112 2591388 63.82 133060 1550036 3705288 45.28 1130252 1360168 804
+ Average: 1469165 2591335 63.82 133057 1549824 3710531 45.34 1129739 1359987 677
+
+20.使用‘**sadf -d**’参数可以将数据导出为数据库可以使用的格式。
+
+ tecmint@tecmint ~ $ safd -d /var/log/sa/sa20140903 -- -n DEV | grep -v lo
+
+ # hostname;interval;timestamp;IFACE;rxpck/s;txpck/s;rxkB/s;txkB/s;rxcmp/s;txcmp/s;rxmcst/s;%ifutil
+ tecmint;2;2014-09-03 07:53:29 UTC;eth0;1.50;0.00;0.13;0.00;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 07:53:31 UTC;eth0;2.00;0.00;0.18;0.00;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 07:53:33 UTC;eth0;1.00;0.00;0.09;0.00;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 07:53:35 UTC;eth0;2.00;0.00;0.18;0.00;0.00;0.00;0.00;0.00
+ tecmint;14778;2014-09-03 11:59:54 UTC;eth0;1.78;1.17;1.10;0.18;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 11:59:56 UTC;eth0;3.50;3.00;0.60;0.77;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 11:59:58 UTC;eth0;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:00 UTC;eth0;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:02 UTC;eth0;0.50;0.50;0.48;0.03;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:04 UTC;eth0;2.50;3.50;0.21;2.05;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:06 UTC;eth0;1.49;1.00;0.62;0.06;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:08 UTC;eth0;0.50;0.00;0.03;0.00;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:10 UTC;eth0;0.50;0.50;0.03;0.04;0.00;0.00;0.00;0.00
+ tecmint;2;2014-09-03 12:00:12 UTC;eth0;1.00;0.50;0.12;0.04;0.00;0.00;0.00;0.00
+
+你也可以将这些数据存储在一个csv文档中,然后绘制成图表展示方式,如下所示
+
+
+
+*网络信息图表*
+
+现在,你可以参考man手册来后去每个参数的更多详细信息,并且请在文章下留下你宝贵的评论。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/sysstat-commands-to-monitor-linux/
+
+作者:[Kuldeep Sharma][a]
+译者:[cvsher](https://github.com/cvsher)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/kuldeepsharma47/
+[1]:http://linux.cn/article-4025-1.html
+[2]:http://linux.cn/article-4024-1.html
diff --git a/published/201410/20140711 How to use systemd for system administration on Debian.md b/published/201410/20140711 How to use systemd for system administration on Debian.md
new file mode 100644
index 0000000000..6dab8f50d0
--- /dev/null
+++ b/published/201410/20140711 How to use systemd for system administration on Debian.md
@@ -0,0 +1,106 @@
+在 Debian 上使用 systemd 管理系统
+================================================================================
+人类已经无法阻止 systemd 占领全世界的 Linux 系统了,唯一阻止它的方法是在你自己的机器上手动卸载它。到目前为止,systemd 已经创建了比任何软件都多的技术问题、感情问题和社会问题。这一点从[“Linux 初始化软件之战”][1]上就能看出,这场争论在 Debian 开发者之间持续了好几个月。当 Debian 技术委员会最终决定将 systemd 放到 Debian 8(代号 Jessie)的发行版里面时,其反对者试图通过多种努力来[取代这项决议][2],甚至有人扬言要威胁那些支持 systemd 的开发者的生命安全。
+
+这也说明了 systemd 对 Unix 传承下来的系统处理方式有很大的干扰。“一个软件只做一件事情”的哲学思想已经被这个新来者彻底颠覆。除了取代了 sysvinit 成为新的系统初始化工具外,systemd 还是一个系统管理工具。目前为止,由于 systemd-sysv 这个软件包提供的兼容性,那些我们使用惯了的工具还能继续工作。但是当 Debian 将 systemd 升级到214版本后,这种兼容性就不复存在了。升级措施预计会在 Debian 8 "Jessie" 的稳定分支上进行。从此以后用户必须使用新的命令来管理系统、执行任务、变换运行级别、查询系统日志等等。不过这里有一个应对方案,那就是在 .bashrc 文件里面添加一些别名。
+
+现在就让我们来看看 systemd 是怎么改变你管理系统的习惯的。在使用 systemd 之前,你得先把 sysvinit 保存起来,以便在 systemd 出错的时候还能用 sysvinit 启动系统。这种方法**只有在没安装 systemd-sysv 的情况下才能生效**,具体操作方法如下:
+
+ # cp -av /sbin/init /sbin/init.sysvinit
+
+在紧急情况下,可以把下面的文本:
+
+ init=/sbin/init.sysvinit
+
+添加到内核启动参数项那里。
+
+### systemctl 的基本用法 ###
+
+systemctl 的功能是替代“/etc/init.d/foo start/stop”这类命令,另外,其实它还能做其他的事情,这点你可以参考 man 文档。
+
+一些基本用法:
+
+- systemctl - 列出所有单元(UNIT)以及它们的状态(这里的 UNIT 指的就是系统上的 job 和 service)
+- systemctl list-units - 列出所有 UNIT
+- systemctl start [NAME...] - 启动一项或多项 UNIT
+- systemctl stop [NAME...] - 停止一项或多项 UNIT
+- systemctl disable [NAME...] - 将 UNIT 设置为开机不启动
+- systemctl list-unit-files - 列出所有已安装的 UNIT,以及它们的状态
+- systemctl --failed - 列出开机启动失败的 UNIT
+- systemctl --type=mount - 列出某种类型的 UNIT,类型包含:service, mount, device, socket, target
+- systemctl enable debug-shell.service - 将一个 shell 脚本设置为开机启动,用于调试
+
+为了更方便处理这些 UNIT,你可以使用 systemd-ui 软件包,你只要输入 systemadm 命令就可以使用这个软件。
+
+你同样可以使用 systemctl 实现转换运行级别、重启系统和关闭系统的功能:
+
+- systemctl isolate graphical.target - 切换到运行级别5,就是有桌面的运行级别
+- systemctl isolate multi-user.target - 切换到运行级别3,没有桌面的运行级别
+- systemctl reboot - 重启系统
+- systemctl poweroff - 关机
+
+所有命令,包括切换到其他运行级别的命令,都可以在普通用户的权限下执行。
+
+### journalctl 的基本用法 ###
+
+systemd 不仅提供了比 sysvinit 更快的启动速度,还让日志系统在更早的时候启动起来,可以记录内核初始化阶段、内存初始化阶段、前期启动步骤以及主要的系统执行过程的日志。所以,**以前那种需要通过对显示屏拍照或者暂停系统来调试程序的日子已经一去不复返啦**。
+
+systemd 的日志文件都被放在 /var/log 目录。如果你想使用它的日志功能,需要执行一些命令,因为 Debian 没有打开日志功能。命令如下:
+
+ # addgroup --system systemd-journal
+ # mkdir -p /var/log/journal
+ # chown root:systemd-journal /var/log/journal
+ # gpasswd -a $user systemd-journal
+
+通过上面的设置,你就可以以普通用户权限使用 journal 软件查看日志。使用 journalctl 查询日志可以获得一些比 syslog 软件更方便的玩法:
+
+- journalctl --all - 显示系统上所有日志,以及它的用户
+- journalctl -f - 监视系统日志的变化(类似 tail -f /var/log/messages 的效果)
+- journalctl -b - 显示系统启动以后的日志
+- journalctl -k -b -1 - 显示上一次(-b -1)系统启动前产生的内核日志
+- journalctl -b -p err - 显示系统启动后产生的“ERROR”日志
+- journalctl --since=yesterday - 当系统不会经常重启的时候,这条命令能提供比 -b 更短的日志记录
+- journalctl -u cron.service --since='2014-07-06 07:00' --until='2014-07-06 08:23' - 显示 cron 服务在某个时间段内打印出来的日志
+- journalctl -p 2 --since=today - 显示优先级别为2以内的日志,包含 emerg、alert、crit三个级别。所有日志级别有: emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), debug (7)
+- journalctl > yourlog.log - 将二进制日志文件复制成文本文件并保存到当前目录
+
+Journal 和 syslog 可以很好的共存。而另一方面,一旦你习惯了操作 journal,你也可以卸载掉所有 syslog 的软件,比如 rsyslog 或 syslog-ng。
+
+如果想要得到更详细的日志信息,你可以在内核启动参数上添加“systemd.log_level=debug”,然后运行下面的命令:
+
+ # journalctl -alb
+
+你也可以编辑 /etc/systemd/system.conf 文件来修改日志级别。
+
+### 利用 systemd 分析系统启动过程 ###
+
+systemd 可以让你能更有效地分析和优化你的系统启动过程:
+
+- systemd-analyze - 显示本次启动系统过程中用户态和内核态所花的时间
+- systemd-analyze blame - 显示每个启动项所花费的时间明细
+- systemd-analyze critical-chain - 按时间顺序打印 UNIT 树
+- systemd-analyze dot | dot -Tsvg > systemd.svg - 为开机启动过程生成向量图(需要安装 graphviz 软件包)
+- systemd-analyze plot > bootplot.svg - 产生开机启动过程的时间图表
+
+
+
+
+
+systemd 虽然是个年轻的项目,但已有大量文档。首先要介绍给你的是[Lennart Poettering 的 0pointer 系列][3]。这个系列非常详细,非常有技术含量。另外一个是[免费桌面信息文档][4],它包含了最详细的关于 systemd 的链接:发行版特性文件、bug 跟踪系统和说明文档。你可以使用下面的命令来查询 systemd 都提供了哪些文档:
+
+ # man systemd.index
+
+不同发行版之间的 systemd 提供的命令基本一样,最大的不同之处就是打包方式。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/07/use-systemd-system-administration-debian.html
+
+译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://lists.debian.org/debian-devel/2013/10/msg00444.html
+[2]:https://lists.debian.org/debian-devel/2014/02/msg00316.html
+[3]:http://0pointer.de/blog/projects/systemd.html
+[4]:http://www.freedesktop.org/wiki/Software/systemd/
diff --git a/published/201410/20140724 Camicri Cube--An Offline And Portable Package Management System.md b/published/201410/20140724 Camicri Cube--An Offline And Portable Package Management System.md
new file mode 100644
index 0000000000..80a98b928e
--- /dev/null
+++ b/published/201410/20140724 Camicri Cube--An Offline And Portable Package Management System.md
@@ -0,0 +1,168 @@
+Camicri Cube: 可离线的便携包管理系统
+================================================================================
+
+
+众所周知,在系统中使用新立得包管理工具或软件中心下载和安装应用程序的时候,我们必须得有互联网连接。但,如果您刚好没有网络或者是网络速度死慢死慢的呢?在您的 Linux 桌面系统中使用软件中心包管理工具来安装软件绝对是一个头痛的问题。反而,您可以从相应的官网上手工下载应用程序包并手工安装。但是,大多数的 Linux 用户并不知道他们希望安装的应用程序所需要的依赖关系包。如果您恰巧出现这种情况,应用怎么办呢?现在一切都不用担心了。今天,我们给您介绍一款非常棒的名叫 **Camicri Cube** 的离线包管理工具。
+
+您可以把此包管理工具装在任何联网的系统上,下载您所需要安装的软件列表,然后把它们安装到没联网的机器上,就可以安装了。听起来很不错吧?是的,它就是这样操作的。Cube 是一款像新立得和 Ubuntu 软件中心这样的包管理工具,但是一款便携式的。它在任何平台(Windows 系统、基于 Apt 的 Linux 发布系统)、在线状态、离线状态、在闪存或任何可移动设备上都是可以使用和运行的。我们这个实验项目的主要目的是使处在离线状态的 Linux 用户能很容易的下载和安装 Linux 应用程序。
+
+Cube 会收集您的离线电脑的详细信息,如操作系统的详细信息、安装的应用程序等等。然后使用 USB 迷你盘对 cube 应用程序进行拷贝,得到一副本,把其放在其它有网络连接的系统上使用,接着就可以下载您需要的应用程序列表。下载完所有需要的软件包之后,回到您原来的计算机,并开始安装。Cube 是由 **Jake Capangpangan** 开发和维护的,是用 C++ 语言编写,而且已经集成了所有必须的包。因此,使用它并不需要再安装任何额外的软件。
+
+### 安装 ###
+
+现在,让我们下载 Cube 程序包,然后在没有网络连接的离线系统上进行安装。既可以从[官网主站页面][1]下载,也可以从 [Sourceforge 网站][2]下载。要确保下载的版本跟您的离线计算机架构对应的系统相匹配。比如我使用的是64位的系统,就要下载64位版本的安装包。
+
+ wget http://sourceforge.net/projects/camicricube/files/Camicri%20Cube%201.0.9/cube-1.0.9.2_64bit.zip/
+
+对此 zip 文件解压,解压到 home 目录或者着是您想放的任何地方:
+
+ unzip cube-1.0.9.2_64bit.zip
+
+这就好了。接着,该是知道怎么使用的时候了。
+
+### 使用 ###
+
+这儿,我使用的是两台装有 Ubuntu 系统的机器。原机器(离线-没有网络连接)上面跑着的是 **Ubuntu 14.04** 系统,有网络连接的机器跑着的是 **Lubuntu 14.04** 桌面系统。
+
+#### 离线系统上的操作步骤: ####
+
+在离线系统上,进入已经解压的 Cube 文件目录,您会发现一个名叫 “cube-linux” 的可执行文件,双击它,并点击执行。如果它是不可执行的,用如下命令设置其可执行权限。
+
+ sudo chmod -R +x cube/
+
+然后,进入 cube 目录,
+
+ cd cube/
+
+接着执行如下命令来运行:
+
+ ./cube-linux
+
+输入项目的名称(比如sk)然后点击**创建**按纽。正如我上面提到的,这将会创建一个与您的系统相关的完整详细信息的新项目,如操作系统的详细信息、安装的应用程序列表、库等等。
+
+
+
+如您所知,我们的系统是离线的,意思是没有网络连接。所以我点击**取消**按纽来跳过资源库的更新过程。随后我们会在一台有网络连接的系统上更新此资源库。
+
+
+
+再一次,在这台离线机器上我们点击 **No** 来跳过更新,因为我们没有网络连接。
+
+
+
+就是这样。现在新的项目已经创建好了,它会保存在我们的主 cube 目录里面。进入 Cube 目录,您就会发现一个名叫 Projects 的目录。这个目录会保存有您的离线系统的必要完整详细信息。
+
+
+
+
+
+现在,关闭 cube 应用程序,然后拷贝整个主 **cube** 文件夹到任何的闪存盘里,接入有网络连接的系统。
+
+#### 在线系统上操作步骤: ####
+
+往下的操作步骤需要在有网络连接的系统上进行。在我们的例子中,用的是 **Lubuntu 14.04** 系统的机器。
+
+跟在源机器上的操作一样设置使 cube 目录具有可执行权限。
+
+ sudo chmod -R +x cube/
+
+现在,双击 cube-linux 文件运行应用程序或者也可以在终端上加载运行,如下所示:
+
+ cd cube/
+ ./cube-linux
+
+在窗口的 “Open Existing Projects” 部分会看到您的项目列表,选择您需要的项目。
+
+
+
+随后,cube 会询问这是否是您的项目所在的源机器。它并不是我的源(离线)机器,所以我点击 **No**。
+
+
+
+接着会询问是否想要更新您的资源库。点击 **OK** 来更新资料库。
+
+
+
+下一步,我们得更新所有过期的包/应用程序。点击 Cube 工具栏上的 “**Mark All updates**” 按纽。然后点击 “**Download all marked**” 按纽来更新所有过期的包/应用程序。如下截图所示,在我的例子当中,有302个包需要更新。这时,点击 **OK** 来继续下载所标记的安装包。
+
+
+
+现在,Cube 会开始下载所有已标记的包。
+
+
+
+我们已经完成了对资料库和安装包的更新。此时,如果您在离线系统上还需要其它的安装包,您也可以下载这些新的安装包。
+
+#### 下载新的应用程序 ####
+
+例如,现在我想下载 **apache2** 包。在**搜索**框里输入包的名字,点击搜索按纽。Cube 程序会获取您想查找的应用程序的详细信息。点击 “**Download this package now**”按纽,接着点击 **OK** 就开始下载了。
+
+
+
+Cube 将会下载 apache2 的安装包及所有的依赖包。
+
+
+
+如果您想查找和下载更多安装包的话,只要简单的点击 “**Mark this package**” 按纽就可以搜索到需要的包了。只要您想在源机器上安装的包都可以标记上。一旦标记完所有的包,就可以点击位于顶部工具栏的 “**Download all marked**” 按纽来下载它们。
+
+在完成资源库、过期软件包的更新和下载好新的应用程序后,就可以关闭 Cube 应用程序。然后,拷贝整个 Cube 文件夹到任何的闪盘或者外接硬盘。回到您的离线系统中来。
+
+#### 离线机器上的操作步骤: ####
+
+把 Cube 文件夹拷回您的离线系统的任意位置。进入 cube 目录,并且双击 **cube-linux** 文件来加载启动 Cube 应用程序。
+
+或者,您也可以从终端下启动它,如下所示:
+
+ cd cube/
+ ./cube-linux
+
+选择您的项目,点击打开。
+
+
+
+然后会弹出一个对话框询问是否更新系统,尤其是已经下载好新的资源库的时候,请点击“是”。因为它会把所有的资源库传输到您的机器上。
+
+
+
+您会看到,在没有网络连接的情况下这些资源库会更新到您的离线机器上。那是因为我们已经在有网络连接的系统上下载更新了此资源库。看起来很酷,不是吗?
+
+更新完资源库后,让我们来安装所有的下载包。点击 “Mark all Downloaded” 按纽选中所有的下载包,然后点击 Cube 工具栏上的 “Install All Marked” 按纽来安装它们。Cube 应用程序会自动打开一个新的终端窗口来安装所有的软件包。
+
+
+
+如果遇到依赖的问题,进入 **Cube Menu -> Packages -> Install packages with complete dependencies** 来安装所有的依赖包。
+
+如果您只想安装特定的包,定位到列表包位置,点击 “Downloaded” 按纽,所有的已下载包都会被列出来。
+
+
+
+然后双击某个特定的包,点击 “Install this”按纽来安装或者如果想过后再安装它的话可以先点击 “Mark this” 按纽。
+
+
+
+顺便提一句,您可以在任意已经连接网络的系统上下载所需要的包,然后在没有网络连接的离线系统上安装。
+
+### 结论 ###
+
+这是我曾经使用过的最好、最有用的软件工具之一。但我在用 Ubuntu 14.04 测试盒子测试的时候,遇到了很多依赖问题,还经常会出现闪退的情况。也仅仅是在最新 Ubuntu 14.04 离线系统上使用没有遇到任何问题。希望这些问题在老版本的 Ubuntu 上不会发生。除了这些小问题,这个小工具就如同宣传的一样,像魔法一样神奇。
+
+欢呼吧!
+
+
+原文作者:
+
+
+
+[SK][a](Senthilkumar,又名SK,来自于印度的泰米尔纳德邦,Linux 爱好者,FOSS 论坛支持者和 Linux 板块顾问。一个充满激情和活力的人,致力于提供高质量的 IT 专业文章,非常喜欢写作以及探索 Linux、开源、电脑和互联网等新事物。)
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/camicri-cube-offline-portable-package-management-system/
+
+译者:[runningwater](https://github.com/runningwater) 校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/sk/
+[1]:https://launchpad.net/camicricube
+[2]:http://sourceforge.net/projects/camicricube/
diff --git a/published/201410/20140724 What are useful online tools for Linux.md b/published/201410/20140724 What are useful online tools for Linux.md
new file mode 100644
index 0000000000..cfeadfc3b8
--- /dev/null
+++ b/published/201410/20140724 What are useful online tools for Linux.md
@@ -0,0 +1,150 @@
+16个 Linux 方面的在线工具类网站
+================================================================================
+众所周知,GNU Linux不仅仅只是一款操作系统。看起来通过互联网全球许多人都在致力于这款以企鹅为吉祥物的操作系统。如果你读到这篇文章,你可能希望读一些关于Linux在线资源的内容。在可以找到的所有关于这个主题的网页中,有一些网站是每个Linux爱好者都应该收藏起来的。这些网站不仅仅只是教程或回顾,更是可以随时随地访问并与他人共享的实用工具。所以,今天我会建议一份包含16个应该收藏的网址清单。它们中的一些对Windows或Mac用户同样有用:这是在他们的能力范围内可以做到的。(译者注:Windows和Mac一样可以很好地体验Linux)
+
+### 1. [ExplainShell.com][1] ###
+
+[][2]
+
+如果你对Linux命令行感兴趣,那就试试这个网站。如果你对Linux命令行不感兴趣,那就更应该试试它,因为它会详尽地告诉你一个命令是如何工作的。这会防止你无意执行一个对电脑有害的命令,而且通过一个非常赞的界面来学习是一个好方法。
+
+### 2. [BashrcGenerator.com][3] ###
+
+[][4]
+
+如果你想开始学习Linux命令行,或者想快速地生成一个自定义的shell命令提示符,但不知道从何下手,这个网站可以为你生成PS1提示的代码,将代码放到家目录下的.bashrc文件中即可。你可以拖拽任何你想在提示符里看到的元素,譬如用户名和当前时间,这个网站都会为你编写易懂可读的代码。绝对是懒人必备!
+
+### 3. [Vim-adventures.com][5] ###
+
+[][6]
+
+我是最近才发现这个网站的,但我的生活已经深陷其中。简而言之:它就是一个使用Vim命令的RPG游戏。在地图的平面上使用‘h,j,k,l’四个键移动你的角色、得到新的命令/能力、收集钥匙,可以帮助你非常快速地学习如何高效使用Vim。
+
+### 4. [Try Github][7] ###
+
+[][8]
+
+目标很简单:15分钟学会Git。这个网站模拟一个控制台,带你遍历这种协作编辑的每一步。界面非常时尚,目的十分有用。唯一不足的是对Git感兴趣,但Git绝对是一项不错的技能,这里也是学习Git的绝佳之处。
+
+### 5. [Shortcutfoo.com][9] ###
+
+[][10]
+
+又一个包含众多快捷键数据库的网站,shortcutfoo以更标准的方式将其内容呈现给用户,但绝对比有趣的迷你游戏更直截了当。这里有许多软件的快捷键,并按类别分组。虽然像Vim一类的软件它没有给出超级完整的快捷键列表,但也足以提供快速的提示或一般性的概述。
+
+### 6. [GitHub Free Programming Books][11] ###
+
+[][12]
+
+正如你从URL上猜到的一样,这个网站就是免费在线编程书籍的集合,使用Git协作方式编写。上面的内容非常好,作者们应该为他们做出的这些贡献受到表扬。它可能不是最容易阅读的,但一定是最有启发性的之一。我们只希望这项运动能持续进行。
+
+### 7. [Collabedit.com][13] ###
+
+[][14]
+
+如果你曾经计划过电话面试,你应该先试试collabedit。它让你创建文件,选择你想使用的编程语言,然后通过URL共享文档。打开链接的人可以免费地实时使用文本交互,使你可以评判他们的编程水平或只是交换一些程序片段。这里甚至还提供合适的语法高亮和聊天功能。换句话说,这就是程序员的即时Google Doucment。
+
+### 8. [Cpp.sh][15] ###
+
+[][16]
+
+尽管这个网站超出了Linux范围,但因为它非常有用,所以值得将它放在这里。简单地说,这是一个C++在线开发环境。只需在浏览器里编写程序,然后运行它。作为奖励,你可以使用自动补全、Ctrl+Z,以及和你的小伙伴分享你的作品的URL。这些有趣的事情,你只需要通过一个简单的浏览器就能做到。
+
+### 9. [Copy.sh][17] ###
+
+[][18]
+
+如果想继续在浏览器上做一些疯狂的事情,你可以试试在copy.sh上在线运行一个虚拟机。就是这么简单。这个网站最近小有名气,但这个点子确实有些疯狂。从导航栏里,你可以选择运行默认的虚拟机镜像,或者上传你自己的iso文件。这项壮举的代码已经共享在[GitHub][19]。尽情尖叫吧!
+
+### 10. [Commandlinefu.com][20] ###
+
+[][21]
+
+我们总是在自己的电脑上保存着一大段命令行“宝石”,commandlinefu的目标是把这些片段释放给全世界。作为一个协作式数据库,它就像是命令行里的维基百科。每个人可以免费注册,把自己最钟爱的命令提交到这个网站上给其他人看。你将能够获取来自四面八方的知识并与人分享。如果你对精通shell饶有兴趣,commandlinefu也可以提供一些优秀的特性,比如随机命令和每天学习新知识的新闻订阅。
+
+### 11. [Alias.sh][22] ###
+
+[][23]
+
+另一协作式数据库,alias.sh(我爱死这个URL了)有点像commandlinefu,但是为shell别名开发的。你可以共享和发现一些有用的别名,来使你的CLI(命令行界面)体验更加舒服。我个人喜欢这个获取图片维度的别名命令。
+
+ function dim(){ sips $1 -g pixelWidth -g pixelHeight }
+
+你通过alias.sh节省下来的时间会积少成多,当你走到人生尽头的时候,会发现省下了许多年。(译者注:珍爱生命,多用别名!)
+
+### 12. [Distrowatch.com][24] ###
+
+[][25]
+
+有谁不知道Distrowatch?除了基于这个网站流行度给出一个精确的Linux发行版排名,Distrowatch也是一个非常有用的数据库。无论你正苦苦寻找一个新的发行版,还是只是出于好奇,它都能为你能找到的每个Linux版本呈现一个详尽的描述,包含默认的桌面环境、包管理系统、默认应用程序等信息,还有所有的版本号,以及可用的下载链接。总而言之,这就是个Linux宝库。
+
+### 13. [Linuxmanpages.com][26] ###
+
+[][27]
+
+一切尽在URL中说明了:随时随地获取主流命令的手册页面。尽管不确信对于Linux用户是否真的有用,因为他们可以从真实的终端中获取这些信息,但这里的内容还是值得关注的。
+
+### 14. [AwesomeCow.com][28] ###
+
+[][29]
+
+这可能对于骨灰级 Linux 没啥用,但是对于其他人也许有用。Awesomecow是一个搜索引擎,来寻找Windows软件在Linux上对应的替代品。它对那些迁移到企鹅操作系统(Linux)或习惯Windows软件的人很有帮助。我认为这个网站代表一种能力,表明了在谈到软件质量时Linux也可以适用于专业领域。大家至少可以尝试一下。
+
+### 15. [PenguSpy.com][30] ###
+
+[][31]
+
+Steam在Linux上崭露头角之前,可玩性可能是Linux的软肋。但这个名为“pengsupy”的网站不遗余力地弥补这个软肋,通过使用漂亮的界面展现了数据库中收集的所有兼容Linux的游戏。游戏按照类别、发行日期、评分等指标分类。我真心希望这一类的网站不会因为Steam的存在走向衰亡,毕竟这是我在这个列表里最喜爱的网站之一。
+
+### 16. [Linux Cross Reference by Free Electrons][32] ###
+
+[][33]
+
+最后,对所有的专家和好奇的用户,lxr 是源于 Linux Cross Reference 的另外一种形式,使我们能交互地在线查看Linux内核代码。可以通过各种标识符在代码中很方便地导航,你可以使用标准的diff标记对比文件的不同版本。这个网站的界面看起来严肃直接,毕竟这只是一个希望完美阐述开源观点的网站。
+
+总而言之,应该列出更多这一类的网站,作为这篇文章第二部分的主题。但这篇文章是一个好的开始,是一道为Linux用户寻找在线工具的开胃菜。如果你有其它任何想要分享的页面,而且是紧跟这个主题的,在评论里写出来。这将有助于续写这个列表。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/07/useful-online-tools-linux.html
+
+原文作者:[Adrien Brochard][a](我是一名来自法国的Linux狂热爱好者。在尝试过众多的发行版后,我最终选择了Archlinux。但我一直会通过叠加技巧和窍门来优化我的系统。)
+
+译者:[KayGuoWhu](https://github.com/KayGuoWhu) 校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/adrien
+[1]:http://explainshell.com/
+[2]:https://www.flickr.com/photos/xmodulo/14517716647/
+[3]:http://bashrcgenerator.com/
+[4]:https://www.flickr.com/photos/xmodulo/14703872782/
+[5]:http://vim-adventures.com/
+[6]:https://www.flickr.com/photos/xmodulo/14681149696/
+[7]:https://try.github.io/
+[8]:https://www.flickr.com/photos/xmodulo/14517499739/
+[9]:https://www.shortcutfoo.com/
+[10]:https://www.flickr.com/photos/xmodulo/14517499799/
+[11]:https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md
+[12]:https://www.flickr.com/photos/xmodulo/14517499989/
+[13]:http://collabedit.com/
+[14]:https://www.flickr.com/photos/xmodulo/14681150086/
+[15]:http://cpp.sh/
+[16]:https://www.flickr.com/photos/xmodulo/14700981001/
+[17]:http://copy.sh/v24/
+[18]:https://www.flickr.com/photos/xmodulo/14517479870/
+[19]:https://github.com/copy/v86
+[20]:http://www.commandlinefu.com/
+[21]:https://www.flickr.com/photos/xmodulo/14517495938/
+[22]:http://alias.sh/
+[23]:https://www.flickr.com/photos/xmodulo/14701762124/
+[24]:http://distrowatch.com/
+[25]:https://www.flickr.com/photos/xmodulo/14681149996/
+[26]:http://www.linuxmanpages.com/
+[27]:https://www.flickr.com/photos/xmodulo/14704165765/
+[28]:http://awesomecow.com/
+[29]:https://www.flickr.com/photos/xmodulo/14704165965/
+[30]:http://www.penguspy.com/
+[31]:https://www.flickr.com/photos/xmodulo/14517495728/
+[32]:http://lxr.free-electrons.com/
+[33]:https://www.flickr.com/photos/xmodulo/14712049464/
\ No newline at end of file
diff --git a/published/201410/20140729 How to use awk command in Linux.md b/published/201410/20140729 How to use awk command in Linux.md
new file mode 100644
index 0000000000..c4fded9e5c
--- /dev/null
+++ b/published/201410/20140729 How to use awk command in Linux.md
@@ -0,0 +1,121 @@
+如何在Linux中使用awk命令
+================================================================================
+文本处理是Unix的核心。从管道到/proc子系统,“一切都是文件”的理念贯穿于操作系统和所有基于它构造的工具。正因为如此,轻松地处理文本是一个期望成为Linux系统管理员甚至是资深用户的最重要的技能之一,而 awk是通用编程语言之外最强大的文本处理工具之一。
+
+最简单的awk的任务是从标准输入中选择字段;如果你对awk除了这个用途之外,从来没了解过它的其他用途,你会发现它还是会是你身边一个非常有用的工具。
+
+默认情况下,awk通过空格分隔输入。如果您想选择输入的第一个字段,你只需要告诉awk输出$ 1:
+
+ $ echo 'one two three four' | awk '{print $1}'
+
+> one
+
+(是的,大括号语法是有点古怪,但我保证这是我们这节课一直会遇到。)
+
+你能猜出如何选择第二,第三或第四个字段么?是的,分别用$2,$ 3,$ 4。
+
+ $ echo 'one two three four' | awk '{print $3}'
+
+> three
+
+通常在文本改写时,你需要创建一个特定的数据格式,并且它覆盖不止一个单词。好消息是,awk中可以很容易地打印多个字段,甚至包含静态字符串:
+
+ $ echo 'one two three four' | awk '{print $3,$1}'
+
+> three one
+
+----------
+
+ $ echo 'one two three four' | awk '{print "foo:",$3,"| bar:",$1}'
+
+> foo: three | bar: one
+
+好吧,如果你的输入不是由空格分隔怎么办?只需用awk中的'-F'标志指定你的分隔符:
+
+ $ echo 'one mississippi,two mississippi,three mississippi,four mississippi' | awk -F , '{print $4}'
+
+> four mississippi
+
+偶尔间,你会发现自己正在处理字段数量不同的数据,但你只知道你想要的*最后*字段。 awk中内置的$NF变量代表*字段的数量*,这样你就可以用它来抓取最后一个元素:
+
+ $ echo 'one two three four' | awk '{print $NF}'
+
+> four
+
+你也可以用$NF做简单的数学,假如你需要倒数第二个字段:
+
+ $ echo 'one two three four' | awk '{print $(NF-1)}'
+
+> three
+
+甚至是中间的字段:
+
+ $ echo 'one two three four' | awk '{print $((NF/2)+1)}'
+
+> three
+
+而且这一切都非常有用,同样你可以摆脱强制使用sed,cut,和grep来得到这些结果(尽管要做更多的操作)。
+
+因此,我将最后为你介绍awk的一个特性,维持跨行状态。
+
+ $ echo -e 'one 1\ntwo 2' | awk '{print $2}'
+
+> 1
+>
+> 2
+
+ $ echo -e 'one 1\ntwo 2' | awk '{sum+=$2} END {print sum}'
+
+> 3
+
+(END代表的是我们在执行完每行的处理**之后**只处理下面的代码块)
+
+这里我使用的例子是统计web服务器请求日志的字节大小。想象一下我们有如下这样的日志:
+
+ $ cat requests.log
+
+> Jul 23 18:57:12 httpd[31950]: "GET /foo/bar HTTP/1.1" 200 344
+>
+> Jul 23 18:57:13 httpd[31950]: "GET / HTTP/1.1" 200 9300
+>
+> Jul 23 19:01:27 httpd[31950]: "GET / HTTP/1.1" 200 9300
+>
+> Jul 23 19:01:55 httpd[31950]: "GET /foo/baz HTTP/1.1" 200 6401
+>
+> Jul 23 19:02:31 httpd[31950]: "GET /foo/baz?page=2 HTTP/1.1" 200 6312
+
+我们知道最后一个字段是响应的字节大小。我们已经学习了如何使用$NF来抽取他们:
+
+ $ < requests.log awk '{print $NF}'
+
+> 344
+>
+> 9300
+>
+> 9300
+>
+> 6401
+>
+> 6312
+
+接着我们可以将它们累加到一个变量中来收集我们的web服务其在日志中这段时间内的响应客户端的字节数量
+
+ $ < requests.log awk '{totalBytes+=$NF} END {print totalBytes}'
+
+> 31657
+
+如果你正在寻找关于awk的更多资料,你可以在Amazon中花费不到15美元买到[原始awk手册][1]的二手书。你也许还可以看看Eric Pement的[单行awk命令收集][2]这本书。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/07/use-awk-command-linux.html
+
+作者:[James Pearson][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/james
+[1]:http://www.amazon.com/gp/product/020107981X/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=020107981X&linkCode=as2&tag=xmodulo-20&linkId=6NW62B2WBRBXRFJB
+[2]:http://www.pement.org/awk/awk1line.txt
\ No newline at end of file
diff --git a/published/201410/20140801 What are better alternatives to basic command line utilities.md b/published/201410/20140801 What are better alternatives to basic command line utilities.md
new file mode 100644
index 0000000000..eea199a31c
--- /dev/null
+++ b/published/201410/20140801 What are better alternatives to basic command line utilities.md
@@ -0,0 +1,117 @@
+命令行基础工具的更佳替代品
+================================================================================
+
+命令行听起来有时候会很吓人,特别是在刚刚接触的时候,你甚至可能做过有关命令行的噩梦。然而渐渐地,我们都会意识到命令行实际上并不是那么吓人,反而是非常有用。实际上,没有命令行正是每次我使用 Windows 时让我感到崩溃的地方。这种感觉上的变化是因为命令行工具实际上是很智能的。 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的, 但还远说不上是足够强大。 如果你想使你的命令行生涯更加愉悦, 这里有几个程序你可以下载下来替换原来的默认程序, 它还可以给你提供比原始程序更多的功能。
+
+### dfc ###
+
+作为一个 LVM 使用者, 我非常喜欢随时查看我的硬盘存储器的使用情况. 我也从来没法真正理解为什么在 Windows 上我们非得打开资源管理器来查看电脑的基本信息。在 Linux 上, 我们可以使用如下命令:
+
+ $ df -h
+
+
+
+该命令可显示电脑上每一分卷的大小、 已使用空间、 可用空间、 已使用空间百分比和挂载点。 注意, 我们必须使用 "-h" 选项使得所有数据以可读形式显示(使用 GiB 而不是 KiB)。 但你可以使用 [dfc][1] 来完全替代 df, 它不需要任何额外的选项就可以得到 df 命令所显示的内容, 并且会为每个设备绘制彩色的使用情况图, 因此可读性会更强。
+
+
+
+另外, 你可以使用 "-q" 选项将各分卷排序, 使用 "-u" 选项指定你希望使用的单位, 甚至可以使用 "-e" 选项来获得 csv 或者 html 格式的输出.
+
+### dog ###
+
+Dog 比 cat 好, 至少这个程序自己是这么宣称的。 你应该相信它一次。 所有 cat 命令能做的事, [dog][2] 都做的更好。 除了仅仅能在控制台上显示一些文本流之外, dog 还可以对其进行过滤。 例如, 你可以使用如下语法来获得网页上的所有图片:
+
+ $ dog --images [URL]
+
+
+
+或者是所有链接:
+
+ dog --links [URL]
+
+
+
+另外, dog 命令还可以处理一些其他的小任务, 比如全部转换为大写或小写, 使用不同的编码, 显示行号和处理十六进制文件。 总之, dog 是 cat 的必备替代品。
+
+### advcp ###
+
+一个 Linux 中最基本的命令就是复制命令: cp。 它几乎和 cd 命令地位相同。 然而, 它的输出非常少。 你可以使用 verbose 模式来实时查看正在被复制的文件, 但如果一个文件非常大的话, 你看着屏幕等待却完全不知道后台在干什么。 一个简单的解决方法是加上一个进度条: 这正是 advcp (advanced cp 的缩写) 所做的! advcp 是 [GNU coreutils][4] 的一个 [补丁版本][3], 它提供了 acp 和 amv 命令, 即"高级"的 cp 和 mv 命令. 使用语法如下:
+
+ $ acp -g [file] [copy]
+
+它把文件复制到另一个位置, 并显示一个进度条。
+
+
+
+我还建议在 .bashrc 或 .zshrc 中设置如下命令别名:
+
+ alias cp="acp -g"
+ alias mv="amv -g"
+
+(译者注: 原文给出的链接已貌似失效, 我写了一个可用的安装脚本放在了我的 [gist](https://gist.github.com/b978fc93b62e75bfad9c) 上, 用的是 AUR 里的 [patch](https://aur.archlinux.org/packages/advcp)。)
+
+### The Silver Searcher ###
+
+[the silver searcher][5] 这个名字听起来很不寻常(银搜索...), 它是一款设计用来替代 grep 和 [ack][6] 的工具。 The silver searcher 在文件中搜索你想要的部分, 它比 ack 要快, 而且能够忽略一些文件而不像 grep 那样。(译者注: 原文的意思貌似是 grep 无法忽略一些文件, 但 grep 有类似选项) the silver searcher 还有一些其他的功能,比如彩色输出, 跟随软连接, 使用正则表达式, 甚至是忽略某些模式。
+
+
+
+作者在开发者主页上提供了一些搜索速度的统计数字, 如果它们的确是真的的话, 那是非常可观的。 另外, 你可以把它整合到 Vim 中, 用一个简洁的命令来调用它。 如果要用两个词来概括它, 那就是: 智能、快速。
+
+### plowshare ###
+
+所有命令行的粉丝都喜欢使用 wget 或其他对应的替代品来从互联网上下载东西。 但如果你使用许多文件分享网站, 像 mediafire 或者 rapidshare。 你一定很乐意了解一款专门为这些网站设计的对应的程序, 叫做 [plowshare][7]。 安装成功之后, 你可以使用如下命令来下载文件:
+
+ $ plowdown [URL]
+
+或者是上传文件:
+
+ $ plowup [website name] [file]
+
+前提是如果你有那个文件分享网招的账号的话。
+
+最后, 你可以获取分享文件夹中的一系列文件的链接:
+
+ $ plowlist [URL]
+
+或者是文件名、 大小、 哈希值等等:
+
+ $ plowprobe [URL]
+
+对于那些熟悉这些服务的人来说, plowshare 还是缓慢而令人难以忍受的 jDownloader 的一个很好的替代品。
+
+### htop ###
+
+如果你经常使用 top 命令, 很有可能你会喜欢 [htop][8] 命令。 top 和 htop 命令都能对正在运行的进程提供了实时查看功能, 但 htop 还拥有一系列 top 命令所没有的人性化功能。 比如, 在 htop 中, 你可以水平或垂直滚动进程列表来查看每个进程的完整命令名, 还可以使用鼠标点击和方向键来进行一些基本的进程操作(比如 kill、 (re)nice 等),而不用输入进程标识符。
+
+
+
+### mtr ###
+
+系统管理员的一个基本的网络诊断工具traceroute可以用于显示从本地网络到目标网络的网络第三层协议的路由。mtr(即“My Traceroute”的缩写)继承了强大的traceroute功能,并集成了 ping 的功能。当发现了一个完整的路由时,mtr会显示所有的中继节点的 ping 延迟的统计数据,对网络延迟的定位非常有用。虽然也有其它的 traceroute的变体(如:tcptraceroute 或 traceroute-nanog),但是我相信 mtr 是traceroute 工具里面最实用的一个增强工具。
+
+
+
+
+总的来说, 这些十分有效的基本命令行的替代工具就像那些有用的小珍珠一样, 它们并不是那么容易被发现, 但当一旦你找到一个, 你就会惊讶你是如何忍受这么长没有它的时间! 如果你还知道其他的与上面描述相符的工具, 请在评论中分享给我们。
+
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/07/better-alternatives-basic-command-line-utilities.html
+
+作者:[Adrien Brochard][a]
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/adrien
+[1]:http://projects.gw-computing.net/projects/dfc
+[2]:http://archive.debian.org/debian/pool/main/d/dog/
+[3]:http://zwicke.org/web/advcopy/
+[4]:http://www.gnu.org/software/coreutils/
+[5]:https://github.com/ggreer/the_silver_searcher
+[6]:http://xmodulo.com/2014/01/search-text-files-patterns-efficiently.html
+[7]:https://code.google.com/p/plowshare/
+[8]:http://hisham.hm/htop/
diff --git a/published/201410/20140804 How to install and configure Nvidia Optimus driver on Ubuntu.md b/published/201410/20140804 How to install and configure Nvidia Optimus driver on Ubuntu.md
new file mode 100644
index 0000000000..79ce3d44f1
--- /dev/null
+++ b/published/201410/20140804 How to install and configure Nvidia Optimus driver on Ubuntu.md
@@ -0,0 +1,105 @@
+在Ubuntu上安装和配置Nvidia Optimus驱动
+================================================================================
+Nvidia Optimus是一款利用“双显卡切换”技术的混合GPU系统,但长期以来受限于Linux系统上的诸多不便与限制。在数年的等待之后,搭载这全新内核的Ubuntu 14.04最终实现了非常容易安装的专用驱动的兼容性。这篇文章首先为不熟悉Nvidia Optimus的读者简介相关背景,然后展示整个安装过程。对于对Xorg有着丰富配置经验的老手,可以直接跳到安装部分。
+
+### 背景知识 ###
+对那些不熟悉Nvidia Optimus的读者,在板载Intel图形芯片组和使用被称为“GPU切换”、对需求有着更强大处理能力的NVIDA显卡这两者之间的进行切换是很有必要的。这么做的主要目的是延长笔记本电池的使用寿命,以便在不需要Nvidia GPU的时候将其关闭。带来的好处是显而易见的,比如说你只是想简单地打打字,笔记本电池可以撑8个小时;如果看高清视频,可能就只能撑3个小时了。使用Windows时经常如此。
+
+
+
+几年前,我买了一台上网本(Asus VX6),犯的最蠢的一个错误就是没有检查Linux驱动兼容性。因为在以前,特别是对于一台上网本大小的设备,这根本不会是问题。即便某些驱动不是现成可用的,我也可以找到其它的办法让它正常工作,比如安装专门模块或者使用反向移植。对我来说这是第一次——我的电脑预先配备了Nvidia ION2图形显卡。
+
+在那时候,Nvidia的Optimus混合GPU硬件还是相当新的产品,而我也没有预见到在这台机器上运行Linux会遇到什么限制。如果你读到了这里,恰好对Linux系统有经验,而且也在几年前买过一台笔记本,你可能对这种痛苦感同身受。
+
+[Bumblebee][4]项目直到最近因为得到Linux系统对混合图形方面的支持才变得好起来。事实上,如果配置正确的话,通过命令行接口(如“optirun vlc”)让你选定的应用程序能利用Nvidia显卡功能是可行的,但让HDMI一类的功能运转起来就很不同了。(译者注:Bumblebee 项目是把Nvidia的Optimus技术移到Linux上来。)
+
+我之所以使用“如果配置正确的话”这个短语,是因为实际上为了让它发挥出性能来往往不只是通过几次尝试去改变Xorg的配置就能做到的。如果你以前没有使用过ppa-purge或者运行过“dpkg-reconfigure -phigh xserver-xorg”这类命令,那么我可以向你保证修补Bumblebee的过程会让你受益匪浅。
+
+[][2]
+
+在等待了很长一段时间后,Nvidia才发布了支持Optimus的Linux驱动,但我们仍然没有得到对双显卡切换的真正支持。然而,现在有了Ubuntu 14.04、nvidia-prime和nvidia-331驱动,任何人都可以在Intel芯片和Nvidia显卡之间轻松切换。不过不幸的是,为了使切换生效,还是会受限于需要重启X11视窗系统(通过注销登录实现)。
+
+为了减轻这种不便,有一个小型程序用于快速切换,稍后我会给出。这个驱动程序的安装就此成为一件轻而易举的事了,HDMI也可以正常工作,这足以让我心满意足了。
+
+### 安装Nvidia Optimus驱动 ###
+
+为了更快地描述这个过程,我假设你已经安装好Ubuntu 14.04或者Mint 17。
+
+作为一名系统管理员,最近我发现90%的Linux操作通过命令行执行起来更快,但这次我推荐使用“Additional Drivers”这个应用程序,你可能使用它安装过网卡或声卡驱动。
+
+
+
+**注意:下面的所有命令都是在~#提示符下执行的,需要root权限执行。在运行命令前,要么使用“sudo su”(切换到root权限),要么在每条命令的开头使用sudo运行。**
+
+你也可以在命令行输入如下命令进行安装:
+
+ ~# apt-get install nvidia-331 nvidia-settings nvidia-prime
+
+接下来是重启。确保你没有安装类似于Bumblebee或其他已加载的Nvidia驱动,否则很可能会破坏你的X11。万一你没有进行全新安装,之前有安装过Bumblebee程序,那么在安装nvidia-331和nvidia-prime前运行下列命令:
+
+ ~# apt-get purge libvdpau-va-gl1 bumblebee* nvidia*
+
+### 在Nvidia和非Nvidia显卡之间切换 ###
+
+你可以通过按下Alt+F2或者从命令行键入下列命令实现Nvidia和非Nvidia(如Intel)显卡之间的切换:
+
+ ~$ nvidia-settings
+
+**注意:~$表示不以root用户身份执行。**
+
+
+
+你也可以使用命令行设置默认使用哪一块显卡:
+
+ ~# prime-select intel (或 nvidia)
+
+使用这个命令进行切换:
+
+ ~# prime-switch intel (或 nvidia)
+
+两个命令的生效都需要重启X11,可以通过注销和重新登录实现。当然重启电脑也行。
+
+对Ubuntu用户键入命令:
+
+ ~# service lightdm restart
+
+对Mint用户键入命令:
+
+ ~# service mdm restart
+
+键入这个命令确认哪一块显卡在运行:
+
+ ~# prime-select query
+
+最后,你可以通过添加ppa:nilarimogard/webupd8来安装叫做prime-indicator的程序包,实现通过工具栏快速切换来重启Xserver会话。要安装它,只需要运行:
+
+ ~# add-apt-repository ppa:nilarimogard/webupd8
+ ~# apt-get update
+ ~# apt-get install mesa-utils prime-indicator
+
+### 总结 ###
+
+总而言之,这个方法仍不完美,但至少它能简单易用地提供合适的专门驱动支持。很多人不会使用这个安装方法来设置Bumblebee,因为他们发现使用Nvidia驱动会很快耗完电池。对我个人的使用来说,这是一个更好的方法,因为我使用Nvidia只为了满足HDMI输出,这表示我必须把电脑插上电源才行。不然的话,Intel的显卡对我的笔记本来说够用了,因为除了频繁地使用Libreoffice、Chromium和Terminator这几个软件我别无所求。
+
+如果你宁愿选择在默认情况下使用Intel显卡,为运行特定的应用程序使用Nvidia显卡,你应该去阅读那些Bumblebee教程。一旦你得以让Bumblebee正常工作起来,我建议你记录下用来配置电脑的命令和过程。因为没有什么比9个月之后再来一次全新安装但忘记了上次是如何成功安装更糟糕的事情了。
+
+也可以花时间查看一下这个我偶然发现的[脚本][3],用来方便地在Bumblebee和Nvidia-Prime之间进行切换,但我必须强调并没有亲自对此进行实验。
+
+最后,我感到非常惭愧,写了这么多才得以为Linux上的显卡提供了专门支持,但仍然不能实现双显卡切换,因为混合图形技术似乎是便携式设备的未来。一般情况下,AMD会发布Linux平台上的驱动支持,但我认为Optimus是目前为止我遇到过的最糟糕的硬件支持问题。
+
+不管这篇教程对你的使用是否完美,但这确实是利用这块Nvidia显卡最容易的方法。你可以试着在Intel显卡上只运行最新的Unity,然后考虑2到3个小时的电池寿命是否值得权衡。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/install-configure-nvidia-optimus-driver-ubuntu.html
+
+作者:[Christopher Ward][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/christopher
+[1]:http://bumblebee-project.org/
+[2]:http://xkcd.com/963
+[3]:https://devtalk.nvidia.com/default/topic/705993/easy-switch-between-bumblebee-and-nvidia-prime/
\ No newline at end of file
diff --git a/published/201410/20140808 How to install Puppet server and client on CentOS and RHEL.md b/published/201410/20140808 How to install Puppet server and client on CentOS and RHEL.md
new file mode 100644
index 0000000000..ded986fab8
--- /dev/null
+++ b/published/201410/20140808 How to install Puppet server and client on CentOS and RHEL.md
@@ -0,0 +1,197 @@
+在 CentOS 和 RHEL 上安装 Puppet 服务器和客户端
+================================================================================
+当手中有相当多的机器需要管理的时候,自动化处理冗余又无聊的任务对系统管理员来说就很重要了。很多管理员习惯了自己写脚本模拟复杂软件之间的调度。不幸的是,脚本会过时,脚本的作者会离职,如果不花费巨大精力来维护这些脚本的话,它们早晚会一点儿用也没有。如果能有一个系统,任何人都可以使用、安装工具,不论其受雇于何人,那真是太期待了。目前已有几种系统可以解决这类需求,这篇教程将介绍其中之一——Puppet——的使用方法。
+
+### Puppet 是什么? ###
+
+Puppet 是一款为 IT 系统管理员和顾问们设计的自动化软件,你可以用它自动化地完成诸如安装应用程序和服务、补丁管理和部署等工作。所有资源的相关配置都以“manifests”的方式保存,单台机器或者多台机器都可以使用。如果你想了解更多内容,Puppet 实验室的网站上有关于 [Puppet 及其工作原理][1]的更详细的介绍。
+
+### 本教程要做些什么? ###
+
+在这篇教程里,我们将一起安装配置一个 Puppet 服务器,然后在我们的客户端服务器(译注:这里的“客户端服务器”指需要部署业务逻辑的服务器)上完成一些基本配置。
+
+### 准备工作 ###
+
+由于 Puppet 不是 CentOS 或 RHEL 发行版的基本仓库,所以我们得手动添加 Puppet 实验室提供的自定义仓库。在所有你想使用 Puppet 的地方执行以下命令安装这个仓库(版本不同,对应的 RPM 文件名可能略有不同)。
+
+**对于 CentOS/RHEL 6.5:**
+
+ # rpm -ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-10.noarch.rpm
+
+**对于 CentOS/RHEL 7:**
+
+ # rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm
+
+### 安装服务器端 ###
+
+在你打算用作 master 的服务器上安装 "puppet-server" 包。
+
+ # yum install puppet-server
+
+安装完成后,设置 Puppet 服务器开机自动启动,然后启动它。
+
+ # chkconfig puppetmaster on
+ # service puppetmaster start
+
+现在服务器已经运行起来了,我们试试看我们的网络能不能访问到它。
+
+对于使用 iptables 当做防火墙的 CentOS/RHEL 6,在 `/etc/sysconfig/iptables` 文件的 `OUTPUT ACCEPT` 小节里添加下面这一行。
+
+> -A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
+
+重新启动 iptables 服务让刚才的修改生效。
+
+ # service iptables restart
+
+在安装了防火墙的 CentOS/RHEL 7 上,我们这么做:
+
+ # firewall-cmd --permanent --zone=public --add-port=8140/tcp
+ # firewall-cmd --reload
+
+### 安装客户端 ###
+
+执行下面的命令,在客户端节点安装 Puppet 客户端。
+
+ # yum install puppet
+
+安装完成后,确保 Puppet 会随开机自动启动。
+
+ # chkconfig puppet on
+
+Puppet 客户端需要知道 Puppet master 服务器的地址。最佳方案是使用 DNS 服务器解析 Puppet master 服务器地址。如果你没有 DNS 服务器,在 `/etc/hosts` 里添加类似下面这几行也可以:
+
+> 1.2.3.4 server.your.domain
+
+> 2.3.4.5 client-node.your.domain
+
+1.2.3.4 对应你的 Puppet master 服务器 IP 地址,“server.your.domain”是你的 master 服务器域名(默认通常是服务器的 hostname),“client-node.your.domain”是你的客户端节点。包括 Puppet master 和客户端,所有相关的服务器都要在 hosts 文件里配置。
+
+完成这些设置之后,我们要让 Puppet 客户端知道它的 master 是谁。默认情况下,Puppet 会查找名为“puppet”的服务器,但通常这并不符合你网络环境的真实情况,所以我们要改成 Pupper master 服务器的完整域名。打开文件 `/etc/sysconfig/puppet`,把 `PUPPET_SERVER` 变量的值改成你在 `/etc/hosts` 文件里指定的 Puppet master 服务器的域名。
+
+> PUPPET_SERVER=server.your.domain
+
+master 服务器名也要在 `/etc/puppet/puppet.conf` 文件的“[agent]”小节里事先定义好。
+
+> server=server.your.domain
+
+现在可以启动 Puppet 客户端了:
+
+ # service puppet start
+
+强制我们的客户端在 Puppet master 服务器上登记:
+
+ # puppet agent --test
+
+你会看到类似于下面的输出。别怕,这是正常现象,因为服务器还没有在 Puppet master 服务器上验证过。
+
+> Exiting; no certificate found and waitforcert is disabled
+
+返回 Puppet master 服务器,检查证书验证请求:
+
+ # puppet cert list
+
+你应该能看到一个列出了所有向 Puppet master 服务器发起证书签名请求的服务器。找到你客户端服务器的 hostname 然后使用下面的命令签名(client-node 是你客户端节点的域名):
+
+ # puppet cert sign client-node
+
+到此为止 Puppet 客户端和服务器都正常工作了。恭喜你!但是,现在 Puppet master 没有任何要客户端做的事儿。好吧,我们来创建一些基本的 manifest 文件然后让我们的客户端节点安装一些基本工具。
+
+回到你的 Puppet 服务器,确保目录 `/etc/puppet/manifests` 存在。
+
+ # mkdir -p /etc/puppet/manifests
+
+创建 manifest 文件 `/etc/puppet/manifests/site.pp`,内容如下
+
+ node 'client-node' {
+ include custom_utils
+ }
+
+ class custom_utils {
+ package { ["nmap","telnet","vim-enhanced","traceroute"]:
+ ensure => latest,
+ allow_virtual => false,
+ }
+ }
+
+然后重新启动 puppetmaster 服务。
+
+ # service puppetmaster restart
+
+客户端默认每 30 分钟更新一次配置,如果你希望你的修改能强制生效,就在客户端执行如下命令:
+
+ # puppet agent -t
+
+如果你需要修改客户端的默认刷新时间,编辑客户端节点的 `/etc/puppet/puppet.conf` 文件中“[agent]”小节,增加下面这一行:
+
+> runinterval =
+
+这个选项的值可以是秒(格式比如 30 或者 30s),分钟(30m),小时(6h),天(2d)以及年(5y)。值得注意的是,**0 意味着“立即执行”而不是“从不执行”**。
+
+### 提示和技巧 ###
+
+#### 1. 调试 ####
+
+你免不了会提交错误的配置,然后不得不通过调试判断问题出现在哪儿。一般来说,你要么通过查看日志文件 `/var/log/puppet` 着手解决问题,要么手动执行查看输出:
+
+ # puppet agent -t
+
+使用“-t”选项,你可以看到 Puppet 的详细输出。这条命令还有额外的选项可以帮你定位问题。首先要介绍的选项是:
+
+ # puppet agent -t --debug
+
+debug 选项会显示 Puppet 本次运行时的差不多每一个步骤,这在调试非常复杂的问题时很有用。另一个很有用的选项是:
+
+ # puppet agent -t --noop
+
+这个选项让 puppet 工作在 dry-run(译注:空转模式,不会对真实环境产生影响)模式下,不会应用任何修改。Puppet 只会把其工作内容输出到屏幕上,不会写到磁盘里去。
+
+#### 2. 模块 ####
+
+有时候你需要更复杂的 manifest 文件,在你着手编写它们之前,你有必要花点儿时间浏览一下 [https://forge.puppetlabs.com][2]。Forge 是一个集合了 Puppet 模块的社区,你的问题很可能已经有人解答过了,你能在那儿找到解决问题的模块。如果找不到,那就自己写一个然后提交上去,其他人也能从中获益。
+
+现在,假设你已经找到了一个模块能解决你的问题。怎么把它安装到你的系统中去呢?非常简单,因为 Puppet 已经有了可以直接下载模块的用户界面,只需要执行下面的命令:
+
+ # puppet module install --version 0.0.0
+
+ 是你选择的模块的名字,版本号可选(如果没有指定版本号,默认使用最新的版本)。如果你不记得想安装的模块的名字了,试试下面的命令搜索模块:
+
+ # puppet module search
+
+你会得到一个包含 search_string 的列表。
+
+ # puppet module search apache
+
+----------
+
+ Notice: Searching https://forgeapi.puppetlabs.com ...
+ NAME DESCRIPTION AUTHOR KEYWORDS
+ example42-apache Puppet module for apache @example42 example42, apache
+ puppetlabs-apache Puppet module for Apache @puppetlabs apache web httpd centos rhel ssl wsgi proxy
+ theforeman-apache Apache HTTP server configuration @theforeman foreman apache httpd DEPRECATED
+
+如果你想查看已经安装了哪些模块,键入:
+
+ # puppet module list
+
+### 总结 ###
+
+到目前为止,你应该有了功能完整的可以向一个或多个客户端服务器推送基本配置的 Puppet master 服务器。你可以自己随便加点儿配置适配你自己的网络环境。不必为试用 Puppet 担心,你会发现,它会拯救你的生活。
+
+Puppet 实验室正在试着维护一个质量上乘的项目文档,所以如果你想学点儿关于 Puppet 相关的配置,我强烈推荐你访问 Puppet 项目的主页 [http://docs.puppetlabs.com][3]。
+
+如果你有任何问题,敬请在文章下方评论,我会尽我所能回答你并给你建议。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/install-puppet-server-client-centos-rhel.html
+
+作者:[Jaroslav Štěpánek][a]
+译者:[sailing](https://github.com/sailing)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/jaroslav
+[1]:https://puppetlabs.com/puppet/what-is-puppet/
+[2]:https://forge.puppetlabs.com/
+[3]:http://docs.puppetlabs.com/
diff --git a/published/201410/20140811 Check how much do you type with WhatPulse on Linux.md b/published/201410/20140811 Check how much do you type with WhatPulse on Linux.md
new file mode 100644
index 0000000000..853c195b23
--- /dev/null
+++ b/published/201410/20140811 Check how much do you type with WhatPulse on Linux.md
@@ -0,0 +1,77 @@
+Linux输入统计神器——WhatPulse
+================================================================================
+
+
+如果,你像我这样,是个对统计数据有着狂热癖好的人,那么你必须在你的计算机上安装这个小应用:[WhatPulse][1]
+
+此软件会追踪用户的击键、鼠标点击以及使用的[带宽][2]和系统开机时间。用户可以周期性地,或者手动上传击键的数量到服务器上,这称之为“脉动”。
+
+用户可以看到他们在所有加入该程序的人的领先选手排行板的所处位置,并且与他们自己国家的人作比较。用户也可以加入团队,在团队中他们可以和有着相同爱好的人作对比(去吧,Linux用户们!!)。
+
+软件分为免费的基础版和高级版,在基础版中你可以查看并检查所有的基本统计数据,而在高级版中你可以看到更多。
+
+该软件可用于Linux,Windows和Mac。
+
+### 在线注册 ###
+
+第一步,你必须在[WhatPulse网站][1]注册帐号,或者也可以在你第一次启动WhatPulse客户端时出现的实用向导中创建帐号,以用于上传自己的统计数据(你也可以使用Facebook的帐号登录)。
+
+你会被提示需要登录,登录之后,你必须找到你的计算机名,这是因为你可以通过该帐号登录到多台计算机,而它们的数据都会上传到同一统计帐号。一旦你登入后,一个小小的W将出现在你的系统托盘中,那就对了,你已搞定!
+
+### 在Linux上安装WhatPulse ###
+
+官方网站在[下载页][3]提供了一个通用版本的.tar.gz归档压缩包(用于32位和64位)和一个debian包。
+
+就我个人而言,我已经在我的Mint Qiana上安装了debian包,在我的Arch Linux[Aur包][4]一点问题都没有。
+
+如果你想要使用通用版本安装,请记住:WhatPulse需要几个库文件。最主要的是QT,因为WhatPulse构建于QT平台。下面列出了软件安装需求:
+
+- libQtCore
+- libQtWebKit
+- libqt4-sql
+- libqt4-sql-sqlite
+- openssl-devel (libssl-dev)
+- libQtScript
+
+#### 输入统计数据 ####
+
+客户端需要设置相应的权限,以读取键盘/鼠标输入。运行包含的交互脚本.sh来设置这些权限。
+
+#### [网络][5]统计数据 ####
+
+要启用网络测量,你也需要**libpcap**包来允许WhatPulse挂钩到网络通信。如果WhatPulse找不到libpcap,它会运行,但不会显示任何网络统计数据。
+
+
+
+### 使用应用程序 ###
+
+默认情况下,WhatPulse会在登入图形会话后自动启动。点击系统托盘上的W图标,你将进入总览标签页,这里显示你机器上收集到的所有不同信息的鸟瞰图。例如,安装在你PC上的Linux版本、处理器型号、RAM、GPU、总点击次数、击键和带宽使用。点击这些信息下面的‘Pulse’,它将会上传这些收集到的数据到主服务器上。
+
+也可以选择自动‘Pulse’数据到服务器的时间,如每50.000点击,或者1GB下载量。
+
+要了解深度详情,你可以切换到每个类目的附属标签。例如,Input标签展示给你的是注册后一段时间内的击键的数量和点击次数。时间周期分为每日、每周、每月、每年以及全时。‘all’设置将显示程序安装以来的数据。
+
+在击键下面,你会找到键盘点击热图,它简单地使用冷暖色显示选定周期内各个键的使用状况,如上述截图所示。在图的下面,应用显示了选定周期内记录的点击总量。
+
+在Network标签下,可以查看到日常互联网使用情况。应用程序可以监控所有网络设备的带宽使用量,甚至也可以给你展示按国家分布的带宽使用情况。再次提醒,你可以使用顶部右边的箭头按钮浏览可用的数据。
+
+在网站上,你会看到与客户端上相同的所有统计数据。
+
+免责声明:上面的WhatPulse网站链接包含了我的参考链接,注册时可以使用该链接,这会让我的帐号在某天升级到高级帐号。
+
+--------------------------------------------------------------------------------
+
+via: http://linuxaria.com/recensioni/check-how-much-do-you-type-with-whatpulse-on-linux
+
+作者:[linuxari][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/100563597940685405833?rel=author
+[1]:http://whatpulse.org/ref/833872/
+[2]:http://linuxaria.com/article/tool-command-line-bandwidth-linux
+[3]:http://www.whatpulse.org/downloads/
+[4]:https://aur.archlinux.org/packages/whatpulse/
+[5]:http://linuxaria.com/tag/network
diff --git a/published/201410/20140811 How to improve your productivity in terminal environment with Tmux.md b/published/201410/20140811 How to improve your productivity in terminal environment with Tmux.md
new file mode 100644
index 0000000000..5bdb273d06
--- /dev/null
+++ b/published/201410/20140811 How to improve your productivity in terminal environment with Tmux.md
@@ -0,0 +1,151 @@
+如何使用Tmux提高终端环境下的效率
+===
+
+鼠标的发明是了不起的创新,它让电脑更加接近普通人。但从程序员和系统管理员的角度,使用电脑工作时,手一旦离开键盘,就会有些分心。
+
+作为一名系统管理员,我大量的工作都需要在终端环境下。打开很多标签,然后在多个终端之间切换窗口会让我慢下来。尤其是当我的服务器出问题的时候,我不能浪费任何时间!
+
+
+
+[Tmux][1]是我日常工作必要的工具之一。我可以借助Tmux构建出复杂的开发环境,同时还可以在一旁进行SSH远程连接。我可以开出很多窗口,将其拆分成很多面板,接管和分离会话等等。掌握了Tmux之后,你就可以扔掉鼠标了(只是个玩笑:D)。
+
+Tmux("Terminal Multiplexer"的简称)可以让我们在单个屏幕的灵活布局下开出很多终端,我们就可以协作地使用它们。举个例子,在一个面板中,我们用Vim修改一些配置文件,在另一个面板,我们使用`irssi`聊天,而在其余的面板,可以跟踪一些日志。然后,我们还可以打开新的窗口来升级系统,再开一个新窗口来进行服务器的ssh连接。在这些窗口面板间浏览切换和创建它们一样简单。它的高度可配置和可定制的,让其成为你心中的延伸
+
+### 在Linux/OSX下安装Tmux ###
+
+你可以通过编译软件源或者通过系统包管理器的方式安装,我建议使用包管理器,这样比编译更快更简单
+
+#### OSX: ####
+
+ # sudo brew install tmux
+ # sudo port install tmux
+
+#### Debian/Ubuntu: ####
+
+ # sudo apt-get install tmux
+
+####RHEL/CentOS/Fedora(RHEL/CentOS 要求 [EPEL repo][2]):####
+
+ $ sudo yum install tmux
+
+####Archlinux:####
+
+ $ sudo pacman -S tmux
+
+### 使用不同会话工作 ###
+
+使用Tmux的最好方式是使用会话的方式,这样你就可以以你想要的方式,将任务和应用组织到不同的会话中。如果你想改变一个会话,会话里面的任何工作都无须停止或者杀掉。让我们来看看这是怎么工作的。
+
+让我们开始一个叫做"session"的会话,并且运行top命令
+
+ $ tmux new -s new session
+ $ top
+
+然后输入**CTRL-b d**从此会话脱离,想要重新连接此会话,需输入:
+
+ $ tmux attach-session -t session
+
+之后你会看到top操作仍然运行在重新连接的会话上。
+
+一些管理sessions的命令:
+
+ $ tmux list-session
+ $ tmux new-session <会话名>
+ $ tmux attach-session -t <会话名>
+ $ tmux rename-session -t <会话名>
+ $ tmux choose-session -t <会话名>
+ $ tmux kill-session -t <会话名>
+
+### 使用不同的窗口工作
+
+很多情况下,你需要在一个会话中运行多个命令,执行多个任务。我们可以在一个会话的多个窗口里组织他们。在现代的GUI终端(比如 iTerm或者Konsole),一个窗口被视为一个标签。在会话中配置了我们默认的环境之后,我们就能够在一个会话中创建许多我们需要的窗口。窗口就像运行在会话中的应用程序,当我们脱离当前会话的时候,它仍在持续,让我们来看一个例子:
+
+ $ tmux new -s my_session
+
+
+
+按下**CTRL-b c**
+
+这将会创建一个新的窗口,然后屏幕的光标移向它。现在你就可以在新窗口下运行你的新应用。你可以修改你当前窗口的名字。在目前的例子里,我运行的top程序,所以top就是该窗口的名字
+
+如果你想要重命名,只需要按下:
+
+**CTRL-b**
+
+状态条将会改变,这时你将可以重命名当前的窗口
+
+
+
+一旦在一个会话中创建多个窗口,我们需要在这些窗口间移动的办法。窗口像数组一样组织在一起,从0开始用数字标记每个窗口,想要快速跳转到其余窗口:
+
+**CTRL-b <窗口号>**
+
+如果我们给窗口起了名字,我们可以使用下面的命令找到它们:
+
+**CTRL-b f**
+
+也可以列出所有窗口:
+
+**CTRL-b w**
+
+按照顺序切换到不同的窗口:
+
+**CTRL-b n**(到达下一个窗口)
+**CTRL-b p**(到达上一个窗口)
+
+想要离开一个窗口,可以输入 exit 或者:
+
+**CTRL-b &**
+
+关闭窗口之前,你需要确认一下。
+
+### 把窗口分成许多面板
+
+有时候你在编辑器工作的同时,需要查看日志文件。在编辑的同时追踪日志真的很有帮助。Tmux可以让我们把窗口分成许多面板。举个例子,我们可以创建一个控制台监测我们的服务器,同时用编辑器构造复杂的开发环境,这样就能同时进行编译和调试了。
+
+让我们创建另一个Tmux会话,让其以面板的方式工作。首先,如果我们在某个会话中,那就从Tmux会话中脱离出来:
+
+**CTRL-b d**
+
+开始一个叫做"panes"的新会话:
+
+ $ tmux new -s panes
+
+你可以水平或者竖直分割一个窗口,水平分割输入:
+
+**CRTL-b "**
+
+现在你就拥有两个面板,现在我们竖直分割:
+
+**CRTL-b %**
+
+又增加了两个:
+
+
+
+在他们之间移动:
+
+**CTRL-b <光标键>**
+
+### 结论
+
+我希望这篇教程能对你有作用。此外,像[Tmuxinator][3] 或者 [Tmuxifier][4]这样的工具,可以简化Tmux会话,窗口和面板的创建及加载,你可以很容易就配置Tmux。如果你没有使用过这些,尝试一下吧!
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/improve-productivity-terminal-environment-tmux.html
+
+作者:[Christopher Valerio][a]
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/valerio
+[1]:http://tmux.sourceforge.net/
+[2]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
+[3]:https://github.com/tmuxinator/tmuxinator
+[4]:https://github.com/jimeh/tmuxifier
+
+
+
diff --git a/published/201410/20140813 How to Extend or Reduce LVM' s (Logical Volume Management) in Linux--Part II.md b/published/201410/20140813 How to Extend or Reduce LVM' s (Logical Volume Management) in Linux--Part II.md
new file mode 100644
index 0000000000..48b261e5ef
--- /dev/null
+++ b/published/201410/20140813 How to Extend or Reduce LVM' s (Logical Volume Management) in Linux--Part II.md
@@ -0,0 +1,291 @@
+在Linux中扩展/缩减LVM(第二部分)
+================================================================================
+
+前面我们已经了解了怎样使用LVM创建弹性的磁盘存储。这里,我们将了解怎样来扩展卷组,扩展和缩减逻辑卷。在这里,我们可以缩减或者扩展逻辑卷管理(LVM)中的分区,LVM也可称之为弹性卷文件系统。
+
+
+
+### 前置需求 ###
+
+- [使用LVM创建弹性磁盘存储——第一部分][1]
+
+#### 什么时候我们需要缩减卷? ####
+
+或许我们需要创建一个独立的分区用于其它用途,或者我们需要扩展任何空间低的分区。遇到这种情况时,使用 LVM我们可以很容易地缩减大尺寸的分区,以及扩展空间低的分区,只要按下面几个简易的步骤来即可。
+
+#### 我的服务器设置 —— 需求 ####
+
+- 操作系统 – 安装有LVM的CentOS 6.5
+- 服务器IP – 192.168.0.200
+
+### 如何扩展卷组以及缩减逻辑卷 ###
+
+#### 逻辑卷扩展 ####
+
+目前,我们已经有一个PV,VG和2个LV。让我们用下面的命令来列出它们。
+
+ # pvs
+ # vgs
+ # lvs
+
+
+
+逻辑卷扩展
+
+在物理卷和卷组中没有空闲空间可用了,所以,现在我们不能扩展逻辑卷的大小。要扩展,我们需要添加一个物理卷(**PV**),然后通过扩展**vg**来扩展卷组,这样我们就会得到足够大的空间来扩展逻辑卷大小了。所以,首先我们应该去添加一个物理卷。
+
+要添加一个新**PV**,我们必须使用fdisk来创建一个LVM分区。
+
+ # fdisk -cu /dev/sda
+
+- 选择**n**来创建新分区。
+- 选择**p**来创建主分区。
+- 选择我们需要创建的分区号。
+- 如果有其它可用磁盘,请按**1**。
+- 使用**t**来修改分区类型。
+- 输入**8e**来将分区类型修改为Linux LVM。
+- 使用**p**来打印创建的分区(这里我们没有使用该选项)。
+- 按**w**写入修改。
+
+完成后重启系统。
+
+
+创建LVM分区
+
+使用fdisk列出并检查我们创建的分区。
+
+ # fdisk -l /dev/sda
+
+
+验证LVM分区
+
+接下来,使用下列命令来创建新**PV**(物理卷)。
+
+ # pvcreate /dev/sda1
+
+使用下面的命令来验证pv。
+
+ # pvs
+
+
+
+创建物理卷
+
+#### 扩展卷组 ####
+
+添加该pv到**vg_tecmint**卷组来扩展卷组的大小,以获取更多空间来扩展**lv**。
+
+ # vgextend vg_tecmint /dev/sda1
+
+让我们检查现在正在使用的卷组的大小。
+
+ # vgs
+
+
+
+扩展卷组
+
+我们甚至可以看到哪个**PV**用于创建使用中的特定卷组。
+
+ # pvscan
+
+
+检查卷组
+
+这里,我们可以看到卷组所处的物理卷。我们已经添加了一个pv,而且它完全空着。在扩展逻辑卷之前,让我们先看看我们所拥有的各个卷组的大小。
+
+
+
+检查所有逻辑卷
+
+- LogVol00用于Swap。
+- LogVol01用于/。
+- 现在我们有16.50GB大小的空间用于/(root)。
+- 当前有4226物理扩展(PE)可用。
+
+现在,我们打算去扩展/分区**LogVol01**。在扩展后,我们可以像上面那样列出它的大小以确认。我们能可以使用GB或PE来扩展,这一点我已经在LVM第一部分解释过了,这里我使用PE来扩展。
+
+要获取可用的物理扩展大小,运行以下命令。
+
+ # vgdisplay
+
+
+
+检查可用的物理扩展
+
+总共有**4607**空闲PE可用,亦即有**18GB**空间空间可用。因此,我们可以将我们的逻辑卷扩展到**18GB**这么大。让我们使用PE大小来扩展。
+
+ # lvextend -l +4607 /dev/vg_tecmint/LogVol01
+
+使用**+**来添加更多空间。在扩展后,我们需要改变文件系统大小,使用以下命令。
+
+ # resize2fs /dev/vg_tecmint/LogVol01
+
+
+扩展逻辑卷
+
+- 用来使用物理扩展扩展逻辑卷的命令。
+- 这里我们可以看到它从16.51GB扩展到了34GB。
+- 如果文件系统已被挂载并处于使用中,改变文件系统大小。
+- 要扩展逻辑卷,我们不需要卸载文件系统
+
+现在,让我们看看当前使用的改变大小后的逻辑卷。
+
+ # lvdisplay
+
+
+
+改变逻辑卷大小
+
+- LogVol01用于扩展的卷 /。
+- 扩展后,从16.50GB上升到了34.50GB。
+- C当前扩展,在扩展前有4226,我们已经添加了4607个扩展,因此现在有8833。
+
+现在,如果我们检查可用的vg的话,空闲PE将会是0。
+
+ # vgdisplay
+
+查看扩展的结果。
+
+ # pvs
+ # vgs
+ # lvs
+
+
+
+验证分区大小改变
+
+- 添加的新物理卷。
+- 卷组vg_tecmint从17.51GB扩展到了35.50GB。
+- 逻辑卷LogVol01从16.51GB扩展到了34.50GB。
+
+这里,我们已经完成扩展卷组和逻辑卷的过程。让我们一起迈向逻辑卷管理中一些有趣的部分。
+
+#### 缩减逻辑卷(LVM) ####
+
+这里,我们将了解如何缩减逻辑卷。人人都说它很危险,在缩减lvm的时候可能会导致灾难。缩减lvm在逻辑卷管理中比其它部分要来得确实有趣得多。
+
+- 在开始之前,备份好数据总是对的,这样如果出错,就不会头痛了。
+- 要缩减逻辑卷,需要小心翼翼地完成5个步骤。
+- 在扩展一个卷的时候,我们可以在该卷挂载时扩展它(在线),但对于缩减,我们必须在缩减前卸载文件系统。
+
+让我们来了解一下下面这5个步骤。
+
+- 卸载文件系统以便缩减。
+- 在卸载后检查文件系统。
+- 缩减文件系统。
+- 5减少当前逻辑卷大小。
+- 再检查文件系统以防出错。
+- 将文件系统再次挂载回去。
+
+为了演示,我已经创建了独立的卷组和逻辑卷。这里,我将缩减逻辑卷**tecmint_reduce_test**。现在它有18GB大小,我们需要将它缩减到**10GB**而不丢失数据。也就是说,我们需要从**18GB**中减少**8GB**。卷中已经有**4GB**被使用。
+
+ 18GB ---> 10GB
+
+在缩减大小的时候,我们只需要缩减8GB,所以在缩减后它总计会有10GB。
+
+ # lvs
+
+
+缩减逻辑卷
+
+这里,我们可以看到文件系统信息。
+
+ # df -h
+
+
+检查文件系统大小
+
+- 卷大小是18GB。
+- 它已经使用了3.9GB。
+- 可用空间是13GB。
+
+首先,卸载挂载点。
+
+ # umount -v /mnt/tecmint_reduce_test/
+
+
+
+卸载分区
+
+然后,使用以下命令来检查文件系统错误。
+
+ # e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test
+
+
+扫描分区错误
+
+**注意**:必须通过所有文件系统检查的5个步骤,若未完全通过,则你的文件系统可能存在问题。
+
+接下来,缩减文件系统。
+
+ # resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 8GB
+
+
+缩减文件系统
+
+使用GB来缩减逻辑卷。
+
+ # lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test
+
+
+缩减逻辑分区
+
+要使用PE来缩减逻辑卷,我们需要知道默认PE大小和卷组的总PE大小,以进行一次小小的计算来得出准确的缩减大小。
+
+ # lvdisplay vg_tecmint_extra
+
+这里,我们需要使用bc命令来做一些小计算来获得10GB的PE大小。
+
+ 1024MB x 10GB = 10240MB or 10GB
+
+ 10240MB / 4PE = 2048PE
+
+按**CTRL+D**来退出BC。
+
+
+
+计算PE大小
+
+使用PE来缩减大小。
+
+ # lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test
+
+
+使用PE来缩减大小
+
+将文件系统大小调整回去。在这一步中,如果发生任何错误,这就意味着我们已经将文件系统搞乱了。
+
+ # resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test
+
+
+
+将文件系统挂载回同样的挂载点。
+
+ # mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/
+
+
+挂载文件系统
+
+检查分区和文件的大小。
+
+ # lvdisplay vg_tecmint_extra
+
+这里,我们可以看到最后的结果,逻辑已经被缩减到10GB。
+
+
+
+在本文中,我们已经了解了如何来扩增卷组、逻辑卷以及缩减逻辑卷。在下一部分(第三部分)中,我们将了解如何为逻辑卷做快照并将它恢复到更早的状态。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/extend-and-reduce-lvms-in-linux/
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
+[1]:http://linux.cn/article-3965-1.html
diff --git a/published/201410/20140813 How to remove file metadata on Linux.md b/published/201410/20140813 How to remove file metadata on Linux.md
new file mode 100644
index 0000000000..f9a0bb7050
--- /dev/null
+++ b/published/201410/20140813 How to remove file metadata on Linux.md
@@ -0,0 +1,114 @@
+如何在Linux上移除文件内的隐私数据
+================================================================================
+
+典型的数据文件通常关联着“元数据”,其包含这个文件的描述信息,表现为一系列属性-值的集合。元数据一般包括创建者名称、生成文件的工具、文件创建/修改时期、创建位置和编辑历史等等。几种流行的元数据标准有 EXIF(图片)、RDF(web资源)和DOI(数字文档)等。
+
+虽然元数据在数据管理领域有它的优点,但事实上它会[危害][1]你的隐私。相机图片中的EXIF格式数据会泄露出可识别的个人信息,比如相机型号、拍摄相关的GPS坐标和用户偏爱的照片编辑软件等。在文档和电子表格中的元数据包含作者/所属单位信息和相关的编辑历史。不一定这么绝对,但诸如[metagoofil][2]一类的元数据收集工具在信息收集的过程中常最作为入侵测试的一部分被利用。
+
+对那些想要从共享数据中擦除一切个人元数据的用户来说,有一些方法从数据文件中移除元数据。你可以使用已有的文档或图片编辑软件,通常有自带的元数据编辑功能。在这个教程里,我会介绍一种不错的、单独的**元数据清理工具**,其目标只有一个:**匿名一切私有元数据**。
+
+[MAT][3](元数据匿名工具箱)是一款专业的元数据清理器,使用Python编写。它属于Tor旗下的项目,而且是Live 版的隐私增强操作系统 [Trails][4] 的标配应用。
+
+与诸如[exiftool][5]等只能对有限种类的文件类型进行写入的工具相比,MAT支持从各种各样的文件中消除元数据:图片(png、jpg)、文档(odt、docx、pptx、xlsx和pdf)、归档文件(tar、tar.bz2)和音频(mp3、ogg、flac)等。
+
+### 在Linux上安装MAT ###
+
+在基于Debian的系统(Ubuntu或Linux Mint)上,已经打包好MAT,所以安装很直接:
+
+ $ sudo apt-get install mat
+
+在Fedora上,并没有预先生成的MAT软件包,所以你需要从源码生成。这是我在Fedora上生成MAT的步骤(不成功的话,请查看教程底部):
+
+ $ sudo yum install python-devel intltool python-pdfrw perl-Image-ExifTool python-mutagen
+ $ sudo pip install hachoir-core hachoir-parser
+ $ wget https://mat.boum.org/files/mat-0.5.tar.xz
+ $ tar xf mat-0.5.tar.xz
+ $ cd mat-0.5
+ $ python setup.py install
+
+### 使用MAT-GUI匿名元数据 ###
+
+一旦安装好,通过GUI和命令行都可以使用MAT。输入这个命令启动MAT的GUI:
+
+ $ mat-gui
+
+尝试清理一个包含如下内置元数据的实例文档文件(如private.odt)。
+
+
+
+点击“添加”按钮来添加需要清理的文件到MAT中。一旦载入文件,点击“确认”按钮对所有隐藏的元数据信息进行扫描。
+
+
+
+只要元数据被MAT检测到,“State”状态就会被标记成“Dirty”。双击文件可以查看检测到的元数据。
+
+
+
+点击“清理”按钮来清除文件中的元数据。MAT会自动清空文件中的所有私有元数据字段。
+
+
+
+清除后的状态中不包含任何私有可辨识的痕迹:
+
+
+
+### 从命令行匿名元数据 ###
+
+ $ mat -c .
+
+正如前面提到的,另一种调用MAT的方式是从命令行,使用mat命令可达到。
+
+为了检查任何敏感的元数据,先前往文件所在的目录,然后运行:
+
+ $ mat -c .
+
+这样会扫描当前目录和其子目录下的所有文件,并报告它们的状态(已清理或未清理)。
+
+
+
+你可以使用“-d”选项来查看检测到的真实元数据:
+
+ $ mat -d
+
+
+
+如果不为mat命令提供任何选项,默认操作会移除文件的元数据。如果要在清理的过程中保留原始文件的备份,使用“-b”选项。下面命令会清除所有文件的元数据,并将原始文件存储为“*.bak”文件。
+
+ $ mat -b .
+
+
+
+查看所支持的文件类型,请运行:
+
+ $ mat -l
+
+
+
+### 故障排除 ###
+
+当前我在Fedora上使用编译版本的MAT遇到了下列问题。当我尝试在Fedora清除归档/文档文件的元数据时(如*.gz、*.odt、*.docx),MAT因为下列错误失败。如果你知道如何解决这个问题,请在评论里回复我。
+
+ File "/usr/lib64/python2.7/zipfile.py", line 305, in __init__
+ raise ValueError('ZIP does not support timestamps before 1980')
+ ValueError: ZIP does not support timestamps before 1980
+
+### 总结 ###
+
+MAT是一款简单但非常好用的工具,用来预防从元数据中无意泄露私人数据。请注意如果有必要,文件内容也需要保护。MAT能做的是消除与文件相关的元数据,但并不会对文件本身进行任何操作。简而言之,MAT是一名救生员,因为它可以处理大多数常见的元数据移除,但不应该只指望它来保证你的隐私。[译者注:养成良好的隐私保护意识和习惯才是最好的方法]
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/remove-file-metadata-linux.html
+
+作者:[Dan Nanni][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://www.theguardian.com/world/2013/sep/30/nsa-americans-metadata-year-documents
+[2]:http://code.google.com/p/metagoofil/
+[3]:https://mat.boum.org/
+[4]:https://tails.boum.org/
+[5]:http://xmodulo.com/2013/08/view-or-edit-pdf-and-image-metadata-from-command-line-on-linux.html
\ No newline at end of file
diff --git a/published/201410/20140813 Setup Flexible Disk Storage with Logical Volume Management (LVM) in Linux--PART 1.md b/published/201410/20140813 Setup Flexible Disk Storage with Logical Volume Management (LVM) in Linux--PART 1.md
new file mode 100644
index 0000000000..fc80f34f20
--- /dev/null
+++ b/published/201410/20140813 Setup Flexible Disk Storage with Logical Volume Management (LVM) in Linux--PART 1.md
@@ -0,0 +1,353 @@
+在Linux中使用LVM构建灵活的磁盘存储(第一部分)
+================================================================================
+**逻辑卷管理器(LVM)**让磁盘空间管理更为便捷。如果一个文件系统需要更多的空间,可以在它的卷组中将空闲空间添加到其逻辑卷中,而文件系统可以根据你的意愿调整大小。如果某个磁盘启动失败,用于替换的磁盘可以使用卷组注册成一个物理卷,而逻辑卷扩展可以将数据迁移到新磁盘而不会丢失数据。
+
+
+
+*在Linux中创建LVM存储*
+
+在如今,每台服务器空间都会因为我们的需求增长而不断扩展。逻辑卷可以用于RAID,SAN。单个物理卷将会被加入组以创建卷组,在卷组中,我们需要切割空间以创建逻辑卷。在使用逻辑卷时,我们可以使用某些命令来跨磁盘、跨逻辑卷扩展,或者减少逻辑卷大小,而不用重新格式化和重新对当前磁盘分区。卷可以跨磁盘抽取数据,这会增加I/O数据量。
+
+### LVM特性 ###
+
+- 可以在任何时候灵活地扩展空间。
+- 可以安装和处理任何文件系统。
+- 可以通过迁移来恢复错误磁盘。
+- 可以使用快照功能恢复文件系统到先前的阶段。等等……
+
+####我的服务器设置 - 需求 ####
+
+- 操作系统 —— 安装有LVM的CentOS 6.5
+- 服务器IP地址 —— 192.168.0.200
+
+### 在Linux中创建LVM磁盘存储 ###
+
+**1.** 我们已经在虚拟磁盘(VDA)中使用了带LVM的CentOS 6.5操作系统。在此,我们可以使用下列命令查看到物理卷(PV),卷组(VG),逻辑卷(LV)。
+
+ # pvs
+ # vgs
+ # lvs
+
+
+*检查物理卷*
+
+下面是上面截图中各个参数的说明。
+
+- 物理磁盘大小(PV Size)
+- 用作虚拟磁盘vda的磁盘
+- 卷组大小(VG Size)
+- 卷组名称(vg_tecmint)
+- 逻辑卷名称(LogVol00,LogVol01)
+- LogVol00分配给swap,大小1GB
+- LogVol01分配给/,大小16.5GB
+
+从上面看,我们可以知道VDA磁盘中没有足够的空闲空间。
+
+**2.** 为了创建一个**新卷组**,我们需要在这台服务器上添加额外的**3个硬盘**。3个驱动器不是强制使用的,只要一个就足够用来创建新的**VG**,并在其中创建**LV**了。我在这里添加了更多的磁盘,目的只是用于演示和更多命令功能的说明。
+
+下面是我已经额外添加的磁盘。
+
+ sda, sdb, sdc
+
+----------
+
+ # fdisk -l
+
+
+*验证添加的磁盘*
+
+- 用于操作系统(CentOS 6.5)的默认磁盘。
+- 默认磁盘上定义的分区(vda1 = swap),(vda2 = /)。
+- 额外添加的磁盘Disk1,Disk2,Disk3。
+
+各个磁盘大小都是20GB,默认的卷组的PE大小为4MB,我们在该服务器上配置的卷组使用默认PE。
+
+
+*卷组显示*
+
+- **VG Name** – 卷组名称。
+- **Format** – LVM架构使用LVM2。
+- **VG Access** – 卷组为读写模式,备好待用。
+- **VG Status** – 卷组可调整大小,如果我们需要添加更多空间,我们可以扩展更多。
+- **Cur LV** – 当前卷组中有2个逻辑卷。
+- **CurPV and Act PV** – 当前使用的物理磁盘是1(vda),已被激活,因此我们可以使用该卷组。
+- **PE Size** – 磁盘的物理扩展大小,可以定义使用PE,或者GB,LVM的默认PE大小是4MB。例如,如果我们需要创建5GB大小的逻辑卷,我们可以使用总计1280 PE,你们懂我的意思么?
+
+这里解释一下 -> 1024MB = 1GB,这样的话,1024MB x 5 = 5120PE = 5GB,然后5120/4 = 1280,4是默认的PE大小。
+
+- Total PE – 该卷组具有的PE数量。
+- Alloc PE – 总的PE使用量,已经使用的全部PE,4482 x 4PE = 17928。
+- Free PE – 这里因为已经使用,所以没有空闲PE了。
+
+**3.** 只使用了vda,当前CentOS在使用lvm的vda物理磁盘中安装了**/boot,/,swap,**,该磁盘中没有空间剩余。
+
+ # df -TH
+
+
+*检查磁盘空间*
+
+上面的图片中显示了用于根的挂载点已使用了**18GB**,因此没有空闲空间可用了。
+
+**4.** 那么,让我们创建新的物理卷(**pv**),以及名为**tecmint_add_vg**的卷组(**vg**),并在其中创建逻辑卷(**lv**)。这里,我们可以创建4个逻辑卷,分别名为 **tecmint_documents**,**tecmint_manager**以及**tecmint_add_vg**。
+
+我们可以扩展当前使用的卷组以获得更多空间。但在这里,我们将要做的是,创建新的卷组,然后在里面肆意妄为吧。过会儿,我们可以看到怎样来扩展使用中的卷组的文件系统。
+
+在使用新磁盘前,我们需要使用fdisk来对磁盘分区。
+
+ # fdisk -cu /dev/sda
+
+- **c** – 关闭DOS兼容模式,推荐使用该选项。
+- **u** – 当列出分区表时,会以扇区而不是柱面显示。
+
+
+*创建新的物理分区*
+
+接下来,请遵循以下步骤来创建新分区。
+
+- 选择**n**来创建新分区。
+- 选择**p**来创建主分区。
+- 选择我们需要创建的分区号。
+- 按**Enter**两次来使用整个磁盘空间。
+- 我们需要修改新创建的分区类型,输入**t**。
+- 选择需要修改的分区号,选择我们创建的分区号**1**。
+- 这里,我们需要修改类型。我们需要创建LVM,因此我们使用LVM的类型代码8e。如果不知道类型代码,按**L**来列出所有类型代码。
+- 打印我们创建的分区以确认。
+- 这里我们可以看到Linux LVM的ID 8e。
+- 写入修改并退出fdisk。
+
+重复以上步骤,为另外2个磁盘sdb和sdc创建新分区。然后重启机器,使用fdisk命令来验证分区表。
+
+ # fdisk -l
+
+
+*验证分区表*
+
+### 创建物理卷 ###
+
+**5.** 现在,该使用3个磁盘来创建物理卷了。这里,我已经使用pvs命令将物理磁盘列了出来,现在只有一个默认的**pvs**被列出来了。
+
+ # pvs
+
+然后,使用命令创建新的物理磁盘。
+
+ # pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
+
+再次列出磁盘来查看新创建物理磁盘。
+
+ # pvs
+
+
+*创建物理卷*
+
+### 创建卷组 ###
+
+**6.** 使用可用的空闲PV来创建名为**tecmint_add_vg**的卷组,PE大小为32。显示当前卷组,我们可以看到只有带有1个PV的一个卷组在使用。
+
+ # vgs
+
+这将使用上面创建的3个物理卷创建名为**tecmint_add_vg**的卷组,PE大小为32MB。
+
+ # vgcreate -s 32M tecmint_add_vg /dev/sda1 /dev/sdb1 /dev/sdc1
+
+接下来,再次运行vgs命令来验证卷组。
+
+ # vgs
+
+
+*创建卷组*
+
+
+*验证卷组*
+
+理解vgs命令输出:
+
+- 卷组名。
+- 本卷组中使用的物理卷。
+- 显示本卷组中的可用空闲空间。
+- 卷组总大小。
+- 本卷组中的逻辑卷,这里我们还没创建,所以是0。
+- SN = 卷组包含的快照数量。(后面,我们会创建一个快照。)
+- 卷组状态,如可写,可读,可调整大小,已导出,部分的和集群的。这里是wz——意为w = 可写,z = 可调整大小。
+- 卷组中使用的物理卷(PV)数量。
+
+**7.** 使用命令来显示更多卷组信息。
+
+ # vgs -v
+
+
+*检查卷组信息*
+
+**8.** 要获取更多关于新创建的卷组信息,运行以下命令。
+
+ # vgdisplay tecmint_add_vg
+
+
+*列出新卷组*
+
+- 卷组名称
+- 使用的LVM架构。
+- 可读写,备好待用。
+- 该卷组可以调整大小。
+- 使用和激活的物理磁盘数量。
+- 卷组总大小。
+- 这里单个PE大小为32。
+- 该卷组中可用的PE总数。
+- 当前还没有在卷组中创建任何LV,因此它是空闲的。
+- 该卷组的UUID。
+
+### 创建逻辑卷 ###
+
+**9.** 现在,创建3个名为**tecmint_documents**,**tecmint_manager**和**tecmint_public**的逻辑卷。这里,我们可以看到如何分别以PE为单位和GB为单位来创建逻辑卷。首先,使用以下命令来列出当前逻辑卷。
+
+ # lvs
+
+
+*列出当前卷组*
+
+**10.** 这些逻辑卷处于**vg_tecmint**卷组中使用**pvs**命令来列出并查看有多少空闲空间可以创建逻辑卷。
+
+ # pvs
+
+
+*检查空闲空间*
+
+**11.** 卷组大小为**54GB**,而且未被使用,所以我们可以在该组内创建LV。让我们将卷组平均划分大小来创建3个逻辑卷,就是说**54GB**/3 = **18GB**,创建出来的单个逻辑卷应该会是18GB。
+
+#### 方法1: 使用PE创建逻辑卷 ####
+
+首先,让我们使用物理扩展(PE)为单位来创建逻辑卷。我们需要知道分配到该卷组的默认PE大小,以及总的可用PE大小来创建新的逻辑卷,运行下面的命令来获取使用中的卷组信息。
+
+ # vgdisplay tecmint_add_vg
+
+
+*创建新逻辑卷*
+
+- 默认分配给该卷组的PE为32MB,这里单个的PE大小为32MB。
+- 总可用PE是1725。
+
+只要用bc命令做一点小小的计算来看看就知道了。
+
+ # bc
+
+----------
+
+ 1725PE/3 = 575 PE.
+ 575 PE x 32MB = 18400 --> 18GB
+
+
+*计算磁盘空间*
+
+按**CRTL+D**退出**bc**。现在让我们使用575个PE来创建3个逻辑卷。
+
+ # lvcreate -l (Extend size) -n (name_of_logical_volume) (volume_group)
+
+ # lvcreate -l 575 -n tecmint_documents tecmint_add_vg
+
+ # lvcreate -l 575 -n tecmint_manager tecmint_add_vg
+
+ # lvcreate -l 575 -n tecmint_public tecmint_add_vg
+
+- -**l** – 使用扩展大小创建
+- -**n** – 给逻辑卷命名
+
+使用lvs命令来列出创建的逻辑卷。
+
+ # lvs
+
+
+*列出创建的逻辑卷*
+
+#### 方法2: 使用GB大小创建逻辑卷 ####
+
+在使用GB大小创建逻辑卷时,我们不能获得精确的大小。因此,最好的办法是用扩展。
+
+ # lvcreate -L 18G -n tecmint_documents tecmint_add_vg
+
+ # lvcreate -L 18G -n tecmint_manager tecmint_add_vg
+
+ # lvcreate -L 18G -n tecmint_public tecmint_add_vg
+
+ # lvcreate -L 17.8G -n tecmint_public tecmint_add_vg
+
+使用lvs命令来列出创建的逻辑卷。
+
+ # lvs
+
+
+*验证创建的逻辑卷*
+
+这里,我们可以看到,当创建第三个LV的时候,我们不能收集到18GB空间。这是因为尺寸有小小的改变,但在使用或者尺寸来创建LV时,这个问题会被忽略。
+
+### 创建文件系统 ###
+
+**12.** 要使用逻辑卷,我们需要格式化。这里我使用ext4文件系统来创建卷,并打算挂载到**/mnt**。
+
+ # mkfs.ext4 /dev/tecmint_add_vg/tecmint_documents
+
+ # mkfs.ext4 /dev/tecmint_add_vg/tecmint_public
+
+ # mkfs.ext4 /dev/tecmint_add_vg/tecmint_manager
+
+
+*创建Ext4文件系统*
+
+**13.** 让我们在**/mnt**下创建目录,并将已创建好文件系统的逻辑卷挂载上去。
+
+ # mount /dev/tecmint_add_vg/tecmint_documents /mnt/tecmint_documents/
+
+ # mount /dev/tecmint_add_vg/tecmint_public /mnt/tecmint_public/
+
+ # mount /dev/tecmint_add_vg/tecmint_manager /mnt/tecmint_manager/
+
+使用下面的命令来列出并确认挂载点。
+
+ # df -h
+
+
+*挂载逻辑卷*
+
+#### 永久挂载 ####
+
+现在,这些逻辑卷是临时挂载上去的,要永久挂载,我们需要添加条目到fstab中。要达到这个目的,让我们使用下面的命令来获取挂载条目
+
+ # cat /etc/mtab
+
+在输入来自mtab中的挂载条目内容时,我们需要在fstab中做些小小的改变,修改rw为默认。
+
+ # vim /etc/fstab
+
+我们的fstab条目应该和下面的类似,使用wq!保存并退出fstab。
+
+ /dev/mapper/tecmint_add_vg-tecmint_documents /mnt/tecmint_documents ext4 defaults 0 0
+ /dev/mapper/tecmint_add_vg-tecmint_public /mnt/tecmint_public ext4 defaults 0 0
+ /dev/mapper/tecmint_add_vg-tecmint_manager /mnt/tecmint_manager ext4 defaults 0 0
+
+*
+*获取mtab挂载条目*
+
+
+*打开fstab文件*
+
+
+*添加自动挂载条目*
+
+重启前,执行mount -a命令来检查fstab条目。
+
+ # mount -av
+
+
+*验证fstab条目*
+
+这里,我们已经了解了怎样来使用逻辑卷构建灵活的存储,从使用物理磁盘到物理卷,物理卷到卷组,卷组再到逻辑卷。
+
+在我即将奉献的文章中,我将介绍如何扩展卷组、逻辑卷,减少逻辑卷,拍快照以及从快照中恢复。 --------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/create-lvm-storage-in-linux/
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
diff --git a/published/201410/20140815 How to manage a WiFi connection from the command line.md b/published/201410/20140815 How to manage a WiFi connection from the command line.md
new file mode 100644
index 0000000000..27c5818355
--- /dev/null
+++ b/published/201410/20140815 How to manage a WiFi connection from the command line.md
@@ -0,0 +1,78 @@
+在命令行中管理 Wifi 连接
+================================================================================
+无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的。这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用;第二,如果您是从命令行中来安装系统的,管理 WiFi 就非常可怕。我总是试图避免在命令行中处理 WiFi 。但 Linux 的世界,应具有无所畏惧的精神。如果您不知道怎样操作,您需要继续往下来学习之,这就是写这篇文章的唯一原因。所以我迫使自己学习如何在命令行中管理 WiFi 连接。
+
+通过命令行来设置连接到 WiFi 当然有很多种方法,但在这篇文章里,同时也是一个建议,我使用最基本的方法:那就是使用在任何发布版本中都有的包含在“默认包”里的程序和工具。或者说我偏向于使用这一种方法。使用此方法显而易见的好处是这个操作过程能在任意有 Linux 系统的机器上复用。不好的一点是它相对来说比较复杂。
+
+首先,我假设您们都已经正确安装了无线网卡的驱动程序。没有这前提,后续的一切都如镜花水月。如果您你机器确实没有正确安装上,您应该看看关于您的发布版本的维基和文档。
+
+然后您就可以用如下命令来检查是哪一个接口来支持无线连接的:
+
+ $ iwconfig
+
+
+
+一般来说,无线接口都叫做 wlan0。当然也有例外的,但在这篇教程中我们将会一直用通用叫法。
+
+以防万一,你得确认下以使此接口服务是启动着的:
+
+ $ sudo ip link set wlan0 up
+
+一但确认了无线接口是工作着的,你就可以用如下命令来扫描附近的无线网络了:
+
+ $ sudo iw dev wlan0 scan | less
+
+
+
+根据扫描出的结果,可以得到网络的名字(它的 SSID),它的信息强度,以及它使用的是哪个安全加密的(如:WEP、WPA/WPA2)。从此时起,将会分成两条路线:情况很好、很容易的以及情况稍微复杂的。
+
+如果您想连接的网络是没有加密的,您可以用下面的命令直接连接:
+
+ $ sudo iw dev wlan0 connect [网络 SSID]
+
+如果网络是用 WEP 加密的,也非常容易:
+
+ $ sudo iw dev wlan0 connect [网络 SSID] key 0:[WEP 密钥]
+
+但网络使用的是 WPA 或 WPA2 协议的话,事情就不好办了。这种情况,您就得使用叫做 wpa_supplicant 的工具,它默认是没有的。然后需要修改 /etc/wpa_supplicant/wpa_supplicant.conf 文件,增加如下行:
+
+ network={
+ ssid="[网络 ssid]"
+ psk="[密码]"
+ priority=1
+ }
+
+我建议你在文件的末尾添加它,并确保其他配置都注释掉。要注意 SSID 和密码字串都是大小写敏感的。在技术上您也可以把接入点的名称当做是 SSID,使用 wpa_supplicant 工具的话会有合适的 SSID 来替代这个名字。
+
+一旦配置文件修改完成后,在后台启动此命令:
+
+ $ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
+
+最后,无论是连到开放的网络还是加密的安全网络,您都得获取 IP 地址。简单地使用如下命令:
+
+ $ sudo dhcpcd wlan0
+
+如果一切顺利的话,您应该已经通过 DHCP 获取到了一个全新的本地 IP,这个过程是在后台自动完成的。如果想确认下是否真正连接上的话,您可以再一次输入如下命令检查:
+
+ $ iwconfig
+
+
+
+最后,我认为多次重复第一步的检查操作是很有必要的。您永远不会知道什么时候您的图形用户界面挂了,或者是什么时候不能访问无线连接了,所以现在就准备着用命令来检测吧。还有,前面提到过的,有很多种方式(如 NetworkManager、[wicd][1]、[netcfg][2]、[wifi][3] 等等)来管理无线连接。我坚持使用最基本的方式,但在某些情况下,我使用的工具可能您还没有,所以您在之前就得先下载它们。另一方面,有很多高级的应用程序,他们确实是不包含在“默认包”里面的,使用它们会大大简化操作过程。但一般建议是开始的话最好从基本的来。
+
+关于从命令行来管理连接 WiFi 您还有其他方式方法吗?请在评论中让我们知道。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/manage-wifi-connection-command-line.html
+
+作者:[Adrien Brochard][a]
+译者:[runningwater](https://github.com/runningwater)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/adrien
+[1]:http://wicd.sourceforge.net/
+[2]:https://www.archlinux.org/netcfg/
+[3]:https://github.com/rockymeza/wifi
\ No newline at end of file
diff --git a/published/201410/20140818 Can Ubuntu Do This--Answers to The 4 Questions New Users Ask Most.md b/published/201410/20140818 Can Ubuntu Do This--Answers to The 4 Questions New Users Ask Most.md
new file mode 100644
index 0000000000..ff5a3bc4c1
--- /dev/null
+++ b/published/201410/20140818 Can Ubuntu Do This--Answers to The 4 Questions New Users Ask Most.md
@@ -0,0 +1,82 @@
+Ubuntu 有这功能吗?-回答4个新用户最常问的问题
+================================================================================
+
+
+**在谷歌输入‘Can Ubunt[u]’,一系列的自动建议会展现在你面前。这些建议都是根据最近搜索用户最频繁检索而形成的。
+
+对于Linux老用户来说,他们都胸有成竹的回答这些问题。但是对于新用户或者那些还在探索类似Ubuntu这样的发行版是否适合的人来说,他们不是十分清楚这些答案。这都是中肯,真实而且是基本的问题。
+
+所以,在这片文章,我将会去回答4个最常会被搜索到的"Can Ubuntu...?"问题。
+
+### Ubuntu可以取代Windows吗?###
+
+
+
+*Windows 并不是每个人都喜欢或都必须的*
+
+是的。Ubuntu(和其他Linux发行版)是可以安装到任何一台有能力运行微软系统的电脑。
+
+无论你觉得**应不应该**取代它,要不要替换只取决于你自己的需求。
+
+例如,你在上大学,所需的软件都只是Windows而已。暂时而言,你是不需要完全更换你的系统。对于工作也是同样的道理。如果你工作所用到的软件只是微软Office, Adobe Creative Suite 或者是一个AutoCAD应用程序,不是很建议你更换系统,坚持你现在所用的软件就足够了。
+
+但是对于那些用Ubuntu完全取代微软系统的我们,Ubuntu 提供了一个安全的桌面工作环境。这个桌面工作环境可以运行与支持很广的硬件环境。基本上,每个东西都有软件的支持,从办公套件到网页浏览器,视频应用程序,音乐应用程序到游戏。
+
+### Ubuntu 可以运行 .exe文件吗?###
+
+
+
+*你可以在Ubuntu运行一些Windows应用程序*
+
+是可以的,尽管这些程序不是一步到位,或者不能保证运行成功。这是因为这些软件原本就是在Windows下运行的,本来就与其他桌面操作系统不兼容,包括Mac OS X 或者 Android (安卓系统)。
+
+那些专门为Ubuntu(和其他 Debian 系列的 Linux 发行版本)的软件安装包都是带有“.deb”的文件后缀名。它们的安装过程与安装 .exe 的程序是一样的 -双击安装包,然后根据屏幕提示完成安装。 (LCTT 译注:RedHat 系统采用.rpm 文件,其它的也有各种不同的安装包格式,等等,作为初学者,你可以当成是各种压缩包格式来理解)
+
+但是Linux是很多样化的。它使用一个名为"Wine"的兼容层,可以运行许多当下很流行的应用程序。 (Wine不是一个模拟器,但是简单来看可以当成一个快捷方式。)这些程序不会像在Windows下运行得那么顺畅,或者有着出色的用户界面。然而,它足以满足日常的工作要求。
+
+一些很出名的Windows软件是可以通过Wine来运行在Ubuntu操作系统上,这包括老版本的Photoshop和微软办公室软件。 有关兼容软件的列表,[参照Wine应用程序数据库][1]。
+
+### Ubuntu会有病毒吗?###
+
+
+
+*它可能有错误,但是它并有病毒*
+
+理论上,它会有病毒。但是,实际上它没有。
+
+Linux发行版本是建立在一个病毒,蠕虫,隐匿程序都很难被安装,运行或者造成很大影响的环境之下的。
+
+例如,很多应用程序都是在没有特别管理权限要求,以普通用户权限运行的。病毒要访问系统关键部分的请求也是需要用户管理权限的。很多软件的提供都是从那些维护良好的而且集中的资源库,例如Ubuntu软件中心,而不是一些不知名的网站。 由于这样的管理使得安装一些受感染的软件的几率可以忽略不计。
+
+你应不应该在Ubuntu系统安装杀毒软件?这取决于你自己。为了自己的安心,或者如果你经常通过Wine来使用Windows软件,或者双系统,你可以安装ClamAV。它是一个免费的开源的病毒扫描应用程序。你可以在Ubuntu软件中心找到它。
+
+你可以在Ubuntu维基百科了解更多关于病毒在Linux或者Ubuntu的信息。 [Ubuntu 维基百科][2]。
+
+### 在Ubuntu上可以玩游戏吗?###
+
+
+
+*Steam有着上百个专门为Linux设计的高质量游戏*
+
+当然可以!Ubuntu有着多样化的游戏,从传统简单的2D象棋,拼字游戏和扫雷游戏,到很现代化的AAA级别的要求显卡很强的游戏。
+
+你首先可以去 **Ubuntu 软件中心**。这里你会找到很多免费的,开源的和收费的游戏,包括广受好评的独立制作游戏,像World of Goo 和Braid。当然也有其他传统游戏的提供,例如,Pychess(国际象棋),four-in-a-row(四子棋)和Scrabble clones(猜字拼字游戏)。
+
+对于游戏狂热爱好者,你可以安装**Steam for Linux**。在这里你可以找到各种这样最新最好玩的游戏。
+
+另外,记得留意这个网站:[Humble Bundle][3]。每个月都会有两周的这种“只买你想要的”的套餐。作为游戏平台,它是对Linux特别友好的支持者。因为每当一些新游戏出来的时候,它都保证可以在Linux下搜索到。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/08/ubuntu-can-play-games-replace-windows-questions
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[Shaohao Lin](https://github.com/shaohaolin)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:https://appdb.winehq.org/
+[2]:https://help.ubuntu.com/community/Antivirus
+[3]:https://www.humblebundle.com/
\ No newline at end of file
diff --git a/published/201410/20140818 Disable reboot using Ctrl-Alt-Del Keys in RHEL or CentOS.md b/published/201410/20140818 Disable reboot using Ctrl-Alt-Del Keys in RHEL or CentOS.md
new file mode 100644
index 0000000000..0efa52c08e
--- /dev/null
+++ b/published/201410/20140818 Disable reboot using Ctrl-Alt-Del Keys in RHEL or CentOS.md
@@ -0,0 +1,44 @@
+在RHEL/CentOS 5/6下停用按下Ctrl-Alt-Del 重启系统的功能
+================================================================================
+在Linux里,由于对安全的考虑,我们允许任何人按下**Ctrl-Alt-Del**来**重启**系统。但是在生产环境中,应该停用按下Ctrl-Alt-Del 重启系统的功能。
+
+在这篇文章里,我们将要介绍如何在RHEL和CentOS下停用该热键。
+
+### 在RHEL 5.X和CentOS 5.X下 ###
+
+保护**init**进程免于**Ctrl-Alt-Del**,像下面一样编辑'**/etc/inittab**'里由'**ca::ctrlaltdel**:'开头的一行:
+
+ [root@localhost ~]# cat /etc/inittab
+ # Trap CTRL-ALT-DELETE
+ #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
+
+我们还可以改变'ca::ctrlaltdel:'这行来输出日志 ,如果任何人想用该热键重启服务器,就会有日志,
+
+ [root@localhost ~]# cat /etc/inittab
+ # Trap CTRL-ALT-DELETE
+ ca::ctrlaltdel:/bin/logger -p authpriv.warning -t init "Console-invoked Ctrl-Alt-Del was ignored"
+
+### 在RHEL6.X和CentOS 6.X下 ###
+
+在RHEL6.X和CentOS 6.X下, 该热键的行为由'**/etc/init/control-alt-delete.conf**'控制.
+
+**第一步** 在变化之前,先用下列命令备份配置
+
+ [root@localhost ~]# cp -v /etc/init/control-alt-delete.conf /etc/init/control-alt-delete.override
+
+**第二步**编辑文件,把'exec /sbin/shutdown'这一行用下方配置代替,这个配置会在每次按下Ctrl-Alt-Del 时输出日志:
+
+ [root@localhost ~]# cat /etc/init/control-alt-delete.conf
+ exec /usr/bin/logger -p authpriv.notice -t init "Ctrl-Alt-Del was pressed and ignored"
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/disable-reboot-using-ctrl-alt-del-keys/
+
+作者:[Pradeep Kumar][a]
+译者:[2q1w2007](https://github.com/2q1w2007)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
\ No newline at end of file
diff --git a/published/201410/20140818 How to configure Access Control Lists (ACLs) on Linux.md b/published/201410/20140818 How to configure Access Control Lists (ACLs) on Linux.md
new file mode 100644
index 0000000000..c960731533
--- /dev/null
+++ b/published/201410/20140818 How to configure Access Control Lists (ACLs) on Linux.md
@@ -0,0 +1,120 @@
+配置 Linux 的访问控制列表(ACL)
+================================================================================
+使用拥有权限控制的Liunx,工作是一件轻松的任务。它可以定义任何user,group和other的权限。无论是在桌面电脑或者不会有很多用户的虚拟Linux实例,或者当用户不愿意分享他们之间的文件时,这样的工作是很棒的。然而,如果你是在一个大型组织,你运行了NFS或者Samba服务给不同的用户,然后你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。
+
+Linux(和其他Unix等POSIX兼容的操作系统)有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要确认3个权限组:owner、group和other。而使用ACL,你可以增加权限给其他用户或组别,而不单只是简单的"other"或者是拥有者不存在的组别。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。
+
+ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不确定你的文件系统是否支持ACL,请参考文档。
+
+### 在文件系统使ACL生效 ###
+
+首先,我们需要安装工具来管理ACL。
+
+Ubuntu/Debian 中:
+
+ $ sudo apt-get install acl
+
+CentOS/Fedora/RHEL 中:
+
+ # yum -y install acl
+
+Archlinux 中:
+
+ # pacman -S acl
+
+出于演示目的,我将使用ubuntu server版本,其他版本类似。
+
+安装ACL完成后,需要激活我们磁盘分区的ACL功能,这样我们才能使用它。
+
+首先,我们检查ACL功能是否已经开启。
+
+ $ mount
+
+
+
+你可以注意到,我的root分区中ACL属性已经开启。万一你没有开启,你需要编辑/etc/fstab文件,在你需要开启ACL的分区的选项前增加acl标记。
+
+
+
+现在我们需要重新挂载分区(我喜欢完全重启,因为我不想丢失数据),如果你对其它分区开启ACL,你必须也重新挂载它。
+
+ $ sudo mount / -o remount
+
+干的不错!现在我们已经在我们的系统中开启ACL,让我们开始和它一起工作。
+
+### ACL 范例 ###
+
+基础ACL通过两条命令管理:**setfacl**用于增加或者修改ACL,**getfacl**用于显示分配完的ACL。让我们来做一些测试。
+
+我创建一个目录/shared给一个假设的用户,名叫freeuser
+
+ $ ls -lh /
+
+
+
+我想要分享这个目录给其他两个用户test和test2,一个拥有完整权限,另一个只有读权限。
+
+首先,为用户test设置ACL:
+
+ $ sudo setfacl -m u:test:rwx /shared
+
+现在用户test可以随意创建文件夹,文件和访问在/shared目录下的任何地方。
+
+
+
+现在我们增加只读权限给用户test2:
+
+ $ sudo setfacl -m u:test2:rx /shared
+
+注意test2读取目录需要执行(x)权限
+
+
+
+让我来解释下setfacl命令格式:
+
+- **-m** 表示修改ACL。你可以增加新的,或修改存在的ACL
+- **u:** 表示用户。你可以使用 **g** 来设置组权限
+- **test** 用户名
+- **:rwx** 需要设置的权限。
+
+现在让我向你展示如何读取ACL:
+
+ $ ls -lh /shared
+
+
+
+你可以注意到,正常权限后多一个+标记。这表示ACL已经设置成功。要具体看一下ACL,我们需要运行:
+
+ $ sudo getfacl /shared
+
+
+
+最后,如果你需要移除ACL:
+
+ $ sudo setfacl -x u:test /shared
+
+
+
+如果你想要立即擦除所有ACL条目:
+
+ $ sudo setfacl -b /shared
+
+
+
+最后,在设置了ACL文件或目录工作时,cp和mv命令会改变这些设置。在cp的情况下,需要添加“p”参数来复制ACL设置。如果这不可行,它将会展示一个警告。mv默认移动ACL设置,如果这也不可行,它也会向您展示一个警告。
+
+### 总结 ###
+
+使用ACL让在你想要分享的文件上拥有更多的能力和控制,特别是在NFS/Samba服务。此外,如果你的主管共享主机,这个工具是必备的。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/configure-access-control-lists-acls-linux.html
+
+作者:[Christopher Valerio][a]
+译者:[VicYu](http://www.vicyu.net)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/valerio
diff --git a/published/201410/20140818 Linux FAQs with Answers--How to fix 'X11 forwarding request failed on channel 0'.md b/published/201410/20140818 Linux FAQs with Answers--How to fix 'X11 forwarding request failed on channel 0'.md
new file mode 100644
index 0000000000..4d0b4ff59d
--- /dev/null
+++ b/published/201410/20140818 Linux FAQs with Answers--How to fix 'X11 forwarding request failed on channel 0'.md
@@ -0,0 +1,50 @@
+Linux有问必答:如何修复“X11 forwarding request failed on channel 0”错误
+================================================================================
+> **问题**: 当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" (X11 转发请求在通道0上失败)的错误。 我为什么会遇到这个错误,并且该如何修复它
+
+
+
+首先,我们假设你已经正确启用了[SSH的X11转发][1]。
+
+如果你在登录时遇到"X11 forwarding request failed on channel 0" (X11 转发请求在通道0上失败),这里可能有不同的原因,解决的方法也不同。
+
+### 方案一 ###
+
+出于安全原因,OpenSSH服务默认将X11转发请求绑定到本地回环地址上,并且在DISPLAY环境变量中将主机名设置为“localhost”。在这样的设定下,一些
+X11客户端不能正确处理X11转发,这会导致报告中的错误。要解决这个问题,在/etc/ssh/sshd配置文件中加入下面这几行,它可以将X11转发请求绑定到外网卡地址上。
+
+ $ sudo vi /etc/ssh/sshd_config
+
+----------
+
+ X11Forwarding yes
+ X11UseLocalhost no
+
+重启SSH使设置生效:
+
+ $ sudo /etc/init.d/ssh restart (Debian 6, Ubuntu or Linux Mint)
+ $ sudo systemctl restart ssh.service (Debian 7, CentOS/RHEL 7, Fedora)
+ $ sudo service sshd restart (CentOS/RHEL 6)
+
+### 方案二 ###
+
+如果远程主机的SSH服务禁止了IPv6,那么X11转发失败的错误也有可能发生。要解决这个情况下的错误。打开/etc/ssh/sshd配置文件,取消对"AddressFamily all" (如果有这条的话)的注释。接着加入下面这行。这会强制SSH服务只使用IPv4而不是IPv6。(LCTT 译注:此处恐有误,AddressFamily 没有 all 这个参数,而 any 代表同时支持 IPv6和 IPv4,以此处的场景而言,应该是关闭IPv6支持,只支持 IPv4,所以此处应该是“注释掉 AddressFamily any”才对。)
+
+ $ sudo vi /etc/ssh/sshd_config
+
+----------
+
+ AddressFamily inet
+
+再说一次,重启SSH服务来完成设置
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/fix-broken-x11-forwarding-ssh.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html
\ No newline at end of file
diff --git a/published/201410/20140819 How to Encrypt Email in Linux.md b/published/201410/20140819 How to Encrypt Email in Linux.md
new file mode 100644
index 0000000000..6996d816ea
--- /dev/null
+++ b/published/201410/20140819 How to Encrypt Email in Linux.md
@@ -0,0 +1,105 @@
+在Linux中加密邮件
+================================================================================
+
+*Kgpg为了创建了管理加密秘钥提供了一个很好的GUI界面.*
+
+如果你一直在考虑如何加密电子邮件,那么在众多的邮件服务和邮件客户端中挑来挑去一定是件头痛的事情.可以考虑两种加密方法:SSL或TLS加密会保护发送到邮件服务器的登录名和密码.[Gunpg][1]是一款标准的、强大的Linux加密工具,可以加密和认证消息.如果你可以管理自己的GPG加密,并不考虑第三方工具,那它就够了,其它的我们将在稍后讨论.
+
+即便加密了消息,你仍然会暴露在流量分析中,因为消息头部必须是明文形式.所以需要另一款比如[Tor network][2]来隐藏你在互联网上的足迹.我们会看看各种邮件服务和客户端,以及其中的利弊.
+
+### 忘掉Web邮件 ###
+
+如果你使用过GMail, Yahoo,Hotmail或者其它Web邮件提供商的邮件服务,那就忘掉它们吧.你在Web浏览器里输入的任何信息都会暴露在JavaScript攻击中,而且无论服务提供商提供什么保障都是过眼云烟(译者注:此说法靠谱否?).GMail,Yahoo和Hotmail均提供SSL/TLS加密来防止消息被窃听.但是它们不会提供任何保护来阻碍它们自己的数据挖掘,因此并不会提供端到端的加密.Yahoo和Google都声称将在明年推出端到端的加密.对此我持怀疑态度,因为如果一旦它们的核心业务数据挖掘受到干预,它们就什么都干不了了.
+
+市面上也有各式各样的声称可以为所有类型的电子邮件都能提供安全加密的第三方邮件加密服务,比如[Virtru][3]和[SafeMess][4].对此我依旧表示怀疑,因为无论是谁,只要持有加密秘钥就可以访问你的消息,所以你还是要依赖于对他们的信任而不是技术.
+
+对等消息可以避免许多使用集中化服务中的缺陷.[RetroShare][5]和[Bitmessage][6]是两种流行的范例.我不知道它们是否如实所述,但这么说肯定有其可取之处.
+
+那Anddroid和iOS又如何呢?假设大部分的Android和iOS应用都没有权限获取你的消息的话,那就是最安全的.不要照搬我说的 -- 在应用将要安装到你的设备上时麻烦读读相关的服务条款并检查所要求的权限.即便在初次安装时它们的条款是可接受的,也记得单方面的条款改变是行业的标准,所以做最坏的打算是最安全的.
+
+### 零知识(Zero Knowledge) ###
+
+[Proton Mail][7]是一款全新的邮件服务,声称采用零知识就可以实现消息加密.认证和消息加密分为两个单独的步骤,Proton遵照Swiss隐私条款,它们不会通过日志记录用户的活动.零知识加密提供真正的安全.这代表只有你拥有你的加密秘钥,如果你丢了它们,你的消息就无法恢复了.
+
+也有许多加密电子邮件服务声称可以保护你的隐私.认真阅读细则,查看红色标注的地方,比如受限的用户数据采集,与好友分享,与执法部门的合作等.这些条款暗示它们会收集和共享用户数据,拥有权限获取你的加密秘钥,并读取你的消息.
+
+### Linux邮件客户端 ###
+
+一款独立的开源邮件客户端,比如, Mutt, Claws, Evolution, Sylpheed和Alpine,可建立你自己控制的GnuPG秘钥,给你大部分的保护.(建立更安全的电子邮件和Web浏览的最容易的方式是运行TAILS live的Linux发行版.详情查看[通过 Tor、TAILS 和 Debian 在网上保护你自己][8]。)
+
+无论你使用的是TAILS还是一款标准Linux发行版,管理GnuPG的方法是相同的,所以下面来学习如何使用GnuPG加密消息.
+
+### 使用GnuPG ###
+
+首先,熟悉一下相关术语。OpenPGP是一种开放的电子邮件加密和认证协议,基于菲利普·齐默曼的Pretty Good Privacy (PGP)。GNU Privacy Guard (GnuPG or GPG)是OpenPGP的GPL实现。GnuPG使用对称公钥加密算法,也就是说会生成一对密钥:一个任何人都可以用来加密发送给你的消息的公钥和一个只有你自己拥有用来解密消息的的私钥。GnuPG执行两个分开的函数:数字化签名消息以证明消息来自你和加密消息。任何人都可以读到你的数字签名消息,但只有那些与你交换密钥的人才可以读取加密消息。切记千万不要与他人分享你的密钥!只能分享公钥。
+
+Seahorse是GnuPG对应的GNOME图形化前端,KGpg是KDE图形化的GnuPG工具。
+
+现在我们执行生成和管理GunPG密钥的基本步骤。这个命令生成一个新的密钥:
+
+ $ gpg --gen-key
+
+这个过程有许多步骤;对于大部分人来说,只需要回答所有的问题,遵循默认设置就好。当你生成你的密钥时,记下来并将其保存在一个安全的地方,因为如果你丢掉了它,你就不能解密任何消息了。**任何关于不要写下密码的建议都是错误的。**我们中的大部分人要记住许多登录名和密码,包括那些我们几乎从来不会用到的,所以全部记住它们是不现实的。你知道当人们不写下他们的密码时会发生什么吗?**他们会选择生成简单的密码并不断重复使用。**你存储在电脑里的任何东西都潜在地会被攻击窃取;一个保存在上锁的柜子里的小本是无法通过渗透获取的,除了物理的入侵,当然入侵者要知道如何去寻找它。
+
+我必须叮嘱你们去弄清楚如何使用新密钥去配置邮件客户端,因为每一个都不同。你可以按照如下操作列出你的密钥:
+
+ $ gpg --list-keys
+ /home/carla/.gnupg/pubring.gpg
+ ------------------------------
+ pub 2048R/587DD0F5 2014-08-13
+ uid Carla Schroder (my gpg key)
+ sub 2048R/AE05E1E4 2014-08-13
+
+这能快速地获知像密钥的位置、名称(也就是UID)等必要信息。假设你想要把公钥上传到密钥服务器,可以参考实例操作:
+
+ $ gpg --send-keys 'Carla Schroder' --keyserver http://example.com
+
+当你生成了一个新的密钥要上传到公钥服务器,你也应该生成一个撤销证书。不要推迟到以后做———当你生成新密钥时就生成它。你可以给它取任意的名称,比如使用一个像mycodeproject.asc的描述性名称来代替revoke.asc:
+
+ $ gpg --output revoke.asc --gen-revoke 'Carla Schroder'
+
+如果你的密钥变得不可靠了,你可以通过向keyring导入撤销证书来撤销它:
+
+ $ gpg --import ~/.gnupg/revoke.asc
+
+然后生成并上传一个新的密钥来取代它。当它们更新到密钥数据库时,所有使用旧密钥的用户都会被通知。
+
+你必须像保护私钥一样保护撤销证书。将它拷贝到CD或USB存储器中,并加锁,然后从电脑中删除。这是明文密钥,所以你甚至可以将它打印出来。
+
+如果你需要一份复制粘贴的密钥,比如在允许将密钥粘贴到网页表格中的公用keyring中,或者是想将公钥发布到个人站点上,那么你必须生成一份公钥的ASCII-armored版本:
+
+ $ gpg --output carla-pubkey.asc --export -a 'Carla Schroder'
+
+这会生成可见的明文公钥,就像下面这个小例子:
+
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+ Version: GnuPG v1
+ mQENBFPrn4gBCADeEXKdrDOV3AFXL7QQQ+i61rMOZKwFTxlJlNbAVczpawkWRC3l
+ IrWeeJiy2VyoMQ2ZXpBLDwGEjVQ5H7/UyjUsP8h2ufIJt01NO1pQJMwaOMcS5yTS
+ [...]
+ I+LNrbP23HEvgAdNSBWqa8MaZGUWBietQP7JsKjmE+ukalm8jY8mdWDyS4nMhZY=
+ =QL65
+ -----END PGP PUBLIC KEY BLOCK-----
+
+相信上面的教程应该使你学会如何使用GnuPG。如果不够,[The GnuPG manuals][9]上有使用GnuPG和相关全部配置的详细信息。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/learn/tutorials/784165-how-to-encrypt-email-in-linux
+
+作者:[Carla Schroder][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/component/ninjaboard/person/3734
+[1]:http://www.openpgp.org/members/gnupg.shtml
+[2]:https://www.torproject.org/
+[3]:https://www.virtru.com/
+[4]:https://www.safemess.com/
+[5]:http://retroshare.sourceforge.net/
+[6]:http://retroshare.sourceforge.net/
+[7]:https://protonmail.ch/
+[8]:http://www.linux.com/learn/docs/718398-protect-yourself-online-with-tor-+tails-and-debian
+[9]:https://www.gnupg.org/documentation/manuals.html
diff --git a/published/201410/20140822 15 Practical Examples of 'echo' command in Linux.md b/published/201410/20140822 15 Practical Examples of 'echo' command in Linux.md
new file mode 100644
index 0000000000..b5898209e7
--- /dev/null
+++ b/published/201410/20140822 15 Practical Examples of 'echo' command in Linux.md
@@ -0,0 +1,222 @@
+Linux中的15个‘echo’ 命令实例
+================================================================================
+**echo**是一种最常用的与广泛使用的内置于Linux的bash和C shell的命令,通常用在脚本语言和批处理文件中来在标准输出或者文件中显示一行文本或者字符串。
+
+
+
+echo命令例子
+
+echo命令的语法是:
+
+ echo [选项] [字符串]
+
+###**1.** 输入一行文本并显示在标准输出上
+
+ $ echo Tecmint is a community of Linux Nerds
+
+会输出下面的文本:
+
+ Tecmint is a community of Linux Nerds
+
+###**2.** 输出一个声明的变量值
+
+比如,声明变量**x**并给它赋值为**10**。
+
+ $ x=10
+
+会输出它的值:
+
+ $ echo The value of variable x = $x
+
+ The value of variable x = 10
+
+
+###**3.** 使用‘**\b**‘选项
+
+‘**-e**‘后带上'\b'会删除字符间的所有空格。
+
+**注意:** Linux中的选项‘**-e**‘扮演了转义字符反斜线的翻译器。
+
+ $ echo -e "Tecmint \bis \ba \bcommunity \bof \bLinux \bNerds"
+
+ TecmintisacommunityofLinuxNerds
+
+###**4.** 使用‘**\n**‘选项
+
+‘**-e**‘后面的带上‘\n’行会在遇到的地方作为新的一行
+
+ $ echo -e "Tecmint \nis \na \ncommunity \nof \nLinux \nNerds"
+
+ Tecmint
+ is
+ a
+ community
+ of
+ Linux
+ Nerds
+
+###**5.** 使用‘**\t**‘选项
+
+‘**-e**‘后面跟上‘\t’会在空格间加上水平制表符。
+
+ $ echo -e "Tecmint \tis \ta \tcommunity \tof \tLinux \tNerds"
+
+ Tecmint is a community of Linux Nerds
+
+###**6.** 也可以同时使用换行‘**\n**‘与水平制表符‘**\t**‘
+
+ $ echo -e "\n\tTecmint \n\tis \n\ta \n\tcommunity \n\tof \n\tLinux \n\tNerds"
+
+ Tecmint
+ is
+ a
+ community
+ of
+ Linux
+ Nerds
+
+###**7.** 使用‘**\v**‘选项
+
+‘**-e**‘后面跟上‘\v’会加上垂直制表符。
+
+ $ echo -e "\vTecmint \vis \va \vcommunity \vof \vLinux \vNerds"
+
+ Tecmint
+ is
+ a
+ community
+ of
+ Linux
+ Nerds
+
+###**8.** 也可以同时使用换行‘**\n**‘与垂直制表符‘**\v**‘
+
+ $ echo -e "\n\vTecmint \n\vis \n\va \n\vcommunity \n\vof \n\vLinux \n\vNerds"
+
+
+ Tecmint
+
+ is
+
+ a
+
+ community
+
+ of
+
+ Linux
+
+ Nerds
+
+**注意:** 你可以按照你的需求连续使用两个或者多个垂直制表符,水平制表符与换行符。
+
+###**9.** 使用‘**\r**‘选项
+
+‘**-e**‘后面跟上‘\r’来指定输出中的回车符。(LCTT 译注:会覆写行开头的字符)
+
+ $ echo -e "Tecmint \ris a community of Linux Nerds"
+
+ is a community of Linux Nerds
+
+###**10.** 使用‘**\c**‘选项
+
+‘**-e**‘后面跟上‘\c’会抑制输出后面的字符并且最后不会换新行。
+
+ $ echo -e "Tecmint is a community \cof Linux Nerds"
+
+ Tecmint is a community @tecmint:~$
+
+###**11.** ‘**-n**‘会在echo完后不会输出新行
+
+ $ echo -n "Tecmint is a community of Linux Nerds"
+ Tecmint is a community of Linux Nerds@tecmint:~/Documents$
+
+###**12.** 使用‘**\a**‘选项
+
+‘**-e**‘后面跟上‘\a’选项会听到声音警告。
+
+ $ echo -e "Tecmint is a community of \aLinux Nerds"
+ Tecmint is a community of Linux Nerds
+
+**注意:** 在你开始前,请先检查你的音量设置。
+
+###**13.** 使用echo命令打印所有的文件和文件夹(ls命令的替代)
+
+ $ echo *
+
+ 103.odt 103.pdf 104.odt 104.pdf 105.odt 105.pdf 106.odt 106.pdf 107.odt 107.pdf 108a.odt 108.odt 108.pdf 109.odt 109.pdf 110b.odt 110.odt 110.pdf 111.odt 111.pdf 112.odt 112.pdf 113.odt linux-headers-3.16.0-customkernel_1_amd64.deb linux-image-3.16.0-customkernel_1_amd64.deb network.jpeg
+
+###**14.** 打印制定的文件类型
+
+比如,让我们假设你想要打印所有的‘**.jpeg**‘文件,使用下面的命令。
+
+ $ echo *.jpeg
+
+ network.jpeg
+
+###**15.** echo可以使用重定向符来输出到一个文件而不是标准输出
+
+ $ echo "Test Page" > testpage
+
+ ## Check Content
+ avi@tecmint:~$ cat testpage
+ Test Page
+
+### echo 选项列表 ###
+
+
+
+
+
+
+ 选项
+ 描述
+
+
+ -n
+ 不输出末尾的换行符。
+
+
+ -e
+ 启用反斜线转义。
+
+
+ \b
+ 退格
+
+
+ \\
+ 反斜线
+
+
+ \n
+ 新行
+
+
+ \r
+ 回车
+
+
+ \t
+ 水平制表符
+
+
+ \v
+ 垂直制表符
+
+
+
+
+就是这些了,不要忘记在下面留下你的反馈。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/echo-command-in-linux/
+
+作者:[Avishek Kumar][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
\ No newline at end of file
diff --git a/published/201410/20140822 Want To Start An Open Source Project--Here's How.md b/published/201410/20140822 Want To Start An Open Source Project--Here's How.md
new file mode 100644
index 0000000000..b670b904fe
--- /dev/null
+++ b/published/201410/20140822 Want To Start An Open Source Project--Here's How.md
@@ -0,0 +1,107 @@
+如何开始一个开源项目
+================================================================================
+> 循序渐进的指导
+
+**你有这个问题**:你已经权衡了[开源代码的优劣势][1],你也已经知道[你的软件需要成为一个开源项目][2],但是,你不知道怎么做好的开源项目。
+
+当然,你也许已经知道[如何创建Github帐号并开始][3],但是这些事实上是做开源比较简单的部分。而真真正正难的部分是如何让足够多的人,关注你的项目并给你的项目做贡献。
+
+
+
+接下来的原则是会指导你构建和发布其他人愿意关注的代码。
+
+### 基本原则 ###
+
+选择开源可能有许多原因。也许你希望吸引一个社区来帮助编写你的代码。也许,[总所周知][4],你明白“开源 —— 一个开发小团队内部编写代码的倍增器。”
+
+或者你只是认为这是必须做的事,[如同英国政府一样][5]。
+
+无论何种原因,为了开源能够成功,是必须要做很多的计划去给将来使用这个软件的人们。如同[我在2005写道][6],如果你“需要大量的人做贡献(bug修复,扩展等等)”,那么你需要“写一个好的文档,使用易于接受的编程语言,和使用模型架构”。
+
+对了,你也需要写人们在乎的软件。
+
+每天思考你依靠的技术:操作系统,web应用框架,数据库,等等。远离像航天这样,特殊行业的小生态技术,让开源拥有更多的可能性以便外部的(人的)产生兴趣和做出贡献。更广泛的应用技术,找到更多的贡献者和用户。
+
+总的来说,任何成功的开源项目有以下共同点:
+
+1.最佳的时间时机(解决市场实际需求)
+
+2.一个健壮,包括开发者和非开发者的团队
+
+3.一个易于参与的结构(更多详见下文)
+
+4.模块化编码,使新贡献者更容易找到一个项目损坏的部分去贡献,比强迫他们理解巨大的代码的每一部分要好
+
+5.代码可以广泛应用(或者达到一个狭窄的流行都比一个“自生自灭的”小生态更吸引人)
+
+6.很好初始源码(如果你放垃圾在Github,你也只会得到垃圾回报)
+
+7.一个自由的许可证-我[个人更爱Apache型的许可证][7],因为它让开发者采用时障碍最低,当然许多成功的项目(如Linux和MySQL)使用GPL许可证也有很棒的效果。
+
+上述几项,是一个项目成功邀请参与者最难的部分。这是因为他们不是关于代码而是关于人。
+
+### 开源不单是一个许可证 ###
+
+今年,最棒的一件事是我读到是来自 Vitorio Miliano ([@vitor_io][8])的文章,他是用户体验交互设计师,来自德州的奥斯丁。[Miliano][9]指出,那些不在你的项目上工作的人才是“外行”,从本质上说无论他们技术能力的级别,他们仅仅懂一点代码(也没关系)。
+
+所以你的工作,他认为,是使人加入,为你贡献你的代码变得简单。当阐述如何涉及非程序员到开源项目中,他指出项目的一些事项,项目领导应需要有效地得加入一些任何技术或不懂技术的人到开源项目。
+
+> 1. 一种方法去了解你的项目价值
+>
+> 2. 一种方法去了解他们可以为项目提供的价值
+>
+> 3. 一种方法去了解他们可以从贡献代码获得的价值
+>
+> 4. 一种方法去了解贡献流程,端到端
+>
+> 5. 贡献机制适用于现有的工作流
+
+经常,项目领导者想要集中于上述的第五步,却不提供理解1到4的路径。如果潜在的贡献者不欣赏“为什么”,“如何”共享就变得不重要了。
+
+注意,至关重要的,Miliano写道,建立拥有一个通俗易懂的简介的项目很有价值,如同任何时候通过简介给每一个人演示可访问性和包容性。他断言道,这增加了额外的好处,文档和其他的版本介绍的内容变得通俗易懂。
+
+关于第二点,程序员或非程序员同样地需要能够明白到底你需要什么,这样他们就可以认识到他们的贡献(方向)。有时就像MongoDB解决方案架构师[Henrik Ingo告诉我][10]那样,"一个聪明的人可以贡献很棒的代码,但是项目成员不能理解它(代码)",如果在组织内承认这个贡献并且研究后理解,那么这就不是一个糟糕的问题。
+
+但是不会经常发生。
+
+### 你真的想领导一个开源项目吗? ###
+
+许多开源项目的领导提倡包容性,但是他们拥有任何事除了包容。如果你不想要人们做贡献,不要假装开源。
+
+是的,有时这是老生常谈的话题。就像HackerNews最近的报道[一个开发者的开发工作][11]。
+
+> 小项目可以得到很多,基本不需要很多人合作来完成。我看到了他们的进步,但是我没有看到我自己的进步:如果我帮助了他们,显然,如果我花费了有限的时间在与那些计算机科学的硕士管理合作上,而没有参与编码,这不是我想要的。所以我忽略了他们。
+
+这是一个保持理智的的好方法,但这个态度并不能预示着这个项目会被广阔的分享。
+
+如果你确实很少关心非程序员设计的贡献、文档,或者无论其他什么,那么请首先了解那些。再次强调,如果这是实情,你的项目就不能成为一个开源项目。
+
+当然,排除感觉不总是可靠的。 就像ActiveState的副总裁Bernard Golden告诉过我,“一些将会成为开发人员将会对现有的“小集团”开发团体这种感觉感到恐惧,虽然这不一定正确。”
+
+现在,若使了解开发人员为什么要贡献并邀请做开发,意味着更多的开源项目投资,更长久地生存。
+
+图片由[Shutterstock][12]提供
+
+--------------------------------------------------------------------------------
+
+via: http://readwrite.com/2014/08/20/open-source-project-how-to
+
+作者:[Matt Asay][a]
+译者:[Vic___/VicYu](http://www.vicyu.net)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://readwrite.com/author/matt-asay
+[1]:http://readwrite.com/2014/07/07/open-source-software-pros-cons
+[2]:http://readwrite.com/2014/08/15/open-source-software-business-zulily-erp-wall-street-journal
+[3]:http://www.cocoanetics.com/2011/01/starting-an-opensource-project-on-github/
+[4]:http://werd.io/2014/the-roi-of-building-open-source-software
+[5]:https://www.gov.uk/design-principles
+[6]:http://asay.blogspot.com/2005/09/so-you-want-to-build-open-source.html
+[7]:http://www.cnet.com/news/apache-better-than-gpl-for-open-source-business/
+[8]:https://twitter.com/vitor_io
+[9]:http://opensourcedesign.is/blogging_about/import-designers/
+[10]:https://twitter.com/h_ingo/status/501323333301190656
+[11]:https://news.ycombinator.com/item?id=8122814
+[12]:http://www.shutterstock.com/
diff --git a/published/201410/20140825 Linux FAQs with Answers--How to install Shutter on CentOS.md b/published/201410/20140825 Linux FAQs with Answers--How to install Shutter on CentOS.md
new file mode 100644
index 0000000000..2f84ed9a8d
--- /dev/null
+++ b/published/201410/20140825 Linux FAQs with Answers--How to install Shutter on CentOS.md
@@ -0,0 +1,23 @@
+Linux有问必答:如何在CentOS上安装Shutter
+================================================================================
+> **问题**:我想要在我的CentOS桌面上试试Shutter屏幕截图程序,但是,当我试着用yum来安装Shutter时,它总是告诉我“没有shutter包可用”。我怎样才能在CentOS上安装Shutter啊?
+
+[Shutter][1]是一个用于Linux桌面的开源(GPLv3)屏幕截图工具。它打包有大量用户友好的功能,这让它成为Linux中功能最强大的屏幕截图程序之一。你可以用Shutter来捕捉一个规则区域、一个窗口、整个桌面屏幕、或者甚至是来自任意专用地址的一个网页的截图。除此之外,你也可以用它内建的图像编辑器来对捕获的截图进行编辑,应用不同的效果,将图像导出为不同的图像格式(svg,pdf,ps),或者上传图片到公共图像主机或者FTP站点。
+
+Shutter 在 CentOS (截止至版本 7)上没有预先构建好的软件包。幸运的是,有一个第三方提供的叫做 Nux Dextop 的 RPM 中提供了 Shutter 软件包。 所以在 CentOS 上[启用 Nux Dextop 软件库][2],然后使用下列命令来安装它:
+
+ $ sudo yum --enablerepo=nux-dextop install shutter
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/install-shutter-centos.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://shutter-project.org/
+[2]:http://linux.cn/article-3889-1.html
diff --git a/published/201410/20140825 Linux FAQs with Answers--How to show a MAC learning table of Linux bridge.md b/published/201410/20140825 Linux FAQs with Answers--How to show a MAC learning table of Linux bridge.md
new file mode 100644
index 0000000000..53a448b51f
--- /dev/null
+++ b/published/201410/20140825 Linux FAQs with Answers--How to show a MAC learning table of Linux bridge.md
@@ -0,0 +1,23 @@
+Linux有问必答:如何显示Linux网桥的MAC学习表
+================================================================================
+
+> **问题**:我想要检查一下我用brctl工具创建的Linux网桥的MAC地址学习状态。请问,我要怎样才能查看Linux网桥的MAC学习表(或者转发表)?
+
+Linux网桥是网桥的软件实现,这是Linux内核的内核部分。与硬件网桥相类似,Linux网桥维护了一个2层转发表(也称为MAC学习表,转发数据库,或者仅仅称为FDB),它跟踪记录了MAC地址与端口的对应关系。当一个网桥在端口N收到一个包时(源MAC地址为X),它在FDB中记录为MAC地址X可以从端口N到达。这样的话,以后当网桥需要转发一个包到地址X时,它就可以从FDB查询知道转发到哪里。构建一个FDB常常称之为“MAC学习”或仅仅称为“学习”过程。
+
+你可以使用以下命令来检查Linux网桥当前转发表或MAC学习表。
+
+ $ sudo brctl showmacs
+
+
+
+该命令将显示一个学习到的MAC地址与关联端口的列表。各个条目都有一个相关的附于其上的老化计时器,因此转发条目可以在一定时间后刷新,以使MAC学习表更新到最新。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/show-mac-learning-table-linux-bridge.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140826 Linus Torvalds Promotes Linux for Desktops, Embedded Computing.md b/published/201410/20140826 Linus Torvalds Promotes Linux for Desktops, Embedded Computing.md
new file mode 100644
index 0000000000..4e7ac1dbc1
--- /dev/null
+++ b/published/201410/20140826 Linus Torvalds Promotes Linux for Desktops, Embedded Computing.md
@@ -0,0 +1,31 @@
+Linus Torvalds 希望推动Linux在桌面和嵌入式计算方面共同发展
+================================================================================
+> Linux的内核开发者和开源领袖Linus Torvalds前一段时间表达了关于Linux桌面和嵌入式设备中Linux的未来的看法。
+
+
+
+什么是Linux桌面和嵌入式设备中Linux的未来?这是个值得讨论的问题,不过Linux的创始人和开源巨人Linus Torvalds在最近一届 [Linux 基金会][1] 的LinuxCon大会上,在一次对话中表达了一些有趣的观点。
+
+作为敲出第一版Linux内核代码并且在1991年将它们共享在互联网上的家伙,Torvalds毫无疑问是开源软件甚至是所有软件中最著名的开发者,如今他依然活跃在其中。在此期间,Torvalds是许多人和组织中唯一一个引领着Linux发展的个体,它的观点往往能影响着开源社区,而且,作为一个内核开发者的角色赋予了他能决定哪些特点和代码能被放进操作系统内部的强大权利。
+
+所以说,关注Torvalds所说的话是很值得的, "我还是挺想要桌面的。" [他在上月的LinuxCon大会上这样说道][2] 那表明他仍然着眼于作为使PC更加强大的操作系统Linux的未来,尽管十年来Linux桌面市场的份额一直很少,而且大部分围绕Linux的商业活动都去涉及服务器或者安卓手机去了。
+
+但是,Torvalds还说,确保Linux桌面能有个宏伟的未来意味着解决了受阻的 “基础设施问题”,庞大的开源软件生态系统和硬件世界让他充满信心。这不是Linux核心代码本身的问题,而是要让Linux桌面渠道友好,这可能是伟大的Torvalds和他开发同伴们所需要花精力去达到的目标。这取决于app的开发者、硬件制造商和其它有志于实现人们能方便使用基于Linux的计算平台的各方力量。
+
+另一方面,Torvalds也提到了他的憧憬,就是内核开发者们能简化嵌入式装置中的Linux代码——这也许和让Linux内核更加桌面友好化的任务有所分歧。但这也不一定,因为无论如何,Linux都是以模块化设计的,单内核代码库不能同时满足桌面用户和嵌入式开发者的需求,这是没有道理的,因为这取决于他们使用的模块。
+
+作为一个一直想看到更多搭载Linux的嵌入式设备出现的Linux桌面用户,我希望Torvalds的所有愿望都可以实现,到那时我就可以只用Linux来做所有我想做的事情,无论是在电脑桌面上、手机上、车上,或者是任何其它的地方。
+
+--------------------------------------------------------------------------------
+
+via: http://thevarguy.com/open-source-application-software-companies/082514/linus-torvalds-promotes-linux-desktops-and-embedded-compu
+
+作者:[Christopher Tozzi][a]
+译者:[ZTinoZ](https://github.com/ZTinoZ)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://thevarguy.com/author/christopher-tozzi
+[1]:http://linuxfoundation.org/
+[2]:http://www.eweek.com/enterprise-apps/linux-founder-linus-torvalds-still-wants-the-desktop.html
diff --git "a/published/201410/20140829 6 Interesting Funny Commands of Linux (Fun in Terminal) \342\200\223 Part II.md" "b/published/201410/20140829 6 Interesting Funny Commands of Linux (Fun in Terminal) \342\200\223 Part II.md"
new file mode 100644
index 0000000000..8cce36ecbb
--- /dev/null
+++ "b/published/201410/20140829 6 Interesting Funny Commands of Linux (Fun in Terminal) \342\200\223 Part II.md"
@@ -0,0 +1,116 @@
+终端中的乐趣:6个有趣的Linux命令行工具
+================================================================================
+之前, 我们展示了一些有关有趣的 Linux 命令行命令的文章, 这些文章告诉我们, Linux 并不像看起来那样复杂, 如果我们知道如何使用的话, 反而会非常有趣. Linux 命令行可以简洁而完美地执行一些复杂的任务, 并且十分有趣.
+
+- [Linux命令及Linux终端的20个趣事][3]
+- [Linux终端的乐趣之把玩字词计数][2]
+
+
+
+*有趣的 Linux 命令*
+
+前者包含了20个有趣的 Linux 命令/脚本(和子命令), 得到了读者的高度赞扬. 而另一篇文章虽然没有之前那篇文章那么受欢迎,包含了一些命令/脚本和改进,让你能够玩儿转文本文件、单词和字符串.
+
+这篇文章介绍了一些新的有趣命令和单行脚本,一定会让你感到欣喜.
+
+### 1. pv 命令 ###
+
+你也许曾经看到过电影里的模拟字幕, 它们好像是被实时敲打出来的. 如果我么能在终端里实现这样的效果, 那不是很好?
+
+这是可以做到的. 我们可以安装通过 '**apt**' 或者 '**yum**' 工具在 Linux 系统上安装 '**pv**' 命令. 安装命令如下.
+
+ # yum install pv [在基于 RedHat 的系统上]
+
+ # sudo apt-get install pv [在基于 Debian 的系统上]
+
+'**pv**' 命令安装成功之后, 我们尝试运行下面的单行命令在终端查看实时文字输出的效果.
+
+ $ echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10
+
+
+
+*正在运行的 pv 命令*
+
+**注意**: '**q**' 选项表示'安静',没有其他输出信息, '**L**' 选项表示每秒转化的字节数上限. 调整数字的值(必须是整数)可以以另外的方向显示文字效果。
+
+### 2. toilet 命令 ###
+
+用单行脚本命令 '**toilet**' 在终端里显示一个添加边框的文本怎么样呢?同样, 你必须保证 '**toilet**' 已经安装在你的电脑上. 如果没有的话, 请使用 apt 或 yum 安装. (译者注: 'toilet' 并不在 Fedora 的官方仓库里, 你可以从 github 上下载源代码来安装)
+
+ $ while true; do echo “$(date | toilet -f term -F border –Tecmint)”; sleep 1; done
+
+
+
+*正在运行的 toilet 命令*
+
+**注意**: 上面的脚本需要使用 **ctrl+z** 键来暂停.
+
+### 3. rig 命令 ###
+
+这个命令每次生成一个随机的身份信息和地址. 要运行这个命令, 你需要用 apt 或 yum 安装 '**rig**'. (译者注: 'rig' 不在 Fedora 的官方仓库中, 我只在 rpmseek 上找到了 Ubuntu 的 deb 包, 可以使用它来安装.)
+
+ # rig
+
+
+
+*正在运行的 rig 命令*
+
+### 4. aview 命令 ###
+
+你觉得在终端用 ASCII 格式显示图片怎么样? 我们必须用 apt 或 yum 安装软件包 '**aview**'. (译者注: 'avieww' 不在 Fedora 的官方仓库中, 可以从 aview 的[项目主页][4]上下载源代码来安装. ) 在当前工作目录下有一个名为 '**elephant.jpg**' 的图片, 我想用 ASCII 模式在终端查看.
+
+ $ asciiview elephant.jpg -driver curses
+
+
+
+*正在运行的 aview 命令*
+
+### 5. xeyes 命令 ###
+
+在上一篇文章中, 我们介绍了 '**oneko**' 命令, 它可以显示一个追随鼠标指针运动的小老鼠. '**xeyes**' 是一个类似的图形程序, 当你运行它, 你可以看见小怪物的两个眼球追随你的鼠标运动.
+
+ $ xeyes
+
+
+
+*正在运行的 xeyes 命令*
+
+### 6. cowsay 命令 ###
+
+你是否还记得上一次我们介绍的这个命令? 它可以显示一段预先确定的文本和一个字符构成的奶牛. 如果你想使用其它动物来代替奶牛怎么办? 查看可用的动物列表:
+
+ $ cowsay -l
+
+如何用ASCII描绘蛇吞象?
+
+ $ cowsay -f elephant-in-snake Tecmint is Best
+
+
+
+*正在运行的 cowsay 命令*
+
+换作山羊又会怎样?
+
+ $ cowsay -f gnu Tecmint is Best
+
+
+
+*正在运行的 山羊cowsay 命令*
+
+今天就到这里吧. 我将带着另一篇有趣的文章回来. 不要忘记在下面留下您的评论.
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/linux-funny-commands/
+
+作者:[Avishek Kumar][a]
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:http://www.tecmint.com/20-funny-commands-of-linux-or-linux-is-fun-in-terminal/
+[2]:http://linux.cn/article-4088-1.html
+[3]:http://linux.cn/article-2831-1.html
+[4]:http://aa-project.sourceforge.net/aview/
diff --git a/published/201410/20140829 Fun in Linux Terminal--Play with Word and Character Counts.md b/published/201410/20140829 Fun in Linux Terminal--Play with Word and Character Counts.md
new file mode 100644
index 0000000000..5051c3c46d
--- /dev/null
+++ b/published/201410/20140829 Fun in Linux Terminal--Play with Word and Character Counts.md
@@ -0,0 +1,174 @@
+Linux终端的乐趣之把玩字词计数
+================================================================================
+Linux 命令行有很多的乐趣,我们可以很容易并且完善地执行很多繁琐的任务。比如,我们计算一个文本文件中字和字符的出现频率,这就是我们打算在这篇文章中讲到的。
+
+立刻来到我们脑海的命令,计算字和字符在一个文本文件中出现频率的 Linux 命令是 [wc 命令] [1]。
+
+
+
+在使用的脚本来分析文本文件之前,我们必须有一个文本文件。为了保持一致性,我们将创建一个文本文件,man命令的输出如下所述。
+
+ $ man man > man.txt
+
+以上命令是将man命令的使用方式导入到**man.txt**文件里。
+
+我们希望能得到最平常的单词,对之前我们新建的文件执行如下脚本。
+
+ $ cat man.txt | tr ' ' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | grep -v '[^a-z]' | sort | uniq -c | sort -rn | head
+
+### Sample Output ###
+
+ 7557
+ 262 the
+ 163 to
+ 112 is
+ 112 a
+ 78 of
+ 78 manual
+ 76 and
+ 64 if
+ 63 be
+
+上面的脚本,输出了最常使用的十个单词。
+
+如何看单个的字母呢?那就用如下的命令。
+
+ $ echo 'tecmint team' | fold -w1
+
+### Sample Output ###
+
+ t
+ e
+ c
+ m
+ i
+ n
+ t
+ t
+ e
+ a
+ m
+
+**注**: `-w1`只是设定了长度
+
+现在我们将从那个文本文件中掰下来的每一个字母,对结果进行排序,得到所需的输出频率的十个最常见的字符。
+
+ $ fold -w1 < man.txt | sort | uniq -c | sort -rn | head
+
+### Sample Output ###
+
+ 8579
+ 2413 e
+ 1987 a
+ 1875 t
+ 1644 i
+ 1553 n
+ 1522 o
+ 1514 s
+ 1224 r
+ 1021 l
+
+如何区分大小写呢?之前我们都是忽略大小写的。所以,用如下命令。
+
+ $ fold -w1 < man.txt | sort | tr '[:lower:]' '[:upper:]' | uniq -c | sort -rn | head -20
+
+### Sample Output ###
+
+ 11636
+ 2504 E
+ 2079 A
+ 2005 T
+ 1729 I
+ 1645 N
+ 1632 S
+ 1580 o
+ 1269 R
+ 1055 L
+ 836 H
+ 791 P
+ 766 D
+ 753 C
+ 725 M
+ 690 U
+ 605 F
+ 504 G
+ 352 Y
+ 344 .
+
+请检查上面的输出,标点符号居然包括在内。让我们干掉他,用**tr** 命令。GO:
+
+ $ fold -w1 < man.txt | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -20
+
+### Sample Output ###
+
+ 11636
+ 2504 E
+ 2079 A
+ 2005 T
+ 1729 I
+ 1645 N
+ 1632 S
+ 1580 O
+ 1550
+ 1269 R
+ 1055 L
+ 836 H
+ 791 P
+ 766 D
+ 753 C
+ 725 M
+ 690 U
+ 605 F
+ 504 G
+ 352 Y
+
+现在,我们有了三个文本,那就让我们用如下命令查看结果吧。
+
+ $ cat *.txt | fold -w1 | tr '[:lower:]' '[:upper:]' | sort | tr -d '[:punct:]' | uniq -c | sort -rn | head -8
+
+### Sample Output ###
+
+ 11636
+ 2504 E
+ 2079 A
+ 2005 T
+ 1729 I
+ 1645 N
+ 1632 S
+ 1580 O
+
+下一步我们将会生成那些罕见的至少十个字母长的单词。以下是简单的脚本:
+
+ $ cat man.txt | tr '' '\012' | tr '[:upper:]' '[:lower:]' | tr -d '[:punct:]' | tr -d '[0-9]' | sort | uniq -c | sort -n | grep -E '..................' | head
+
+### Sample Output ###
+
+ 1 ──────────────────────────────────────────
+ 1 a all
+ 1 abc any or all arguments within are optional
+ 1 able see setlocale for precise details
+ 1 ab options delimited by cannot be used together
+ 1 achieved by using the less environment variable
+ 1 a child process returned a nonzero exit status
+ 1 act as if this option was supplied using the name as a filename
+ 1 activate local mode format and display local manual files
+ 1 acute accent
+
+**注**: 上面的.越来越多,其实,我们可以使用.{10} 得到同样的效果。
+
+这些简单的脚本,让我们知道最频繁出现的单词和英语中的字符。
+
+现在结束了。下次我会在这里讲到另一个有趣的话题,你应该会喜欢读。还有别忘了向我们提供您的宝贵意见。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/play-with-word-and-character-counts-in-linux/
+
+作者:[Avishek Kumar][a]
+译者:[MikeCoder](https://github.com/MikeCoder)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:http://www.tecmint.com/wc-command-examples/
\ No newline at end of file
diff --git a/published/201410/20140902 Mount Google drive in Ubuntu 14.04 LTS.md b/published/201410/20140902 Mount Google drive in Ubuntu 14.04 LTS.md
new file mode 100644
index 0000000000..66ebd14a6c
--- /dev/null
+++ b/published/201410/20140902 Mount Google drive in Ubuntu 14.04 LTS.md
@@ -0,0 +1,61 @@
+墙外香花:Google drive和Ubuntu 14.04 LTS的胶合
+================================================================================
+Google尚未发布用于从Ubuntu访问其drive的**官方Linux客户端**。然开源社区却业已开发完毕非官方之软件包‘**grive-tools**’。
+
+Grive乃是Google Drive(**在线存储服务**)的GNU/Linux系统客户端,允许你**同步**所选目录到云端,以及上传新文件到Google Drive。
+
+### grive-tools安装步骤 ###
+
+步骤:1 使用下列命令添加grive-tools PPA:
+
+ # sudo add-apt-repository ppa:thefanclub/grive-tools
+
+步骤:2 更新列表
+
+ #sudo apt-get update
+
+步骤:3 安装grive-tools
+
+ # sudo apt-get install grive-tools
+
+### 访问Google Drive的步骤 ###
+
+**步骤:1** 安装完了,通过输入**Grive**在**Unity Dash**搜索应用,并打开之。
+
+
+
+**步骤:2** 登入google drive,你将被问及访问google drive的权限。
+
+
+
+点击**下一步**时,新的浏览器中讲打开**Google登录页**
+
+登入你的Google帐号,并点击**接受**,如下所示:
+
+
+
+**步骤:3** 下面将提供给你一个 **google代码**,复制并粘贴到**Grive设置框**内。
+
+
+
+
+
+点击下一步后,将会开始同步google drive到你**家目录**下的‘**Google Drive**’文件夹。完成后,将出现如下窗口。
+
+
+
+Google Drive 文件夹会创建在**用户的主目录**下。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/mount-google-drive-in-ubuntu/
+
+作者:[Pradeep Kumar][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
diff --git a/published/201410/20140902 Photo Editing on Linux with Krita.md b/published/201410/20140902 Photo Editing on Linux with Krita.md
new file mode 100644
index 0000000000..3e36fb76ad
--- /dev/null
+++ b/published/201410/20140902 Photo Editing on Linux with Krita.md
@@ -0,0 +1,76 @@
+在 Linux 下用 Krita 进行照片编辑
+================================================================================
+
+图 1:侏儒山羊 Annabelle
+
+[Krita][1] 是一款很棒的绘图应用,同时也是很不错的照片编辑器。今天我们将学习如何给图片添加文字,以及如何有选择地锐化照片的某一部分。
+
+### Krita 简介 ###
+
+与其他绘图/制图应用类似,Krita 内置了数百种工具和选项,以及多种处理方法。因此它值得我们花点时间来了解一下。
+
+Krita 默认使用了暗色主题。我不太喜欢暗色主题,但幸运的是 Krita 还有其他很赞的主题,你可以在任何时候通过菜单里的“设置 > 主题”进行更改。
+
+Krita 使用了窗口停靠样式的工具条。如果左右两侧面板的 Dock 工具条没有显示,检查一下“设置 > 显示工具条”选项,你也可以在“设置 > 工具条”中对工具条按你的偏好进行调整。不过隐藏的工具条也许会让你感到一些小小的不快,它们只会在一个狭小的压扁区域展开,你看不见其中的任何东西。你可以拖动它们至顶端或者 Krita 窗口的一侧,放大或者缩小它们,甚至你可以把它们拖到 Krita 外,放在你显示屏的任意位置。如果你把其中一个工具条拖到了另一个工具条上,它们会自动合并成一个工具条。
+
+当你配置好比较满意的工作区后,你可以在“选择工作区”内保存它。你可以在笔刷工具条(通过“设置 > 显示工具条”开启显示)的右侧找到“选择工作区”。其中有对工作区的不同配置,当然你也可以创建自己的配置(图 2)。
+
+
+图 2:在“选择工作区”里保存用户定制的工作区。
+
+Krita 中有多重缩放控制方法。Ctrl + “=” 放大,Ctrl + “-” 缩小,Ctrl + “0” 重置为 100% 缩放画面。你也可以通过“视图 > 缩放”,或者右下角的缩放条进行控制。在缩放条的左侧还有一个下拉式的缩放菜单。
+
+工具菜单位于窗口左部,其中包含了锐化和选择工具。你必须移动光标到每个工具上,才能查看它的标签。工具选项条总是显示当前正在使用的工具的选项,默认情况下工具选项条位于窗口右部。
+
+### 裁切工具 ###
+
+当然,在工具菜单条中有裁切工具,并且非常易于使用。把你想要选择的区域用矩形圈定,使用拖拽的方式来调整选区,调整完毕后点击返回按钮。在工具选项条中,你可以选择对所有图层应用裁切,还是只对当前图层应用裁切,通过输入具体数值,或者是百分比调整尺寸。
+
+### 添加文本 ###
+
+当你想在照片上添加标签或者说明这类简单文本的时候,Krita 也许会让你眼花缭乱,因为它有太多的艺术字效果可供选择了。但 Krita 同时也支持添加简单的文字。点击文本工具条,你将会看到工具选项条如图 3 那样。
+
+
+图 3:文本选项。
+
+点击展开按钮。这将显示简单文本工具;首先绘制矩形文本框,接着在文本框内输入文字。工具选项条中有所有常用的文本格式选项:文本选择、文本尺寸、文字与背景颜色、边距,以及一系列图形风格。但你处理完文本后点击外观处理工具,外观处理工具的按钮是一个白色的箭头,在文本工具按钮旁边,通过外观处理工具你可以调整文字整体的尺寸、外观还有位置。外观处理工具的工具选项包括多种不同的线条、颜色还有边距。图 4 是我为我那些蜗居在城市里的亲戚们发送的一幅带有愉快标题的照片。
+
+
+图 4:来这绿色农场吧。
+
+如何处理你的照片上已经存在的文字?点击外观处理工具,在文本区域内双击。这将使文本进入编辑模式,从文本框内出现的光标可以看出这一点。现在,你就可以开始选择文字、添加文字、更改格式,等等。
+
+### 锐化选区 ###
+
+外观编辑上,Krita 有许多很棒的工具。在图 5 中我想要锐化 Annabelle 的脸和眼睛。(Annabelle 住在隔壁,但她很喜欢我的狗,在我这里呆了很长一段时间。我的狗却因为害怕她而跑了,但她却一点也不气馁。)首先通过“外形选区”工具选择一个区域。接着打开“滤镜 > 增强 > 虚边蒙板”。你可以调节三个变量:半长值、总量以及阈值。大多数图像编辑软件都有半径、总量和阀值的设置。半径是直径的一半,因此从技术上来说“半长值”是正确的,但却可能造成不必要的混乱。
+
+
+图 5:选取任意的区域进行编辑。
+
+半长值决定了锐化线条的粗细。你需要足够大的数值来产生较好的结果,但很明显,不要过大。
+
+阀值决定了锐化时两个像素点之间的效果差异。“0”是锐化的最大值,“99”则表示不进行锐化。
+
+总量控制着锐化强度;其值越高锐化程度越高。
+
+锐化基本上是你处理照片的最后一步,因为它和你对照片所做的一切处理都有关:裁切、改变尺寸、颜色、色差...如果你先进行锐化再进行其他操作,你的锐化效果将变得一团糟。
+
+接着,你要问,“虚化蒙板”是什么意思?这个名字来源于锐化技术:虚化蒙板滤镜在原始图像上覆盖一层模糊的蒙板,接着在上面分层进行虚化蒙板。这将使图像比直接锐化产生更加锐利清晰的效果。
+
+今天要说的就这么多。有关 Krita 的资料很多,但比较杂乱。你可以从 [Krita Tutorials][2] 开始学习,也可以在 YouTube 上找寻相关的学习视频。
+
+- [krita 官方网站][1]
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/learn/tutorials/786040-photo-editing-on-linux-with-krita
+
+作者:[Carla Schroder][a]
+译者:[SteveArcher](https://github.com/SteveArcher)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/community/forums/person/3734
+[1]:https://krita.org/
+[2]:https://krita.org/learn/tutorials/
diff --git a/published/201410/20140904 Making MySQL Better at GitHub.md b/published/201410/20140904 Making MySQL Better at GitHub.md
new file mode 100644
index 0000000000..1aeea36c03
--- /dev/null
+++ b/published/201410/20140904 Making MySQL Better at GitHub.md
@@ -0,0 +1,92 @@
+ GitHub 是如何迁移 MySQL 集群的
+================================================================================
+> 在 GitHub 我们总是说“如果网站响应速度不够快,我们就不应该让它上线运营”。我们之前在[前端的体验速度][1]这篇文章中介绍了一些提高网站响应速率的方法,但这只是故事的一部分。真正影响到 GitHub.com 性能的因素是 MySQL 数据库架构。让我们来瞧瞧我们的基础架构团队是如何无缝升级了 MySQL 架构吧,这事儿发生在去年8月份,成果就是大大提高了 GitHub 网站的速度。
+
+### 任务 ###
+
+去年我们把 GitHub 上的大部分数据移到了新的数据中心,这个中心有世界顶级的硬件资源和网络平台。自从使用了 MySQL 作为我们的后端系统的基础,我们一直期望着一些改进来大大提高数据库性能,但是在数据中心使用全新的硬件来部署一套全新的集群环境并不是一件简单的工作,所以我们制定了一套计划和测试工作,以便数据能平滑过渡到新环境。
+
+### 准备工作 ###
+
+像我们这种关于架构上的巨大改变,在执行的每一步都需要收集数据指标。新机器上安装好了基本的操作系统,接下来就是测试新配置下的各种性能。为了模拟真实的工作负载环境,我们使用 tcpdump 工具从旧的集群那里复制正在发生的 SELECT 请求,并在新集群上重新回放一遍。
+
+MySQL 调优是个繁琐的细致活,像众所周知的 innodb_buffer_pool_size 这个参数往往能对 MySQL 性能产生巨大的影响。对于这类参数,我们必须考虑在内,所以我们列了一份参数清单,包括 innodb_thread_concurrency,innodb_io_capacity,和 innodb_buffer_pool_instances,还有其它的。
+
+在每次测试中,我们都很小心地只改变一个参数,并且让一次测试至少运行12小时。我们会观察响应时间的变化曲线,每秒的响应次数,以及有可能会导致并发性降低的参数。我们使用 “SHOW ENGINE INNODB STATUS” 命令打印 InnoDB 性能信息,特别观察了 “SEMAPHORES” 一节的内容,它为我们提供了工作负载的状态信息。
+
+当我们在设置参数后对运行结果感到满意,然后就开始将我们最大的数据表格之一迁移到一套独立的集群上,这个步骤作为整个迁移过程的早期测试,以保证我们的核心集群有更多的缓存池空间,并且为故障切换和存储功能提供更强的灵活性。这步初始迁移方案也引入了一个有趣的挑战:我们必须维持多条客户连接,并且要将这些连接指向到正确的集群上。
+
+除了硬件性能的提升,还需要补充一点,我们同时也对处理进程和拓扑结构进行了改进:我们添加了延时拷贝技术,更快、更高频地备份数据,以及更多的读拷贝空间。这些功能已经准备上线。
+
+### 列出任务清单,三思后行 ###
+
+每天有上百万用户的使用 GitHub.com,我们不可能有机会等没有人用了才进行实际数据切换。我们有一个详细的[任务清单][2]来执行迁移:
+
+
+
+我们还规划了一个维护期,并且[在我们的博客中通知了大家][3],让用户注意到这件事情。
+
+### 迁移时间到 ###
+
+太平洋时间星期六上午5点,我们的迁移团队上线集合对话,同时数据迁移正式开始:
+
+
+
+我们将 GitHub 网站设置为维护模式,并在 Twitter 上发表声明,然后开始按上述任务清单的步骤开始工作:
+
+
+
+**13 分钟**后,我们确保新的集群能正常工作:
+
+
+
+然后我们让 GitHub.com 脱离维护模式,并且让全世界的用户都知道我们的最新状态:
+
+
+
+大量前期的测试工作与准备工作,让我们将维护期缩到最短。
+
+### 检验最终的成果 ###
+
+在接下来的几周时间里,我们密切监视着 GitHub.com 的性能和响应时间。我们发现迁移后网站的平均加载时间减少一半,并且在99%的时间里,能减少*三分之二*:
+
+
+
+### 我们学到了什么 ###
+
+#### 功能划分 ####
+
+在迁移过程中,我们采用了一个比较好的方法是:将大的数据表(主要记录了一些历史数据)先迁移过去,空出旧集群的磁盘空间和缓存池空间。这一步给我们留下了更多的资源用于“热”数据,将一些连接请求分离到多套集群里面。这步为我们之后的胜利奠定了基础,我们以后还会使用这种模式来进行迁移工作。
+
+#### 测试测试测试 ####
+
+为你的应用做验收测试和回归测试,越多越好,多多益善,不要嫌多。从老集群复制数据到新集群的过程中,如果进行验收测试和响应状态测试,得到的数据是不准的,如果数据不理想,这是正常的,不要惊讶,不要试图拿这些数据去分析原因。
+
+#### 合作的力量 ####
+
+对基础架构进行大的改变,通常需要涉及到很多人,我们要像一个团队一样为共同的目标而合作。我们的团队成员来自全球各地。
+
+团队成员地图:
+
+https://render.githubusercontent.com/view/geojson?url=https://gist.githubusercontent.com/anonymous/5fa29a7ccbd0101630da/raw/map.geojson
+
+本次合作新创了一种工作流程:我们提交更改(pull request),获取实时反馈,查看修改了错误的 commit —— 全程没有电话交流或面对面的会议。当所有东西都可以通过 URL 提供信息,不同区域的人群之间的交流和反馈会变得非常简单。
+
+### 一年后…… ###
+
+整整一年时间过去了,我们很高兴地宣布这次数据迁移是很成功的 —— MySQL 性能和可靠性一直处于我们期望的状态。另外,新的集群还能让我们进一步去升级,提供更好的可靠性和响应时间。我将继续记录这些优化过程。
+
+--------------------------------------------------------------------------------
+
+via: https://github.com/blog/1880-making-mysql-better-at-github
+
+作者:[samlambert][a]
+译者:[bazz2](https://github.com/bazz2)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://github.com/samlambert
+[1]:https://github.com/blog/1756-optimizing-large-selector-sets
+[2]:https://help.github.com/articles/writing-on-github#task-lists
+[3]:https://github.com/blog/1603-site-maintenance-august-31st-2013
diff --git a/published/201410/20140904 Use LaTeX In Ubuntu 14.04 and Linux Mint 17 With Texmaker.md b/published/201410/20140904 Use LaTeX In Ubuntu 14.04 and Linux Mint 17 With Texmaker.md
new file mode 100644
index 0000000000..c754b4a2f6
--- /dev/null
+++ b/published/201410/20140904 Use LaTeX In Ubuntu 14.04 and Linux Mint 17 With Texmaker.md
@@ -0,0 +1,47 @@
+在 Ubuntu 14.04 和 Linux Mint 17 中通过 Texmaker 来使用LaTeX
+================================================================================
+
+
+[LaTeX][1]是一种文本标记语言,也可以说是一种文档编撰系统。在很多大学或者机构中普遍作为一种标准来书写专业的科学文献、毕业论文或其他类似的文档。在这篇文章中,我们会看到如何在Ubuntu 14.04中使用LaTeX。
+
+### 在 Ubuntu 14.04 或 Linux Mint 17 中安装 Texmaker 来使用LaTeX
+
+[Texmaker][2]是一款免费开源的LaTeX编辑器,它支持一些主流的桌面操作系统,比如Window,Linux和OS X。下面是Texmaker的主要特点:
+
+- 支持Unicode编码的编辑器
+- 拼写检查
+- 代码折叠
+- 自动补全
+- 快速导航
+- PDF查看器
+- 编译简单
+- 支持370个数学符号
+- LaTeX格式文本
+- 通过TeX4ht导出到html和odt文件
+- 支持正则表达式
+
+在Ubuntu 14.04下,你可以通过下面的链接下载Texmaker的二进制包
+
+- [下载Texmaker编辑器][3]
+
+你通过上述链接下载到的是一个.deb包,因此你在一些像Linux Mint,Elementary OS,Pinguy OS等等类Debain的发行版中可以使用相同的安装方式。
+
+如果你想使用像Github式的markdown编辑器,你可以试试[Remarkable编辑器][4]。
+
+希望Texmaker能够在Ubuntu和Linux Mint中帮到你。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/install-latex-ubuntu-1404/
+
+作者:[Abhishek][a]
+译者:[john](https://github.com/johnhoow)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://www.latex-project.org/
+[2]:http://www.xm1math.net/texmaker/index.html
+[3]:http://www.xm1math.net/texmaker/download.html#linux
+[4]:http://itsfoss.com/remarkable-markdown-editor-linux/
diff --git a/published/201410/20140910 How To Recover Default Openbox Config Files On Crunchbang.md b/published/201410/20140910 How To Recover Default Openbox Config Files On Crunchbang.md
new file mode 100644
index 0000000000..579b45bd10
--- /dev/null
+++ b/published/201410/20140910 How To Recover Default Openbox Config Files On Crunchbang.md
@@ -0,0 +1,38 @@
+如何在Crunchbang下恢复Openbox的默认配置
+================================================================================
+[CrunchBang][1]是一个很好地融合了速度、风格和内容的基于Debian GNU/Linux的发行版。使用了灵活的Openbox窗口管理器,高度定制化并且提供了一个现代、全功能的GNU/Linux系统而没有牺牲性能。
+
+Crunchbang是高度自定义的,用户可以尽情地地把它调整成他们想要的样子。这一切都通过文本文件(配置)。我作为一个Crunchbang用户,我最近搞乱了我的**menu.xml**配置文件,它负责下面的菜单显示。
+
+
+
+我的菜单配置文件中丢失了所有内容。由于我没有备份(最好备份配置文件)。我不得不搜索Crunchbang安装后的默认配置。这里就是我如何修复的过程,这里要感谢Crunchbang论坛。
+
+了解所有为你预备份的默认配置是很有趣的,你可以在这里找到:
+
+ /etc/skel/.config/
+
+因此对于任何默认配置,你只需复制他们并重启适当的程序。
+
+我在这里使用Openbox的**menu.xml**作为示例:
+
+
+
+ cp -r /etc/skel/.config/openbox/menu.xml ~/.config/openbox/menu.xml
+
+接着重启openbox。
+
+ openbox --restart
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/recover-default-openbox-config-files-crunchbang/
+
+作者:[Enock Seth Nyamador][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/seth/
+[1]:http://crunchbang.org/
\ No newline at end of file
diff --git a/published/201410/20140910 How to download GOG games from the command line on Linux.md b/published/201410/20140910 How to download GOG games from the command line on Linux.md
new file mode 100644
index 0000000000..b168d9365b
--- /dev/null
+++ b/published/201410/20140910 How to download GOG games from the command line on Linux.md
@@ -0,0 +1,75 @@
+如何在Linux命令行中下载GOG游戏
+================================================================================
+如果你是一个游戏玩家同时也是一个Linux用户,你可能很高兴在[GOG][1]在几个月前宣布它会在你最喜欢的操作系统上推出游戏。如果你之前从来没有听说过GOG,我鼓励你看看他们的产品目录中的“很棒的老游戏”,价格合理,无DRM限制,而且充满了很棒的东西。虽然Windows上的GOG客户端已经存在了很长的时间,但是官方的Linux版本客户端却是无处可见。因此,如果你不想等待官方的正式版本,一个名为LGOGDownloader非官方的开放源码计划能让你在命令行中访问你的库。
+
+
+
+### 在Linux中安装 LGOGDownloader ###
+
+对于Ubuntu用户来说,其[官方页面][2]建议您下载源代码并执行:
+
+ $ sudo apt-get install build-essential libcurl4-openssl-dev liboauth-dev libjsoncpp-dev libhtmlcxx-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev libboost-program-options-dev libboost-date-time-dev libtinyxml-dev librhash-dev help2man
+ $ tar -xvzf lgogdownloader-2.17.tar.gz
+ $ cd lgogdownloader-2.17
+ $ make release
+ $ sudo make install
+
+如果你是ArchLinux用户。有一个[AUR 包][2]等着你:
+
+### LGOGDownloader 的使用###
+
+一旦安装了该程序,你需要用下面的命令登录:
+
+ $ lgogdownloader --login
+
+
+
+如果你需要配置文件,那它在这里:~/.config/lgogdownloader/config.cfg
+
+验证通过后,你可以列出你库中所有的游戏:
+
+ $ lgogdownloader --list
+
+
+
+用下面的命令下载游戏:
+
+ $ lgogdownloader --download --game [game name]
+
+
+
+你可以注意到lgogdownloader允许你恢复之前中断的下载,这当下载的游戏并不小时是很有用的。
+
+像每一个可敬的命令行实用程序,您可以添加各种选项:
+
+- **--platform [number]** 选择您的操作系统,1是 Windows, 4是Linux。
+- **--directory [destination]** 下载安装包到指定的目录。
+- **--language [number]** 下载特定的语言包 (根据你的语言查阅手册上对应的数字)。
+- **--limit-rate [speed]** 限制下载速度。
+
+一个额外的福利,lgogdownloader同样可以检查GOG网站上的更新:
+
+ $ lgogdownloader --update-check
+
+
+
+结果将列出论坛上收到的私人邮件的数量以及更新的游戏数量。
+
+最后,lgogdownloader是非常标准的命令行实用工具。我甚至可以说,它是清晰和连贯性的一个缩影。我们距离Steam Linux客户端的确还差的很远,但在另一方面,官方GOG Windows客户端不会做的比这个非官方的Linux版本更多。换句话说lgogdownloader是一个完美的替代品。我等不及要看到GOG上更多的Linux兼容游戏,尤其是在他们最近公告称会提供的无DRM电影,会有视频游戏的专题。希望在电影目录中有游戏库时能在客户端看到更新。
+
+你觉得GOG怎么样?你会使用非官方的Linux客户端么?让我们在评论中知道你的想法。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/download-gog-games-command-line-linux.html
+
+作者:[Adrien Brochard][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/adrien
+[1]:http://www.gog.com/
+[2]:https://sites.google.com/site/gogdownloader/home
+[3]:https://aur.archlinux.org/packages/lgogdownloader/
\ No newline at end of file
diff --git a/published/201410/20140910 How to set up Nagios Remote Plugin Executor (NRPE) in Linux.md b/published/201410/20140910 How to set up Nagios Remote Plugin Executor (NRPE) in Linux.md
new file mode 100644
index 0000000000..9dc66f147d
--- /dev/null
+++ b/published/201410/20140910 How to set up Nagios Remote Plugin Executor (NRPE) in Linux.md
@@ -0,0 +1,236 @@
+如何在 Linux 环境下配置 Nagios Remote Plugin Executor (NRPE)
+================================================================================
+就网络管理而言,Nagios 是最强大的工具之一。Nagios 可以监控远程主机的可访问性,以及其中正在运行的服务的状态。不过,如果我们想要监控远程主机中网络服务以外的东西呢?比方说,我们可能想要监控远程主机上的磁盘利用率或者 [CPU 处理器负载][1]。Nagios Remote Plugin Executor(NRPE)便是一个可以帮助你完成这些操作的工具。NRPE 允许你执行在远程主机上安装的 Nagios 插件,并且将它们集成到一个[已经存在的 Nagios 服务器][2]里。
+
+本教程将会介绍如何在一个已经部署好的 Nagios 中配置 NRPE。本教程主要分为两部分:
+
+- 配置远程主机。
+- 配置 Nagios 监控服务器。
+
+之后我们会以定义一些可以被 NRPE 使用的自定义命令来结束本教程。
+
+### 为 NRPE 配置远程主机 ###
+
+#### 第一步:安装 NRPE 服务 ####
+
+你需要在你想要使用 NRPE 监控的每一台远程主机上安装 NRPE 服务。每一台远程主机上的 NRPE 服务守护进程将会与一台 Nagios 监控服务器进行通信。
+
+NRPE 服务所需要的软件包可以很容易地用 apt-get 或者 yum 来安装,取决于所在的平台。对于 CentOS 来说,由于 NRPE 并不在 CentOS 的仓库中,我们需要[添加 Repoforge 仓库][3]。
+
+**对于 Debian、Ubuntu 或者 Linux Mint:**
+
+ # apt-get install nagios-nrpe-server
+
+**对于 CentOS、Fedora 或者 RHEL:**
+
+ # yum install nagios-nrpe
+
+#### 第二步:准备配置文件 ####
+
+配置文件 /etc/nagios/nrpe.cfg 在基于 Debian 或者 RedHat 的系统中比较相近。让我们备份并修改配置文件:
+
+ # vim /etc/nagios/nrpe.cfg
+
+----------
+
+ ## NRPE 服务端口是可以自定义的 ##
+ server_port=5666
+
+ ## 允许 Nagios 监控服务器访问 ##
+ ## 注意:逗号后面没有空格 ##
+ allowed_hosts=127.0.0.1,X.X.X.X-IP_v4_of_Nagios_server
+
+ ## 下面的例子中我们硬编码了参数。
+ ## 这些参数可以按需修改。
+
+ ## 注意:对于 CentOS 64 位用户,请使用 /usr/lib64 替代 /usr/lib ##
+
+ command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
+ command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
+ command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
+ command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
+ command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
+
+现在配置文件已经准备好了,NRPE 服务已经可以启动了。
+
+#### 第三步:初始化 NRPE 服务 ####
+
+对于基于 RedHat 的系统,NRPE 服务需要被添加为启动服务。
+
+**对于 Debian、Ubuntu、Linux Mint:**
+
+ # service nagios-nrpe-server restart
+
+**对于 CentOS、Fedora 或者 RHEL:**
+
+ # service nrpe restart
+ # chkconfig nrpe on
+
+#### 第四步:验证 NRPE 服务状态 ####
+
+NRPE 守护进程的状态信息可以在系统日志中找到。对于基于 Debian 的系统,日志文件在 /var/log/syslog,而基于 RedHat 的系统的日志文件则是 /var/log/messages。下面提供一段样例日志以供参考:
+
+ nrpe[19723]: Starting up daemon
+ nrpe[19723]: Listening for connections on port 5666
+ nrpe[19723]: Allowing connections from: 127.0.0.1,X.X.X.X
+
+如果使用了防火墙,被 NRPE 守护进程使用的 TCP 端口 5666 应该被开启。
+
+ # netstat -tpln | grep 5666
+
+----------
+
+ tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 19885/nrpe
+
+### 为 NRPE 配置 Nagios 监控服务器 ###
+
+为 NRPE 配置已有的 Nagios 监控服务器的第一步是在服务器上安装 NRPE 插件。
+
+#### 第一步:安装 NRPE 插件 ####
+
+当 Nagios 服务器运行在基于 Debian 的系统(Debian、Ubuntu 或者 Linux Mint)上时,需要的软件包可以通过 apt-get 安装。
+
+ # apt-get install nagios-nrpe-plugin
+
+插件安装完成后,对随插件安装的 check_nrpe 命令稍作修改。
+
+ # vim /etc/nagios-plugins/config/check_nrpe.cfg
+
+----------
+
+ ## 默认命令会被覆盖 ##
+ define command{
+ command_name check_nrpe
+ command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
+ }
+
+如果 Nagios 服务器运行在基于 RedHat 的系统(CentOS、Fedora 或者 RHEL)上,你可以通过 yum 安装 NRPE 插件。对于 CentOS,[添加 Repoforge 仓库][4] 是必要的。
+
+ # yum install nagios-plugins-nrpe
+
+现在 NRPE 插件已经安装完成,继续下面的步骤以配置一台 Nagios 服务器。
+
+#### 第二步:为 NRPE 插件定义 Nagios 命令 ####
+
+我们需要首先在 Nagios 中定义一个命令来使用 NRPE。
+
+ # vim /etc/nagios/objects/commands.cfg
+
+----------
+
+ ## 注意:对于 CentOS 64 位用户,请使用 /usr/lib64 替代 /usr/lib ##
+ define command{
+ command_name check_nrpe
+ command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
+ }
+
+#### 第三步:添加主机与命令定义 ####
+
+接下来定义远程主机以及我们将要在它们上面运行的命令。
+
+下面的例子为一台远程主机定义了一个可以在上面执行的命令。一般来说,你的配置需要按照你的需求来改变。配置文件的路径在基于 Debian 和基于 RedHat 的系统上略有不同,不过文件的内容是完全一样的。
+
+**对于 Debian、Ubuntu 或者 Linux Mint:**
+
+ # vim /etc/nagios3/conf.d/nrpe.cfg
+
+**对于 CentOS、Fedora 或者 RHEL:**
+
+ # vim /etc/nagios/objects/nrpe.cfg
+
+----------
+
+ define host{
+ use linux-server
+ host_name server-1
+ alias server-1
+ address X.X.X.X-IPv4_address_of_remote_host
+ }
+
+ define service {
+ host_name server-1
+ service_description Check Load
+ check_command check_nrpe!check_load
+ check_interval 1
+ use generic-service
+ }
+
+#### 第四步:重启 Nagios 服务 ####
+
+在重启 Nagios 之前,可以通过测试来验证配置。
+
+**对于 Ubuntu、Debian 或者 Linux Mint:**
+
+ # nagios3 -v /etc/nagios3/nagios.cfg
+
+**对于 CentOS、Fedora 或者 RHEL:**
+
+ # nagios -v /etc/nagios/nagios.cfg
+
+如果一切正常,我们就可以重启 Nagios 服务了。
+
+ # service nagios restart
+
+
+
+### 为 NRPE 配置自定义命令 ###
+
+#### 远程服务器上安装 ####
+
+下面列出了一些可以用于 NRPE 的自定义命令。这些命令在远程服务器的 /etc/nagios/nrpe.cfg 文件中定义。
+
+ ## 当 1、5、15 分钟的平均负载分别超过 1、2、1 时进入警告状态
+ ## 当 1、5、15 分钟的平均负载分别超过 3、5、3 时进入严重警告状态
+ command[check_load]=/usr/lib/nagios/plugins/check_load -w 1,2,1 -c 3,5,3
+
+ ## 对于 /home 目录的可用空间设置了警告级别为 25%,以及严重警告级别为 10%。
+ ## 可以定制为监控任何分区(比如 /dev/sdb1、/、/var、/home)
+ command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 10% -p /home
+
+ ## 当 process_ABC 的实例数量超过 10 时警告,超过 20 时严重警告 ##
+ command[check_process_ABC]=/usr/lib/nagios/plugins/check_procs -w 1:10 -c 1:20 -C process_ABC
+
+ ## 当 process_ABC 的实例数量跌到 1 以下时严重警告 ##
+ command[check_process_XYZ]=/usr/lib/nagios/plugins/check_procs -w 1: -c 1: -C process_XYZ
+
+#### Nagios 监控服务器上安装 ####
+
+我们通过如下命令来修改 Nagios 监控服务器里的服务定义来应用上面定义的自定义命令。服务定义可以写在所有服务被定义的地方(比如 /etc/nagios/objects/nrpe.cfg 或 /etc/nagios3/conf.d/nrpe.cfg)
+
+ ## 示例 1:检查进程 XYZ ##
+ define service {
+ host_name server-1
+ service_description Check Process XYZ
+ check_command check_nrpe!check_process_XYZ
+ check_interval 1
+ use generic-service
+ }
+
+ ## 示例 2:检查磁盘状态 ##
+ define service {
+ host_name server-1
+ service_description Check Process XYZ
+ check_command check_nrpe!check_disk
+ check_interval 1
+ use generic-service
+ }
+
+总而言之,NRPE 是 Nagios 的一个强大的扩展,它提供了高度可定制的远程服务器监控方案。使用 NRPE,我们可以监控系统的负载、运行的进程、已登录的用户、磁盘状态,以及其它参数。
+
+希望这些可以帮到你。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/03/nagios-remote-plugin-executor-nrpe-linux.html
+
+作者:[Sarmed Rahman][a]
+译者:[felixonmars](https://github.com/felixonmars)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
+[1]:http://xmodulo.com/2012/08/how-to-measure-average-cpu-utilization.html
+[2]:http://linux.cn/article-2436-1.html
+[3]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
+[4]:http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
diff --git a/published/201410/20140915 Linux FAQs with Answers--How to capture TCP SYN, ACK and FIN packets with tcpdump.md b/published/201410/20140915 Linux FAQs with Answers--How to capture TCP SYN, ACK and FIN packets with tcpdump.md
new file mode 100644
index 0000000000..8887a0a057
--- /dev/null
+++ b/published/201410/20140915 Linux FAQs with Answers--How to capture TCP SYN, ACK and FIN packets with tcpdump.md
@@ -0,0 +1,41 @@
+Linux有问必答:如何使用tcpdump来捕获TCP SYN,ACK和FIN包
+================================================================================
+> **问题**:我想要监控TCP连接活动(如,建立连接的三次握手,以及断开连接的四次握手)。要完成此事,我只需要捕获TCP控制包,如SYN,ACK或FIN标记相关的包。我怎样使用tcpdump来仅仅捕获TCP SYN,ACK和/或FYN包?
+
+作为业界标准的捕获工具,tcpdump提供了强大而又灵活的包过滤功能。作为tcpdump基础的libpcap包捕获引擎支持标准的包过滤规则,如基于5重包头的过滤(如基于源/目的IP地址/端口和IP协议类型)。
+
+tcpdump/libpcap的包过滤规则也支持更多通用分组表达式,在这些表达式中,包中的任意字节范围都可以使用关系或二进制操作符进行检查。对于字节范围表达,你可以使用以下格式:
+
+ proto [ expr : size ]
+
+“proto”可以是熟知的协议之一(如ip,arp,tcp,udp,icmp,ipv6),“expr”表示与指定的协议头开头相关的字节偏移量。有我们熟知的直接偏移量如tcpflags,也有取值常量如tcp-syn,tcp-ack或者tcp-fin。“size”是可选的,表示从字节偏移量开始检查的字节数量。
+
+使用这种格式,你可以像下面这样过滤TCP SYN,ACK或FIN包。
+
+只捕获TCP SYN包:
+
+ # tcpdump -i "tcp[tcpflags] & (tcp-syn) != 0"
+
+只捕获TCP ACK包:
+
+ # tcpdump -i "tcp[tcpflags] & (tcp-ack) != 0"
+
+只捕获TCP FIN包:
+
+ # tcpdump -i "tcp[tcpflags] & (tcp-fin) != 0"
+
+之捕获TCP SYN或ACK包:
+
+ # tcpdump -r "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/capture-tcp-syn-ack-fin-packets-tcpdump.html
+
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md b/published/201410/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md
new file mode 100644
index 0000000000..fd680ad8c6
--- /dev/null
+++ b/published/201410/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md
@@ -0,0 +1,42 @@
+Linux有问必答:如何在CentOS或RHEL 7上修改主机名
+================================================================================
+> 问题:在CentOS/RHEL 7上修改主机名的正确方法是什么(永久或临时)?
+
+在CentOS或RHEL中,有三种定义的主机名:a、静态的(static),b、瞬态的(transient),以及 c、灵活的(pretty)。“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。而另一方面,“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Dan's Computer)。
+
+在CentOS/RHEL 7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。
+
+要查看主机名相关的设置:
+
+ $ hostnamectl status
+
+
+
+只查看静态、瞬态或灵活主机名,分别使用“--static”,“--transient”或“--pretty”选项。
+
+ $ hostnamectl status [--static|--transient|--pretty]
+
+要同时修改所有三个主机名:静态、瞬态和灵活主机名:
+
+ $ sudo hostnamectl set-hostname
+
+
+
+就像上面展示的那样,在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 不会更新以保存所做的修改,所以你需要手动更新/etc/hosts。
+
+如果你只想修改特定的主机名(静态,瞬态或灵活),你可以使用“--static”,“--transient”或“--pretty”选项。
+
+例如,要永久修改主机名,你可以修改静态主机名:
+
+ $ sudo hostnamectl --static set-hostname
+
+注意,你不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名。注销并重新登入后在命令行提示来观察新的静态主机名。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/change-hostname-centos-rhel-7.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140915 Linux FAQs with Answers--How to create a new Amazon AWS access key.md b/published/201410/20140915 Linux FAQs with Answers--How to create a new Amazon AWS access key.md
new file mode 100644
index 0000000000..f716678fb3
--- /dev/null
+++ b/published/201410/20140915 Linux FAQs with Answers--How to create a new Amazon AWS access key.md
@@ -0,0 +1,49 @@
+Linux有问必答:如何创建新的亚马逊AWS访问密钥
+================================================================================
+> **问题**:我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供**AWS访问密钥ID**和**秘密访问密钥**,我怎样创建一个新的AWS访问密钥呢?
+
+亚马逊AWS安全凭证用于验证你以及授权任何第三方应用访问你的AWS帐号,有各种不同的AWS安全凭证可用,如密码、访问密钥、多因素身份验证、X.509证书等。
+
+如果你想要创建新的访问密钥(访问密钥ID和秘密访问密钥),请按一下步骤进行。
+
+首先,登录到[AWS控制台][1]。
+
+从顶部栏选择“安全凭证”菜单(图中红色方框所示)。
+
+
+
+在下一页中,选择“访问密钥(访问密钥ID和秘密访问密钥)”选项(图中红色方框所示)。
+
+
+
+在下一页中,你将看到一个现存访问密钥ID列表(如果有的话)。注意,你不能恢复现存访问密钥ID的“秘密访问密钥”。出于安全的原因,秘密访问密钥只能在你创建新访问密钥时才可见。
+
+
+
+点击“创建新访问密钥”(见图示),将会立即创建一个新的访问密钥ID和密码访问密钥对。
+
+
+
+要么下载一个包含有新访问密钥的密钥文件,要么复制并粘贴新访问密钥信息。再次提请牢记,一旦你关闭该窗口,秘密访问密钥将不再可用,除非你下载一个密钥文件。
+
+### 多用户AWS帐号 ###
+如果你是作为公司身份创建的帐号,多个雇员共享这一公司帐号,你可能想要使用身份和访问管理(IAM)来创建并管理他们的访问密钥。
+
+IAM是一个web服务,它允许一个公司管理多个用户及其与一个AWS帐号关联的安全凭证。使用IAM,多个用户可以作为不同身份登入单一的AWS帐号,并管理他们的安全凭证而不会相互干预对方的密钥。
+
+要管理IAM用户,点击“安全凭证”页面上的“用户”菜单(见图示)。
+
+
+
+然后,你就可以创建一个新的IAM用户并管理他们的安全凭证,比如访问密钥之类的东西。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/create-amazon-aws-access-key.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://aws.amazon.com/console/
diff --git a/published/201410/20140915 Linux FAQs with Answers--How to expand an XFS file system.md b/published/201410/20140915 Linux FAQs with Answers--How to expand an XFS file system.md
new file mode 100644
index 0000000000..1606a79323
--- /dev/null
+++ b/published/201410/20140915 Linux FAQs with Answers--How to expand an XFS file system.md
@@ -0,0 +1,38 @@
+Linux有问必答:如何扩展XFS文件系统
+================================================================================
+> **问题**:我的磁盘上有额外的空间,所以我想要扩展其上创建的现存的XFS文件系统,以完全使用额外空间。怎样才是扩展XFS文件系统的正确途径?
+
+XFS是一个开源的(GPL)日志文件系统,最初由硅谷图形(SGI)开发,现在大多数的Linux发行版都支持。事实上,XFS已被最新的CentOS/RHEL 7采用,成为其默认的文件系统。在其众多的特性中,包含了“在线调整大小”这一特性,使得现存的XFS文件系统在已经挂载的情况下可以进行扩展。然而,对于XFS文件系统的**缩减**却还没有支持。
+
+要扩展一个现存的XFS文件系统,你可以使用命令行工具xfs_growfs,这在大多数Linux发行版上都默认可用。由于XFS支持在线调整大小,目标文件系统可以挂在,也可以不挂载。
+
+下面展示了**xfs_growfs**的基本用法:
+
+
+
+作为目标XFS文件系统来扩展,你可以指定挂载点、磁盘分区或者逻辑卷(在使用LVM时),使用数据块数量来指定新的XFS文件系统的大小。你可以使用xfs_info命令行工具来检查数据块大小和数量:
+
+
+
+要将XFS文件扩展到1986208:
+
+ $ sudo xfs_growfs /dev/centos/root -D 1986208
+
+如果你不使用“-D”选项来指定大小,xfs_growfs将会自动扩展XFS文件系统到最大的可用大小。
+
+ $ sudo xfs_growfs /dev/centos/root
+
+
+
+注意,当你扩展一个现存的XFS文件系统时,必须准备好事先添加用于XFS文件系统扩展的空间。这虽然是很显然的事,但是如果在所在的分区或磁盘卷上没有空闲空间可用的话,xfs_growfs就没有办法了。同时,如果你尝试扩展XFS文件系统大小到超过磁盘分区或卷的大小,xfs_growfs将会失败。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/expand-xfs-file-system.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140915 Linux FAQs with Answers--How to remove PPA repository from command line on Ubuntu.md b/published/201410/20140915 Linux FAQs with Answers--How to remove PPA repository from command line on Ubuntu.md
new file mode 100644
index 0000000000..e7171b6c3d
--- /dev/null
+++ b/published/201410/20140915 Linux FAQs with Answers--How to remove PPA repository from command line on Ubuntu.md
@@ -0,0 +1,38 @@
+Linux有问必答:Ubuntu如何使用命令行移除PPA仓库
+================================================================================
+> **问题**: 前段时间,我的Ubuntu增加了一个第三方的PPA仓库,如何才能移除这个PPA仓库呢?
+
+个人软件包档案(PPA)是Ubuntu独有的解决方案,允许独立开发者和贡献者构建、贡献任何定制的软件包来作为通过启动面板的第三方APT仓库。如果你是Ubuntu用户,有可能你已经增加一些流行的第三方PPA仓库到你的Ubuntu系统。如果你需要删除掉已经预先配置好的PPA仓库,下面将教你怎么做。
+
+假如你想增加一个叫“ppa:webapps/preview”第三方PPA仓库到你的系统中,如下:
+
+ $ sudo add-apt-repository ppa:webapps/preview
+
+如果你想要 **单独地删除某个PPA仓库**,运行下面的命令:
+
+ $ sudo add-apt-repository --remove ppa:someppa/ppa
+
+注意,上述命令不会同时删除任何已经安装或更新的软件包。
+
+如果你想要 **完整的删除一个PPA仓库并包括来自这个PPA安装或更新过的软件包**,你需要ppa-purge命令。
+
+首先要安装ppa-purge软件包:
+
+ $ sudo apt-get install ppa-purge
+
+然后使用如下命令删除PPA仓库和与之相关的软件包:
+
+ $ sudo ppa-purge ppa:webapps/preview
+
+特别滴,在发行版更新后,当你[分辨和清除已损坏的PPA仓库][1]时这个方法特别有用!
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/how-to-remove-ppa-repository-from-command-line-on-ubuntu.html
+
+译者:[Vic___](http://www.vicyu.net)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ask.xmodulo.com/find-remove-obsolete-ppa-repositories-ubuntu.html
diff --git a/published/201410/20140919 Linux FAQs with Answers--How to create a MySQL database from the command line.md b/published/201410/20140919 Linux FAQs with Answers--How to create a MySQL database from the command line.md
new file mode 100644
index 0000000000..1db2425acc
--- /dev/null
+++ b/published/201410/20140919 Linux FAQs with Answers--How to create a MySQL database from the command line.md
@@ -0,0 +1,116 @@
+Linux有问必答:如何在命令行创建一个MySQL数据库
+===
+
+> **问题**:在一个某处运行的MySQL服务器上,我该怎样通过命令行创建和安装一个MySQL数据库呢?
+
+
+为了能通过命令行创建一个MySQL数据库,你可以使用mysql命令行客户端。下面是通过mysql命令行客户端创建和安装MySQL的步骤。
+
+### 第一步:安装MySQL客户端 ###
+
+当然你得确保MySQL客户端已经安装完毕。如果没有的话,可以按照下面的方法。
+
+在Debian,Ubuntu 或者 Linux Mint上:
+
+ $ sudo apt-get install mysql-client
+
+在Fedora,CentOS 或者 RHEL上:
+
+ $ sudo apt-get install mysql
+
+### 第二步:登陆到MySQL服务器 ###
+
+首先,你需要使用root用户登陆进你的MySQL数据库,如下:
+
+ $ mysql -u root -h -p
+
+请注意:为了能登进远程的MySQL服务器,你需要[开启服务器上的远程访问][1],如果你想调用同一主机上的MySQL服务器,你可以省略 "-h " 参数
+
+ $ mysql -u root -p
+
+你将需要输入MySQL服务器的密码,如果认证成功,MySQL提示将会出现。
+
+
+
+### 第三步:创建一个MySQL数据库 ###
+
+在MySQL提示中输入命令之前,请记住所有的命令都是以分号结束的(否则将不会执行)。另外,考虑输入命令的时候使用大些字母,输入数据库对象使用小写字母。但那不是必须的,只是方便你的阅读。
+
+现在,让我们创建一个叫做xmodulo_DB的数据库:
+
+ mysql> CREATE DATABASE IF NOT EXISTS xmodulo_DB;
+
+
+
+### 第四步:创建一个数据库表 ###
+
+为了达到演示的目的,我们将会创建一个叫做posts_tbl的表,表里会存储关于文章的如下信息:
+
+- 文章的标题
+- 作者的名字
+- 作者的姓
+- 文章可用或者不可用
+- 文章创建的日期
+
+这个过程分两步执行:
+
+首先,选择我们需要使用的数据库:
+
+ mysql> USE xmodulo_DB;
+
+然后,在数据库中创建新表:
+
+ mysql> CREATE TABLE 'posts_tbl' (
+ 'post_id' INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ 'content' TEXT,
+ 'author_FirstName' VARCHAR(100) NOT NULL,
+ 'author_LastName' VARCHAR(50) DEFAULT NULL ,
+ 'isEnabled' TINYINT(1) NOT NULL DEFAULT 1,
+ 'date' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
+ PRIMARY KEY ( 'post_id' )
+ ) TYPE = MYISAM;
+
+
+
+### 第五步:创建一个用户,并授予权限 ###
+
+当涉及到访问我们新创的数据库和表的时候,创建一个新用户是一个很好的主意。这样做就可以让用户在没有整个MySQL服务器权限的情况下,去访问那个数据库(而且只能是那个数据库)
+
+你可以创建新用户,授予权限,并且使改变生效:
+
+ mysql> GRANT ALL PRIVILEGES ON xmodulo_DB.* TO 'new_user'@'%' IDENTIFIED BY 'new_password';
+ mysql> FLUSH PRIVILEGES;
+
+'new_user'和'new_password'分别指的是新的用户名和他的密码。这条信息将会被保存在mysql.user表中,而且密码会被加密。
+
+### 第六步:测试 ###
+
+让我们插入一个虚拟的记录到posts_tbl表:
+
+ mysql> USE xmodulo_DB;
+ mysql> INSERT INTO posts_tbl (content, author_FirstName, author_Las tName)
+ VALUES ('Hi! This is some dummy text.', 'Gabriel', 'Canepa');
+
+然后查看posts_tbl表中的所有记录:
+
+ mysql> SELECT * FROM posts_tbl;
+
+
+
+注意:MySQL会在我们先前定义的地方自动插入适当的默认值(比如,'isEnabled'和'date')。
+
+---
+
+via: http://ask.xmodulo.com/create-mysql-database-command-line.html
+
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linu
+x中国](http://linux.cn/) 荣誉推出
+
+[1]:http://xmodulo.com/2012/06/how-to-allow-remote-access-to-mysql.html
+
+
+
+
diff --git a/published/201410/20140922 How to Run Android Apps on Ubuntu using ARChon.md b/published/201410/20140922 How to Run Android Apps on Ubuntu using ARChon.md
new file mode 100644
index 0000000000..11dbadf22f
--- /dev/null
+++ b/published/201410/20140922 How to Run Android Apps on Ubuntu using ARChon.md
@@ -0,0 +1,100 @@
+安卓应用乾坤大挪移,Ubuntu上的搬运工:ARChon
+================================================================================
+
+
+
+**Google最近发布了首批[能在Chrome OS本地运行的安卓应用集][1],通过‘安卓运行时’扩展完成了该壮举。**
+
+现在,一位开发者已经[指明了将安卓应用带入桌面版Chrome的路][2]。
+
+[弗拉德·菲利波夫][3]的[chromeos-apk脚本][4]和[ARChon安卓运行时扩展][5]手拉手一起开展工作,将安卓应用带进了Windows,Mac和Linux桌面上的Chrome中。
+
+
+
+*运行在Ubuntu 14.04 LTS上的安卓应用:IMDB,Flipboard和Twitter*
+
+通过‘安卓运行时’运行的应用的性能不是很令人惊异,任何想要运行Dead Trigger 2或者其它图形密集型游戏的雄心壮志可以放到一边了。
+
+同样地,要运行官方的‘安卓运行时’的非官方重构包,或者在Chrome OS之外运行的话,其系统完整性(如网络摄像头,扬声器等)可能不完整或者根本不可能。
+
+按照下面的指南一步步来,并不保证一定成功。它只能作为高度实验性进行,里面遍布漏洞,很不稳定——甚至白日见鬼。只能出于好奇而尝试,不要高度寄予厚望,这样你就不会深受其困扰。
+
+### 安卓应用转战Linux大法 ###
+
+要通过Chrome在Linux上运行安卓应用,很明显,你需要安装Chrome,要求的版本是37,或者更高。坦率地讲,如果你打算玩玩不稳定的Chrome版本,那么你也可以下载并[为Linux安装][6]。
+
+如果已经安装了Chrome的某个版本?你可以通过命令行来安装不稳定版,命令如下:
+
+ sudo apt-get install google-chrome-unstable
+
+有了 Chrome 之后,你需要下载定制版的‘安卓运行时’扩展,而不是Google或Chronium提供的版本——由弗拉德·菲利波夫创建的‘安卓运行时’。这个版本和官方的有着诸多的不同,最突出的不同就是它可以运行在桌面版的浏览器上。
+
+- [从BitBucket下载ARChon v1.0][7]
+
+下载好‘安卓运行时’扩展后,你需要从.zip解压内容,并移动解压后的文件夹到你的Home文件夹。
+
+要安装它,打开Google Chrome,点击汉堡式菜单按钮,然后导航到扩展页。检查‘启用开发者模式’并点击‘加载解包的扩展’按钮。
+
+
+
+‘安卓运行时’扩展本身不会做太多事情,所以你需要从安卓应用创建兼容包。要完成这项工作,你需要‘[chromeos-apk][8]’[命令行Javascript工具][9],它可以从“Node 封装模块管理器(npm )”安装。
+
+首先运行:
+
+ sudo apt-get install npm nodejs nodejs-legacy
+
+Ubuntu 64位用户?你还需要获取以下库:
+
+ sudo apt-get install lib32stdc++6
+
+现在,运行npm命令来安装该脚本吧:
+
+ npm install -g chromeos-apk
+
+根据你的配置,你可能需要过会儿使用sudo来运行。如果你不喜欢[通过sudo安装npm模块,你可以][10]试着骗过它。
+
+
+
+现在,搞定了。去Google找找你想要试试的应用的APK吧,请牢记**不是所有的安卓应用都会工作**,而**那些可以工作的也未必工作得很好**,或者缺少功能。
+
+把你想要的安卓APK放到~/Home,然后回到终端中使用以下命令来转换,你可以将APK命名成任何你想要的名字:
+
+ chromeos-apk replaceme.apk --archon
+
+该命令将花一点时间来完成这项工作,也许也就是一眨眼的时间。[实际上,不需要眨眼的时间][11]
+
+
+
+现在,在你的Home文件夹内有个ARChon生成的Chrome APK extension-y folder-y这样的东西。所有剩下来要做的事,就是安装并查看它是否正常工作!
+
+回到chrome://extensions页面,再次轻敲‘加载解封装扩展’按钮,但这次选择上面脚本创建出来的文件夹。
+
+应用应该会正确安装,但是它确实会没有问题吗?打开Chrome应用启动器或应用页面并启动它来看看是否有问题。
+
+#### 深度探索 ####
+
+由于ARChon运行时支持不限数量的chrome化的APK,你可以反复进行该操作,你想做多少次都行。Chrome APK [subreddit][12]用于跟踪成功/失败情况,所以如果你感到很有用,一定要贴出你的结果。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/install-android-apps-ubuntu-archon
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgchrome.com/first-4-chrome-android-apps-released/
+[2]:http://www.omgchrome.com/run-android-apps-on-windows-mac-linux-archon/
+[3]:https://github.com/vladikoff/
+[4]:https://github.com/vladikoff/chromeos-apk
+[5]:https://github.com/vladikoff/chromeos-apk/blob/master/archon.md
+[6]:http://www.chromium.org/getting-involved/dev-channel
+[7]:https://bitbucket.org/vladikoff/archon/get/v1.0.zip
+[8]:https://github.com/vladikoff/chromeos-apk/blob/master/README.md
+[9]:https://github.com/vladikoff/chromeos-apk/blob/master/README.md
+[10]:http://stackoverflow.com/questions/19352976/npm-modules-wont-install-globally-without-sudo/21712034#21712034
+[11]:https://www.youtube.com/watch?v=jKXLkWrBo7o
+[12]:http://www.reddit.com/r/chromeapks
diff --git a/published/201410/20140922 How to use logrotate to manage log files in Linux.md b/published/201410/20140922 How to use logrotate to manage log files in Linux.md
new file mode 100644
index 0000000000..abe0d52984
--- /dev/null
+++ b/published/201410/20140922 How to use logrotate to manage log files in Linux.md
@@ -0,0 +1,199 @@
+Linux日志文件总管——logrotate
+================================================================================
+日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
+
+logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。另外,旧日志也可以通过电子邮件发送,不过该选项超出了本教程的讨论范围。
+
+主流Linux发行版上都默认安装有logrotate包,如果出于某种原因,logrotate没有出现在里头,你可以使用apt-get或yum命令来安装。
+
+在Debian或Ubuntu上:
+
+ # apt-get install logrotate cron
+
+在Fedora,CentOS或RHEL上:
+
+ # yum install logrotate crontabs
+
+logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下。
+
+### 样例一 ###
+
+在第一个样例中,我们将创建一个10MB的日志文件/var/log/log-file。我们将展示怎样使用logrotate来管理该日志文件。
+
+我们从创建一个日志文件开始吧,然后在其中填入一个10MB的随机比特流数据。
+
+ # touch /var/log/log-file
+ # head -c 10M < /dev/urandom > /var/log/log-file
+
+由于现在日志文件已经准备好,我们将配置logrotate来轮循该日志文件。让我们为该文件创建一个配置文件。
+
+ # vim /etc/logrotate.d/log-file
+
+----------
+
+ /var/log/log-file {
+ monthly
+ rotate 5
+ compress
+ delaycompress
+ missingok
+ notifempty
+ create 644 root root
+ postrotate
+ /usr/bin/killall -HUP rsyslogd
+ endscript
+ }
+
+这里:
+
+- **monthly**: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
+- **rotate 5**: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
+- **compress**: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
+- **delaycompress**: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
+- **missingok**: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
+- **notifempty**: 如果日志文件为空,轮循不会进行。
+- **create 644 root root**: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
+- **postrotate/endscript**: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
+
+上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。
+
+### 样例二 ###
+
+在本例中,我们只想要轮循一个日志文件,然而日志文件大小可以增长到50MB。
+
+ # vim /etc/logrotate.d/log-file
+
+----------
+
+ /var/log/log-file {
+ size=50M
+ rotate 5
+ create 644 root root
+ postrotate
+ /usr/bin/killall -HUP rsyslogd
+ endscript
+ }
+
+### 样例三 ###
+
+我们想要让旧日志文件以创建日期命名,这可以通过添加dateext常熟实现。
+
+ # vim /etc/logrotate.d/log-file
+
+----------
+
+ /var/log/log-file {
+ monthly
+ rotate 5
+ dateext
+ create 644 root root
+ postrotate
+ /usr/bin/killall -HUP rsyslogd
+ endscript
+ }
+
+这将让归档文件在它们的文件名中包含日期信息。
+
+### 排障 ###
+
+这里提供了一些logrotate设置的排障提示。
+
+#### 1. 手动运行logrotate ####
+
+**logrotate**可以在任何时候从命令行手动调用。
+
+要调用为/etc/lograte.d/下配置的所有日志调用**logrotate**:
+
+ # logrotate /etc/logrotate.conf
+
+要为某个特定的配置调用logrotate:
+
+ # logrotate /etc/logrotate.d/log-file
+
+#### 2. 演练 ####
+
+排障过程中的最佳选择是使用‘-d’选项以预演方式运行logrotate。要进行验证,不用实际轮循任何日志文件,可以模拟演练日志轮循并显示其输出。
+
+ # logrotate -d /etc/logrotate.d/log-file
+
+
+
+正如我们从上面的输出结果可以看到的,logrotate判断该轮循是不必要的。如果文件的时间小于一天,这就会发生了。
+
+#### 3. 强制轮循 ####
+
+即使轮循条件没有满足,我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件,‘-v’参数提供了详细的输出。
+
+ # logrotate -vf /etc/logrotate.d/log-file
+
+----------
+
+ reading config file /etc/logrotate.d/log-file
+ reading config info for /var/log/log-file
+
+ Handling 1 logs
+
+ rotating pattern: /var/log/log-file forced from command line (5 rotations)
+ empty log files are rotated, old logs are removed
+ considering log /var/log/log-file
+ log needs rotating
+ rotating log /var/log/log-file, log->rotateCount is 5
+ dateext suffix '-20140916'
+ glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
+ renaming /var/log/log-file.5.gz to /var/log/log-file.6.gz (rotatecount 5, logstart 1, i 5),
+ old log /var/log/log-file.5.gz does not exist
+ renaming /var/log/log-file.4.gz to /var/log/log-file.5.gz (rotatecount 5, logstart 1, i 4),
+ old log /var/log/log-file.4.gz does not exist
+ . . .
+ renaming /var/log/log-file.0.gz to /var/log/log-file.1.gz (rotatecount 5, logstart 1, i 0),
+ old log /var/log/log-file.0.gz does not exist
+ log /var/log/log-file.6.gz doesn't exist -- won't try to dispose of it
+ renaming /var/log/log-file to /var/log/log-file.1
+ creating new /var/log/log-file mode = 0644 uid = 0 gid = 0
+ running postrotate script
+ compressing log with: /bin/gzip
+
+#### 4. Logrotate的记录日志 ####
+
+logrotate自身的日志通常存放于/var/lib/logrotate/status目录。如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。
+
+ # logrotate -vf –s /var/log/logrotate-status /etc/logrotate.d/log-file
+
+#### 5. Logrotate定时任务 ####
+
+logrotate需要的**cron**任务应该在安装时就自动创建了,我把cron文件的内容贴出来,以供大家参考。
+
+ # cat /etc/cron.daily/logrotate
+
+----------
+
+ #!/bin/sh
+
+ # Clean non existent log file entries from status file
+ cd /var/lib/logrotate
+ test -e status || touch status
+ head -1 status > status.clean
+ sed 's/"//g' status | while read logfile date
+ do
+ [ -e "$logfile" ] && echo "\"$logfile\" $date"
+ done >> status.clean
+ mv status.clean status
+
+ test -x /usr/sbin/logrotate || exit 0
+ /usr/sbin/logrotate /etc/logrotate.conf
+
+小结一下,logrotate工具对于防止因庞大的日志文件而耗尽存储空间是十分有用的。配置完毕后,进程是全自动的,可以长时间在不需要人为干预下运行。本教程重点关注几个使用logrotate的几个基本样例,你也可以定制它以满足你的需求。
+
+希望本文对你有所帮助。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/logrotate-manage-log-files-linux.html
+
+作者:[Sarmed Rahman][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
diff --git a/published/201410/20140922 Reset Unity and Compiz Settings in Ubuntu 14.04.md b/published/201410/20140922 Reset Unity and Compiz Settings in Ubuntu 14.04.md
new file mode 100644
index 0000000000..dd642b9cdb
--- /dev/null
+++ b/published/201410/20140922 Reset Unity and Compiz Settings in Ubuntu 14.04.md
@@ -0,0 +1,41 @@
+小技巧:在Ubuntu 14.04中重置Unity和Compiz设置
+================================================================================
+如果你一直在试验你的Ubuntu系统,你可能最终以Unity和Compiz的一片混乱收场。在此贴士中,我们将看看怎样来重置Ubuntu 14.04中的Unity和Compiz。事实上,全部要做的事,仅仅是运行几个命令而已。
+
+### 重置Ubuntu 14.04中的Unity和Compiz ###
+
+打开终端(Ctrl+Alt+T),并使用以下命令来重置compiz:
+
+ dconf reset -f /org/compiz/
+
+重置compiz后,重启Unity:
+
+ setsid unity
+
+此外,如果你想将Unity图标也进行重置,试试以下的命令吧:
+
+ unity --reset-icons
+
+### 可能的疑难解决方案: ###
+
+如果你在重置compiz时遇到如下错误:
+
+> error: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dfile_2derror_2dquark.Code17: Cannot open dconf database: invalid gvdb header
+
+可能的原因是用户文件被搞乱了。备份dconf配置,并移除配置文件:
+
+ mv ~/.config/dconf/ ~/.config/dconf.bak
+
+希望本贴士对你重置Ubuntu 14.04中Unity和compiz有所帮助,欢迎您随时提出问题和建议。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/reset-unity-compiz-settings-ubuntu-1404/
+
+作者:[Abhishek][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
diff --git a/published/201410/20140924 How To Install Vmware 10 On CentOS 7.md b/published/201410/20140924 How To Install Vmware 10 On CentOS 7.md
new file mode 100644
index 0000000000..13bb1202b5
--- /dev/null
+++ b/published/201410/20140924 How To Install Vmware 10 On CentOS 7.md
@@ -0,0 +1,59 @@
+技巧:在CentOS 7上安装Vmware 10
+================================================================================
+在CentOS 7上安装Vmware 10.0.3,我来介绍下我的经验。通常,这个版本是不能在CentOS 7工作的,因为它只能运行在比较低的内核版本3.10上。
+
+首先,以正常方式下载并安装(没有问题)。唯一的问题是在后来运行vmware程序的时候。
+
+### 如何修复? ###
+
+**1 – 进入 /usr/lib/vmware/modules/source。**
+
+ cd /usr/lib/vmware/modules/source
+
+**2 – 解压 vmnet.tar.**
+
+ tar -xvf vmnet.tar
+
+**3 – 进入 vmnet-only 目录。**
+
+ cd vmnet-only
+
+**4 – 编辑filter.c文件。**
+
+ vi filter.c
+
+在206和259行,替换以下字符串:
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+
+为:
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)
+
+保存并退出。
+
+**5 – 回到先前文件夹。**
+
+ cd ../
+
+**6 – 再次压缩文件夹。**
+
+ tar -uvf vmnet.tar vmnet-only
+
+**7 – 移除旧目录。**
+
+ rm -fr vmnet-only
+
+**8 – 启动vmware并体验。**
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/install-vmware-10-centos-7/
+
+作者: M.el Khamlichi
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140924 How to delete recently opened files history in ubuntu 14.04.md b/published/201410/20140924 How to delete recently opened files history in ubuntu 14.04.md
new file mode 100644
index 0000000000..765b7c30de
--- /dev/null
+++ b/published/201410/20140924 How to delete recently opened files history in ubuntu 14.04.md
@@ -0,0 +1,26 @@
+如何清理 Ubuntu 14.04 的最近打开文件历史列表
+================================================================================
+这个简明教程对Ubuntu 14.04历史文件清理进行了说明,它用于初学者。
+
+要从dash搜索删除历史记录,请遵循以下程序。
+
+转到系统设置(System Settings)并打开安全与隐私(Security & Privacy)。
+
+
+
+在文件与应用(Files and Applications)标签下,点击清除用户数据(Clear Usage Data)。
+
+
+
+你也可以关闭“记录文件与应用使用(Record file and Application usage)以阻止系统记录你当前使用的文件和应用。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/how-to-delete-recently-opened-files-history-in-ubuntu-14-04.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140924 How to use CloudFlare as a ddclient provider under Ubuntu.md b/published/201410/20140924 How to use CloudFlare as a ddclient provider under Ubuntu.md
new file mode 100644
index 0000000000..fb78dd7867
--- /dev/null
+++ b/published/201410/20140924 How to use CloudFlare as a ddclient provider under Ubuntu.md
@@ -0,0 +1,69 @@
+Ubuntu下使用CloudFlare 动态域名
+================================================================================
+
+### 需求 ###
+
+首先保证你有一个自有域名,然后登录到CloudFlare,添加你的域名。遵循指令操作,使用它给出的默认值就行了。你将让CloudFlare来托管你的域,所以你需要调整你的注册机构的设置。如果你想要使用子域名,请为它添加一条‘A’记录。目前,任何IP地址都可以。
+
+DDclient是一个Perl客户端,用于更新动态DNS网络服务提供商帐号下的动态DNS条目。它最初是由保罗·巴利编写的,现在大多数是由维姆潘科在做。它能做的不仅仅是动态DNS,也可以通过几种不同的方式获取你的WAN口IP地址。
+
+CloudFlare 的一个功能是它允许你通过API或叫做ddclient的命令行脚本更新你的DNS记录。不管哪一个,结果都一样,而且它是个免费软件。
+
+不幸的是,ddclient并不能在CloudFlare中即开即用。它需要打补丁,这里就是要介绍怎样在Debian或Ubuntu上破解它,它也能在带有Raspberry Pi的Raspbian上工作。
+
+### 在Ubuntu上安装ddclient ###
+
+打开终端,并运行以下命令
+
+ sudo apt-get install ddclient
+
+现在,你需要使用以下命令来安装补丁
+
+ sudo apt-get install curl sendmail libjson-any-perl libio-socket-ssl-perl
+
+ curl -O http://blog.peter-r.co.uk/uploads/ddclient-3.8.0-cloudflare-22-6-2014.patch
+
+ sudo patch /usr/sbin/ddclient < ddclient-3.8.0-cloudflare-22-6-2014.patch
+
+以上命令用来完成ddclient的安装和打补丁
+
+### 配置ddclient ###
+
+你需要使用以下命令来编辑ddclient.conf文件
+
+ sudo vi /etc/ddclient.conf
+
+添加以下信息
+
+ ##
+ ### CloudFlare (cloudflare.com)
+ ###
+ ssl=yes
+ use=web, web=dyndns
+ protocol=cloudflare, \
+ server=www.cloudflare.com, \
+ zone=domain.com, \
+ login=you@email.com, \
+ password=api-key \
+ host.domain.com
+
+ Comment out:
+
+ #daemon=300
+
+你的 api-key 可以从 CloudFlare帐号页面找到,ssl=yes 可能已经设置,use=web, web=dyndns 表示使用 dyndns 来确定 IP(用于 NAT)。
+
+你已经搞定了。登录到 https://www.cloudflare.com 并检查列出的与你域名对应的IP地址是否与 http://checkip.dyndns.com 列出的相匹配。
+
+使用以下命令来验证你的设置:
+
+ sudo ddclient -daemon=0 -debug -verbose -noquiet
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/how-to-use-cloudflare-as-a-ddclient-provider-under-ubuntu.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140924 Unix----stat -- more than ls.md b/published/201410/20140924 Unix----stat -- more than ls.md
new file mode 100644
index 0000000000..c701d3f855
--- /dev/null
+++ b/published/201410/20140924 Unix----stat -- more than ls.md
@@ -0,0 +1,178 @@
+stat -- 获取比 ls 更多的信息
+================================================================================
+> 厌倦了 ls 命令,并且想查看更多有关你的文件的有趣的信息? 试一试 stat!
+
+
+
+ls 命令可能是每一个 Unix 使用者第一个学习的命令之一, 但它仅仅显示了 stat 命令能给出的信息的一小部分。
+
+stat 命令从文件的索引节点获取信息。 正如你可能已经了解的那样, 每一个系统里的文件都存有三组日期和时间, 它们包括最近修改时间(即使用 ls -l 命令时显示的日期和时间), 最近状态改变时间(包括对文件重命名)和最近访问时间。
+
+使用长列表模式查看文件信息, 你会看到类似下面的内容:
+
+ $ ls -l trythis
+ -rwx------ 1 shs unixdweebs 109 Nov 11 2013 trythis
+
+使用 stat 命令, 你会看到下面这些:
+
+ $ stat trythis
+ File: `trythis'
+ Size: 109 Blocks: 8 IO Block: 262144 regular file
+ Device: 18h/24d Inode: 12731691 Links: 1
+ Access: (0700/-rwx------) Uid: ( 263/ shs) Gid: ( 100/ unixdweebs)
+ Access: 2014-09-09 19:27:58.000000000 -0400
+ Modify: 2013-11-11 08:40:10.000000000 -0500
+ Change: 2013-11-11 08:40:10.000000000 -0500
+
+在上面的情形中, 文件的状态改变和文件修改的日期/时间是相同的, 而访问时间则是相当近的时间。 我们还可以看到文件使用了 8 个块, 以及两种格式显示的文件权限 -- 八进制(0700)格式和 rwx 格式。 在第三行显示的索引节点是 12731681. 文件没有其它的硬链接(Links: 1)。 而且, 这个文件是一个常规文件。
+
+把文件重命名, 你会看到状态改变时间发生变化。
+
+这里的 ctime 信息, 最早设计用来存储文件的创建(create)日期和时间, 但后来不知道什么时候变为用来存储状态修改(change)时间。
+
+ $ mv trythis trythat
+ $ stat trythat
+ File: `trythat'
+ Size: 109 Blocks: 8 IO Block: 262144 regular file
+ Device: 18h/24d Inode: 12731691 Links: 1
+ Access: (0700/-rwx------) Uid: ( 263/ shs) Gid: ( 100/ unixdweebs)
+ Access: 2014-09-09 19:27:58.000000000 -0400
+ Modify: 2013-11-11 08:40:10.000000000 -0500
+ Change: 2014-09-21 12:46:22.000000000 -0400
+
+改变文件的权限也会改变 ctime 域。
+
+你也可以配合通配符来使用 stat 命令以列出一组文件的状态:
+
+ $ stat myfile*
+ File: `myfile'
+ Size: 20 Blocks: 8 IO Block: 262144 regular file
+ Device: 18h/24d Inode: 12731803 Links: 1
+ Access: (0640/-rw-r-----) Uid: ( 263/ shs) Gid: ( 100/ unixdweebs)
+ Access: 2014-08-23 03:00:36.000000000 -0400
+ Modify: 2014-08-22 12:02:12.000000000 -0400
+ Change: 2014-08-22 12:02:12.000000000 -0400
+ File: `myfile2'
+ Size: 20 Blocks: 8 IO Block: 262144 regular file
+ Device: 18h/24d Inode: 12731806 Links: 1
+ Access: (0640/-rw-r-----) Uid: ( 263/ shs) Gid: ( 100/ unixdweebs)
+ Access: 2014-08-23 03:00:36.000000000 -0400
+ Modify: 2014-08-22 12:03:30.000000000 -0400
+ Change: 2014-08-22 12:03:30.000000000 -0400
+ File: `myfile3'
+ Size: 40 Blocks: 8 IO Block: 262144 regular file
+ Device: 18h/24d Inode: 12730533 Links: 1
+ Access: (0640/-rw-r-----) Uid: ( 263/ shs) Gid: ( 100/ unixdweebs)
+ Access: 2014-08-23 03:00:36.000000000 -0400
+ Modify: 2014-08-22 12:03:59.000000000 -0400
+ Change: 2014-08-22 12:03:59.000000000 -0400
+
+如果我们喜欢的话, 我们也可以通过其他命令来获取这些信息。
+
+向 ls -l 命令添加 "u" 选项, 你会看到下面的结果。 注意这个选项会显示最后访问时间, 而添加 "c" 选项则会显示状态改变时间(在本例中, 是我们重命名文件的时间)。
+
+ $ ls -lu trythat
+ -rwx------ 1 shs unixdweebs 109 Sep 9 19:27 trythat
+ $ ls -lc trythat
+ -rwx------ 1 shs unixdweebs 109 Sep 21 12:46 trythat
+
+stat 命令也可应用与文件夹。
+
+在这个例子中, 我们可以看到有许多的链接。
+
+ $ stat bin
+ File: `bin'
+ Size: 12288 Blocks: 24 IO Block: 262144 directory
+ Device: 18h/24d Inode: 15089714 Links: 9
+ Access: (0700/drwx------) Uid: ( 263/ shs) Gid: ( 100/ unixdweebs)
+ Access: 2014-09-21 03:00:45.000000000 -0400
+ Modify: 2014-09-15 17:54:41.000000000 -0400
+ Change: 2014-09-15 17:54:41.000000000 -0400
+
+在这里, 我们还可以查看一个文件系统。
+
+ $ stat -f /dev/cciss/c0d0p2
+ File: "/dev/cciss/c0d0p2"
+ ID: 0 Namelen: 255 Type: tmpfs
+ Block size: 4096Fundamental block size: 4096
+ Blocks: Total: 259366 Free: 259337 Available: 259337
+ Inodes: Total: 223834 Free: 223531
+
+注意 Namelen (文件名长度)域, 如果文件名长于 255 个字符的话, 你会很幸运地在文件名处看到心形符号!
+
+stat 命令还可以一次显示所有我们想要的信息。 下面的例子中, 我们只想查看文件类型, 然后是硬连接数。
+
+ $ stat --format=%F trythat
+ regular file
+ $ stat --format=%h trythat
+ 1
+
+在下面的例子中, 我们查看了文件权限 -- 分别以两种可用的格式 -- 然后是文件的 SELinux 安全环境。最后,我们我们可以以从 Epoch 开始的秒数格式来查看文件访问时间。
+
+ $ stat --format=%a trythat
+ 700
+ $ stat --format=%A trythat
+ -rwx------
+ $ stat --format=%C trythat
+ (null)
+ $ stat --format=%X bin
+ 1411282845
+
+下面全部是可用的选项:
+
+ %a 八进制表示的访问权限
+ %A 可读格式表示的访问权限
+ %b 分配的块数(参见 %B)
+ %B %b 参数显示的每个块的字节数
+ %d 十进制表示的设备号
+ %D 十六进制表示的设备号
+ %f 十六进制表示的 Raw 模式
+ %F 文件类型
+ %g 属主的组 ID
+ %G 属主的组名
+ %h 硬连接数
+ %i Inode 号
+ %n 文件名
+ %N 如果是符号链接,显示器所链接的文件名
+ %o I/O 块大小
+ %s 全部占用的字节大小
+ %t 十六进制的主设备号
+ %T 十六进制的副设备号
+ %u 属主的用户 ID
+ %U 属主的用户名
+ %x 最后访问时间
+ %X 最后访问时间,自 Epoch 开始的秒数
+ %y 最后修改时间
+ %Y 最后修改时间,自 Epoch 开始的秒数
+ %z 最后改变时间
+ %Z 最后改变时间,自 Epoch 开始的秒数
+
+针对文件系统还有如下格式选项:
+
+ %a 普通用户可用的块数
+ %b 文件系统的全部数据块数
+ %c 文件系统的全部文件节点数
+ %d 文件系统的可用文件节点数
+ %f 文件系统的可用节点数
+ %C SELinux 的安全上下文
+ %i 十六进制表示的文件系统 ID
+ %l 文件名的最大长度
+ %n 文件系统的文件名
+ %s 块大小(用于更快的传输)
+ %S 基本块大小(用于块计数)
+ %t 十六进制表示的文件系统类型
+ %T 可读格式表示的文件系统类型
+
+这些信息都可以得到,stat 命令也许可以帮你以稍微不同的角度来了解你的文件。
+
+--------------------------------------------------------------------------------
+
+via: http://www.itworld.com/operating-systems/437351/unix-stat-more-ls
+
+作者:[Sandra Henry-Stocker][a]
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.itworld.com/sandra-henry-stocker
diff --git a/published/201410/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md b/published/201410/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md
new file mode 100644
index 0000000000..80272c60a0
--- /dev/null
+++ b/published/201410/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md
@@ -0,0 +1,30 @@
+Linux 有问必答:如何在Perl中捕捉并处理信号
+================================================================================
+> **提问**: 我需要通过使用Perl的自定义信号处理程序来处理一个中断信号。在一般情况下,我怎么在Perl程序中捕获并处理各种信号(如INT,TERM)?
+
+作为POSIX标准的异步通知机制,信号由操作系统发送给进程某个事件来通知它。当产生信号时,操作系统会中断目标程序的执行,并且该信号被发送到该程序的信号处理函数。可以定义和注册自己的信号处理程序或使用默认的信号处理程序。
+
+在Perl中,信号可以被捕获,并由一个全局的%SIG哈希变量指定处理函数。这个%SIG哈希变量的键名是信号值,键值是对应的信号处理程序的引用。因此,如果你想为特定的信号定义自己的信号处理程序,你可以直接在%SIG中设置信号的哈希值。
+
+下面是一个代码段来处理使用自定义信号处理程序中断(INT)和终止(TERM)的信号。
+
+ $SIG{INT} = \&signal_handler;
+ $SIG{TERM} = \&signal_handler;
+
+ sub signal_handler {
+ print "This is a custom signal handler\n";
+ die "Caught a signal $!";
+ }
+
+
+
+%SIG其他的可用的键值有'IGNORE'和'DEFAULT'。当所指定的键值是'IGNORE'(例如,$SIG{CHLD}='IGNORE')时,相应的信号将被忽略。指定'DEFAULT'的键值(例如,$SIG{HUP}='DEFAULT'),意味着我们将使用一个(系统)默认的信号处理程序。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/catch-handle-interrupt-signal-perl.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201410/20140925 Linux FAQs with Answers--How to change a network interface name on CentOS 7.md b/published/201410/20140925 Linux FAQs with Answers--How to change a network interface name on CentOS 7.md
new file mode 100644
index 0000000000..54dbf33c73
--- /dev/null
+++ b/published/201410/20140925 Linux FAQs with Answers--How to change a network interface name on CentOS 7.md
@@ -0,0 +1,69 @@
+Linux有问必答:如何在CentOS7上改变网络接口名
+================================================================================
+> **提问**: 在CentOS7,我想将分配的网络接口名更改为别的名字。有什么合适的方法来来重命名CentOS或RHEL7的网络接口?
+
+传统上,Linux的网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置错误(例如,由无意的接口改名引起的禁止接口或者防火墙旁路)。基于MAC地址的udev规则在虚拟化的环境中并不有用,这里的MAC地址如端口数量一样无常。
+
+CentOS/RHEL6引入了[一致和可预测的网络设备命名][1]网络接口的方法。这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易,并且在这样一种方式下,无论是否重启机器、过了多少时间、或者改变硬件,其名字都是持久不变的。然而,这种命名规则并不是默认在CentOS/RHEL6上开启。
+
+从CentOS/RHEL7起,这种可预见的命名规则变成了默认。根据这一规则,接口名称被自动基于固件,拓扑结构和位置信息来确定。现在,即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。
+
+ * 基于接口类型的两个字母前缀:
+ * en -- 以太网
+ * sl -- 串行线路IP (slip)
+ * wl -- wlan
+ * ww -- wwan
+ *
+ * 名字类型:
+ * b -- BCMA总线和新书
+ * ccw -- CCW总线组名
+ * o -- 车载设备的索引号
+ * s[f][d] -- 热插拔插槽索引号
+ * x -- MAC 地址
+ * [P]ps[f][d]
+ * -- PCI 位置
+ * [P]ps[f][u][..]1[i]
+ * -- USB端口号链
+
+新的命名方案的一个小的缺点是接口名称相比传统名称有点难以阅读。例如,你可能会发现像enp0s3名字。再者,你再也无法来控制接口名了。
+
+
+
+如果由于某种原因,你喜欢旧的方式,并希望能够选择任意名称分配给CentOS/ RHEL7的设备,你需要重写默认的可预测的命名规则,定义基于MAC地址udev规则。
+
+**下面是如何在CentOS或RHEL7命名网络接口。**
+
+首先,让我们来禁用该可预测命名规则。对于这一点,你可以在启动时传递“net.ifnames=0”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0”到GRUB_CMDLINE_LINUX变量来实现的。
+
+
+
+然后运行这条命令来重新生成GRUB配置并更新内核参数。
+
+ $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
+
+
+
+接下来,编辑(或创建)一个udev的网络命名规则文件(/etc/udev/rules.d/70-persistent-net.rules),并添加下面一行。更换成你自己的MAC地址(08:00:27:a9:7a:e1)和接口(sushi)。
+
+ $ sudo vi /etc/udev/rules.d/70-persistent-net.rules
+
+----------
+
+ SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="sushi"
+
+最后,重启电脑并验证新的接口名。
+
+
+
+请注意,配置重命名后的接口仍然是你的责任。如果网络配置(例如,IPv4设置,防火墙规则)是基于旧名称(变更前)的,则需要更新的网络配置以反映更改的名称。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/change-network-interface-name-centos7.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/appe-Consistent_Network_Device_Naming.html
\ No newline at end of file
diff --git a/published/201410/20140925 Linux FAQs with Answers--How to configure a static IP address on CentOS 7.md b/published/201410/20140925 Linux FAQs with Answers--How to configure a static IP address on CentOS 7.md
new file mode 100644
index 0000000000..a2134b43cf
--- /dev/null
+++ b/published/201410/20140925 Linux FAQs with Answers--How to configure a static IP address on CentOS 7.md
@@ -0,0 +1,78 @@
+Linux有问必答:如何为CentOS 7配置静态IP地址
+================================================================================
+> **问题**:在CentOS 7上,我想要将我其中一个网络接口从DHCP改为静态IP地址配置,如何才能永久为CentOS或RHEL 7上的网络接口分配静态IP地址?
+
+如果你想要为CentOS 7中的某个网络接口设置静态IP地址,有几种不同的方法,这取决于你是否想要使用网络管理器。
+
+网络管理器(Network Manager)是一个动态网络的控制器与配置系统,它用于当网络设备可用时保持设备和连接开启并激活。默认情况下,CentOS/RHEL 7安装有网络管理器,并处于启用状态。
+
+使用下面的命令来验证网络管理器服务的状态:
+
+ $ systemctl status NetworkManager.service
+
+运行以下命令来检查受网络管理器管理的网络接口:
+
+ $ nmcli dev status
+
+
+
+如果某个接口的nmcli的输出结果是“已连接”(如本例中的enp0s3),这就是说该接口受网络管理器管理。你可以轻易地为某个特定接口禁用网络管理器,以便你可以自己为它配置一个静态IP地址。
+
+下面将介绍**在CentOS 7上为网络接口配置静态IP地址的两种方式**,在例子中我们将对名为enp0s3的网络接口进行配置。
+
+### 不使用网络管理配置静态IP地址 ###
+
+进入/etc/sysconfig/network-scripts目录,找到该接口的配置文件(ifcfg-enp0s3)。如果没有,请创建一个。
+
+
+
+打开配置文件并编辑以下变量:
+
+
+
+在上图中,“NM_CONTROLLED=no”表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理。“ONBOOT=yes”告诉我们,系统将在启动时开启该接口。
+
+保存修改并使用以下命令来重启网络服务:
+
+ # systemctl restart network.service
+
+现在验证接口是否配置正确:
+
+ # ip add
+
+
+
+### 使用网络管理器配置静态IP地址 ###
+
+如果你想要使用网络管理器来管理该接口,你可以使用nmtui(网络管理器文本用户界面),它提供了在终端环境中配置配置网络管理器的方式。
+
+在使用nmtui之前,首先要在/etc/sysconfig/network-scripts/ifcfg-enp0s3中设置“NM_CONTROLLED=yes”。
+
+现在,请按以下方式安装nmtui。
+
+ # yum install NetworkManager-tui
+
+然后继续去编辑enp0s3接口的网络管理器配置:
+
+ # nmtui edit enp0s3
+
+在下面的屏幕中,我们可以手动输入与/etc/sysconfig/network-scripts/ifcfg-enp0s3中所包含的内容相同的信息。
+
+使用箭头键在屏幕中导航,按回车选择值列表中的内容(或填入想要的内容),最后点击屏幕底部右侧的确定按钮。
+
+
+
+最后,重启网络服务。
+
+ # systemctl restart network.service
+
+好了,现在一切都搞定了。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/configure-static-ip-address-centos7.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140925 Linux FAQs with Answers--How to detect a Linux distribution in Perl.md b/published/201410/20140925 Linux FAQs with Answers--How to detect a Linux distribution in Perl.md
new file mode 100644
index 0000000000..6793ab5565
--- /dev/null
+++ b/published/201410/20140925 Linux FAQs with Answers--How to detect a Linux distribution in Perl.md
@@ -0,0 +1,53 @@
+Linux有问必答:如何用Perl检测Linux的发行版本
+================================================================================
+> **提问**:我需要写一个Perl程序,它会包含Linux发行版相关的代码。为此,Perl程序需要能够自动检测运行中的Linux的发行版(如Ubuntu、CentOS、Debian、Fedora等等),以及它是什么版本号。如何用Perl检测Linux的发行版本?
+
+如果要用Perl脚本检测Linux的发行版,你可以使用一个名为[Linux::Distribution][1]的Perl模块。该模块通过检查/etc/lsb-release以及其他在/etc下的发行版特定的目录来猜测底层Linux操作系统。它支持检测所有主要的Linux发行版,包括Fedora、CentOS、Arch Linux、Debian、Ubuntu、SUSE、Red Hat、Gentoo、Slackware、Knoppix和Mandrake。
+
+要在Perl中使用这个模块,你首先需要安装它。
+
+### 在Debian或者Ubuntu上安装 Linux::Distribution ###
+
+基于Debian的系统直接用apt-get安装
+
+ $ sudo apt-get install liblinux-distribution-packages-perl
+
+### 在Fedora、CentOS 或者RHEL上安装 Linux::Distribution ###
+
+如果你的Linux没有Linux::Distribution模块的安装包(如基于红帽的系统),你可以使用CPAN来构建。
+
+首先确保你的Linux系统安装了CPAN
+
+ $ sudo yum -y install perl-CPAN
+
+然后,使用这条命令来构建并安装模块:
+
+ $ sudo perl -MCPAN -e 'install Linux::Distribution'
+
+### 用Perl确定Linux发行版 ###
+
+Linux::Distribution模块安装完成之后,你可以使用下面的代码片段来确定你运行的Linux发行版本。
+
+ use Linux::Distribution qw(distribution_name distribution_version);
+
+ my $linux = Linux::Distribution->new;
+
+ if ($linux) {
+ my $distro = $linux->distribution_name();
+ my $version = $linux->distribution_version();
+ print "Distro: $distro $version\n";
+ }
+ else {
+ print "Distro: unknown\n";
+ }
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/detect-linux-distribution-in-perl.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://metacpan.org/pod/Linux::Distribution
\ No newline at end of file
diff --git a/published/201410/20140925 Linux FAQs with Answers--How to embed all fonts in a PDF document generated with LaTex.md b/published/201410/20140925 Linux FAQs with Answers--How to embed all fonts in a PDF document generated with LaTex.md
new file mode 100644
index 0000000000..e3fdfa0da7
--- /dev/null
+++ b/published/201410/20140925 Linux FAQs with Answers--How to embed all fonts in a PDF document generated with LaTex.md
@@ -0,0 +1,39 @@
+Linux有问必答:如何在PDF中嵌入LaTex中的所有字体
+================================================================================
+> **提问**: 我通过编译LaTex源文件生成了一份PDF文档。然而,我注意到,并不是所有字体都嵌入到了PDF文档中。我怎样才能确保所有的字体嵌入在由LaTex生成的PDF文档中?
+
+当你创建一个PDF文件时,在PDF文件中嵌入字体是一个好主意。如果你不嵌入字体,PDF浏览器可以在计算机上没有字体的情况下使用其他东西代替。这将导致文件被在不同的PDF浏览器或操作系统平台上呈现不同的样式。当你打印出来的文档时,缺少的字体是一个问题。
+
+当你从LaTex中生成PDF文档时(例如用pdflatex或dvipdfm),可能并不是所有的字体都嵌入在PDF文档中。例如,[pdffonts][1]下面的输出中提示PDF文档中有缺少的字体(如Helvetica)。
+
+
+
+为了避免这样的问题,下面是如何在LaTex编译时嵌入所有的字体。
+
+ $ latex document.tex
+ $ dvips -Ppdf -G0 -t letter -o document.ps document.dvi
+ $ ps2pdf -dPDFSETTINGS=/prepress \
+ -dCompatibilityLevel=1.4 \
+ -dAutoFilterColorImages=false \
+ -dAutoFilterGrayImages=false \
+ -dColorImageFilter=/FlateEncode \
+ -dGrayImageFilter=/FlateEncode \
+ -dMonoImageFilter=/FlateEncode \
+ -dDownsampleColorImages=false \
+ -dDownsampleGrayImages=false \
+ document.ps document.pdf
+
+现在你可以看到所有的字体都被嵌入到PDF中了。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/embed-all-fonts-pdf-document-latex.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ask.xmodulo.com/check-which-fonts-are-used-pdf-document.html
\ No newline at end of file
diff --git a/published/201410/20140926 How To Reset Root Password On CentOS 7.md b/published/201410/20140926 How To Reset Root Password On CentOS 7.md
new file mode 100644
index 0000000000..c4586cec8b
--- /dev/null
+++ b/published/201410/20140926 How To Reset Root Password On CentOS 7.md
@@ -0,0 +1,52 @@
+如何重置CentOS 7的Root密码
+===
+
+重置Centos 7 Root密码的方式和Centos 6完全不同。让我来展示一下到底如何操作。
+
+1 - 在启动grub菜单,选择编辑选项启动
+
+
+
+2 - 按键盘e键,来进入编辑界面
+
+
+
+3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/
+
+
+
+4 - 现在按下 Control+x ,使用单用户模式启动
+
+
+
+5 - 现在,可以使用下面的命令访问系统
+
+ chroot /sysroot
+
+6 - 重置密码
+
+ passwd root
+
+7 - 更新系统信息
+
+ touch /.autorelabel
+
+8 - 退出chroot
+
+ exit
+
+9 - 重启你的系统
+
+ reboot
+
+就是这样!
+
+---
+
+via: http://www.unixmen.com/reset-root-password-centos-7/
+
+作者:M.el Khamlichi
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/20140928 How to Use Systemd Timers.md b/published/201410/20140928 How to Use Systemd Timers.md
new file mode 100644
index 0000000000..df9cc2eb22
--- /dev/null
+++ b/published/201410/20140928 How to Use Systemd Timers.md
@@ -0,0 +1,111 @@
+如何使用 systemd 中的定时器
+================================================================================
+我最近在写一些执行备份工作的脚本,我决定使用[systemd timers][1]而不是对我而已更熟悉的[cron jobs][2]来管理它们。
+
+在我使用时,出现了很多问题需要我去各个地方找资料,这个过程非常麻烦。因此,我想要把我目前所做的记录下来,方便自己的记忆,也方便读者不必像我这样,满世界的找资料了。
+
+在我下面提到的步骤中有其他的选择,但是这里是最简单的方法。在此之前,请查看**systemd.service**, **systemd.timer**,和**systemd.target**的帮助页面(man),学习你能用它们做些什么。
+
+### 运行一个简单的脚本 ###
+
+假设你有一个脚本叫:**/usr/local/bin/myscript** ,你想要每隔一小时就运行一次。
+
+#### Service 文件 ####
+
+第一步,创建一个service文件,根据你Linux的发行版本放到相应的系统目录(在Arch中,这个目录是**/etc/systemd/system/** 或 **/usr/lib/systemd/system**)
+
+myscript.service
+
+ [Unit]
+ Description=MyScript
+
+ [Service]
+ Type=simple
+ ExecStart=/usr/local/bin/myscript
+
+注意,务必将**Type**变量的值设置为"simple"而不是"oneshot"。使用"oneshot"使得脚本只在第一次运行,之后系统会认为你不想再次运行它,从而关掉我们接下去创建的定时器(Timer)。
+
+#### Timer 文件 ####
+
+第二步,创建一个timer文件,把它放在第一步中service文件放置的目录。
+
+myscript.timer
+
+ [Unit]
+ Description=Runs myscript every hour
+
+ [Timer]
+ # 首次运行要在启动后10分钟后
+ OnBootSec=10min
+ # 每次运行间隔时间
+ OnUnitActiveSec=1h
+ Unit=myscript.service
+
+ [Install]
+ WantedBy=multi-user.target
+
+#### 授权 / 运行 ####
+
+授权并运行的是timer文件,而不是service文件。
+
+ # 以 root 身份启动定时器
+ systemctl start myscript.timer
+ # 在系统引导起来后就启用该定时器
+ systemctl enable myscript.timer
+
+### 在同一个Timer上运行多个脚本 ###
+
+现在我们假设你在相同时间想要运行多个脚本。这种情况,**你需要在上面的文件中做适当的修改**。
+
+#### Service 文件 ####
+
+像我[之前说过的][3]那样创建你的service文件来运行你的脚本,但是在每个service 文件最后都要包含下面的内容:
+
+ [Install]
+ WantedBy=mytimer.target
+
+如果在你的service 文件中有一些依赖顺序,确保你使用**Description**字段中的值具体指定**After=something.service**和**Before=whatever.service**中的参数。
+
+另外的一种选择是(或许更加简单),创建一个包装脚本来使用正确的顺序来运行命令,并在你的service文件中使用这个脚本。
+
+#### Timer 文件 ####
+
+你只需要一个timer文件,创建**mytimer.timer**,像我在[上面指出的](4)。
+
+#### target 文件 ####
+
+你可以创建一个以上所有的脚本依赖的target文件。
+
+mytimer.target
+
+ [Unit]
+ Description=Mytimer
+ # Lots more stuff could go here, but it's situational.
+ # Look at systemd.unit man page.
+
+#### 授权 / 启动 ####
+
+你需要将所有的service文件和timer文件授权。
+
+ systemctl enable script1.service
+ systemctl enable script2.service
+ ...
+ systemctl enable mytimer.timer
+ systemctl start mytimer.service
+
+Good luck.
+
+--------------------------------------------------------------------------------
+
+via: http://jason.the-graham.com/2013/03/06/how-to-use-systemd-timers/
+
+作者:Jason Graham
+译者:[johnhoow](https://github.com/johnhoow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Systemd.timer
+[2]:https://en.wikipedia.org/wiki/Cron
+[3]:http://jason.the-graham.com/2013/03/06/how-to-use-systemd-timers/#service-file
+[4]:http://jason.the-graham.com/2013/03/06/how-to-use-systemd-timers/#timer-file-1
diff --git a/published/201410/20140928 Oracle Linux 5.11 Features Updated Unbreakable Linux Kernel.md b/published/201410/20140928 Oracle Linux 5.11 Features Updated Unbreakable Linux Kernel.md
new file mode 100644
index 0000000000..1debab469b
--- /dev/null
+++ b/published/201410/20140928 Oracle Linux 5.11 Features Updated Unbreakable Linux Kernel.md
@@ -0,0 +1,51 @@
+Oracle Linux 5.11更新了其Unbreakable Linux内核
+================================================================================
+> 此版本更新了很多软件包
+
+
+
+这是这个分支的最后一个版本更新(随同 RHEL 5.11的落幕,CentOS 和 Oracle Linux 的5.x 系列也纷纷释出该系列的最后版本)。
+
+>**甲骨文公司宣布,Oracle Linux5.11版已提供下载,但是这是企业版,需要用户注册才能下载。**
+
+这个新的Oracle Linux是这个系列的最后一次更新。该系统基于Red Hat和该公司最近推送的RHEL 5X分支更新,这意味着这也是Oracle此产品线的最后一次更新。
+
+Oracle Linux还带来了一系列有趣的功能,就像一个名为Ksplice的零宕机内核更新,它最初是针对openSUSE,包括Oracle数据库和Oracle应用软件开发的,它们在基于x86的Oracle系统中使用。
+
+### Oracle Linux有哪些特别的 ###
+
+尽管Oracle Linux基于红帽,它的开发者曾经举出了很多你不应该使用RHEL的原因。理由有很多,但最主要的是,任何人都可以下载Oracle Linux(注册后),而RHEL实际上限制了非付费会员下载。
+
+开发者在其网站上说:“为企业应用和系统提供先进的可扩展性和可靠性,Oracle Linux提供了极高的性能,并且在采用x86架构的Oracle工程系统中使用。Oracle Linux是免费使用,免费派发,免费更新,并可轻松下载。它是唯一带来生产中零宕机补丁Oracle Ksplice支持的Linux发行版,允许客户无需重启而部署安全或者其他更新,并且同时提供诊断功能来调试生产系统中的内核问题。”
+
+Oracle Linux其中一个最有趣且独一无二的功能是其Unbreakable Kernel(坚不可摧的内核)。这是它的开发者实际使用的名称。它基于来自3.0.36分支的旧Linux内核。用户还可以使用红帽兼容内核(内核2.6.18-398.el5),这在发行版中默认提供。
+
+此外,Oracle Linux Release 5.11企业版内核提供了对大量硬件和设备的支持,但这个最新的更新带来了更好的支持。
+
+您可以查看Oracle Linux 5.11全部[发布通告][1],这可能需要花费一些时间去读。
+
+你也可以从下面下载Oracle Linux 5.11:
+
+- [Oracle Enterprise Linux 6.5 (ISO) 64-bit][2]
+- [Oracle Enterprise Linux 6.5 (ISO) 32-bit][3]
+- [Oracle Enterprise Linux 7.0 (ISO) 64-bit][4]
+- [Oracle Enterprise Linux 5.11 (ISO) 64-bit][5]
+- [Oracle Enterprise Linux 5.11 (ISO) 32-bit][6]
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Oracle-Linux-5-11-Features-Updated-Unbreakable-Linux-Kernel-460129.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:https://oss.oracle.com/ol5/docs/RELEASE-NOTES-U11-en.html#Kernel_and_Driver_Updates
+[2]:http://mirrors.dotsrc.org/oracle-linux/OL6/U5/i386/OracleLinux-R6-U5-Server-i386-dvd.iso
+[3]:http://mirrors.dotsrc.org/oracle-linux/OL6/U5/x86_64/OracleLinux-R6-U5-Server-x86_64-dvd.iso
+[4]:https://edelivery.oracle.com/linux/
+[5]:http://ftp5.gwdg.de/pub/linux/oracle/EL5/U11/x86_64/Enterprise-R5-U11-Server-x86_64-dvd.iso
+[6]:http://ftp5.gwdg.de/pub/linux/oracle/EL5/U11/i386/Enterprise-R5-U11-Server-i386-dvd.iso
\ No newline at end of file
diff --git a/published/201410/20140929 Git Rebase Tutorial--Going Back in Time with Git Rebase.md b/published/201410/20140929 Git Rebase Tutorial--Going Back in Time with Git Rebase.md
new file mode 100644
index 0000000000..700f9a8f99
--- /dev/null
+++ b/published/201410/20140929 Git Rebase Tutorial--Going Back in Time with Git Rebase.md
@@ -0,0 +1,127 @@
+Git Rebase教程: 用Git Rebase让时光倒流
+================================================================================
+
+### 教程: Git Rebase ###
+
+想象一下你正在开发一个激进的新功能。这将是很灿烂的但它需要一段时间。您这几天也许是几个星期一直在做这个。
+
+你的功能分支已经超前master有6个提交了。你是一个优秀的开发人员并做了有意义的语义提交。但有一件事情:你开始慢慢意识到,这个疯狂的东西仍需要更多的时间才能真的做好准备被合并回主分支。
+
+ m1-m2-m3-m4 (master)
+ \
+ f1-f2-f3-f4-f5-f6(feature)
+
+你也知道的是,一些地方实际上是交叉不大的新功能。它们可以更早地合并到主分支。不幸的是,你想将部分合并到主分支的内容存在于你六个提交中的某个地方。更糟糕的是,它也包含了依赖于你的功能分支的之前的提交。有人可能会说,你应该在第一处地方做两次提交,但没有人是完美的。
+
+ m1-m2-m3-m4 (master)
+ \
+ f1-f2-f3-f4-f5-f6(feature)
+ ^
+ |
+ mixed commit
+
+在你准备提交的时间,你没有预见到,你可能要逐步把该功能合并入主分支。哎呀!你不会想到这件事会有这么久。
+
+你需要的是一种方法可以回溯历史,把它并分成两次提交,这样就可以把代码都安全地分离出来,并可以移植到master分支。
+
+用图说话,就是我们需要这样。
+
+ m1-m2-m3-m4 (master)
+ \
+ f1-f2-f3a-f3b-f4-f5-f6(feature)
+
+在将工作分成两个提交后,我们就可以cherry-pick出前面的部分到主分支了。
+
+原来Git自带了一个功能强大的命令git rebase -i ,它可以让我们这样做。它可以让我们改变历史。改变历史可能会产生问题,作为一个经验,应尽快避免历史与他人共享。不过在我们的例子中,我们只是改变我们的本地功能分支的历史。没有人会受到伤害。就这么做了!
+
+好吧,让我们来仔细看看f3提交究竟修改了什么。原来我们共修改了两个文件:userService.js和wishlistService.js。比方说,userService.js的更改可以直接合入主分支而wishlistService.js不能。因为wishlistService.js甚至不存在在主分支里面。它是f1提交中引入的。
+
+>>专家提示:即使是在一个文件中更改,git也可以搞定。但这篇博客中我们先简化情况。
+
+我们已经建立了一个[公众演示仓库][3],我们将使用这个来练习。为了便于跟踪,每一个提交信息的前缀是在上面的图表中使用的假的SHA。以下是git在分开提交f3时的分支图。
+
+
+
+现在,我们要做的第一件事就是使用git的checkout功能checkout出我们的功能分支。用git rebase -i master开始做rebase。
+
+现在接下来git会用所配置的编辑器打开(默认为Vim)一个临时文件。
+
+
+
+该文件为您提供一些rebase选择,它带有一个提示(蓝色文字)。对于每一个提交,我们可以选择的动作有pick、rwork、edit、squash、fixup和exec。每一个动作也可以通过它的缩写形式p、r、e、s、f和e引用。描述每一个选项超出了本文范畴,所以让我们专注于我们的具体任务。
+
+我们要为f3提交选择edit选项,因此我们把内容改变成这样。
+
+
+
+现在我们保存文件(在Vim中是按下后输入:wq,最后是按下回车)。接下来我们注意到git在编辑选项中选择的提交处停止了rebase。
+
+
+
+这意味这git开始将f1、f2、f3生效仿佛它就是常规的rebase,但是在f3生效**之后**停止。事实上,我们可以看一眼停止的地方的日志就可以证明这一点。
+
+
+
+要将f3分成两个提交,我们所要做的是重置git的指针到先前的提交(f2)而保持工作目录和现在一样。这就是git reset在混合模式在做的。由于混合模式是git reset的默认模式,我们可以直接用git reset head~1。就这么做并在运行后用git status看下发生了什么。
+
+
+
+git status告诉我们userService.js和wishlistService.js被修改了。如果我们运行 git diff 我们就可以看见在f3里面确切地做了哪些更改。
+
+
+
+如果我们看一眼日志我们会发现f3已经消失了。
+
+
+
+现在我们有了准备提交的先前的f3提交,而原先的f3提交已经消失了。记住虽然我们仍旧在rebase的中间过程。我们的f4、f5、f6提交还没有缺失,它们会在接下来回来。
+
+让我们创建两个新的提交:首先让我们为可以提交到主分支的userService.js创建一个提交。运行git add userService.js 接着运行 git commit -m "f3a: add updateUser method"。
+
+太棒了!让我们为wishlistService.js的改变创建另外一个提交。运行git add wishlistService.js,接着运行git commit -m "f3b: add addItems method".
+
+让我们在看一眼日志。
+
+
+
+这就是我们想要的,除了f4、f5、f6仍旧缺失。这是因为我们仍在rebase交互的中间,我们需要告诉git继续rebase。用下面的命令继续:git rebase --continue。
+
+让我们再次检查一下日志。
+
+
+
+就是这样。我们现在已经得到我们想要的历史了。先前的f3提交现在已经被分割成两个提交f3a和f3b。剩下的最后一件事是cherry-pick出f3a提交到主分支上。
+
+为了完成最后一步,我们首先切换到主分支。我们用git checkout master。现在我们就可以用cherry-pick命令来拾取f3a commit了。本例中我们可以用它的SHA值bd47ee1来引用它。
+
+
+
+现在f3a这个提交就在主分支的最上面了。这就是我们需要的!
+
+
+
+这篇文章的长度看起来需要花费很大的功夫,但实际上对于一个git高级用户而言这只是一会会。
+
+>注:Christoph目前正在与Pascal Precht写一本关于[Git rebase][4]的书,您可以在leanpub订阅它并在准备出版时获得通知。
+
+
+
+本文作者 Christoph Burgdorf自10岁时就是一名程序员,他是HannoverJS Meetup网站的创始人,并且一直活跃在AngularJS社区。他也是非常了解gti的内内外外,在那里他举办一个[thoughtram][1]的工作室来帮助初学者掌握该技术。
+
+本的教程最初发表在他的[blog][2]。
+
+--------------------------------------------------------------------------------
+
+via: https://www.codementor.io/git-tutorial/git-rebase-split-old-commit-master
+
+作者:[cburgdorf][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://www.codementor.io/cburgdorf
+[1]:http://thoughtram.io/
+[2]:http://blog.thoughtram.io/posts/going-back-in-time-to-split-older-commits/
+[3]:https://github.com/thoughtram/interactive-rebase-demo
+[4]:https://leanpub.com/rebase-the-complete-guide-on-rebasing-in-git
\ No newline at end of file
diff --git a/published/201410/20140929 Learning Vim in 2014--Working with Files.md b/published/201410/20140929 Learning Vim in 2014--Working with Files.md
new file mode 100644
index 0000000000..ad7278ddad
--- /dev/null
+++ b/published/201410/20140929 Learning Vim in 2014--Working with Files.md
@@ -0,0 +1,91 @@
+学习VIM之2014
+================================================================================
+
+作为一名开发者,你不应该把时间花费在考虑如何去找你所要编辑的代码上。在我转移到完全使用 VIM 的过程中,感到最痛苦的就是它处理文件的方式。从之前主要使用 Eclipse 和 Sublime Text 过渡到 VIM,它没有捆绑一个常驻的文件系统查看器对我造成了不少阻碍,而其内建的打开和切换文件的方式总是让我泪流满面。
+
+就这一点而言,我非常欣赏VIM文件管理功能的深度。在工作环境上我已经装配了这些工具,甚至比起那些视觉编辑器好很多。因为这个是纯键盘操作,可以让我更快地在代码里面穿梭。搭建环境需要花费一些时间,安装几个插件。首先第一步是我明白vim内建功能只是处理文件的一种选择。在这篇文章里我会带你去认识vim文件管理功能与使用更高级的插件。
+
+### 基础篇:打开新文件 ###
+
+学习vim其中最大的一个障碍是缺少可视提示,不像现在的GUI图形编辑器,当你在终端打开一个新的vim是没有明显的提示去提醒你去走什么,所有事情都是靠键盘输入,同时也没有更多更好的界面交互,vim新手需要习惯如何靠自己去查找一些基本的操作指令。好吧,让我开始学习基础吧。
+
+创建新文件的命令是**:e 或:e** 打开一个新缓冲区保存文件内容。如果文件不存在它会开辟一个缓冲区去保存与修改你指定文件。缓冲区是vim是术语,意为"保存文本块到内存"。文本是否能够与存在的文件关联,要看是否每个你打开的文件都对应一个缓冲区。
+
+打开文件与修改文件之后,你可以使用**:w**命令来保存在缓冲区的文件内容到文件里面,如果缓冲区不能关联你的文件或者你想保存到另外一个地方,你需要使用**:w **来保存指定地方。
+
+这些是vim处理文件的基本知识,很多的开发者都掌握了这些命令,这些技巧你都需要掌握。vim提供了很多技巧让人去深挖。
+
+### 缓冲区管理 ###
+
+基础掌握了,就让我来说更多关于缓冲区的东西,vim处理打开文件与其他编辑器有一点不同,打开的文件不会作为一个标签留在一个可见的地方,而是只允许你同时只有一个文件在缓冲区打开,vim允许你打开多个缓存区。一些会显示出来,另外一些就不会,你需要用**:ls**来查看已经打开的缓存,这个命令会显示每个打开的缓存区,同时会有它们的序号,你可以通过这些序号使用**:b **来切换或者使用循序移动命令 **:bnext** 和 **:bprevious** 也可以使用它们的缩写**:bn**和**:bp**。
+
+这些命令是vim管理文件缓冲区的一个基础,我发现他们不会按照我的想法映射出来。我不想关心缓冲区的顺序,我只想按照我的想法去到那个文件或者想在当前这个文件.因此必需了解vim更深入的缓存模式,我不是推荐你必须用内部命令来作为主要的文件管理方案。但这些的确是很强大可行的选择。
+
+
+
+### 分屏 ###
+
+分屏是vim其中一个最好用的管理文件功能,在vim中你可以将当前窗口同时分开为2个窗口,可以按照你喜欢的配置去重设大小和分配,个别时候,我可以在同时打开6文件每个文件,每个都拥有不同大小。
+
+你可以通过命令**:sp **来新建水平分割窗口或者 **:vs **垂直分割窗口。你可以使用这些关键命令去调整你想要的窗口大小,老实说,我喜欢用鼠标处理vim任务,因为鼠标能够给我更加准确的两列的宽度而不需要猜大概的宽度。
+
+创建新的分屏后,你需要使用**ctrl-w [h|j|k|l]**来向后向前切换。这个有一点笨拙,但这个却是很重要、很普遍、很容易、很高效的操作。如果你经常使用分屏,我建议你去.vimrc使用以下代码去设置别名为**ctrl-h** **ctrl-j** 等等。
+
+ nnoremap "Ctrl-j to move down a split
+ nnoremap "Ctrl-k to move up a split
+ nnoremap "Ctrl-l to move right a split
+ nnoremap "Ctrl-h to move left a split
+
+### 跳转表 ###
+
+分屏是解决多个关联文件同时查看问题,但我们仍然不能解决已打开文件与隐藏文件之间快速移动问题。这时跳转表是一个能够解决的工具。
+
+跳转表是众多插件中看起来奇怪而且很少使用的一个。vim能够追踪每一步命令还有切换你正在修改的文件。每次从一个分屏窗口跳到另外一个,vim都会添加记录到跳转表里面。它记录你去过的地方,这样就不需要担心之前的文件在哪里,你可以使用快捷键去快速追溯你的踪迹。**Ctrl-o**允许你返回你上一次地方。重复操作几次就能够返回到你最先编写的代码段地方。你可以使用**ctrl-i**来向前返回。当你在调试多个文件或在两个文件之间切换时,它能够发挥极大的快速移动功能。
+
+### 插件 ###
+
+如果你想vim像Sublime Text 或者Atom一样,我就让你认清一下,这里有很好的机会让你看清一些难懂,可怕和低效的事情。例如大家会发出"当Sublime有了模糊查找功能,为什么我一定要输入全路径才能够打开文件" "没有侧边栏显示目录树我怎样查看项目结构" 等等。但vim有了解决方案。这些方案不需要破坏vim的核心。我只需要经常修改vim配置与添加一些最新的插件,这里有3个有用的插件可以让你像Sublime管理文件
+
+- [CtrlP][1] 是一个跟Sublime的"Go to Anything"栏一样模糊查找文件.它快如闪电并且非常可配置性。我使用它主要用来打开文件。我只需知道部分的文件名字不需要记住整个项目结构就可以查找了。
+
+- [The NERDTree][2] 这个一个文件管理夹插件,它重复了很多编辑器都有的侧边文件管理夹功能。我实际上很少用它,对于我而言模糊查找会更加快。对于你接手一个项目,尝试学习项目结构与了解什么可以用是非常方便的,NERDTree是可以自己定制配置,安装它能够代替vim内置的目录工具。
+
+- [Ack.vim][3] 是一个专为vim的代码搜索插件,它允许你跨项目搜索文本。它封装了Ack 或 Ag 这[两个极其好用的搜索工具][4],允许你在任何时候在你项目之间快速搜索跳转。
+
+在vim核心与它的插件生态系统之间,vim 提供足够的工具允许你构建你想要得工作环境。文件管理是软件开发系统的最核心部分并且你值得拥有体验的权利。
+
+开始时需要通过很长的时间去理解它们,然后在找到你感觉舒服的工作流程之后再开始在上面添加工具。但依然值得你去使用,你不用爆头就可以理解如何去使用,能够轻易编写你的代码。
+
+### 更多插件资源 ###
+
+- [Seamlessly Navigate Vim & Tmux Splits][5] 这个插件需要每一个想使用它的人都要懂得使用[tmux][6],这个跟vim的splits 一样简单好用。
+
+- [Using Tab Pages][7] 它是一个vim的标签功能插件,虽然它的名字用起来有一点疑惑,但它不是文件管理器。对如何在有多个工作可视区使用"tab pages" 在vim wiki 网站上有更好的概述。
+
+- [Vimcasts: The edit command][8] 一般来说 Vimcasts 是大家学习vim的一个好资源。这个屏幕截图与一些内置工作流程很好地描述了之前说的文件操作方面的知识。
+
+
+--------------------------------------------------------------------------------
+
+via: http://benmccormick.org/2014/07/07/learning-vim-in-2014-working-with-files/
+
+作者:[Ben McCormick][a]
+译者:[haimingfg](https://github.com/haimingfg)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://benmccormick.org/2014/07/07/learning-vim-in-2014-working-with-files/
+[1]:https://github.com/kien/ctrlp.vim
+[2]:https://github.com/scrooloose/nerdtree
+[3]:https://github.com/mileszs/ack.vim
+[4]:http://benmccormick.org/2013/11/25/a-look-at-ack/
+[5]:http://robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits
+[6]:http://tmux.sourceforge.net/
+[7]:http://vim.wikia.com/wiki/Using_tab_pages
+[8]:http://vimcasts.org/episodes/the-edit-command/
+[9]:http://feedpress.me/benmccormick
+[10]:http://eepurl.com/WFYon
+[11]:http://benmccormick.org/2014/07/14/learning-vim-in-2014-configuring-vim/
+[12]:http://benmccormick.org/2014/06/30/learning-vim-in-2014-the-basics/
+[13]:http://benmccormick.org/2014/07/02/learning-vim-in-2014-vim-as-language/
diff --git a/published/201410/20140929 Using GIT to backup your website files on linux.md b/published/201410/20140929 Using GIT to backup your website files on linux.md
new file mode 100644
index 0000000000..575a3c793e
--- /dev/null
+++ b/published/201410/20140929 Using GIT to backup your website files on linux.md
@@ -0,0 +1,120 @@
+使用 GIT 备份 linux 上的网页文件
+================================================================================
+
+
+BUP 并不单纯是 Git, 而是一款基于 Git 的软件. 一般情况下, 我使用 rsync 来备份我的文件, 而且迄今为止一直工作的很好. 唯一的不足就是无法把文件恢复到某个特定的时间点. 因此, 我开始寻找替代品, 结果发现了 BUP, 一款基于 git 的软件, 它将数据存储在一个仓库中, 并且有将数据恢复到特定时间点的选项.
+
+要使用 BUP, 你先要初始化一个空的仓库, 然后备份所有文件. 当 BUP 完成一次备份是, 它会创建一个还原点, 你可以过后还原到这里. 它还会创建所有文件的索引, 包括文件的属性和验校和. 当要进行下一个备份时, BUP 会对比文件的属性和验校和, 只保存发生变化的数据. 这样可以节省很多空间.
+
+### 安装 BUP (在 Centos 6 & 7 上测试通过) ###
+
+首先确保你已经安装了 RPMFORGE 和 EPEL 仓库
+
+ [techarena51@vps ~]$ sudo yum groupinstall "Development Tools"
+ [techarena51@vps ~]$ sudo yum install python python-devel
+ [techarena51@vps ~]$ sudo yum install fuse-python pyxattr pylibacl
+ [techarena51@vps ~]$ sudo yum install perl-Time-HiRes
+ [techarena51@vps ~]$ git clone git://github.com/bup/bup
+ [techarena51@vps ~]$ cd bup
+ [techarena51@vps ~]$ make
+ [techarena51@vps ~]$ make test
+ [techarena51@vps ~]$ sudo make install
+
+对于 debian/ubuntu 用户, 你可以使用 "apt-get build-dep bup". 要获得更多的信息, 可以查看 https://github.com/bup/bup
+
+在 CentOS 7 上, 当你运行 "make test" 时可能会出错, 但你可以继续运行 "make install".
+
+第一步时初始化一个空的仓库, 就像 git 一样.
+
+ [techarena51@vps ~]$ bup init
+
+默认情况下, bup 会把仓库存储在 "~/.bup" 中, 但你可以通过设置环境变量 "export BUP_DIR=/mnt/user/bup" 来改变设置.
+
+然后, 创建所有文件的索引. 这个索引, 就像之前讲过的那样, 存储了一系列文件和它们的属性及 git 目标 id (sha1 哈希表). (属性包括了软链接, 权限和不可改变字节)
+
+ bup index /path/to/file
+ bup save -n nameofbackup /path/to/file
+
+ #Example
+ [techarena51@vps ~]$ bup index /var/www/html
+ Indexing: 7973, done (4398 paths/s).
+ bup: merging indexes (7980/7980), done.
+
+ [techarena51@vps ~]$ bup save -n techarena51 /var/www/html
+
+ Reading index: 28, done.
+ Saving: 100.00% (4/4k, 28/28 files), done.
+ bloom: adding 1 file (7 objects).
+ Receiving index from server: 1268/1268, done.
+ bloom: adding 1 file (7 objects).
+
+"BUP save" 会把所有内容分块, 然后把它们作为对象储存. "-n" 选项指定备份名.
+
+你可以查看备份列表和已备份文件.
+
+ [techarena51@vps ~]$ bup ls
+ local-etc techarena51 test
+ #Check for a list of backups available for my site
+ [techarena51@vps ~]$ bup ls techarena51
+ 2014-09-24-064416 2014-09-24-071814 latest
+ #Check for the files available in these backups
+ [techarena51@vps ~]$ bup ls techarena51/2014-09-24-064416/var/www/html
+ apc.php techarena51.com wp-config-sample.php wp-load.php
+
+在同一个服务器上备份文件从来不是一个好的选择. BUP 允许你远程备份网页文件, 但你必须保证你的 SSH 密钥和 BUP 都已经安装在远程服务器上.
+
+ bup index path/to/dir
+ bup save-r remote-vps.com -n backupname path/to/dir
+
+### 例子: 备份 "/var/www/html" 文件夹 ###
+
+ [techarena51@vps ~]$bup index /var/www/html
+ [techarena51@vps ~]$ bup save -r user@remotelinuxvps.com: -n techarena51 /var/www/html
+ Reading index: 28, done.
+ Saving: 100.00% (4/4k, 28/28 files), done.
+ bloom: adding 1 file (7 objects).
+ Receiving index from server: 1268/1268, done.
+ bloom: adding 1 file (7 objects).
+
+### 恢复备份 ###
+
+登入远程服务器并输入下面的命令
+
+ [techarena51@vps ~]$bup restore -C ./backup techarena51/latest
+
+ #Restore an older version of the entire working dir elsewhere
+ [techarena51@vps ~]$bup restore -C /tmp/bup-out /testrepo/2013-09-29-195827
+ #Restore one individual file from an old backup
+ [techarena51@vps ~]$bup restore -C /tmp/bup-out /testrepo/2013-09-29-201328/root/testbup/binfile1.bin
+
+唯一的缺点是你不能把文件恢复到另一个服务器, 你必须通过 SCP 或者 rsync 手动复制文件.
+
+通过集成的 web 服务器查看备份.
+
+ bup web
+ #specific port
+ bup web :8181
+
+你可以使用 shell 脚本来运行 bup, 并建立一个每日运行的定时任务.
+
+ #!/bin/bash
+
+ bup index /var/www/html
+ bup save -r user@remote-vps.com: -n techarena51 /var/www/html
+
+BUP 并不完美, 但它的确能够很好地完成任务. 我当然非常愿意看到这个项目的进一步开发, 希望以后能够增加远程恢复的功能.
+
+你也许喜欢阅读这篇——使用[inotify-tools][1]实时文件同步.
+
+--------------------------------------------------------------------------------
+
+via: http://techarena51.com/index.php/using-git-backup-website-files-on-linux/
+
+作者:[Leo G][a]
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://techarena51.com/
+[1]:http://techarena51.com/index.php/inotify-tools-example/
diff --git a/published/201410/20140930 Check If Your Linux System Is Vulnerable To Shellshock And Fix It.md b/published/201410/20140930 Check If Your Linux System Is Vulnerable To Shellshock And Fix It.md
new file mode 100644
index 0000000000..c9ef13ca11
--- /dev/null
+++ b/published/201410/20140930 Check If Your Linux System Is Vulnerable To Shellshock And Fix It.md
@@ -0,0 +1,65 @@
+检查你的系统系统是否有“Shellshock”漏洞并修复它
+================================================================================
+
+
+快速地向你展示**如何检查你的系统是否受到Shellshock的影响**,如果有,**怎样修复你的系统免于被Bash漏洞利用**。
+
+如果你正跟踪新闻,你可能已经听说过在[Bash][1]中发现了一个漏洞,这被称为**Bash Bug**或者** Shellshock**。 [红帽][2]是第一个发现这个漏洞的机构。Shellshock错误允许攻击者注入自己的代码,从而使系统开放各给种恶意软件和远程攻击。事实上,[黑客已经利用它来启动DDoS攻击][3]。
+
+由于Bash在所有的类Unix系统中都有,如果这些都运行bash的特定版本,它会让所有的Linux系统都容易受到这种Shellshock错误的影响。
+
+想知道如果你的Linux系统是否已经受到Shellshock影响?有一个简单的方法来检查它,这就是我们要看到的。
+
+### 检查Linux系统的Shellshock漏洞 ###
+
+打开一个终端,在它运行以下命令:
+
+ env x='() { :;}; echo vulnerable' bash -c 'echo hello'
+
+如果你的系统没有漏洞,你会看到这样的输出:
+
+ bash: warning: x: ignoring function definition attempt
+ bash: error importing function definition for `x’
+ hello
+
+如果你的系统有Shellshock漏洞,你会看到一个像这样的输出:
+
+ vulnerable
+ hello
+
+我尝试在我的Ubuntu14.10上运行,我得到了这个:
+
+
+
+您还可以通过使用下面的命令查看bash的版本:
+
+ bash --version
+
+如果bash的版本是3.2.51(1),你就应该更新了。
+
+#### 为有Shellshock漏洞的Linux系统打补丁 ####
+
+如果你运行的是基于Debian的Linux操作系统,如Ubuntu、Linux Mint的等,请使用以下命令升级Bash:
+
+ sudo apt-get update && sudo apt-get install --only-upgrade bash
+
+对于如Fedora,Red Hat,Cent OS等操作系统,请使用以下命令
+
+ yum -y update bash
+
+我希望这个小技巧可以帮助你,看看你是否受到Shellshock漏洞的影响并解决它。有任何问题和建议,欢迎来提。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/linux-shellshock-check-fix/
+
+作者:[Abhishek][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://en.wikipedia.org/wiki/Bash_(Unix_shell)
+[2]:https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
+[3]:http://www.wired.com/2014/09/hackers-already-using-shellshock-bug-create-botnets-ddos-attacks/
\ No newline at end of file
diff --git a/published/201410/20140930 How to Boot Linux ISO Images Directly From Your Hard Drive.md b/published/201410/20140930 How to Boot Linux ISO Images Directly From Your Hard Drive.md
new file mode 100644
index 0000000000..563bc89c50
--- /dev/null
+++ b/published/201410/20140930 How to Boot Linux ISO Images Directly From Your Hard Drive.md
@@ -0,0 +1,94 @@
+直接从硬盘启动Linux ISO镜像
+================================================================================
+
+
+Linux的GRUB2启动加载器可以直接从硬盘启动Linux ISO文件,可以启动Live CD的 ISO,而不用烧录到光盘来安装Linux到一个硬盘分区,或从USB驱动启动。
+
+我们在Ubuntu 14.04上实施了该过程——Ubuntu及基于Ubuntu的Linux版本对此支持良好。[其它Linux发行版][1]上的工作原理也类似。
+
+### 获取Linux ISO文件 ###
+
+这一密技需要你的硬盘驱动器上安装有Linux系统,你的计算机必须使用[GRUB2启动加载器][2],这是大多数Linux系统的标准启动加载器。不好意思,你是不能使用Windows启动加载器来直接启动一个Linux ISO文件的。
+
+下载你想要使用的ISO文件,并放到你的Linux分区中。GRUB2应该支持大多数Linux系统的。如果你想要在live环境中使用它们,而不想将它们安装到硬盘驱动器上,请确认你下载的是各个Linux ISO的“[live CD][3]”版本。很多基于Linux的可启动工具盘也应该可以工作。
+
+### 检查ISO文件内容 ###
+
+你可能需要查看ISO文件的内部来知道那些特定的的文件在哪里。例如,你可以通过使用Ubuntu及其它基于GNOME的桌面环境中的归档管理器/文件管理器这些图形化应用程序来打开ISO文件。在Nautilus文件管理器中,右击ISO文件并选择使用归档管理器打开。
+
+找到内核文件和initrd映像。如果你正在使用Ubuntu ISO文件,你会在casper文件夹中找到这些文件——vmlinuz文件是Linux内核,而initrd文件是initrd映像。后面,你需要知道它们在ISO文件中所处的位置。
+
+
+
+### 检查硬盘分区路径 ###
+
+GRUB使用与Linux不同的“设备命名”方式。在Linux系统中,/dev/sda0是硬盘上的第一个分区——**a**是指第一个硬盘,而**0**是指第一个分区。在GRUB中,与/dev/sda0相对应的是(hd0,1)。**0**指第一个硬盘,而**1**则指它上面的第一个分区。换句话说,在GRUB设备名中,磁盘编号从0开始计数,而分区编号则从1开始计数——是啊,这真是突然令人困惑。例如,(hd3,6)是指第四磁盘上的第六分区。
+
+你可以使用**fdisk -l**命令来查看该信息。在Ubuntu上,打开终端并运行以下命令:
+
+ sudo fdisk -l
+
+你将看到一个Linux设备路径列表,你可以自行将它们转成GRUB设备名。例如,在下面的图片中,我们可以看到有个系统分区是/dev/sda1——那么,对于GRUB而言,它就是(hd0,1)。
+
+
+
+### 创建GRUB2启动条目 ###
+
+添加自定义启动条目的最简单的方式是编辑/etc/grub.d/40_custom脚本,该文件设计用于用户自行添加启动条目。在编辑该文件后,/etc/defaults/grub文件和/etc/grub.d/脚本的内容将合成创建/boot/grub/grub.cfg文件——你不应该手工编辑这个文件。它被设计为通过你在另外的文件中指定的设置自动生成。
+
+你需要以root特权打开/etc/grub.d/40_custom文件来编辑。在Ubuntu上,你可以通过打开终端窗口,并运行以下命令来完成:
+
+ sudo gedit /etc/grub.d/40_custom
+
+放轻松点,你可以用你喜爱的文本编辑打开该文件。例如,你可以替换命令中“gedit”为“nano”,在[Nano文本编辑器][4]中打开它。
+
+除非你已经添加了其它自定义启动条目,否则你应当看到的是一个几乎空的文件。你需要在[注释][5]行下添加一个或多个ISO启动部分。
+
+
+
+这里为你展示了怎样来从ISO文件启动Ubuntu或基于Ubuntu的发行版,我们在Ubuntu 14.04下作了测试:
+
+ menuentry "Ubuntu 14.04 ISO" {
+ set isofile="/home/name/Downloads/ubuntu-14.04.1-desktop-amd64.iso"
+ loopback loop (hd0,1)$isofile
+ linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
+ initrd (loop)/casper/initrd.lz
+ }
+
+自定义启动条目以包含你期望的菜单的条目名称,并指定计算机上该ISO文件的正确路径,以及包含ISO文件的硬盘和分区设备名。如果vmlinuz和initrd文件的名称或路径不同,请为这些文件指定正确的路径。
+
+(如果你的/home/ 目录是一个分区,请忽略/home部分,像这样:**set isofile="/name/Downloads/${isoname}"**)。
+
+**重要说明**:不同的Linux版本要求带有不同启动选项的不同的启动条目,GRUB Live ISO多启动项目提供了[用于不同Linux发行版的菜单条目][6]的各种不同类型。你应当为你想要启动的ISO文件调整这些示例菜单条目。你也可以仅仅从网页搜索你想要启动的Linux发行版的名称和发行编号,并附带关键词“在GRUB中从ISO启动”,以获取更多信息。
+
+
+
+如果你想要添加更多ISO启动选项,请为该文件添加额外部分。
+
+完成后保存文件,返回终端窗口并运行以下命令:
+
+ sudo update-grub
+
+
+
+再次启动计算机时,你将看到ISO启动条目,你可以选择它来启动ISO文件。在启动时,你可能需要按Shift键来显示GRUB菜单。
+
+如果在尝试启动ISO文件时你看见错误信息或黑屏,那么你的启动条目配置肯定配置错误了。即使ISO文件路径和设备名是正确的,ISO文件上的vmlinuz和initrd文件的路径可能是不正确的,或者你启动Linux系统可能需要不同的选项。
+
+--------------------------------------------------------------------------------
+
+via: http://www.howtogeek.com/196933/how-to-boot-linux-iso-images-directly-from-your-hard-drive/
+
+作者:[Chris Hoffman][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.howtogeek.com/author/chrishoffman/
+[1]:http://www.howtogeek.com/191207/10-of-the-most-popular-linux-distributions-compared/
+[2]:http://www.howtogeek.com/196655/how-to-configure-the-grub2-boot-loaders-settings/
+[3]:http://www.howtogeek.com/172810/take-a-secure-desktop-everywhere-everything-you-need-to-know-about-linux-live-cds-and-usb-drives/
+[4]:http://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/
+[5]:http://www.howtogeek.com/118389/how-to-comment-out-and-uncomment-lines-in-a-configuration-file/
+[6]:http://git.marmotte.net/git/glim/tree/grub2
diff --git a/published/201410/20141008 Adobe Pulls Linux PDF Reader Downloads From Website.md b/published/201410/20141008 Adobe Pulls Linux PDF Reader Downloads From Website.md
new file mode 100644
index 0000000000..17e9920227
--- /dev/null
+++ b/published/201410/20141008 Adobe Pulls Linux PDF Reader Downloads From Website.md
@@ -0,0 +1,41 @@
+Adobe从网站上撤下了Linux PDF Reader的下载链接
+================================================================================
+
+
+
+**由于该公司从网站上撤下了软件的下载链接,因此这对于任何需要在Linux上使用Adobe这家公司的PDF阅读器的人而言有些麻烦了。**
+
+[Reddit 上的一个用户][1]发帖说,当他去 Adobe 网站上去下载该软件时,Linux并没有列在[支持的操作系统][2]里。
+
+不知道什么时候,更不知道为什么,Linux版本被删除了,不过第一次被发现是在八月份。
+
+这也并没有让人太惊讶。Adobe Reader 官方的Linux版本在2013年5月才更新,而且当时还在滞后的版本9.5.x上,而Windows和Mac版已经在v11.x。
+
+### 谁在意呢?无所谓 ###
+
+这是一个巨大的损失么?你可能并不会这么想。毕竟Adobe Reader是一款名声不好的app。速度慢,占用资源而且体积臃肿。而原生的PDF阅读app像Evince和Okular提供了一流的体验而没有上面的那些缺点。
+
+除开Snark,这一决定将会影响一些事。一些政府网站只能使用官方Abode应用才能完成或者提交提供的官方文档和程序。
+
+Adobe把Linux给刷了这事并不鲜见。该公司在2012年[停止了Linux上flash版本的更新][3](把它留给Google去做),[并且此前从它们的跨平台运行时环境“Air”中排除了踢开了Linux用户][4]。
+
+不过并没有失去一切。虽然网在不再提供链接了,然而在Adobe FTP服务器上仍有Debian的安装程序。计划使用老的版本?需要自己承担风险且没有来自Adobe的支持。同样注意这些版本可能还有没有修复的漏洞。
+
+- [下载Ubuntu版本的 Adobe Reader 9.5.5][5]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/10/adobe-reader-linux-download-pulled-website
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:https://www.reddit.com/r/linux/comments/2hsgq6/linux_version_of_adobe_reader_no_longer/
+[2]:http://get.adobe.com/reader/otherversions/
+[3]:http://www.omgubuntu.co.uk/2012/02/adobe-adandons-flash-on-linux
+[4]:http://www.omgubuntu.co.uk/2011/06/adobe-air-for-linux-axed
+[5]:ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.5.5/enu/AdbeRdr9.5.5-1_i386linux_enu.deb
\ No newline at end of file
diff --git a/published/201410/20141008 Linux Calendar App California 0.2 Released.md b/published/201410/20141008 Linux Calendar App California 0.2 Released.md
new file mode 100644
index 0000000000..d70213fb0f
--- /dev/null
+++ b/published/201410/20141008 Linux Calendar App California 0.2 Released.md
@@ -0,0 +1,57 @@
+Linux日历程序California 0.2 发布了
+================================================================================
+**随着[上月的Geary和Shotwell的更新][1],非盈利软件套装Yobra又回来了,同时带来了是新的[California][2]日历程序。**
+
+一个合格的桌面日历是工作井井有条(以及想要井井有条)的必备工具。[Chrome Web Store上广受欢迎的Sunrise应用][3]的发布让我们的选择比以前更丰富了,而California又为之增添了新的生力军!
+
+Yorba的Jim Nelson在Yorba博客上写道:“发生了很多变化“,接着写道:“...很高兴的告诉大家,初次发布比我预想的加入了更多的特性。”
+
+
+
+*California 0.2在GNOME上看上去棒极了。*
+
+最突出变化的是添加了“自然语言”解析器。这使得添加事件更容易。你可以直接输入“**在下午2点就Nachos会见Sam**”接着California就会自动把它安排下接下来的星期一的下午两点,而不必你手动输入位的信息(日期,时间等等)。(LCTT 译注:显然你只能输入英文才行)
+
+
+
+
+这个功能和我们我们在5月份评估开发版本时一样好用,甚至还修复了一个bug:事件重复。
+
+要创建一个重复时间(比如:“每个星期四搜索自己的名字”),你需要在日期前包含文字“every”(每个)。要确保地点也在内(比如:中午12点和Samba De Amigo在Boston Tea Party喝咖啡)。条目中需要有“at”或者“@”。
+
+至于详细信息,我们可以见[GNOME Wiki上的快速添加页面][4]:
+
+其他的改变包括:
+
+-以‘月’和‘周’视图查看事件
+-添加/删除 Google,CalDAV和web(.ics)日历
+-改进数据服务器整合
+-添加/编辑/删除远程事件(包括重复事件)
+-用自然语言安排计划
+-按下F1获取在线帮助
+-新的动画和弹出窗口
+
+### 在Ubuntu 14.10上安装 California 0.2 ###
+
+作为一个GNOME 3的程序,它在 Gnome 3下运行的外观和体验会更好。
+
+不过,Yorba也没有忽略Ubuntu用户。他们已经努力(也可以说是耐心地)地解决导致Ubuntu需要同时安装GTK+和GNOME的主题问题。结果就是在Ubuntu上程序可能看上去有点错位,但是同样工作的很好。
+
+California 0.2在[Yorba稳定版软件PPA][5]中可以下载,只用于Ubuntu 14.10。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/10/california-calendar-natural-language-parser
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/09/new-shotwell-geary-stable-release-available-to-downed
+[2]:https://wiki.gnome.org/Apps/California
+[3]:http://www.omgchrome.com/sunrise-calendar-app-for-google-chrome/
+[4]:https://wiki.gnome.org/Apps/California/HowToUseQuickAdd
+[5]:https://launchpad.net/~yorba/+archive/ubuntu/ppa?field.series_filter=utopic
\ No newline at end of file
diff --git a/published/201410/20141008 Linux Kernel 3.17 Is Out With Plenty of New Features.md b/published/201410/20141008 Linux Kernel 3.17 Is Out With Plenty of New Features.md
new file mode 100644
index 0000000000..34fba40131
--- /dev/null
+++ b/published/201410/20141008 Linux Kernel 3.17 Is Out With Plenty of New Features.md
@@ -0,0 +1,54 @@
+Linux Kernel 3.17 带来了很多新特性
+================================================================================
+Linus Torvalds已经发布了最新的稳定版内核3.17。
+
+
+
+Torvalds以他典型的[放任式][1]的口吻在Linux内核邮件列表中解释说:
+
+> “过去的一周很平静,我对3.17的如期发布没有疑虑(相对于乐观的“我应该早一周发布么”的计划而言)。”
+
+由于假期,Linux说他还没有开始合并3.18的改变:
+
+>“我马上要去旅行了- 在我期盼早点发布的时候我希望避免一些事情。这意味着在3.17发布后,我不会在下周非常活跃地合并新的东西,并且下下周是LinuxCon EU”
+
+### Linux 3.17有哪些新的? ###
+
+最新版本的 Linux 3.17 加入了最新的改进,硬件支持,修复等等。范围从不明觉厉的 - 比如:[memfd 和 文件密封补丁][2] - 到大多数人感兴趣的,比如最新硬件的支持。
+
+下面是这次发布的一些亮点的列表,但它们并不详尽:
+
+- Microsoft Xbox One 控制器支持 (没有震动反馈)
+- 额外的Sony SIXAXIS支持改进
+- 东芝 “主动防护感应器” 支持
+- 新的包括Rockchip RK3288和AllWinner A23 SoC的ARM芯片支持
+- 安全计算设备上的“跨线程过滤设置”
+- 基于Broadcom BCM7XXX板卡的支持(用在不同的机顶盒上)
+- 增强的AMD Radeon R9 290支持
+- Nouveau 驱动改进,包括Kepler GPU修复
+- 包含Intel Broadwell超级本上的Wildcatpoint Audio DSP音频支持
+
+### 在Ubuntu上安装 Linux 3.17 ###
+
+虽然被列为稳定版,但是目前对于大多数人而言只有很少的功能需要我们“现在去安装”。
+
+但是如果你很耐心——**更重要的是**——有足够的技能去处理从中导致的问题,你可以通过在由Canonical维护的主线内核存档中找到一系列合适的包安装在你的Ubuntu 14.10中,升级到Linux 3.17。
+
+**警告:除非你知道你正在做什么,不要尝试从下面的链接中安装任何东西。**
+
+- [访问Ubuntu内核主线存档][3]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/10/linux-kernel-3-17-whats-new-improved
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://lkml.iu.edu/hypermail/linux/kernel/1410.0/02818.html
+[2]:http://lwn.net/Articles/607627/
+[3]:http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D
\ No newline at end of file
diff --git a/published/201410/20141009 Linux Terminal--An lsof Primer.md b/published/201410/20141009 Linux Terminal--An lsof Primer.md
new file mode 100644
index 0000000000..76266736b9
--- /dev/null
+++ b/published/201410/20141009 Linux Terminal--An lsof Primer.md
@@ -0,0 +1,253 @@
+Linux 命令神器:lsof 入门
+================================================================================
+
+
+**lsof**是系统管理/[安全][2]的尤伯工具。我大多数时候用它来从系统获得与[网络][3]连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“**列出打开文件(lists openfiles)**”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
+
+有趣的是,lsof也是有着最多开关的Linux/Unix命令之一。它有那么多的开关,它有许多选项支持使用-和+前缀。
+
+ usage: [-?abhlnNoOPRstUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]
+ [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]]
+ [-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
+
+正如你所见,lsof有着实在是令人惊讶的选项数量。你可以使用它来获得你系统上设备的信息,你能通过它了解到指定的用户在指定的地点正在碰什么东西,或者甚至是一个进程正在使用什么文件或网络连接。
+
+对于我,lsof替代了netstat和ps的全部工作。它可以带来那些工具所能带来的一切,而且要比那些工具多得多。那么,让我们来看看它的一些基本能力吧:
+
+### 关键选项 ###
+
+理解一些关于lsof如何工作的关键性东西是很重要的。最重要的是,当你给它传递选项时,**默认行为**是对结果进行“或”运算。因此,如果你正是用-i来拉出一个端口列表,同时又用-p来拉出一个进程列表,那么默认情况下你会获得两者的结果。
+
+下面的一些其它东西需要牢记:
+
+- **默认** : 没有选项,lsof列出活跃进程的所有打开文件
+- **组合** : 可以将选项组合到一起,如-abc,但要当心哪些选项需要参数
+- **-a** : 结果进行“与”运算(而不是“或”)
+- **-l** : 在输出显示用户ID而不是用户名
+- **-h** : 获得帮助
+- **-t** : 仅获取进程ID
+- **-U** : 获取UNIX套接口地址
+- **-F** : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)
+
+### 获取网络信息 ###
+
+正如我所说的,我主要将lsof用于获取关于系统怎么和网络交互的信息。这里提供了关于此信息的一些主题:
+
+#### 使用-i显示所有连接 ####
+
+有些人喜欢用netstat来获取网络连接,但是我更喜欢使用lsof来进行此项工作。结果以对我来说很直观的方式呈现,我仅仅只需改变我的语法,就可以通过同样的命令来获取更多信息。
+
+ # lsof -i
+
+ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
+ dhcpcd 6061 root 4u IPv4 4510 UDP *:bootpc
+ sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
+ sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)
+
+#### 使用-i 6仅获取IPv6流量 ####
+
+ # lsof -i 6
+
+#### 仅显示TCP连接(同理可获得UDP连接) ####
+
+你也可以通过在-i后提供对应的协议来仅仅显示TCP或者UDP连接信息。
+
+ # lsof -iTCP
+
+ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
+ sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
+ sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)
+
+#### 使用-i:port来显示与指定端口相关的网络信息 ####
+
+或者,你也可以通过端口搜索,这对于要找出什么阻止了另外一个应用绑定到指定端口实在是太棒了。
+
+ # lsof -i :22
+
+ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
+ sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
+ sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)
+
+#### 使用@host来显示指定到指定主机的连接 ####
+
+这对于你在检查是否开放连接到网络中或互联网上某个指定主机的连接时十分有用。
+
+ # lsof -i@172.16.12.5
+
+ sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)
+
+#### 使用@host:port显示基于主机与端口的连接 ####
+
+你也可以组合主机与端口的显示信息。
+
+ # lsof -i@172.16.12.5:22
+
+ sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)
+
+#### 找出监听端口 ####
+
+找出正等候连接的端口。
+
+ # lsof -i -sTCP:LISTEN
+
+你也可以grep “LISTEN”来完成该任务。
+
+ # lsof -i | grep -i LISTEN
+
+ iTunes 400 daniel 16u IPv4 0x4575228 0t0 TCP *:daap (LISTEN)
+
+#### 找出已建立的连接 ####
+
+你也可以显示任何已经连接的连接。
+
+ # lsof -i -sTCP:ESTABLISHED
+
+你也可以通过grep搜索“ESTABLISHED”来完成该任务。
+
+ # lsof -i | grep -i ESTABLISHED
+
+ firefox-b 169 daniel 49u IPv4 0t0 TCP 1.2.3.3:1863->1.2.3.4:http (ESTABLISHED)
+
+### 用户信息 ###
+
+你也可以获取各种用户的信息,以及它们在系统上正干着的事情,包括它们的网络活动、对文件的操作等。
+
+#### 使用-u显示指定用户打开了什么 ####
+
+ # lsof -u daniel
+
+ -- snipped --
+ Dock 155 daniel txt REG 14,2 2798436 823208 /usr/lib/libicucore.A.dylib
+ Dock 155 daniel txt REG 14,2 1580212 823126 /usr/lib/libobjc.A.dylib
+ Dock 155 daniel txt REG 14,2 2934184 823498 /usr/lib/libstdc++.6.0.4.dylib
+ Dock 155 daniel txt REG 14,2 132008 823505 /usr/lib/libgcc_s.1.dylib
+ Dock 155 daniel txt REG 14,2 212160 823214 /usr/lib/libauto.dylib
+ -- snipped --
+
+#### 使用-u ^user来显示除指定用户以外的其它所有用户所做的事情 ####
+
+ # lsof -u ^daniel
+
+ -- snipped --
+ Dock 155 jim txt REG 14,2 2798436 823208 /usr/lib/libicucore.A.dylib
+ Dock 155 jim txt REG 14,2 1580212 823126 /usr/lib/libobjc.A.dylib
+ Dock 155 jim txt REG 14,2 2934184 823498 /usr/lib/libstdc++.6.0.4.dylib
+ Dock 155 jim txt REG 14,2 132008 823505 /usr/lib/libgcc_s.1.dylib
+ Dock 155 jim txt REG 14,2 212160 823214 /usr/lib/libauto.dylib
+ -- snipped --
+
+#### 杀死指定用户所做的一切事情 ####
+
+可以消灭指定用户运行的所有东西,这真不错。
+
+ # kill -9 `lsof -t -u daniel`
+
+### 命令和进程 ###
+
+可以查看指定程序或进程由什么启动,这通常会很有用,而你可以使用lsof通过名称或进程ID过滤来完成这个任务。下面列出了一些选项:
+
+#### 使用-c查看指定的命令正在使用的文件和网络连接 ####
+
+ # lsof -c syslog-ng
+
+ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
+ syslog-ng 7547 root cwd DIR 3,3 4096 2 /
+ syslog-ng 7547 root rtd DIR 3,3 4096 2 /
+ syslog-ng 7547 root txt REG 3,3 113524 1064970 /usr/sbin/syslog-ng
+ -- snipped --
+
+#### 使用-p查看指定进程ID已打开的内容 ####
+
+ # lsof -p 10075
+
+ -- snipped --
+ sshd 10068 root mem REG 3,3 34808 850407 /lib/libnss_files-2.4.so
+ sshd 10068 root mem REG 3,3 34924 850409 /lib/libnss_nis-2.4.so
+ sshd 10068 root mem REG 3,3 26596 850405 /lib/libnss_compat-2.4.so
+ sshd 10068 root mem REG 3,3 200152 509940 /usr/lib/libssl.so.0.9.7
+ sshd 10068 root mem REG 3,3 46216 510014 /usr/lib/liblber-2.3
+ sshd 10068 root mem REG 3,3 59868 850413 /lib/libresolv-2.4.so
+ sshd 10068 root mem REG 3,3 1197180 850396 /lib/libc-2.4.so
+ sshd 10068 root mem REG 3,3 22168 850398 /lib/libcrypt-2.4.so
+ sshd 10068 root mem REG 3,3 72784 850404 /lib/libnsl-2.4.so
+ sshd 10068 root mem REG 3,3 70632 850417 /lib/libz.so.1.2.3
+ sshd 10068 root mem REG 3,3 9992 850416 /lib/libutil-2.4.so
+ -- snipped --
+
+#### -t选项只返回PID ####
+
+ # lsof -t -c Mail
+
+ 350
+
+### 文件和目录 ###
+
+通过查看指定文件或目录,你可以看到系统上所有正与其交互的资源——包括用户、进程等。
+
+#### 显示与指定目录交互的所有一切 ####
+
+ # lsof /var/log/messages/
+
+ COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
+ syslog-ng 7547 root 4w REG 3,3 217309 834024 /var/log/messages
+
+### 显示与指定文件交互的所有一切 ###
+
+ # lsof /home/daniel/firewall_whitelist.txt
+
+### 高级用法 ###
+
+与[tcpdump][4]类似,当你开始组合查询时,它就显示了它强大的功能。
+
+#### 显示daniel连接到1.1.1.1所做的一切 ####
+
+ # lsof -u daniel -i @1.1.1.1
+
+ bkdr 1893 daniel 3u IPv6 3456 TCP 10.10.1.10:1234->1.1.1.1:31337 (ESTABLISHED)
+
+#### 同时使用-t和-c选项以给进程发送 HUP 信号 ####
+
+ # kill -HUP `lsof -t -c sshd`
+
+#### lsof +L1显示所有打开的链接数小于1的文件 ####
+
+这通常(当不总是)表示某个攻击者正尝试通过删除文件入口来隐藏文件内容。
+
+ # lsof +L1
+
+ (hopefully nothing)
+
+#### 显示某个端口范围的打开的连接 ####
+
+ # lsof -i @fw.google.com:2150=2180
+
+### 结尾 ###
+
+本入门教程只是管窥了lsof功能的一斑,要查看完整参考,运行man lsof命令或查看[在线版本][5]。希望本文对你有所助益,也随时[欢迎你的评论和指正][6]。
+
+### 资源 ###
+
+- lsof手册页:[http://www.netadmintools.com/html/lsof.man.html][7]
+
+
+本文由 Daniel Miessler撰写,首次在他[博客][1]上贴出
+
+
+--------------------------------------------------------------------------------
+
+via: http://linuxaria.com/howto/linux-terminal-an-lsof-primer
+
+作者:[Daniel Miessler][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/101727609700016666852/posts?rel=author
+[1]:http://danielmiessler.com/study/lsof/
+[2]:http://linuxaria.com/tag/security
+[3]:http://linuxaria.com/tag/network
+[4]:http://danielmiessler.com/study/tcpdump/
+[5]:http://www.netadmintools.com/html/lsof.man.html
+[6]:http://danielmiessler.com/connect/
+[7]:http://www.netadmintools.com/html/lsof.man.html
diff --git a/published/201410/20141009 Linux or UNIX wget command with practical examples.md b/published/201410/20141009 Linux or UNIX wget command with practical examples.md
new file mode 100644
index 0000000000..429e997c1d
--- /dev/null
+++ b/published/201410/20141009 Linux or UNIX wget command with practical examples.md
@@ -0,0 +1,127 @@
+wget 命令实例
+================================================================================
+wget是Linux/Unix命令行**文件下载器**,它是下载网站上文件的免费的非交互下载工具,它支持**HTTP**、**HTTPS**和**FTP**协议,也支持通过HTTP代理检索。Wget是非交互的,这就是说它可以在用户没有登录到系统时在后台工作。
+
+在本帖中,我们将讨论wget命令的一些不同使用实例。
+
+### 实例1 :下载单个文件 ###
+
+ # wget http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
+
+该命令会下载CentOS 7 ISO文件到用户当前工作目录中。
+
+### 实例2:续传分段下载文件 ###
+
+总有那么一些场景,当我们开始下载一个大文件时,中途互联网却断开了。那样的话,我们可以使用wget命令的‘**-c**’选项,让下载从断点续传。
+
+ # wget -c http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
+
+
+
+### 实例3:后台下载文件 ###
+
+我们可以通过在wget命令中使用‘-b’选项来让它在后台下载文件。
+
+ linuxtechi@localhost:~$ wget -b http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/
+ CentOS-7.0-1406-x86_64-DVD.iso
+ Continuing in background, pid 4505.
+ Output will be written to ‘wget-log’.
+
+正如我们上面所见,下载进程被捕获到用户当前目录中的‘wget-log’文件中。
+
+ linuxtechi@localhost:~$ tail -f wget-log
+ 2300K ………. ………. ………. ………. ………. 0% 48.1K 18h5m
+ 2350K ………. ………. ………. ………. ………. 0% 53.7K 18h9m
+ 2400K ………. ………. ………. ………. ………. 0% 52.1K 18h13m
+ 2450K ………. ………. ………. ………. ………. 0% 58.3K 18h14m
+ 2500K ………. ………. ………. ………. ………. 0% 63.6K 18h14m
+ 2550K ………. ………. ………. ………. ………. 0% 63.4K 18h13m
+ 2600K ………. ………. ………. ………. ………. 0% 72.8K 18h10m
+ 2650K ………. ………. ………. ………. ………. 0% 59.8K 18h11m
+ 2700K ………. ………. ………. ………. ………. 0% 52.8K 18h14m
+ 2750K ………. ………. ………. ………. ………. 0% 58.4K 18h15m
+ 2800K ………. ………. ………. ………. ………. 0% 58.2K 18h16m
+ 2850K ………. ………. ………. ………. ………. 0% 52.2K 18h20m
+
+### 实例4:限制下载速率 ###
+
+默认情况下,wget命令尝试以全速下载,但是有时候你可能使用的是共享互联网,那么如果你尝试使用wget来下载庞大的文件时,就会把其它用户的网络拖慢。这时,你如果使用‘-limit-rate’选项来限制下载速率,就可以避免这种情况的发生。
+
+ #wget --limit-rate=100k http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
+
+在上例中,下载速率被限制到了100k。
+
+### 实例5:使用‘-i’选项来下载多个文件 ###
+
+如果你想要使用wget命令来下载多个文件,那么首先要创建一个文本文件,并将所有的URL添加到该文件中。
+
+ # cat download-list.txt
+ url1
+ url2
+ url3
+ url4
+
+现在,发出以下命令吧:
+
+ # wget -i download-list.txt
+
+### 实例6:增加重试次数 ###
+
+我们可以使用‘-tries’选项来增加重试次数。默认情况下,wget命令会重试20次,直到下载成功。
+
+该选项在你下载一个大文件的过程中互联网连接发生问题时十分有用,因为在那种情况下,会增加下载失败的几率。
+
+ # wget --tries=75 http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
+
+### 实例7:使用-o选项来重定向wget日志到文件 ###
+
+我们可以使用‘-o’选项来重定向wget命令的日志到一个日志文件。
+
+ #wget -o download.log http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
+
+上面的命令会在用户当前目录下创建download.log文件。
+
+### 实例8:下载整个网站用于本地查看 ###
+
+ # wget --mirror -p --convert-links -P ./ website-url
+
+鉴于
+
+- **–mirror** : 开启适用于镜像的选项。
+- **-p** : 下载所有能正确显示指定HTML网页的全部必要文件。
+- **–convert-links** : 下载完成后,转换文档中的链接以用于本地查看。
+- -**P ./Local-Folder** : 保存所有文件和目录到指定的目录。
+
+### 实例9:下载过程中拒绝文件类型 ###
+
+当你正打算下载整个网站时,我们可以使用‘-reject’选项来强制wget不下载图片。
+
+ # wget --reject=png Website-To-Be-Downloaded
+
+### 实例10:使用wget -Q设置下载配额 ###
+
+我们可以使用‘-Q’选项强制wget命令在下载大小超过特定大小时退出下载。
+
+ # wget -Q10m -i download-list.txt
+
+注意,配额不会对单个文件的下载产生影响。所以,如果你指定wget -Q10m ftp://wuarchive.wustl.edu/ls-lR.gz,ls-lR.gz的全部内容都会被下载。这在下载命令行指定的多个URL时也一样。然而,在递归或从一个输入文件检索时,还是值得一用。因此,你可以安全地输入‘wget -Q10m -i download-list.txt’,在超过配额时,下载会退出。
+
+### 实例11:从密码保护的网站下载文件 ###
+
+ # wget --ftp-user= --ftp-password= Download-URL
+
+另外一种指定用户名和密码的方式是在URL中。
+
+任一方法都将你的密码揭露给了那些运行“ps”命令的人。要防止密码被查看到,将它们存储到.wgetrc或.netrc中,并使用“chmod”设置合适的权限来保护这些文件不让其他用户查看到。如果密码真的很重要,不要在它们还在文件里躺着的时候走开,在Wget开始下载后,编辑该文件,或者删除它们。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/wget-command-practical-examples/
+
+作者:[Pradeep Kumar][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
diff --git a/published/201410/20141013 UbuTricks 14.10.08.md b/published/201410/20141013 UbuTricks 14.10.08.md
new file mode 100644
index 0000000000..322eacf5fa
--- /dev/null
+++ b/published/201410/20141013 UbuTricks 14.10.08.md
@@ -0,0 +1,56 @@
+UbuTricks 14.10.08
+================================================================================
+> 这是一款 Ubuntu 系统上的实用工具软件,使用它可以让您安装上最新版本的流行应用程序和游戏。
+
+UbuTricks 是一款免费发布的用 Bash 语言编写的脚本型应用程序。它被设计为从最初版本一直向上搜索的方式来帮助您在 Ubuntu Linux 操作系统以及其它 Ubuntu 衍生版本系统上安装最受好评的游戏和图形应用程序的最高版本软件。
+
+
+
+### 我能利用 UbuTricks 来安装哪些应用程序呢? ###
+
+目前,最新版本的 Calibre(译者注:calibre 是一款开源的电子书软体套装,可以用来组织、存放、以及管理电子书,支持大多数的电子书格式。 同时也支持与许多流行的电子书阅读器进行同步,并可能在DRM的限制下转换电子书的格式) 、Fotoxx(译者注:一款图像管理和图像编辑程序)、Geary(译者注:适配于GNOME3 桌面环境的 IMAP 邮件客户端)、GIMP、Google Earth、HexChat(译者注:一款基于 XChat 的 IRC 客户端)、jAlbum(译者注:网页在线相册)、Kdenlive、LibreOffice、PCManFM、Qmmp(译者注:基于 Qt 库的音频播放器)、QuiteRSS, QupZilla、Shutter(译者注:多功能屏发屏幕截屏工具)、SMPlayer、Ubuntu Tweak、Wine 和 [XBMC (Kodi)][4](译者注:开源免费的媒体播放器,13.2 “Gotham” 版本后改名为 Kodi)、PlayOnLinux、Red Notebook、NeonView、Sunflower、Pale Moon、 QupZilla Next、FrostWire 以及 RSSOwl 等这些应用程序都可以用 UbuTricks 来安装。
+
+### 我能利用 UbuTricks 来安装哪些游戏呢? ###
+
+此外,最新版本 0 A.D.、 韦诺之战、 Transmageddon、Unvanquished 和 VCMI (英雄 III 引擎) 这些游戏都可以用 UbuTricks 程序来安装。用户也可以安装最新版本的 Cinnamon 和 LXQt 桌面环境。
+
+### UbuTricks 使用起步 ###
+
+此程序是以 .sh 文件(shell 脚本)形式发布的,可以在命令行下面运行 “sh ubutricks.sh” 命令(不加引号)来运行,或者使它具有可执行权限,然后双击存入在 Home 目录或桌面的此文件来运行。您所需要做的就是选择应用程序或游戏,再点击 OK 按纽来安装。
+
+### 它的工作原理? ###
+
+首次启动时,一开始会显示一个欢迎画面,来告知用户是怎么样使用的。有三种方法来安装应用程序或游戏:通过 PPA,DEB 格式文件或源代码 tar 包。请注意,应用程序或游戏会自动的下载和安装。
+
+### 它支持哪些系统发布版本? ###
+
+它对 Ubuntu Linux 操作系统的多个版本都支持,但如果没有特别说明的话,默认指的当前稳定版本,即 Ubuntu 14.04 LTS(Trusty Tahr)版本。您的 Ubuntu 盒子上如果还没有安装 gksu 包的话,此程序是没法运行的,而 gksu 又基于 Zenity 包,所以您也应该安装它。
+
+
+
+- 最新版本:格林威治标准时间 2014 年 10 月 9 号 11:29
+- 价格:免费!
+- 开发者:Dan Craciun
+- 主页:[www.tuxarena.com][1]
+- 许可证类型:[GPL (GNU General Public License)][3]
+- 类别:ROOT \ 桌面操作环境 \ 工具
+
+### UbuTricks 下载: ###
+
+- [ubutricks.sh][2]
+
+--------------------------------------------------------------------------------
+
+via: http://linux.softpedia.com/get/Desktop-Environment/Tools/UbuTricks-103626.shtml
+
+作者:[Marius Nestor][a]
+译者:[runningwater](https://github.com/runningwater)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.softpedia.com/editors/browse/marius-nestor
+[1]:http://www.tuxarena.com/apps/ubutricks/
+[2]:http://www.tuxarena.com/intro/files/ubutricks.sh
+[3]:http://www.gnu.org/licenses/gpl-2.0.html
+[4]:http://xbmc.org/about/
\ No newline at end of file
diff --git a/published/201410/20141013 Ubuntu's Unity Turns 4 Happy Birthday.md b/published/201410/20141013 Ubuntu's Unity Turns 4 Happy Birthday.md
new file mode 100644
index 0000000000..9b2099b13c
--- /dev/null
+++ b/published/201410/20141013 Ubuntu's Unity Turns 4 Happy Birthday.md
@@ -0,0 +1,37 @@
+Ubuntu Unity 4岁了,生日快乐!
+================================================================================
+> Unity桌面环境在Ubuntu 10.04 Netbook Remix版本中加入,这是一个过期的旧版本。
+
+**Canonical开发者以及Ubuntu社区这些天有一个很好的理由来庆祝,因为Unity桌面环境已经4岁了**
+
+Unity 作为Ubuntu的默认桌面环境,并且已经有4年了,虽然当时并不是该发行版的桌面版本。它首次用于Ubuntu Netbook Remix,是专为笔记本使用的版本。实际上Ubuntu Netbook Remix 10.10 Maverick市场首次接受Unity桌面。
+
+常规的Ubuntu 10.10 发行版桌面仍旧使用GNOME 2.x,这也是为什么有用户说10.10 仍是Canonical做的最好的版本。
+
+### Unity 是没人想要的替代品 ###
+
+Canonical决定用他们自己的软件替代GNOME 2.x桌面环境,但是它的设计对用户而言很陌生。一些人喜欢它,但是许多人并不这样认为,并且还被不同的用户在他们决定放弃Ubuntu的时候时不时地提到这个。
+
+Unit设计视角上和GNOME不同,但是Ubuntu开发者并没有替换GNOME所有的包,并且还保留了很多(他们现在仍旧这样)。之前不喜欢Unity方向的Ubuntu的粉丝一定对GNOME 2.x被很快抛弃,且被完全不同的、同样引发相同质疑的GNOME 3.0替换感到很失望。
+
+### 为什么Unity替换GNOME ###
+
+回到还在Ubuntu 10.10 的时光,Canonical和GNOME团队习惯于非常紧密地一起工作,但是事情在Ubuntu变得越来越流行后发生了改变。其中一个驱使Canonical构建Unity的理由是GNOME团队不再和他们一致了。
+
+用户在抱怨GNOME的问题或者他们想要特定的功能时,Ubuntu团队会发给上游一些补丁。对于GNOME,它会不会接受或者会花很长的时间去实现。在同时,Canonical和Ubuntu因这些他们不能马上解决的问题受到了很多的批评,但是用户并不知道这些。
+
+因此,一个与GNOME捆绑不太紧的桌面环境的需求变得非常清晰了。Unity最终在Ubuntu 11.10中引入。官方的发布日期是 2010年10月10日,所以Unity已经4岁了。
+
+Unity还没有被全社区的拥抱,虽然有很多用户已经接受了这是一个有用、且可以作为一个生产桌面环境。虽然桌面的大修已经逾期了很久且势必会在一两年内完成,但是它在每个新的发行后都会获得了更多的支持和使用。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Ubuntu-s-Unity-Turns-4-Happy-Birthday--461840.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
\ No newline at end of file
diff --git a/published/201410/20141013 What is good reference management software on Linux.md b/published/201410/20141013 What is good reference management software on Linux.md
new file mode 100644
index 0000000000..e8041286dc
--- /dev/null
+++ b/published/201410/20141013 What is good reference management software on Linux.md
@@ -0,0 +1,60 @@
+Linux 上一些很好用的文献目录管理工具
+================================================================================
+你是否写过一些很长很长的文章,以至于你会认为你永远都看不到它的结束?那么你会很明白最糟糕的不是你投入了多少的时间,而是一旦你完成,你仍然要制定和格式化你的所引用的一些参考文献。很幸运的是,Linux 有很多的解决方案:参考书目和文献管理工具。借助BibTex的力量,这些工具可以帮你导入引用源,然后自动生成一个结构化文献目录。这里给大家提供了一些Linux上参考文献管理工具的不完全列表。
+
+### 1. Zotero ###
+
+
+
+这应该是最著名的参考文献聚集工具,[Zotero][1]作为一个浏览器的扩展插件。当然,它也有一个方便的Linux 独立工具。拥有强大的性能,Zotero 很容易上手,并且也可以和LibreOffice 或者是其他的文本编辑器配套使用来管理文档的参考文献。我个人很欣赏其操作界面和插件管理器。可惜的是,如果你对参考文献有很多不同的需求的话,很快就会发现 Zotero 功能有限。
+
+### 2. JabRef ###
+
+
+
+[JabRef][2] 是最先进的文献管理工具之一。你可以导入大量的格式,可以在其外部的数据库里查找相应的条目(像Google Scholar),并且能直接输出到你喜欢的编辑器。JabRef 可以很好的兼容你的运行环境,甚至也支持插件。最后还有一点,JabRef可以连接你自己的SQL 数据库。而唯一的缺点就是其学习使用的难度。
+
+### 3. KBibTex ###
+
+
+
+对于 KDE 使用者,这个桌面环境也拥有它自己专有的文献管理工具[KBibTex][3]。这个程序的品质,正如你所期望。程序可高度定制,通过快捷键就可以很好的操作和体验。你可以很容易找到副本、可以预览结果、也可以直接输出到LaTex 编辑器。而我认为这款软件最大的特色在于它集成了Bigsonomy ,Google Scholar ,甚至是你的Zotero账号。唯一的缺憾是界面看起来实在是有点乱。多花点时间设置软件可以让你使用起来得心应手。
+
+### 4. Bibfilex ###
+
+
+
+可以运行在Gtk 和Qt 环境中,[Bibfilex][4]是一个基于 Biblatex 的界面友好的工具。相对于JabRef 和KBibTex ,缺少了一些高级的功能,但这也让他更加的快速和轻巧。不用想太多,这绝对是快速做文献目录的一个聪明的选择。界面很舒服,仅仅反映了一些必要的功能。我给出了其使用的完全手册,你可以从官方的[下载页面][5]去获得。
+
+### 5. Pybliographer ###
+
+
+
+正如它的名字一样,[Pybliographer][6]是一个用 Python 写的非图形化的文献目录管理工具。我个人比较喜欢把Pybiographic 当做是图形化的前端。它的界面极其简洁和抽象。如果你仅仅需要输出少数的参考文献,而且也确实没有时间去学习更多的工具软件,那么 Pybliographer 确实是一个不错的选择。有一点点像 Bibfilex 的是,它是以让用户方便、快速的使用为目标的。
+
+### 6. Referencer ###
+
+
+
+这应该是我归纳这些时候的一个最大的惊喜,[Referencer][7] 确实是让人眼前一亮。完美兼容 Gnome ,它可以查找和导入你的文档,然后在网上查询他们的参考文献,并且输出到 LyX ,非常的漂亮和设计良好。为数不多的几个快捷键和插件让它拥有了图书馆的风格。
+
+总的来说,很感谢这些工具软件,有了它们,你就可以不用再担心长长的文章了,至少是不用再担心参考文献的部分了。那么我们还有什么遗漏的吗?是否还有其他的文献管理工具你很喜欢?请在评论里告诉我们。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/reference-management-software-linux.html
+
+作者:[Adrien Brochard][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/adrien
+[1]:https://www.zotero.org/
+[2]:http://jabref.sourceforge.net/
+[3]:http://home.gna.org/kbibtex/
+[4]:https://sites.google.com/site/bibfilex/
+[5]:https://sites.google.com/site/bibfilex/download
+[6]:http://pybliographer.org/
+[7]:https://launchpad.net/referencer
\ No newline at end of file
diff --git a/published/201410/20141014 Linux FAQs with Answers--How to burn an ISO or NRG image to a DVD from the command line on Linux.md b/published/201410/20141014 Linux FAQs with Answers--How to burn an ISO or NRG image to a DVD from the command line on Linux.md
new file mode 100644
index 0000000000..f9ef00f3dc
--- /dev/null
+++ b/published/201410/20141014 Linux FAQs with Answers--How to burn an ISO or NRG image to a DVD from the command line on Linux.md
@@ -0,0 +1,80 @@
+Linux有问必答:如何在Linux命令行中刻录ISO或NRG镜像到DVD
+================================================================================
+> **问题**:我需要在Linux机器上使用DVD刻录机刻录一个镜像文件(.iso或.nrg)到DVD,有没有一个既快捷又简易的方法,最好是使用命令行工具?
+
+最常见的两种镜像文件格式是ISO(.iso为文件扩展名)和NRG(.nrg为文件扩展名)。ISO格式是一个由ISO(国际标准组织)创立的全球标准,因此被大多数操作系统所支持,它提供了很高的便携性。另一方面,NRG格式是由Nero AG开发的私有格式,Nero AG是一个很流行的磁盘镜像和刻录软件公司。
+
+下面来解答怎样从Linux命令行刻录.iso或.nrg镜像到DVD。
+
+### 刻录.ISO镜像文件到DVD
+
+要刻录.iso镜像文件到DVD,我们将使用**growisofs**这个工具:
+
+ # growisofs -dvd-compat -speed=4 -Z /dev/dvd1=WindowsXPProfessionalSP3Original.iso
+
+在上面的命令行中,“-dvd-compat”选项提供了与DVD-ROM/-Video的最大介质兼容性。在一次写入式 DVD+R 或 DVD-R 上下文中,导致不可添加记录(关闭磁盘)。
+
+“-Z /dev/dvd1=filename.iso”选项表示我们刻录.iso文件到设备选单(/dev/dvd1)中选择的介质中。
+
+“-speed=N”参数指定了DVD刻录机的刻录速度,这与驱动自身的能力直接相关。“-speed=8”将以8x刻录,“-speed=16”将以16x刻录,以此类推。没有该参数,growisofs将默认以最低速刻录,在这里是4x。你可以根据你刻录机的可用速度和磁盘类型选择合适的刻录速度。
+
+你可以根据[此教程][2]找出你的DVD刻录机的设备名称和它所支持的写入速度。
+
+
+
+刻录进程完成后,磁盘会自动弹出。
+
+### 把NRG镜像转换为ISO格式 ###
+
+由于ISO被广为采用,刻录.iso镜像到CD/DVD就非常简单。但是,要刻录一个.nrg镜像则首先需要将它转换为.iso格式。
+
+把一个.nrg镜像文件转换到.iso格式,你可以使用nrg2iso这个工具。它是一个开源程序,用来将Nero Burning Rom创建的镜像转换到标准的.iso(ISO9660)文件。
+
+在Debian及其衍生版上安装**nrg2iso**:
+
+ # aptitude install nrg2iso
+
+在基于Red Hat的发行版上安装**nrg2iso**:
+
+ # yum install nrg2iso
+
+在CentOS/RHEL上,你需要先启用[Repoforge仓库][1],再通过**yum**安装。
+
+安装完nrg2iso包后,使用以下命令来将.nrg镜像转换到.iso格式:
+
+ # nrg2iso filename.nrg filename.iso
+
+
+
+转换完成后,在当前目录中会出现一个.iso文件:
+
+
+
+
+###检查已刻录介质的完整性###
+
+关于这一点,你可以通过将刻录的DVD的校验和与原始.iso文件的md5校验和进行对比,以检查所刻录介质的完整性。如果两者相同,你就可以放心了,因为刻录成功了。
+
+然而,当你使用nrg2iso来将.nrg镜像转换为.iso格式后,你需要明白一点,nrg2iso创建的.iso文件的大小不是2048的倍数(通常,.iso文件的大小是它的倍数)。因此,常规的校验和对比,该.iso文件和刻录介质的内容不一样。
+
+另一方面,如果你已经刻录了一个不是由.nrg文件转换而来的.iso镜像,你可以使用以下命令来检查记录到DVD中的数据的完整性。替换“/dev/dvd1”为你的设备名。
+
+ # md5sum filename.iso; dd if=/dev/dvd1 bs=2048 count=$(($(stat -c "%s" filename.iso) / 2048)) | md5sum
+
+命令的第一部分计算.iso文件的md5校验和,而第二部分则读取/dev/dvd1中的磁盘内容,然后通过管道输出给md5sum工具。“bs=2048”表示dd命令将使用2048字节块为单位检查,因为原始iso文件以2048为单位划分。
+
+
+
+如果两个md5校验和的值相同,这就意味着刻录的介质是有效的。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/burn-iso-nrg-image-dvd-command-line.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://xmodulo.com/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
+[2]:http://linux.cn/article-4081-1.html
diff --git a/published/201410/20141014 Linux FAQs with Answers--How to detect DVD writer' s device name and its writing speed from the command line on Linux.md b/published/201410/20141014 Linux FAQs with Answers--How to detect DVD writer' s device name and its writing speed from the command line on Linux.md
new file mode 100644
index 0000000000..904386b41f
--- /dev/null
+++ b/published/201410/20141014 Linux FAQs with Answers--How to detect DVD writer' s device name and its writing speed from the command line on Linux.md
@@ -0,0 +1,110 @@
+Linux有问必答:如何使用Linux命令行检测DVD刻录机的名字和读写速度
+================================================================================
+> **提问**:我想要知道我的DVD刻录机的名字和在烧录时的速度。该使用什么Linux命令行工具来连测DVD刻录机的设备名和速度?
+
+如今大多数消费PC和笔记本电脑都配备了DVD刻录机。在Linux中,光盘驱动器,如CD/DVD驱动器的名字是在引导时内核基于udev规则来命名的。有几种方法来检测刻录机的设备名称和它的写入速度。
+
+### 方法一 ###
+
+找出与DVD刻录机相关的设备名称最简单的方法是使用dmesg命令行工具,它打印出内核的消息缓冲区。在dmesg的输出中,寻找一个安装好的DVD刻录机:
+
+ $ dmesg | egrep -i --color 'dvd|cd/rw|writer'
+
+
+
+上述命令的输出会告诉你你的Linux系统上是否检测到了DVD刻录机以及它被分配的名字。本例中,DVD刻录机的设备名称为“/dev/sr0”。虽然此方法不会告诉你的写入速度
+
+### 方法二 ###
+
+第二个获得你DVD刻录机的信息是使用lsscsi命令,它只是列出了所有可用的SCSI设备。
+
+在基于Debian Linux上安装 **lsscsi**:
+
+ $ sudo apt-get install lsscsi
+
+在基于Red Hat Linux上安装:
+
+ $ sudo yum install lsscsi
+
+如果成功检测到,lsscsi命令的输出会告诉你DVD刻录机的名称:
+
+ $ lsscsi
+
+
+
+这也不会告诉你刻录机更多的细节,比如写入速度。
+
+### 方法三 ###
+
+第三种获取有关你DVD刻录机的信息是参考/proc/sys/dev/cdrom/info。
+
+ $ cat /proc/sys/dev/cdrom/info
+
+----------
+
+ CD-ROM information, Id: cdrom.c 3.20 2003/12/17
+
+ drive name: sr0
+ drive speed: 24
+ drive # of slots: 1
+ Can close tray: 1
+ Can open tray: 1
+ Can lock tray: 1
+ Can change speed: 1
+ Can select disk: 0
+ Can read multisession: 1
+ Can read MCN: 1
+ Reports media changed: 1
+ Can play audio: 1
+ Can write CD-R: 1
+ Can write CD-RW: 1
+ Can read DVD: 1
+ Can write DVD-R: 1
+ Can write DVD-RAM: 1
+ Can read MRW: 1
+ Can write MRW: 1
+ Can write RAM: 1
+
+本例中,输出会告诉你DVD刻录机(/dev/sr0)与x24的CD刻录速度(即24x153.6 Kbps)兼容,且相当于x3的DVD写入速度(即3x1385 KBps的)兼容。这里的写入速度是最大可能的速度,而实际的写入速度当然取决于使用的介质(例如:DVD-RW、DVD + RW、DVD-RAM等)。
+
+### 方法四 ###
+
+另一种方法是使用一种称为wodim命令行程序。在大多数的Linux发行版,这个工具以及它的软链接cdrecord都是默认安装的。
+
+ # wodim -prcap
+ (or cdrecord -prcap)
+
+
+
+如果不带任何参数调用时,wodim命令会自动检测到DVD刻录机,并显示出详细的功能以及它的最大读取/写入速度。例如,你可以找出刻录机支持哪些媒体(如CD-R、CD-RW、DVD-RW、DVD-ROM、DVD-R、DVD-RAM、音频CD),以及有哪些如何读/写速度。上面的例子中输出显示,DVD刻录机对于CD拥有X24最大写入速度,对于DVD有X3的最大写入速度。
+
+需要注意的是wodim命令报告的写入速度会随您插入到DVD刻录机的CD/DVD介质的改变而改变,这反映了媒体规范。
+
+### 方法五 ###
+
+还有一个方法来检查DVD刻录机的写入速度的是一个名为dvd+rw-mediainfo的工具,这是dvd+rw工具包(DVD+-RW/R媒体工具链)的一部分。
+
+在基于Debian 发行版上安装 **dvd+rw-tools**
+
+ $ sudo apt-get install dvd+rw-tools
+
+在基于Red Hat 发行版上安装 dvd+rw-tools:
+
+ $ sudo yum install dvd+rw-tools
+
+不像其他工具, dvd+rw-mediainfo命令不会产生任何输出,除非你插入DVD光盘到刻录机中。所以,当你插入DVD光盘后,运行以下的命令。用你自己的设备名称替换“/dev/sr0”。
+
+ $ sudo dvd+rw-mediainfo /dev/sr0
+
+
+
+**dvd+rw-mediainfo**工具会探测插入的媒体(本例中是“DVD-R”),以找出对媒体的实际写入速度。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/detect-dvd-writer-device-name-writing-speed-command-line-linux.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201410/20141014 Linux FAQs with Answers--How to detect and patch Shellshock vulnerability in bash.md b/published/201410/20141014 Linux FAQs with Answers--How to detect and patch Shellshock vulnerability in bash.md
new file mode 100644
index 0000000000..030b25c1a4
--- /dev/null
+++ b/published/201410/20141014 Linux FAQs with Answers--How to detect and patch Shellshock vulnerability in bash.md
@@ -0,0 +1,74 @@
+Linux有问必答:如何检测并修复bash中的破壳漏洞
+================================================================================
+> **问题**:我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏洞侵袭。
+
+2014年9月24日,一位名叫斯特凡·沙泽拉的安全研究者发现了一个名为“破壳”(Shellshock,也称为“bash门”或“Bash漏洞”)的bash漏洞。该漏洞如果被渗透,远程攻击者就可以在调用shell前通过在特别精心编制的环境中输出函数定义执行任何程序代码。然后,这些函数内的代码就可以在调用bash时立即执行。
+
+注意,破壳漏洞影响到bash版本1.14到4.3(当前版本)。虽然在写本文时还没有该漏洞权威而完整的修复方案,也尽管主要的Linux发行版([Debian][1],[Red Hat][2],[CentOS][3],[Ubuntu][4]和 [Novell/Suse][5])已经发布了用于部分解决与此漏洞相关的补丁([CVE-2014-6271][6]和[CVE-2014-7169][7]),并且建议尽快更新bash,并在随后数日内检查更新(LCTT 译注,可能你看到这篇文章的时候,已经有了完善的解决方案)。
+
+### 检测破壳漏洞 ###
+
+要检查你的Linux系统是否存在破壳漏洞,请在终端中输入以下命令。
+
+ $ env x='() { :;}; echo "Your bash version is vulnerable"' bash -c "echo This is a test"
+
+
+如果你的Linux系统已经暴露给了破壳漏洞渗透,命令输出会像这样:
+
+ Your bash version is vulnerable
+ This is a test
+
+在上面的命令中,一个名为x的环境变量已经被设置可用于用户环境。就如我们所了解到的,它并没有赋值(是一个虚函数定义),后面跟了一个任意命令(红色),该命令将在bash调用前执行。
+
+### 为破壳漏洞应用修复 ###
+
+你可以按照以下方法安装新发布的bash补丁。
+
+在Debian及其衍生版上:
+
+ # aptitude update && aptitude safe-upgrade bash
+
+在基于Red Hat的发行版上:
+
+ # yum update bash
+
+#### 打补丁之前: ####
+
+Debian:
+
+
+
+CentOS:
+
+
+
+#### 打补丁之后: ####
+
+Debian:
+
+
+
+CentOS:
+
+
+
+注意,在安装补丁前后,各个发行版中的bash版本没有发生变化——但是你可以通过从更新命令的运行过程中看到该补丁已经被安装(很可能在安装前需要你确认)。
+
+如果处于某种原因你不能安装该补丁,或者针对你的发行版的补丁还没有发布,那么建议你先试用另外一个shell,直到修复补丁出现。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/detect-patch-shellshock-vulnerability-bash.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://www.debian.org/security/2014/dsa-3032
+[2]:https://access.redhat.com/articles/1200223
+[3]:http://centosnow.blogspot.com.ar/2014/09/critical-bash-updates-for-centos-5.html
+[4]:http://www.ubuntu.com/usn/usn-2362-1/
+[5]:http://support.novell.com/security/cve/CVE-2014-6271.html
+[6]:http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271
+[7]:http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7169
diff --git a/published/201410/20141017 Linus Torvalds Regrets Alienating Developers with Strong Language.md b/published/201410/20141017 Linus Torvalds Regrets Alienating Developers with Strong Language.md
new file mode 100644
index 0000000000..a99457b834
--- /dev/null
+++ b/published/201410/20141017 Linus Torvalds Regrets Alienating Developers with Strong Language.md
@@ -0,0 +1,38 @@
+Linus Torvalds 对于向那些开发者说粗话而感到遗憾
+================================================================================
+> 他没有提到任何人的名字,但是这像一次道歉
+
+**Linus Torvalds在前几天的欧洲LinuxCon和CloudOpen大会上做了讲话,这次大会由Linux基金会组织并且汇聚了开源世界的所有大佬。他回答了很多问题,也谈到了他在邮件发送清单里使用粗话的事情。**
+
+Linus Torvalds被认为是Linux内核的创造者和Linux最新的开发版本的维护者。他给我们几乎每个星期都带来一个新的内核RC 版本,并且会在邮件列表里面进行大量的讨论。在这些讨论中,他经常口不择言地用粗话大骂一些开发者们。
+
+最近又出现了一个这种事情,就像我们在新闻里报道过的一样,他在做了一些苛刻的评论之后,[决定砍掉一些他认定的开发者的代码][1]。大家都知道Linus很招人厌烦,尤其是当内核开发者为了修复内核中的一些问题而破坏了用户空间。这次又发生了同样的事情,他基本上已经把那个家伙给气疯了。
+
+### 这是他最接近道歉意味的一次谈话 ###
+
+以前Linus Torvalds从不真正去特地谈论这些事情,大家也习惯了。但是最近一个[systemd开发者谈到了在开源社区充斥着粗话,并且点名提到了Linus Torvalds][3]。他不太习惯于道歉,所以这次在LinuxCon大会上的这次“认错”是他跨出的一大步。
+
+主持人询问他在过去的23年里所做过的决定有什么最后悔的吗?
+
+"从技术角度来看,没有哪个决定重要到这个程度...有个问题是慢慢地疏远了用户和开发者,而我却恰恰很擅长这个。我说了粗话,但是这不是我想要改变的某一个决定,这些粗话应该有所限制。"
+
+"其中一个原因是我们有说粗话的传统,很多人觉得倒胃口,特别是当有强烈的意愿和推动力的技术人员要做一些技术上的进步时,你就需要用一些强烈的语言来表达你的意愿。" Linus Torvalds [如是说][2] 。
+
+他没提到任何人或者任何事件的名字,但很像是对于一位[名为Leonart Pottering的systemd开发者挑起事端][3]的回应,看上去就是针对这起事件。
+
+Linux内核3.18 RC1也在上周发布了,我们又有新东西玩了。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Linus-Torvalds-Regrets-Alienating-Developers-with-Strong-Language-462191.shtml
+
+作者:[Silviu Stahie][a]
+译者:[ZTinoZ](https://github.com/ZTinoZ)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://news.softpedia.com/news/Linus-Torvalds-Block-All-Code-from-Systemd-Developer-for-the-Linux-Kernel-435714.shtml
+[2]:http://www.linux.com/news/featured-blogs/200-libby-clark/791788-linus-torvalds-best-quotes-from-linuxcon-europe-2014
+[3]:http://linux.cn/article-3978-1.html
diff --git a/published/201410/20141017 Linux FAQs with Answers--How to create a video DVD on Linux desktop.md b/published/201410/20141017 Linux FAQs with Answers--How to create a video DVD on Linux desktop.md
new file mode 100644
index 0000000000..169c19171b
--- /dev/null
+++ b/published/201410/20141017 Linux FAQs with Answers--How to create a video DVD on Linux desktop.md
@@ -0,0 +1,78 @@
+在Linux桌面上创建视频DVD
+================================================================================
+> **问题**:我想要从MP4电影文件创建一张视频DVD,在Linux桌面环境中有没有我可以用来创建视频DVD的DVD创作工具?
+
+[DeVeDe][1]是一个开源(GPLv3)DVD创作软件,它允许你从任何数量的视频文件创建视频DVD、VCD、SVCD或者DivX。DeVeDe依赖于其它如Mplayer、FFMpeg、MEncoder、DVDAuthor、VCDImager以及MKisofs之类的软件来进行格式转换。就这点而论,它支持各种各样的主流输入视频/音频格式(如.mp4,.avi,.mpg,.mkv)。你可以在PAL和NTSC视频格式之间选择,也可以田间菜单或字幕。
+
+如果你想要保留或者分发你的假期、家庭或者娱乐影音副本,DeVeDe可以派上用场。
+
+### 安装Devede ###
+
+#### Debian,Ubuntu及其衍生版: ####
+
+ # aptitude install devede
+
+#### RHEL或者CentOS: ####
+
+启用[EPEL][2]和[Nux Dextop][3]仓库,然后运行:
+
+ # yum install devede
+
+#### Fedora: ####
+
+启用[RPM Fusion][4]仓库,然后运行:
+
+ # yum install devede
+
+### 使用DeVeDe创建视频DVD ###
+
+启动DeVeDe并从菜单选择视频DVD。
+
+
+
+在下一屏中,DeVeDe会自动添加一个标题到收藏。你可以编辑说明文字(1),添加一个文件(2),然后添加另一个标题。根据需要,可重复该操作过程。
+
+
+
+在当前标题结束后,“标题属性”对话框允许你在6个要实施的行为之间选择。完成后,点击确定:
+
+
+
+“文件属性”对话框用于添加文件到当前标题。点击文件夹图标(右上角),然后浏览你的计算机以选择想要的文件。你也可以通过点击副标题对话框右边的添加按钮添加一个副标题文件。选择好视频文件(又或者是副标题文件)后,点击右下角的确定。
+
+
+
+你可以添加你所需的足够多的文件(只受DVD容量的限制)。
+
+
+
+接下来,编辑菜单选项。你可以选择一个背景图片和声音文件,在主菜单显示时播放(在DVD插入播放器时就会出现)。
+
+
+
+最后,点击菜单选项对话框内的确定回到主光盘结构,在那里你需要点击下一步来开始以视频DVD结构创建一个.iso映像。
+
+
+
+
+
+在DeVeDe创建完视频DVD后,下面这个对话框将呈现在我们眼前:
+
+
+
+现在,我们可以刻录.iso文件(该文件包含有视频DVD)到光盘了,你可以使用[growisofs][5]或其它DVD刻录工具。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/create-video-dvd-linux-desktop.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://www.rastersoft.com/programas/devede.html
+[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[3]:http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html
+[4]:http://xmodulo.com/how-to-install-rpm-fusion-on-fedora.html
+[5]:http://ask.xmodulo.com/burn-iso-nrg-image-dvd-command-line.html
diff --git a/published/201410/20141017 Munich sheds light on the cost of dropping Linux and returning to Windows.md b/published/201410/20141017 Munich sheds light on the cost of dropping Linux and returning to Windows.md
new file mode 100644
index 0000000000..2ecd9b0989
--- /dev/null
+++ b/published/201410/20141017 Munich sheds light on the cost of dropping Linux and returning to Windows.md
@@ -0,0 +1,45 @@
+慕尼黑市市长透露重返 Windows 的费用
+================================================================================
+> **摘要**: 慕尼黑市市长透露了在该市摆脱微软十年之后再次放弃 Linux 重返 Windows 的费用,大约需要数以百万计的欧元。
+
+慕尼黑市市长透露,重返 Windows 将需要花费上百万欧元购买新的硬件。
+
+今年早些时候,该市新当选的市长提出慕尼黑可能重返 Windows,尽管市当局[用了若干年才迁移到基于 Linux 的操作系统和开源软件][1](摘要译文:http://linux.cn/article-2294-1.html)。
+
+作为最著名的从微软迁移到 Linux 桌面系统的案例,慕尼黑投向开源软件的做法一直引发各种争议和讨论。慕尼黑的迁移始于2004年,还有一些德国的地方当局也[追随它的脚步转向开源][2]。
+
+目前还没有[制定好返回 Windows 桌面的计划][3],但是当局正在调研哪种操作系统和软件包(包括专有软件和开源软件)更适合他们的需求。调研报告也将统计迁移到开源软件所花费的费用。
+
+Dieter Reiter市长在[回应慕尼黑的绿党的问询][4]时透露了重返 Windows 的费用。
+
+Reiter 说,迁移到 Windows 7 需要替换它14000名以上的职员的所有个人电脑,此举将花费 315万欧元。这还没有包括软件许可证费用和基础设施的投入,Reiter 说由于没有进一步计划,所以还没办法测算。他说,如果迁移到 Windows 8 将花费更多。
+
+Reiter 说,返回微软将导致迁移到 [Limux][5]、OpenOffice 及其它开源开源所花费的1400万欧元打了水漂。而部署 Limux 并从微软 Office 迁移的项目实施、支持、培训、修改系统以及 Limux 相关软件的授权等工作都将被搁置,他补充道。
+
+他还透露说,(之前)迁移到 Limux 为市政府节约了大概1100万欧元的许可证和硬件费用,因为基于 Ubuntu 的 Limux 操作系统要比升级较新版本的 Windows 对硬件的需要要低。
+
+在这个回应中 Reiter 告诉 Stadtbild 杂志说,他是微软的粉丝,但是这并不会影响到这份 IT 审计报告。
+
+“在接受 Stadtbild 杂志的采访中我透露我是微软粉丝后,我就收到了大量的信件,询问我们的 IT 团队是否能令人满意的满足用户在任何时候的需求,以及是否有足够的能力为一个现代化大都市的政府服务。”
+
+“这件事有许多方面,用户满意度是其中之一。这和我个人偏好无关,也和我在开源方面的经验无关。”
+
+在他的回应中,并不是由于职员们的对迁移到开源的抱怨而导致本次审计的决定。他说,这是来自对职员在 IT 方面的调查而产生的审计,并不独是 Limux OS。
+
+他还提到了一个 Windows 和基于 Linux 的操作系统的相对安全的问题。他指出,根据德国国家安全局 BSI 的信息,发现 Linux 要比 Windows 漏洞更多,不过只是使用量较少罢了。然而他也补充说,这种比较也许有不同的解释。
+
+--------------------------------------------------------------------------------
+
+via: http://www.zdnet.com/munich-sheds-light-on-the-cost-of-dropping-linux-and-returning-to-windows-7000034718/
+
+作者:[Avishek Kumar][a]
+译者:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.zdnet.com/meet-the-team/uk/nick-heath/
+[1]:http://www.techrepublic.com/article/how-munich-rejected-steve-ballmer-and-kicked-microsoft-out-of-the-city/
+[2]:http://www.techrepublic.com/blog/european-technology/its-not-just-munich-open-source-gains-new-ground-in-germany/
+[3]:http://www.techrepublic.com/article/no-munich-isnt-about-to-ditch-free-software-and-move-back-to-windows/
+[4]:http://www.ris-muenchen.de/RII2/RII/DOK/ANTRAG/3456728.pdf
+[5]:http://en.wikipedia.org/wiki/LiMux
\ No newline at end of file
diff --git a/published/201410/20141021 Debian 7.7 Is Out with Security Fixes.md b/published/201410/20141021 Debian 7.7 Is Out with Security Fixes.md
new file mode 100644
index 0000000000..afc138be5e
--- /dev/null
+++ b/published/201410/20141021 Debian 7.7 Is Out with Security Fixes.md
@@ -0,0 +1,37 @@
+Debian 7.7 更新版发布
+================================================================================
+**Debian项目已经宣布Debian7.7 “Wheezy”发布并提供下载。这是常规维护更新,但它打包了很多重要的更新。**
+
+
+
+Debian在这个发行版里面包含了常规的主要更新,但如果你已经安装的 Debian 保持着不断最新就无需下载安装这个版本。开发者做了一些重要的修复,因此如果还没升级的话建议尽快升级。
+
+“此次更新主要是给稳定版修正安全问题,以及对一些严重问题的调整。安全建议的公告已经另行发布了,请查阅。”
+
+开发者在正式[公告][1]中指出:“请注意,此更新并不是Debian 7的新版本,只是更新了部分包,没必要扔掉旧的wheezy CD或DVD,只要在安装后通过 Debian 镜像来升级那些过期的包就行“。
+
+开发者已经升级了 Bash 包来修复一些重要的漏洞,在启动时SSH登录不再有效,并且还做了其他一些微调。
+
+要了解发布更多的细节请查看官方公告中的完整更新日志。
+
+现在下载 Debian 7.7:
+
+- [Debian GNU/Linux 7.7.0 (ISO) 32-bit/64-bit][2]
+- [Debian GNU/Linux 6.0.10 (ISO) 32-bit/64-bit][3]
+- [Debian GNU/Linux 8 Beta 2 (ISO) 32-bit/64-bit][4]
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Debian-7-7-Is-Out-with-Security-Fixes-462647.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:https://www.debian.org/News/2014/20141018
+[2]:http://ftp.acc.umu.se/debian-cd/7.7.0/multi-arch/iso-dvd/debian-7.7.0-i386-amd64-source-DVD-1.iso
+[3]:http://ftp.au.debian.org/debian/dists/oldstable/
+[4]:http://cdimage.debian.org/cdimage/jessie_di_beta_2/
\ No newline at end of file
diff --git a/published/201410/20141021 Nifty Free Image Viewers.md b/published/201410/20141021 Nifty Free Image Viewers.md
new file mode 100644
index 0000000000..fe06afe51c
--- /dev/null
+++ b/published/201410/20141021 Nifty Free Image Viewers.md
@@ -0,0 +1,51 @@
+Linux 下的免费图片查看器
+================================================================================
+
+我最喜欢的谚语之一是“一图胜千言”。它指一张静态图片可以传递一个复杂的想法。图像相比文字而言可以迅速且更有效地描述大量信息。它们捕捉回忆,永不让你忘记你所想记住的东西,并且让它时常在你的记忆里刷新。
+
+图片是互联网日常使用的一部分,并且对社交媒体互动尤其重要。一个好的图片查看器是任何操作系统必不可少的一个组成部分。
+
+Linux 系统提供了一个大量开源实用小程序的集合,其中这些程序提供了从显而易见到异乎寻常的各种功能。正是由于这些工具的高质量和多样选择帮助 Linux 在生产环境中而脱颖而出,尤其是当谈到图片查看器时。Linux 有如此多的图像查看器可供选择,以至于让选择困难症患者无所适从~
+
+一个不该包括在这个综述中但是值得一提的软件是 Fragment Image Viewer。它在专有许可证下发行(是的,我知道!),所以不会预先安装在 Ubuntu 上。 但它无疑看起来十分有趣!要是它的开发者们将它在开源许可证下发布的话,它将是明日之星!
+
+现在,让我们亲眼探究一下这 13 款图像查看器。除了一个例外,它们中每个都是在开源协议下发行。由于有很多信息要阐述,我将这些详细内容从当前单一网页综述剥离,但作为替代,我为每一款图片查看器提供了一个单独页面,包括软件的完整描述,产品特点的详细分析,一张软件工作中的截图,以及相关资源和评论的链接。
+
+### 图片查看器 ###
+
+- [**Eye of Gnome**][1] -- 快速且多功能的图片查看器器
+- [**gThumb**][2] -- 高级图像查看器和浏览器
+- [**Shotwell**][3] -- 被设计来提供个人照片管理的图像管理器
+- [**Gwenview**][4] -- 专为 KDE 4 桌面环境开发的简易图片查看器
+- [**Imgv**][5] -- 强大的图片查看器
+- [**feh**][6] -- 基于 Imlib2 的快速且轻量的图片查看器
+- [**nomacs**][7] -- 可处理包括 RAW 在内的大部分格式
+- [**Geeqie**][8] -- 基于 Gtk+ 的轻量级图片查看器
+- [**qiv**][9] -- 基于 gdk/imlib 的非常小且精致的开源图片查看器
+- [**PhotoQT**][10] -- 好看、高度可配置、易用且快速
+- [**Viewnior**][11] -- 设计时考虑到易用性
+- [**Cornice**][12] -- 设计用来作为 ACDSee 的免费替代品
+- [**XnViewMP**][13] -- 图像查看器、浏览器、转换器(专有软件)
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/20141018070111434/ImageViewers.html
+
+译者:[jabirus](https://github.com/jabirus)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://projects.gnome.org/eog/
+[2]:https://wiki.gnome.org/Apps/gthumb
+[3]:https://wiki.gnome.org/Apps/Shotwell/
+[4]:http://gwenview.sourceforge.net/
+[5]:http://imgv.sourceforge.net/
+[6]:http://feh.finalrewind.org/
+[7]:http://www.nomacs.org/
+[8]:http://geeqie.sourceforge.net/
+[9]:http://spiegl.de/qiv/
+[10]:http://photoqt.org/
+[11]:http://siyanpanayotov.com/project/viewnior/
+[12]:http://wxglade.sourceforge.net/extra/cornice.html
+[13]:http://www.xnview.com/en/
\ No newline at end of file
diff --git a/published/201410/20141023 Claws Mail 3.11.0 Brings a Ton of Changes and Fixes for POODLE Exploit.md b/published/201410/20141023 Claws Mail 3.11.0 Brings a Ton of Changes and Fixes for POODLE Exploit.md
new file mode 100644
index 0000000000..44c550cb42
--- /dev/null
+++ b/published/201410/20141023 Claws Mail 3.11.0 Brings a Ton of Changes and Fixes for POODLE Exploit.md
@@ -0,0 +1,43 @@
+Claws Mail 3.11.0 修复了POODLE 漏洞
+================================================================================
+> 随着每一个新版本的推出,Claws Mail 将会越来越好。
+
+
+
+**Claws Mail 发起于Linux 社区,是一款快速、简单易用,并且充满了很多有趣的特性的开源邮件客户端。开发者们推送了一次大的更新和升级,建议使用者进行升级。**
+
+有些人可能不知道这个邮件客户端,但Claws Mail 实际上是一个非常老的软件。它以前名称是Sylpheed-Claws ,已经走过了13个年头。Claws Mail 不久以前从其分支(forked)了出来,新分支的目的是成为Sylpheed-Claws更好的替代产品。
+
+现在还有很多针对Linux 的邮件客户端正在进行着霸权地位的争夺战,尽管并没有打的硝烟四起。很多的Linux发行版都默认集成了Claws Mail,对于Claws Mail 的粉丝而言,这将是一个好消息。
+
+### Claws Mail 3.11.0 给我们带来了哪些新的特性呢 ###
+
+就像其他的采用网络连接和网络协议的应用程序一样,Claws Mail 被发现也受到了安全漏洞的影响,比如说POODLE 漏洞。开发者的反应很迅速,可以从其更新日志中看出。
+
+“新版本的RSSyl 插件已经完全被重新设计和重写。从先前版本的迁移是自动完成的,采用新的存储格式,存储在~/.claws-mail/RSSyl/ (用分级目录代替了普通文件的格式)。并且用expat 库代替了libxml2 库来解析提要数据。”
+
+“应广大朋友的要求,在邮件的编辑窗口里,在邮件内容中使用向上光标键时,会停留在邮件的内容的最上一行,而不再会跳到信头字段了。这是在3.10.0版本中引入的。详见开发者的[公告][1]。”
+
+当然,大家也可以放心了,因为在新的邮件客户端中已经解决了POODLE 漏洞,这是通过禁用了所有的SSLv3 连接实现的。
+
+使用制表符进行地址补完的功能也进行了一些改进,并变得更好,特别是对于撰写新邮件,通过光标箭头帮助导航的功能已经做了调整,有很多较小的改进。
+
+开发者为大多数发行版创建了很多仓库,但是你也依然可以使用源代码来安装。想要进一步的了解,你可以关注官方关于每个版本的公告。
+
+去下载Claws Mail 3.11.0 的源码包吧,如果你想要自己编译软件的话。
+
+- [Claws Mail 3.11.0 tar.xz File size: 5.6 MB][2]
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Claws-Mail-3-11-0-Brings-a-Ton-of-Changes-and-Fix-for-POODLE-Exploit-462808.shtml
+
+作者:[Silviu Stahie][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://www.claws-mail.org/news.php
+[2]:http://sourceforge.net/projects/claws-mail/files/Claws%20Mail/3.11.0/claws-mail-3.11.0.tar.xz
\ No newline at end of file
diff --git a/published/201410/How to Achieve Better Security With Proper Management of Open Source.md b/published/201410/How to Achieve Better Security With Proper Management of Open Source.md
new file mode 100644
index 0000000000..b5e0f7ed3f
--- /dev/null
+++ b/published/201410/How to Achieve Better Security With Proper Management of Open Source.md
@@ -0,0 +1,62 @@
+恰当地管理开源,让软件更加安全
+================================================================================
+
+
+越来越多的公司意识到,要想比对手率先开发出高质量具有创造性的软件,关键在于积极使用开源项目。软件版本更迭要求市场推广速度足够快,成本足够低,而仅仅使用商业源代码已经无法满足这些需求了。如果不能选择最合适的开源软件集成到自己的项目里,一些令人称道的点子怕是永无出头之日了。
+
+然而,使用开源软件也要面对新的挑战。一方面,你的团队从开源软件中汲取力量变得更快更灵活,另一方面,开源代码在传播过程中是否经历了不可控修改、安全性该如何保障的问题也日益凸显了出来。
+
+OpenSSL Heartbleed 漏洞已经证实。如果你不了解你的应用程序或者已发布的产品中到底运行着什么代码,那你就可能面临需要大量时间才能解决的潜在安全威胁。相反,如果对项目里什么地方使用了什么版本的开源组件都了如指掌,一旦遇到漏洞,响应速度和解决速度都会是千金不换的。
+
+### 安全性藏在代码内部 ###
+
+Heartbleed bug 让开发人员和企业知道了软件安全性有多重要。专利软件和开源软件哪个更安全?这场广泛受到关注的讨论并没有一个简单的结论。现实情况是,不论是专利软件还是开源软件,它们绝大部分都有缺陷,其中一些缺陷还威胁到软件的安全性。
+
+如果开源软件被内部代码、专利代码引用了,那开发人员将不得不面对更复杂的安全性挑战。要是管理授权许可的手段再不恰当,那想追溯一段代码的来源和引用就得把相关人员全都牵连进来,难度必然急剧增加。
+
+要想切实了解你软件的潜在漏洞,首先你得理解以下三件事儿:
+
+1. 你的产品和应用程序里现在跑着什么代码?
+2. 那些开发前期使用的代码,开发人员是从哪儿弄来的?
+3. 开发后期使用了哪些组件,这些组件有哪些地方要在部署之前充分测试?
+
+### 现状怎么样 ###
+
+所有企业都应该对比常见漏洞数据库——比如美国国家标准与技术学会的[国家漏洞数据库][1](NVD)——来检查他们的代码。NVD 等组织追踪并收集了各种安全漏洞的信息以及排名,这些数据可以协助企业确保代码及时更新,规避安全风险。
+
+如果你从没对照漏洞数据库检查过你的代码,那你可有的忙了。好在我们有个可以利用这些数据库定期自动识别开源安全漏洞的[工具][2],这个工具还可以警示和追踪项目中使用的受影响的开源组件并提供必要的解决方案。
+
+持续监控你的代码库能保证及时发现未知代码、了解代码来源、授权信息不会过时、安全漏洞一旦出现就能第一时间掌握并寻求解决方案。如果你的公司有详细的代码清单,你就能轻而易举地找到漏洞所在并及时修复,确保你的业务和客户不会面临危险。
+
+### 预防未来的问题 ###
+
+相当多开发人员青睐开源软件是因为开源软件易于获得且免费,他们不用为此再走采购流程。目前来看,尽管很多开源组织都有自己的使用策略或使用指引,他们却并没有强制使用者遵守,也没有追查使用者是否遵守。知道你的组织将会使用哪些开源代码、这些代码是否有授权、你的组织中什么地方引用了它们是非常重要的。
+
+你知道你用了什么代码之后,就该好好整理它们了。你可以实现一个贯穿整个开发流程的管理框架,这样你可以掌握每段代码的详细信息,不用再在诸如代码更新了没有、什么时候更新的以及在哪儿更新的这类问题上浪费时间。手工管理这些信息不大可能,所以一流公司都使用自动化代码管理和审查工具。
+
+虽然每个公司、每个开发团队都面临各不相同的问题,但实践证明下面几条安全管理经验对使用开源软件的任何规模的组织都有意义:
+
+- **自动批准和分类** - 捕捉并追踪开源组件的相关属性,评估许可证合规性,通过自动化扫描、批准和使用过程来审查可能出现的安全漏洞。
+- **维护最新代码的版本** - 评估代码质量,确保你的产品使用的是最新版本的代码。
+- **评估代码** - 评估所有在使用的开源代码;审查代码安全性、授权许可、列出风险并予以解决。
+- **确保代码合法** - 创建并实现开源政策,建立自动化合规检查流程确保开源政策、法规、法律责任等符合开源组织的要求。
+
+### 关键是,要让管理流程运作起来 ###
+
+随着软件飞速渗入各行各业,开放源代码将在创新发展的道路上扮演越来越重要的角色。为了规避安全问题给日益复杂的环境带来的风险,企业必须运行起一套管理其组织中开源代码使用情况的流程,构筑一个定期对照漏洞数据库检查代码并快速消除风险的流程。
+
+*作者 Bill Ledingham 是 Black Duck Software 公司的首席技术官(CTO)兼工程执行副总裁。在这之前,Bill 是 Verdasys 的首席技术官,领导信息和网络安全团队为全球顶尖的 2000 家公司和政府机构提供敏感信息的安全保障。 Bill 曾经与人合伙创办过四家公司,现在活跃于波士顿创业社区,作为 CommonAngels 的合作伙伴和投资人迄今已有 6 年历史。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/news/software/applications/782953-how-to-achieve-better-security-by-proper-management-of-open-source
+
+作者:[Bill Ledingham][a]
+译者:[sailing](https://github.com/sailing)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/community/forums/person/59656
+[1]:http://nvd.nist.gov/
+[2]:http://www.blackducksoftware.com/oss-logistics/secure
diff --git a/published/201410/How to configure SNMPv3 on ubuntu 14.04 server.md b/published/201410/How to configure SNMPv3 on ubuntu 14.04 server.md
new file mode 100644
index 0000000000..4c09ea3636
--- /dev/null
+++ b/published/201410/How to configure SNMPv3 on ubuntu 14.04 server.md
@@ -0,0 +1,101 @@
+在ubuntu14.04上配置SNMPv3
+============================================
+简单网络管理协议(SNMP)是用于IP网络设备管理的标准协议。典型的支持SNMP协议的设备有路由器、交换机、服务器、工作站、打印机及数据机柜等等。SNMP一般被网络管理系统用于按照管理员设定的条件来监视网络附加设备。SNMP是因特网协议套件中的一个组成部分,它由IETF机构定义。它包含一系列的网络管理标准,其中有一个应用层协议,一个数据库架构以及一组数据对象。
+
+SNMP将管理数据以变量的形式展示出来,这些变量描述了系统配置。同时这些变量可以被用于管理的应用查询(或者被设置)。
+
+### 为什么需要使用SNMPv3 ###
+
+尽管SNMPv3所增加的加密功能并不影响协议层面,但是新的文本惯例、概念及术语使得它看起来很不一样。
+
+SNMPv3在SNMP的基础之上增强了安全性以及远程配置功能。
+
+最初,SNMP最大的缺点就是安全性弱。SNMP的第一与第二个版本中,身份验证仅仅是在管理员与代理间传送一个明文的密码而已。目前每一个SNMPv3的信息都包含了被编码成8进制的安全参数。这些安全参数的具体意义由所选用的安全模型决定。
+
+SNMPv3提供了重要的安全特性:
+
+- 保密性 —— 加密数据包以防止未经授权的源监听。
+
+- 完整性 —— 数据的完整性特性确保数据在传输的时候没有被干扰,并且包含了可选的数据响应保护机制。
+
+- 身份验证 —— 检查数据是否来自一个合法的源。
+
+### 在ubuntu中安装SNMP服务器及客户端 ###
+
+打开终端运行下列命令
+
+ sudo apt-get install snmpd snmp
+
+安装完成后需要做如下改变。
+
+###配置SNMPv3###
+
+获得从外部守护进程访问的权限
+
+默认的安装仅提供本地的访问权限,如果想要获得外部访问权限,打开文件 /etc/default/snmpd。
+
+ sudo vi /etc/default/snmpd
+
+改变下列内容
+
+将
+
+ SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /var/run/snmpd.pid'
+
+改为
+
+ SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
+
+最后重启 snmpd
+
+ sudo /etc/init.d/snmpd restart
+
+###定义 SNMPv3 用户,身份验证以及加密参数 ###
+
+“securityLevel”参数使得SNMPv3有多种不同的用途。
+
+- noAuthNoPriv —— 没有授权,加密以及任何安全保护!
+
+- authNoPriv —— 需要身份认证,但是不对通过网络发送的数据进行加密。
+
+- autoPriv —— 最可靠模式。需要身份认证而且数据会被加密。
+
+snmpd 的配置以及设置都保存在文件 /etc/snmp/snmpd.conf。使用编辑器编辑文件:
+
+ sudo vi /etc/snmp/snmpd.conf
+
+在文件末尾添加以下内容:
+
+ #
+ createUser user1
+ createUser user2 MD5 user2password
+ createUser user3 MD5 user3password DES user3encryption
+ #
+ rouser user1 noauth 1.3.6.1.2.1.1
+ rouser user2 auth 1.3.6.1.2.1
+ rwuser user3 priv 1.3.6.1.2.1
+
+注:如果你需要使用自己的用户名/密码对的话,请注意密码及加密短语的最小长度是8个字符。
+
+同时,你需要做如下的配置以便snmp可以监听来自任何接口的连接请求。
+
+将
+
+ #agentAddress udp:161,udp6:[::1]:161
+
+改为
+
+ agentAddress udp:161,udp6:[::1]:161
+
+保存改变后的snmpd.conf文件并且重启守护进程:
+
+ sudo /etc/init.d/snmpd restart
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/how-to-configure-snmpv3-on-ubuntu-14-04-server.html
+
+译者:[SPccman](https://github.com/SPccman)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201410/Linux FAQs with Answers--How to build a RPM or DEB package from the source with CheckInstall.md b/published/201410/Linux FAQs with Answers--How to build a RPM or DEB package from the source with CheckInstall.md
new file mode 100644
index 0000000000..b7552db9ba
--- /dev/null
+++ b/published/201410/Linux FAQs with Answers--How to build a RPM or DEB package from the source with CheckInstall.md
@@ -0,0 +1,84 @@
+Linux有问必答:怎么用CheckInstall从源码创建一个RPM或DEB包
+================================================================================
+> **问题**:我想要从源码创建安装的软件包。有没有一种方式从源码来创建和安装软件包,而不是运行“make install”?这样的话,以后如果我想,我可以容易的卸载程序。
+
+如果你已经从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的开发者在Makefile里提供了uninstall的目标设置。否则你必须在安装前后比较你系统里文件的完整列表,然后手工移除所有在安装过程中加入的文件。
+
+这时候Checkinstall就可以派上使用。Checkinstall会跟踪install命令行所创建或修改的所有文件的路径(例如:“make install”、“make install_modules”等)并建立一个标准的二进制包,让你能用你发行版的标准包管理系统安装或卸载它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,请参考其[官方文档][1]。
+
+在这篇文章中,我们只集中在红帽子和Debian为基础的发行版,并展示怎样从源码使用Checkinstall创建一个RPM和DEB软件包
+
+### 在linux上安装Checkinstall ###
+
+在Debian及其衍生发行版上安装Checkinstall:
+
+ # aptitude install checkinstall
+
+在红帽子的发行版上安装Checkinstall,你需要下载一个已经打包好的Checkinstall rpm包(例如:从 [http://rpm.pbone.net][2]找到),不过它已经从Repoforge库里删除了。这个包是针对Cent OS6的,不过也可在Cent OS7里工作。
+
+ # wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm
+ # yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
+
+一旦checkinstall安装好,你就可以用下列格式创建一个特定的软件包
+
+ # checkinstall
+
+如果没有参数,默认安装命令“make install”将被使用
+
+### 用Checkinstall创建一个RPM或DEB包 ###
+
+在这个例子里,我们将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。
+
+首先,让我们从项目的官方网站下载源代码,作为一个好的习惯,我们存储源码包到/usr/local/src下,并解压它。
+
+ # cd /usr/local/src
+ # wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz
+ # tar xzf htop-1.0.3.tar.gz
+ # cd htop-1.0.3
+
+让我们看看htop的安装命令是什么,以便我们能用Checkinstall命令调用它,如下面所示,htop用“make install”命令安装。
+
+ # ./configure
+ # make install
+
+因此,要创建一个htop安装包,我们可以不带任何参数的调用checkinstall,这将使用“make install”命令创建一个包。在这个过程中, checkinstall命令会问你几个问题。
+
+简而言之,如下命令会创建一个htop包:
+
+ # ./configure
+ # checkinstall
+
+“Should I create a default set of package docs?(我会创建一个默认设置的包文件?)”,回答“Y”:
+
+
+
+你可以输入一个包的简短描述,然后按两次回车:
+
+
+
+输入一个数字以修改下面的任何值或ENTER继续:
+
+
+
+然后checkinstall将自动地创建一个.rpm或者.deb包,根据你的linux系统是什么:
+
+在CentOS7:
+
+
+
+在Debian 7:
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/build-rpm-deb-package-source-checkinstall.html
+
+译者:[luoyutiantang](https://github.com/luoyutiantang)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://checkinstall.izto.org/docs/README
+[2]:http://rpm.pbone.net/
+[3]:http://ask.xmodulo.com/install-htop-centos-rhel.html
diff --git a/published/201410/Linux Performance Monitoring with Vmstat and Iostat Commands.md b/published/201410/Linux Performance Monitoring with Vmstat and Iostat Commands.md
new file mode 100644
index 0000000000..70e334e9d9
--- /dev/null
+++ b/published/201410/Linux Performance Monitoring with Vmstat and Iostat Commands.md
@@ -0,0 +1,247 @@
+使用vmstat和iostat命令进行Linux性能监控
+================================================================
+这是我们正在进行的**Linux**命令和性能监控系列的一部分。**vmstat**和**iostat**两个命令都适用于所有主要的类**unix**系统(**Linux/unix/FreeBSD/Solaris**)。
+
+如果**vmstat**和**iostat**命令在你的系统中不可用,请安装**sysstat**软件包。**vmstat**,**sar**和**iostat**命令都包含在**sysstat**(系统监控工具)软件包中。iostat命令生成**CPU**和所有设备的统计信息。你可以从[这个连接][1]中下载源代码包编译安装sysstat,但是我们建议通过**YUM**命令进行安装。
+
+
+
+*使用Vmstat和Iostat命令进行Linux性能监控*
+
+###在Linux系统中安装sysstat###
+
+ #yum -y install sysstat
+
+- **vmstat** - 内存,进程和分页等的简要信息。
+- **iostat** - CPU统计信息,设备和分区的输入/输出统计信息。
+
+### Linux下vmstat命令的6个范例###
+
+####1. 列出活动和非活动的内存####
+
+如下范例中输出6列。**vmstat**的man页面中解析的每一列的意义。最重要的是内存中的**free**属性和交换分区中的**si**和**so**属性。
+
+ [root@tecmint ~]# vmstat -a
+
+ procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
+ r b swpd free inact active si so bi bo in cs us sy id wa st
+ 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
+
+- **Free** – 空闲的内存空间
+- **si** – 每秒从磁盘中交换进内存的数据量(以KB为单位)。
+- **so** – 每秒从内存中交换出磁盘的数据量(以KB为单位)。
+
+**注意**:如果你不带参数的执行**vmstat**命令,它会输出自系统启动以来的总结报告。
+
+####2. 每X秒执行vmstat,共执行N次####
+
+下面命令将会每2秒中执行一次**vmstat**,执行6次后自动停止执行。
+
+ [root@tecmint ~]# vmstat 2 6
+
+ procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
+ r b swpd free buff cache si so bi bo in cs us sy id wa st
+ 0 0 0 810420 22064 101368 0 0 56 3 50 57 0 3 95 2 0
+ 0 0 0 810412 22064 101368 0 0 0 0 16 35 0 0 100 0 0
+ 0 0 0 810412 22064 101368 0 0 0 0 14 35 0 0 100 0 0
+ 0 0 0 810412 22064 101368 0 0 0 0 17 38 0 0 100 0 0
+ 0 0 0 810412 22064 101368 0 0 0 0 17 35 0 0 100 0 0
+ 0 0 0 810412 22064 101368 0 0 0 0 18 36 0 1 100 0 0
+
+####3. 带时间戳的vmstat命令####
+
+带**-t**参数执行**vmstat**命令,该命令将会在每一行输出后都带一个时间戳,如下所示。
+
+
+ [tecmint@tecmint ~]$ vmstat -t 1 5
+
+ procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
+ r b swpd free buff cache si so bi bo in cs us sy id wa st
+ 0 0 0 632028 24992 192244 0 0 70 5 55 78 1 3 95 1 0 2012-09-02 14:57:18 IST
+ 1 0 0 632028 24992 192244 0 0 0 0 171 514 1 5 94 0 0 2012-09-02 14:57:19 IST
+ 1 0 0 631904 24992 192244 0 0 0 0 195 600 0 5 95 0 0 2012-09-02 14:57:20 IST
+ 0 0 0 631780 24992 192244 0 0 0 0 156 524 0 5 95 0 0 2012-09-02 14:57:21 IST
+ 1 0 0 631656 24992 192244 0 0 0 0 189 592 0 5 95 0 0 2012-09-02 14:57:22 IST
+
+####4. 统计各种计数器####
+
+**vmstat**命令的**-s**参数,将输出各种事件计数器和内存的统计信息。
+
+ [tecmint@tecmint ~]$ vmstat -s
+
+ 1030800 total memory
+ 524656 used memory
+ 277784 active memory
+ 185920 inactive memory
+ 506144 free memory
+ 26864 buffer memory
+ 310104 swap cache
+ 2064376 total swap
+ 0 used swap
+ 2064376 free swap
+ 4539 non-nice user cpu ticks
+ 0 nice user cpu ticks
+ 11569 system cpu ticks
+ 329608 idle cpu ticks
+ 5012 IO-wait cpu ticks
+ 79 IRQ cpu ticks
+ 74 softirq cpu ticks
+ 0 stolen cpu ticks
+ 336038 pages paged in
+ 67945 pages paged out
+ 0 pages swapped in
+ 0 pages swapped out
+ 258526 interrupts
+ 392439 CPU context switches
+ 1346574857 boot time
+ 2309 forks
+
+####5. 磁盘统计信息####
+
+**vmstat**的**-d**参数将会输出所有磁盘的统计信息。
+
+ [tecmint@tecmint ~]$ vmstat -d
+
+ disk- ------------reads------------ ------------writes----------- -----IO------
+ total merged sectors ms total merged sectors ms cur sec
+ ram0 0 0 0 0 0 0 0 0 0 0
+ ram1 0 0 0 0 0 0 0 0 0 0
+ ram2 0 0 0 0 0 0 0 0 0 0
+ ram3 0 0 0 0 0 0 0 0 0 0
+ ram4 0 0 0 0 0 0 0 0 0 0
+ ram5 0 0 0 0 0 0 0 0 0 0
+ ram6 0 0 0 0 0 0 0 0 0 0
+ ram7 0 0 0 0 0 0 0 0 0 0
+ ram8 0 0 0 0 0 0 0 0 0 0
+ ram9 0 0 0 0 0 0 0 0 0 0
+ ram10 0 0 0 0 0 0 0 0 0 0
+ ram11 0 0 0 0 0 0 0 0 0 0
+ ram12 0 0 0 0 0 0 0 0 0 0
+ ram13 0 0 0 0 0 0 0 0 0 0
+ ram14 0 0 0 0 0 0 0 0 0 0
+ ram15 0 0 0 0 0 0 0 0 0 0
+ loop0 0 0 0 0 0 0 0 0 0 0
+ loop1 0 0 0 0 0 0 0 0 0 0
+ loop2 0 0 0 0 0 0 0 0 0 0
+ loop3 0 0 0 0 0 0 0 0 0 0
+ loop4 0 0 0 0 0 0 0 0 0 0
+ loop5 0 0 0 0 0 0 0 0 0 0
+ loop6 0 0 0 0 0 0 0 0 0 0
+ loop7 0 0 0 0 0 0 0 0 0 0
+ sr0 0 0 0 0 0 0 0 0 0 0
+ sda 7712 5145 668732 409619 3282 28884 257402 644566 0 126
+ dm-0 11578 0 659242 1113017 32163 0 257384 8460026 0 126
+ dm-1 324 0 2592 3845 0 0 0 0 0 2
+
+####6. 以MB为单位输出统计信息####
+
+**vmstat**的**-S**和**-M**参数(大写和MB)将会以MB为单位输出。**vmstat**默认以KB为单位输出统计信息。
+
+ [root@tecmint ~]# vmstat -S M 1 5
+
+ procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
+ r b swpd free buff cache si so bi bo in cs us sy id wa st
+ 0 0 0 346 53 476 0 0 95 8 42 55 0 2 96 2 0
+ 0 0 0 346 53 476 0 0 0 0 12 15 0 0 100 0 0
+ 0 0 0 346 53 476 0 0 0 0 32 62 0 0 100 0 0
+ 0 0 0 346 53 476 0 0 0 0 15 13 0 0 100 0 0
+ 0 0 0 346 53 476 0 0 0 0 34 61 0 1 99 0 0
+
+###linux下的Iostat命令的6个范例###
+
+####1. 输出CPU和输入/输出(I/O)的统计信息####
+
+不带参数的**iostat**命令将会输出**CPU**和每个分区的**输出/输出**的统计信息,如下所示。
+
+ [root@tecmint ~]# iostat
+
+ Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
+
+ avg-cpu: %user %nice %system %iowait %steal %idle
+ 0.12 0.01 1.54 2.08 0.00 96.24
+
+ Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
+ sda 3.59 161.02 13.48 1086002 90882
+ dm-0 5.76 159.71 13.47 1077154 90864
+ dm-1 0.05 0.38 0.00 2576 0
+
+####2. 只输出CPU的统计信息####
+
+**iostat**命令的**-c**参数仅输出**CPU**的统计信息,如下所示。
+
+ [root@tecmint ~]# iostat -c
+
+ Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
+
+ avg-cpu: %user %nice %system %iowait %steal %idle
+ 0.12 0.01 1.47 1.98 0.00 96.42
+
+####3. 只输出磁盘的输入/输出统计信息####
+
+**iostat**命令的**-d**参数仅输出磁盘的所有分区的**输入/输出**的统计信息,如下所示。
+
+ [root@tecmint ~]# iostat -d
+
+ Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
+
+ Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
+ sda 3.35 149.81 12.66 1086002 91746
+ dm-0 5.37 148.59 12.65 1077154 91728
+ dm-1 0.04 0.36 0.00 2576 0
+
+####4. 只输出某个磁盘的输入/输出统计信息####
+
+在默认情况下iostat命令会输出所有分区的统计信息,但是若在iostat命令后加上**-p**参数和磁盘设备名,该命令将会仅输出列出的磁盘的输入/输出统计信息,如下所示。
+
+ [root@tecmint ~]# iostat -p sda
+
+ Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
+
+ avg-cpu: %user %nice %system %iowait %steal %idle
+ 0.11 0.01 1.44 1.92 0.00 96.52
+
+ Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
+ sda 3.32 148.52 12.55 1086002 91770
+ sda1 0.07 0.56 0.00 4120 18
+ sda2 3.22 147.79 12.55 1080650 91752
+
+####5. 输出逻辑卷管理(LVM)的统计信息####
+
+iostat命令的**-N**(大写)参数将会输出**LVM**(LCTT译注:[LVM][2]是linux环境下对磁盘分区进行管理的一种机制,是磁盘分区和文件系统间的一个逻辑层)的统计信息,如下所示。
+
+ [root@tecmint ~]# iostat -N
+
+ Linux 2.6.32-279.el6.i686 (tecmint.com) 09/03/2012 _i686_ (1 CPU)
+
+ avg-cpu: %user %nice %system %iowait %steal %idle
+ 0.11 0.01 1.39 1.85 0.00 96.64
+
+ Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
+ sda 3.20 142.84 12.16 1086002 92466
+ vg_tecmint-lv_root 5.13 141.68 12.16 1077154 92448
+ vg_tecmint-lv_swap 0.04 0.34 0.00 2576 0
+
+####6. iostat版本信息####
+
+iostat的**-V**(大写)参数将会输出**iostat**的版本信息,如下所示。
+
+ [root@tecmint ~]# iostat -V
+
+ sysstat version 9.0.4
+ (C) Sebastien Godard (sysstat orange.fr)
+
+**注意**:**vmstat**和**iostat**的输出中包含多列的数据和标志,限于篇幅无法在本文中进行详细的解析。如果你想知道更多的信息,请查看**vmstat**和**iostat**的man帮助手册。如果你觉得本文对你有价值,请在下面的评论框中与你的朋友分享。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/
+
+作者:[Ravi Saive][a]
+译者:[cvsher](https://github.com/cvsher)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/admin/
+[1]:http://sebastien.godard.pagesperso-orange.fr/download.html
+[2]:http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)
diff --git "a/published/201410/Sysstat \342\200\223 All-in-One System Performance and Usage Activity Monitoring Tool For Linux.md" "b/published/201410/Sysstat \342\200\223 All-in-One System Performance and Usage Activity Monitoring Tool For Linux.md"
new file mode 100644
index 0000000000..ae3e1fcd54
--- /dev/null
+++ "b/published/201410/Sysstat \342\200\223 All-in-One System Performance and Usage Activity Monitoring Tool For Linux.md"
@@ -0,0 +1,124 @@
+全能冠军:Linux系统性能和使用活动监控工具 sysstat
+===========================================================================
+**Sysstat**是一个非常方便的工具,它带有众多的系统资源监控工具,用于监控系统的性能和使用情况。我们在日常使用的工具中有相当一部分是来自sysstat工具包的。同时,它还提供了一种使用cron表达式来制定性能和活动数据的收集计划。
+
+
+
+下表是包含在sysstat包中的工具
+
+- [**iostat**][1]: 输出CPU的统计信息和所有I/O设备的输入输出(I/O)统计信息。
+- **mpstat**: 关于CPU的详细信息(单独输出或者分组输出)。
+- **pidstat**: 关于运行中的进程/任务、CPU、内存等的统计信息。
+- **sar**: 保存并输出不同系统资源(CPU、内存、IO、网络、内核等。。。)的详细信息。
+- **sadc**: 系统活动数据收集器,用于收集sar工具的后端数据。
+- **sa1**: 系统收集并存储sadc数据文件的二进制数据,与sadc工具配合使用
+- **sa2**: 配合sar工具使用,产生每日的摘要报告。
+- **sadf**: 用于以不同的数据格式(CVS或者XML)来格式化sar工具的输出。
+- **Sysstat**: sysstat工具的man帮助页面。
+- **nfsiostat**: NFS(Network File System)的I/O统计信息。
+- **cifsiostat**: CIFS(Common Internet File System)的统计信息。
+
+最近(在2014年6月17日),**sysstat 11.0.0**(稳定版)已经发布了,同时还新增了一些有趣的特性,如下:
+
+pidstat命令新增了一些新的选项:首先是“-R”选项,该选项将会输出有关策略和任务调度的优先级信息。然后是“**-G**”选项,通过这个选项我们可以使用名称搜索进程,然后列出所有匹配的线程。
+
+sar、sadc和sadf命令在数据文件方面同样带来了一些功能上的增强。与以往只能使用“**saDD**”来命名数据文件。现在使用**-D**选项可以用“**saYYYYMMDD**”来重命名数据文件,同样的,现在的数据文件不必放在“**var/log/sa**”目录中,我们可以使用“SA_DIR”变量来定义新的目录,该变量将应用与sa1和sa2命令。
+
+###在Linux系统中安装sysstat####
+
+在主要的linux发行版中,‘**sysstat**’工具包可以在默认的程序库中安装。然而,在默认程序库中的版本通常有点旧,因此,我们将会下载源代码包,编译安装最新版本(**11.0.0**版本)。
+
+首先,使用下面的连接下载最新版本的sysstat包,或者你可以使用**wget**命令直接在终端中下载。
+
+- [http://sebastien.godard.pagesperso-orange.fr/download.html][2]
+
+ # wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.0.0.tar.gz
+
+
+
+*下载sysstat包*
+
+然后解压缩下载下来的包,进去该目录,开始编译安装
+
+ # tar -xvf sysstat-11.0.0.tar.gz
+ # cd sysstat-11.0.0/
+
+这里,你有两种编译安装的方法:
+
+####a)####
+
+第一,你可以使用**iconfig**(这将会给予你很大的灵活性,你可以选择/输入每个参数的自定义值)
+
+ # ./iconfig
+
+
+
+*sysstat的iconfig命令*
+
+####b)####
+
+第二,你可以使用标准的**configure**,在命令行中定义所有选项。你可以运行 **./configure –help 命令**来列出该命令所支持的所有限选项。
+
+ # ./configure --help
+
+
+
+*stsstat的cofigure -help*
+
+在这里,我们使用标准的**./configure**命令来编译安装sysstat工具包。
+
+ # ./configure
+ # make
+ # make install
+
+
+
+*在Linux系统中配置sysstat*
+
+在编译完成后,我们将会看到一些类似于上图的输出。现在运行如下命令来查看sysstat的版本。
+
+ # mpstat -V
+
+ sysstat version 11.0.0
+ (C) Sebastien Godard (sysstat orange.fr)
+
+###更新Linux 系统中的sysstat###
+
+默认的,sysstat使用“**/usr/local**”作为其目录前缀。因此,所有的二进制数据/工具都会安装在“**/usr/local/bin**”目录中。如果你的系统已经安装了sysstat 工具包,则上面提到的二进制数据/工具有可能在“**/usr/bin**”目录中。
+
+因为“**$PATH**”变量不包含“**/usr/local/bin**”路径,你在更新时可能会失败。因此,确保“**/usr/local/bin**”路径包含在“$PATH”环境变量中,或者在更新前,在编译和卸载旧版本时将**-prefix**选项指定值为“**/usr**”。
+
+ # yum remove sysstat [On RedHat based System]
+ # apt-get remove sysstat [On Debian based System]
+
+----------
+
+ # ./configure --prefix=/usr
+ # make
+ # make install
+
+现在,使用‘mpstat’命令的‘**-V**’选项查看更新后的版本。
+
+ # mpstat -V
+
+ sysstat version 11.0.0
+ (C) Sebastien Godard (sysstat orange.fr)
+
+**参考**: 更多详细的信息请到 [Sysstat Documentation][3]
+
+在我的下一篇文章中,我将会展示一些sysstat命令使用的实际例子,敬请关注更新。别忘了在下面评论框中留下您宝贵的意见。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/install-sysstat-in-linux/
+
+作者:[Kuldeep Sharma][a]
+译者:[cvsher](https://github.com/cvsher)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/kuldeepsharma47/
+[1]:http://linux.cn/article-4024-1.html
+[2]:http://sebastien.godard.pagesperso-orange.fr/download.html
+[3]:http://sebastien.godard.pagesperso-orange.fr/documentation.html
diff --git "a/published/201410/Wine 1.7.29 (Development Version) Released \342\200\223 Install in RedHat and Debian Based Systems.md" "b/published/201410/Wine 1.7.29 (Development Version) Released \342\200\223 Install in RedHat and Debian Based Systems.md"
new file mode 100644
index 0000000000..6c5720bd9b
--- /dev/null
+++ "b/published/201410/Wine 1.7.29 (Development Version) Released \342\200\223 Install in RedHat and Debian Based Systems.md"
@@ -0,0 +1,97 @@
+在基于RedHat与Debian的系统上安装Wine 最新的开发版本
+=========================
+
+**Wine**,一个在Linux平台上非常受欢迎并且强大的开源应用,有了它,我们可以在Linux平台上完美运行Windows应用与游戏。
+
+
+
+*在Linux上安装Wine(开发版本)*
+
+WineHQ团队,近期宣布了一个新的开发版本**Wine1.7.29**。这个版本带来了诸多重要的特性,并且修复了**44**个bug。
+
+Wine团队几乎每周都会发布新的开发版本,并且加入许多新特性以及修复漏洞。每个新版本都会支持新的应用与游戏(Windows),这使得Wine在那些想要在Linux下运行Windows应用的用户群体中很流行并且是不可缺少的。
+
+根据变更日志,这个版本中添加了以下的关键特性:
+
+- 在DirectWrite中加入增强的外形塑造与BiDi(译者:bi-directional language)镜像。
+- 升级了一些页面错误处理方式。
+- 增加了更多的C运行时函数。
+- 修复了大量的bug。
+
+在官方的 [变更日志][1] 中可以找到关于这个版本更多更深入的细节。
+
+这篇文章指导你在基于**RedHat**与**Debian**的系统,如CentOS,Fedora,Ubuntu,Linux Mint以及其他的发行版中安装最新的开发版本**Wine 1.7.29**。
+
+##在Linux中安装 Wine 1.7.29 开发版本##
+
+遗憾的是,目前还没有官方的Wine仓库可以获取基于**RedHat**系统的版本,只能通过编译源码来安装。如果要这么做的话,我们先要安装一些开发包如gcc,flex,bison,libX11-devel freetype-devel 以及开发工具,等等。这些工具都是编译Wine源码所必须的。我们可以通过**YUM**命令来安装这些包。
+
+##RedHat,Fedora,CentOS##
+
+ # yum -y groupinstall 'Development Tools'
+ # yum -y install flex bison libX11-devel freetype-devel
+
+然后,使用如下命令下载Wine最新的开发版本(**1.7.29**)以及解压源码包。
+
+ $ cd /tmp
+ $ wget http://citylan.dl.sourceforge.net/project/wine/Source/wine-1.7.29.tar.bz2
+ $ tar -xvf wine-1.7.29.tar.bz2 -C /tmp/
+
+接下来,使用下列命令编译及安装Wine。
+
+注:安装过程大概需要**15-20**分钟,这个时间由你的网络速度以及电脑硬件配置决定,在安装过程中需要**root**密码。
+
+####32位系统####
+
+ $cd wine-1.7.29/
+ $./tools/wineinstall
+
+####64位系统####
+
+ $ cd wine-1.7.29/
+ $ ./configure --enable-win64
+ $ make
+ # make install
+
+###Ubuntu,Debian 与 Linux Mint###
+
+在**Ubuntu**系统下,你可以使用官方的**PPA**方便的安装最新的Wine开发版本。打开一个终端并使用sudo权限执行下列命令。
+
+ $ sudo add-apt-repository ppa:ubuntu-wine/ppa
+ $ sudo apt-get update
+ $ sudo apt-get install wine 1.7 winetricks
+
+**注**:在写这篇文章时,只能获取**1.7.26**,在官方的仓库中还没有更新到最新版本,但是当仓库更新到**1.7.29**后,使用上面的指令可以安装最新的版本。(译者:为毛我看了版本号是1.6.2......)
+
+安装成功后,你可以安装或运行任何windows应用或游戏了,示例如下:
+
+ $ wine notepad
+ $ wine notepad.exe
+ $ wine c:\\windows\\notepad.exe
+
+**注**:切记,这是一个开发版本,请勿在生产系统上安装它。建议这个版本仅作测试用。
+
+如果你需要最新的稳定版本,可以参考下列文章,它介绍了如何安装最新的稳定版本。
+
+- [Install Wine 1.6.2 (Stable) in RHEL, CentOS and Fedora][2]
+- [Install Wine 1.6.2 (Stable) in Debian, Ubuntu and Mint][3]
+
+###参考链接###
+
+- [WineHQ Homepage][4]
+
+-------------------------------------------------
+
+via: http://www.tecmint.com/install-wine-in-linux/
+
+作者:[Ravi Saive][a]
+译者:[SPccman](https://github.com/SPccman)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/admin/
+[1]:http://www.winehq.org/announce/1.7.29
+[2]:http://www.tecmint.com/install-wine-in-rhel-centos-and-fedora/
+[3]:http://www.tecmint.com/install-wine-on-ubuntu-and-linux-mint/
+[4]:http://www.winehq.org/
diff --git a/published/201411/20140617 7 Improvements The Linux Desktop Needs.md b/published/201411/20140617 7 Improvements The Linux Desktop Needs.md
new file mode 100644
index 0000000000..a3a133c4ed
--- /dev/null
+++ b/published/201411/20140617 7 Improvements The Linux Desktop Needs.md
@@ -0,0 +1,97 @@
+7个Linux桌面需要改进之处
+======================================
+
+在过去的15年内,Linux桌面从一个还算凑合的边缘化解决方案集合发展为一个独特的创新来源和选择之一。它的标准特点中有许多是要么不适用于Windows系统,要么就只适合作为一个专有的扩展软件。因此,使用Linux愈发变得不仅是一个原则问题,也是一种偏好。
+
+然而,尽管Linux桌面不停在进步,但是仍然存在差距。一些特点正在丢失,而一些已经丢失了,还有一些令人惊喜的附加功能可以轻易地提升桌面体验,而不用挑战用户的容忍度。
+
+比如说,以下是7个有利于Linux桌面发展的改善建议:
+
+### 7. 简单的Email加密技术
+
+如今,各种Email阅读器从Alpine到Thunderbird再到Kmail,都带有Email加密技术。然而,关于它们的文档手册通常是不存在或者非常简陋。
+
+但是,即使你了解加密理论,但是使用起来仍然很困难。这些控件通常分散在配置菜单和选项卡中,需要为所有你需要和想要的设置进行一次彻底的搜索才行。如果你未能进行适当的加密设置,通常你找不到任何有用的反馈。
+
+易用性方面最接近的是 [Enigmail][1] ,它是一个带有面向初学者的设置向导的Thunderbird扩展。但是你一定要知道怎么用Enigmail,新的加密设置菜单埋藏在撰写窗口里一级菜单下,和其他选项混在一起,这让日常用户很迷惑。
+
+不管是那种桌面环境,如你所知的,你应该对邮件加密,今天对安全和隐私的媒体不断报道让你知道加密有多重要。
+
+### 6. 虚拟工作空间缩略图
+
+不需要额外的显示器,虚拟工作空间提供了更多桌面空间。然而,尽管它们很实用,但是虚拟工作空间的管理并没有在过去十年发生改变。在大多数桌面上,你能通过每个工作空间上的pager程序(一个提供很少指示除了它的名字和数字的简单矩形框)来控制它们 -- 或者,在Ubuntu的Unity 环境中,可以指出哪个工作空间是当前激活的。
+
+确实,GNOME和Cinnamon能提供出不错的视图,但是它们的实用性受限于它们需要显示屏大小的事实。而 KDE 写出内容列表则和主流的图形桌面不太协调。
+
+一个比较不错的解决方案应该是鼠标悬停在足够大的缩略图上来获取正常的视图,这样就精确地查看每个工作空间上的东西了。
+
+### 5. 一个合用的菜单
+
+现代型桌面很久之前就已经舍弃了级联子菜单铺满整个桌面的经典型菜单了。如今,一般的电脑都有太多的应用程序以至于不能适应这样的模式。
+
+糟糕的是,没有什么主要的替代品能与经典型菜单一样方便。把菜单根植于一个单一的窗口,其效果是不理想的,因为你要么必须截掉子菜单要么就用鼠标不断地调整窗口大小。
+
+但是全屏幕菜单的产品还要差,这意味着你甚至要在开始工作之前就调整屏幕,并且哪个搜索框其实只在你已经知道什么应用程序可用的情况下才有用 -- 这种情况下你还不如直接用命令行。
+
+坦白地说,我不知道拿什么来解决这个问题,OS X下的spinner racks吗?我可以肯定地说,所有现代型菜单产品在桌面上呈现出一个个精心构造的图标似乎更是一个合理的选择。
+
+### 4. 一个专业的、实惠的视频编辑器
+
+多年来,Linux已经慢慢地填充了软件生产力上的空白。然而即便如此,它仍然缺少价格合理的视频编辑软件。
+
+问题不在于没有这样的自由软件。[Maya][2] 是动画产业的标准之一,但是问题在于这样的软件的售价达数千美金。
+
+另一边,比如Pitivi或者是Blender这样的免费软件, 它们的功能性 -- 尽管它们的开发者足够的努力 -- 只能保证基本功能。虽然取得了进步,但还是和用户们所期望的相去甚远。
+
+尽管我听说一些非主流的厂家使用的是原生态Linux视频编辑器,原因通常是因为他们抱怨其它编辑器不好,但其余的人更愿意减少麻烦,从而在其它操作系统上对视频进行编辑。
+
+### 3. 一个文档处理器
+
+有一个极端是,那些需要进行文字处理的用户,Google Docs就让他们满意了;而另一个极端是对于那些排版设计的专家来说,Scribus是唯一比较可行的应用。
+
+这两种极端之间还有一层,是那些比如那些写作很长的文本的文件的出版商和作家。这类用户有些是由基于Windows的 [Adobe FrameMaker][3] 来服务, 有些则由基于Linux的LibreOffice Writer来服务。
+
+不幸的是,这些用户显然不会优先考虑LibreOffice,Calligra Words, AbiWord或者是任何其它的办公套件。应该提供给用户的办公套件的特色功能包括:
+
+- 为每个文件建立引用书目数据库。
+- 表格的样式能和段落与字符保持一致。
+- 除了页眉和页脚,带有持续性内容的页面样式,在每次使用样式时都一样。
+- 交叉引用存储格式,以便不需要每次都手动创建。
+
+无论是LibreOffice还是其它同类应用,提供这些特色功能与它们是否可用是并不相干的。但是没有它们,Linux桌面对于一群潜在的用户来说就是个不完善的东西。
+
+
+### 2.彩色标题栏
+
+浏览器的扩展软件向我们展示了彩色编码标签对于工作空间的作用。打开了八九个标签后,它的标题栏就看不全了,所以颜色通常是最快区分标签关系的方法。
+
+同样的系统也能用到桌面上。更好的是,彩色编码也许可以按会话保存,允许用户同时打开某个任务所需的所有应用。到目前为止,我知道没有任何一个桌面有这个特点。
+
+### 1. 图标栏
+
+多年以来,Stardock公司一直销售着一个名叫 [Fences][4] 的扩展软件,它用来分类和组织桌面上的图标,你能用它给每个组取名并且可以把每个图标都放在一起。另外,你可以指定不同的文件类型自动加入到一个组里,并且按个人需要来隐藏和整理。
+
+换句话说,fences让用户整天在桌面上干的事情自动有序地分组排列。然而,除了一两个小功能与KDE的文件夹视图类似之外,fences的功能仍然没有出现在Linux桌面上。这也许是因为开发人员把注意力放到移动设备上作为灵感来源,而使用fences无疑是传统工作站桌面的一大特征。
+
+### 我个人的列表
+
+我做了这种列表之后,让我震惊的是这些不多的改进都是普适性的,其中几项改进将会吸引大量特定的用户,只有一个是来自专有软件的移植,其中一个至少是修饰性的而不是功能性的。
+
+这一观察表明,对于普通用户来说,Linux能添加的功能已经所剩无几了。作为一个通用的桌面,Linux从几年前到现在都很多元化,到今天,用户能从超过半打的主流桌面中选择出一个来使用。
+
+当然这不意味着,一些专家就不会有其它意见。另外,没有人会关心不断变化的需求会不会使改进令人满意。但是它意味着这份充斥着改进建议的名单上的许多项目将会高度个人化。
+
+所有这些都是为了抛砖引玉:你认为还有什么其它的对桌面有益的建议吗?
+
+--------------------------------------------------------------------------------
+
+via: http://www.datamation.com/open-source/7-improvements-the-linux-desktop-needs-1.html
+
+译者:[ZTinoZ](https://github.com/ZTinoZ) 校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://addons.mozilla.org/en-US/thunderbird/addon/enigmail/
+[2]:http://en.wikipedia.org/wiki/Autodesk_Maya
+[3]:http://www.adobe.com/products/framemaker.html
+[4]:http://www.stardock.com/products/fences/
diff --git a/published/201411/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md b/published/201411/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md
new file mode 100644
index 0000000000..1d7f5a904f
--- /dev/null
+++ b/published/201411/20140702 The People Who Support Linux--Hacking on Linux Since Age 16.md
@@ -0,0 +1,49 @@
+一个 Linux 支持者:从 16 岁开始在 Linux 上 hacking
+================================================================================
+
+
+
+>翻译文章中是称主人公为 Yitao Li,还是李逸韬?他似乎是美国人,“李逸韬”是看的他的个人主页上的。
+
+在软件开发者 [Yitao Li (李逸韬) 的 GitHub 仓库][1]中,几乎所有的项目都是在他的 Linux 机器上开发完成的。它们没有一个是必须特定需要 Linux 的,但李逸韬说他使用 Linux 来做“任何事情”。
+
+举些例子:“编码/脚本设计,网页浏览,网站托管,任何云相关的,发送/接收 PGP 签名的邮件,调整防火墙规则,将 OpenWrt 镜像刷入路由器,运行某版本的 Linux kernel 的同时编译另一个版本,从事研究,完成功课(例如,用 Tex 输入数学公式),以及其他许多......” Li 在邮件里如是说。
+
+在李逸韬的 GitHub 仓库里所有项目中他的最爱是一个学校项目,调用 libpthread 和 libfuse 库,使用 C++ 开发,用来理解和正确执行基于 PAXOS 的分布式加锁,键值对服务,最终实现一个分布式文件系统。他使用若干测试脚本分别在单核和多核的机器上对这个项目进行测试。
+
+"可以借助正确地实现(或者至少大部分正确)PAXOS 协议,并且通过了所有测试,来学习关于分布式共识协议的知识,"他说,“当然一旦这完成了,他就可以获得一些炫耀的权利。除此之外,一个分布式文件系统在其他许多编程项目中也可以很有用。”
+
+Li 是在 16 岁的时候第一次开始使用 Linux,或是者说大约 7.47 年之前,他说,通过使用网站 [linuxfromscratch.org][2] ,从 Scratch book 中获得的免费可下载的 Linux 中学习了大量知识。那么他为什么会使用 Linux?
+
+"1. Linux 是黑客的天才工具,所以我没看到任何不用它的理由,"他写道,“2. 大脑的前额叶皮质(可能)在我16岁时正变得很发达。”
+
+[][3]
+
+他现在为 eBay工作,主要进行 Java 编程但有时也使用 Hadoop, Pig, Zookeeper, Cassandra, MongoDB,以及其他一些需要 POSIX 兼容平台的软件来工作。他主要通过给 Wikipedia 页面和 Linux 相关的论坛做贡献来支持 Linux 社区,另外当然还成为了 Linux 基金会的个人会员。
+
+他紧跟最新的 Linux 发展动态,最近还对 GCC 4.9 及之后版本新增的 “-fstack-protector-strong” 选项印象深刻。
+
+"虽然这并不与我的任何项目直接相关,但它对于安全和性能问题十分重要。"他说,“这个选项比 ‘-fstack-protector-all’ 更高效的多,却在安全上几乎没有影响,同时比 ‘-fstack-protector’ 选项提供了更好的栈溢出防护覆盖。”
+
+欢迎来到 Linux 基金会,Yitao !
+
+了解更多关于成为 [Linux 基金会个人会员][3]的内容。基金会将为每位 6 月份期间的新个人会员捐赠 $25 给 Code.org。
+
+----------
+
+
+
+[Libby Clark][4]
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/news/featured-blogs/200-libby-clark/778559-the-people-who-support-linux-hacking-on-linux-since-age-16
+
+译者:[jabirus](https://github.com/jabirus) 校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://github.com/yl790
+[2]:http://linuxfromscratch.org/
+[3]:https://www.linuxfoundation.org/about/join/individual
+[4]:http://www.linux.com/community/forums/person/41373/catid/200-libby-clark
\ No newline at end of file
diff --git a/published/201411/20140729 Don't Fear The Command Line.md b/published/201411/20140729 Don't Fear The Command Line.md
new file mode 100644
index 0000000000..31b7fcc96a
--- /dev/null
+++ b/published/201411/20140729 Don't Fear The Command Line.md
@@ -0,0 +1,135 @@
+不要害怕命令行——Mac OS 篇
+================================================================================
+
+
+> 接纳你电脑上最有用的工具。
+
+你应该在电影中见到过,尽管从没在自己电脑上调出来:一个空白屏幕,带有一些简单文字提示和一个光标,等着你去输入几个神秘的命令,就会听你的吩咐。
+
+这就是命令行。它是基于字符的接口,它比现在人们都熟悉的主流操作系统(包括Windows到Mac OS X和Linux)上的窗口,图标和`瓦片 tiles`都要早。
+
+命令行是一个使用你电脑基本功能的超级强大的工具。对于大多数人来说,它也是一个让人困惑的,难以理解的,看上去无关紧要的东西。但是其实不是这样的。
+
+### 在你的命令控制下的电脑 ###
+
+输入字符指令再敲下回车来让电脑做点事情,和在移动设备的触摸界面上滑动点击比较,听起来像是退了一大步。即使是刚学走路的小孩都可以用iPad,对吧?不过,如果你知道怎么用的话,命令可以节省你的时间,减少烦恼。
+
+如果你很认真想学习编程-或者想理解计算机技术-你完全有必要掌握命令行。
+
+深入到命令行里,将教会你很多关于电脑如何工作以及管理信息的。你也许会发现有些平常使用鼠标操作的功能,当改为敲一两个命令后,实际上会更快。
+
+更重要的是,你会更容易理解[像Python那样的编程语言][1]和[像Git那样的软件][2],需要有一点命令行基础。在熟悉了命令行以后,你就可以打破过去阻止你学习编程的障碍了。
+
+所以在这里介绍一点关于命令行的快速的、基础的指导。它**主要专注于Mac OS X的类Unix环境**,只是因为这是我比较熟悉的。Linux用户应该已经很熟悉命令行了,不过新手也许还是会觉得这些小窍门有点用。如果你用的是Chromebook,Google对如何打开它自带的[命令行工具][3]已经给出了有用的指导,它和Mac或Linux系统有点类似。对于Windows用户,很不幸,受限于从MS-DOS衍生出的命令语言,它和Unix只有一点点交集,所以这篇指导对你没什么用;不过可以去看下[dosprompt.info网站里的资料][4]。
+
+### 如何开始 ###
+
+你需要做的第一件事是搞清楚如何进入命令行,通常这是通过一个叫“shell”的软件来做的。在任意一台运行OS X的Mac上,需要启动终端应用。你可以通过Finder来打开(它是在应用程序下的实用工具目录里),或者点击屏幕右上角的放大镜然后输入“terminal”,然后在下拉列表里选择。
+
+
+
+你进来了,但是所有你看到的只是一个有输入空间的空白盒子。这就是命令行!让我们来更好地了解一下这个窗口。
+
+输入`pwd`,它的意思是打印当前工作目录。在计算机语言里,“打印”什么和纸没一点关系。它实际上只是意味着吐点东西到屏幕上。这个命令运行的结果是让计算机返回你当前正处在的目录路径。(LCTT 译注,“打印”源于早期计算机的输出设备不是显示器,而是行式打印机,所以输出就是“打印”;在后期,有了显示器之后,在哑终端上操作远程主机时,输出才是“回显 echo”)
+
+
+
+实际上,`/Users/laurenorsini`是我的主目录。高级提示:你可以使用波浪符(~)作为自己主目录的简写 - 它和`/Users/你的用户名`是一样的。比如,你可以像`~/Downloads`这样引用你的下载目录。(如果你仔细看前面的命令提示,你会发现那里有一个波浪符。这说明我当前正在自己的主目录下。)
+
+我们肯定不希望我们的命令行试验把自己的主目录弄的一团糟,所以让我通过`mkdir`命令来创建一个新目录。这和在桌面操作系统里创建一个新目录是一样的。让我们把它叫做“experiments”:
+
+
+
+现在我们有一个新目录了。如果使用图形界面的话,我们可以用自己的眼睛判断我们已经创建了一个新目录。当然,如果我打开Finder然后进入我的主目录(用一个小房子图标标记的)就会看到一个叫“experiments”的目录。我通过命令行实现的!(反过来:你可以在桌面系统里建立一个文件夹,然后在命令行下去查看。这只是同一套系统的两种不同表现方式。)
+
+
+
+现在我需要通过**cd**(改变路径)命令改变路径进入到`~/experiments`目录中
+
+
+
+我的命令提示是系统默认设定,所以它自动显示我当前的工作目录。但是如果你的看起来不一样的话,这样可以让你确定“experiments”是当前工作目录:再一次输入**pwd**。它应该会告诉你当前工作目录是“experiments”。
+
+### 建立存档 ###
+
+在写代码的每一天里我都通过命令行创建和编辑文件。它比使用图形用户界面更快是因为我可以在编辑完后马上就在命令行里测试我的程序。如果我正好同时需要推送到[GitHub][5]的话,好吧,那就更方便了。
+
+现在你有一个新目录(也可以叫做仓库或文件夹)在你电脑上用来折腾。让我们从创建一个包含“你好世界”这句话的文件开始吧。有[很多种方式][6],在这里我用了**echo**命令。
+
+
+
+哦不!我拼错“newfile”了。这经常会碰到。让我们用两个步骤来改正它。首先,我将创建一个拼写正确的文件...(LCTT 译注:完全不必创建新文件,直接 mv 即可,相当于改名。)
+
+
+
+然后,我讲使用**mv**(移动)命令把拼写错误的就文件替换成我的新文件。通常都是这样,“**mv 旧文件 新文件**”。
+
+
+
+关于**mv**要注意的:跟大多数命令一样,它是一个容易误导的强大命令。当我们“移动”`newfil.txt`到`newfile.txt`的时候,实际上会把第一个文件完全覆盖到第二个文件上。这样我写到newfile.txt里的内容将彻底消失,替换成我写到newfil.txt里的内容。
+
+为了证明我的目录下只有一个文件,可以使用**ls**,清单命令,来获得目录下的所有文件清单。
+
+
+
+看到了没?只有一个。然后如果我在图形界面下看下这个目录的话,也可以看到这个文件。
+
+
+
+但是,它只是个空白文本文件(LCTT 译注,不是空白的,其内容是“Hello World”)。让我们用文本编辑器来输入点内容进去。在命令行下,我喜欢用`nano`编辑器,因为它很简单而且几乎在所有类型电脑上都可以使用。(LCTT 译注,作为 Linux 党,那肯定是要用 vi 的,不过 vi 对于初学者来说有一点点难。)
+
+这会在你的命令行窗口中马上打开编辑屏幕。一些基本的命令都为你列出来了。
+
+
+
+写下你想说的话,然后通过CTRL + X退出。在它问你是否保存的时候,当然键入"Y"。
+
+
+
+你也许已经猜到了,也可以在操作系统中用鼠标找到newfile.txt文件看到这些改动。这里你可以用任意喜欢的文本编辑器打开编辑这个你创建的文件。
+
+如果你想永远删除这个文件,可以用**rm**(移除)命令:
+
+
+
+注意一下,**rm**命令非常强大!在黑客论坛里有个[常用伎俩][7]就是说服一个命令行新手输入**rm -rf /**,然后他就把自己整个电脑上的所有文件都删掉了。命令里的“/”意思是电脑的最高级根目录-所有一切都在它之下。千万不要输入那行命令!(LCTT 译注:希望你在看完这句话之前没有真的输入了 rm -rf / !!!)
+
+### 延伸阅读 ###
+
+这只是无限可能的命令行的一个开始。你可以使用这个工具控制电脑的每一个方面,这也使得它强大的同时也很危险。保证在使用它们之前先看一下命令行提示,然后永远不要盲目输入任何陌生人推荐给你的语句。
+
+我已经大概介绍了平时敲代码时常用的几个命令,但是有比这更多的理由去掌握命令行。如果你想更彻底地了解,也许可以试试:
+
+[命令行速成教程][8]。一套免费的扩展课程,涵盖了命令行应用的基础。
+
+[命令行初学者启蒙][9]。Lifehacker收藏的一些适合初学者的很有用的命令。
+
+[Mac OS X 命令行入门][10]。在线教育网站Treehouse极尽详细地介绍了命令行的基础。
+
+现在文章看完了,你就更容易理解我之前写的那些代码教程了,因为如果不敲几个命令根本没法完成。如果你准备好了,我建议你去看看ReadWrite的[Git教程][11],它使用命令行来向你介绍协同编程。计算与你同在!
+
+*题图来自[Jason Scott][12];其他屏幕截图由Lauren Orsini提供给ReadWrite*
+
+--------------------------------------------------------------------------------
+
+via: http://readwrite.com/2014/07/18/command-line-tutorial-intro
+
+作者:[Lauren Orsini][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://readwrite.com/author/lauren-orsini
+[1]:http://readwrite.com/2014/07/08/what-makes-python-easy-to-learn
+[2]:http://readwrite.com/2013/09/30/understanding-github-a-journey-for-beginners-part-1
+[3]:http://www.chromium.org/chromium-os/poking-around-your-chrome-os-device
+[4]:http://dosprompt.info/
+[5]:http://www.github.com/
+[6]:http://www.cyberciti.biz/faq/unix-create-file-from-terminal-window-shell-prompt/
+[7]:http://www.urbandictionary.com/define.php?term=rm+-rf+%2F
+[8]:http://cli.learncodethehardway.org/book/
+[9]:http://lifehacker.com/5633909/who-needs-a-mouse-learn-to-use-the-command-line-for-almost-anything
+[10]:http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line
+[11]:http://readwrite.com/2013/09/30/understanding-github-a-journey-for-beginners-part-1
+[12]:http://en.wikipedia.org/wiki/Computer_terminal#mediaviewer/File:DEC_VT100_terminal.jpg
diff --git a/published/201411/20140812 How to set up a USB network printer and scanner server on Debian.md b/published/201411/20140812 How to set up a USB network printer and scanner server on Debian.md
new file mode 100644
index 0000000000..3783deed01
--- /dev/null
+++ b/published/201411/20140812 How to set up a USB network printer and scanner server on Debian.md
@@ -0,0 +1,174 @@
+在Debian上设置USB网络打印机和扫描仪服务器
+================================================================================
+假定你想要在你的家庭/办公网络中设置一台Linux打印服务器,而你手头上却只有USB打印机可用(因为他们比那些有着内建网络接口或无线模块的打印机要便宜得多)。此外,如果这些设备中有一台是一体化的,而你也想要通过网络共享其整合的扫描仪,这该怎么办?在本文中,我将介绍怎样安装并共享一台USB一体机(Epson CX3900喷墨打印机和扫描仪),一台USB激光打印机(Samsung ML-1640),以及作为锦上添花,配置一台PDF打印机。所有这一切,我们都将在GNU/Linux Debian 7.2 [Wheezy]服务器中实现。
+
+尽管这些打印机看起来有点老旧了(我是在2007年买的Epson一体机,2009年买的激光打印机),但我仍然相信我从安装过程中学到的东西也一样能应用到该品牌的新产品和其它品牌中去:有一些预编译的.deb包驱动可用,而其它驱动可以从仓库中直接安装。毕竟,它是重要的基本原则。
+
+### 先决条件 ###
+
+要设置网络打印机和扫描仪,我们将使用[CUPS][1],它是一个用于Linux/UNIX/OSX的开源打印系统。
+
+ # aptitude install cups cups-pdf
+
+**排障提示**:根据你的系统状况(这个问题很可能在手动安装包失败后,或者缺少依赖包的时候会发生),在安装cups和cups-pdf前端包管理系统可能会提示你卸载许多包以尝试解决当前依赖问题。如果这种情况真的发生,你只有两个选择:
+
+1)通过另外一个前端包管理系统安装包,如apt-get。注意,并不建议进行这样的处理,因为它不会解决当前的问题。
+
+2)运行以下命令:aptitude update && aptitude upgrade。该命令会修复此问题,并同时更新包到最新版本。
+
+### 配置CUPS ###
+
+为了能够访问CUPS的网页接口,我们需要至少对cupsd.conf文件(用于CUPS的服务器配置文件)进行一次最低限度的修改。在进行修改前,让我们为cupsd.conf做个备份副本:
+
+ # cp cupsd.conf cupsd.conf.bkp
+
+然后,编辑原始文件(下面只显示了最为有关联的部分):
+
+- **Listen**:监听指定的地址和端口,或者域套接口路径。
+- **Location /path**:为该名字所代表的位置指定访问控制。
+- **Order**:指定HTTP访问控制顺序(allow,deny或deny,allow)。Order allow,deny是说允许规则先于(并且优先处理)拒绝规则。
+- **DefaultAuthType** (也可以用**AuthType**): 指定默认使用的认证类型。Basic是指使用/etc/passwd文件来认证CUPS中的用户。
+- **DefaultEncryption**:指定认证请求所使用的加密类型。
+- **WebInterface**:指定是否启用网页接口。
+
+---
+
+ # Listen for connections from the local machine
+ Listen 192.168.0.15:631
+
+ # Restrict access to the server
+
+ Order allow,deny
+ Allow 192.168.0.0/24
+
+
+ # Default authentication type, when authentication is required
+ DefaultAuthType Basic
+ DefaultEncryption IfRequested
+
+ # Web interface setting
+ WebInterface Yes
+
+ # Restrict access to the admin pages
+
+ Order allow,deny
+ Allow 192.168.0.0/24
+
+
+现在,让我们重启CUPS来应用修改:
+
+ # service cups restart
+
+为了允许另外一个用户(除了root之外)修改打印机设置,我们必须像下面这样添加他/她到lp(授权对打印机硬件的访问并启用用户管理打印任务)和lpadmin(拥有打印优先)组。如果在你当前网络设置没有必要或不需要该设置,你可以不用理会该步骤。
+
+ # adduser xmodulo lp
+ # adduser xmodulo lpadmin
+
+
+
+### 通过网页接口配置网络打印机 ###
+
+1、 启动网页浏览器,并打开CUPS接口http://:Port,这里在我们的例子中是http://192.168.0.15:631:
+
+
+
+2、 转到**管理**标签,然后点击*添加打印机*:
+
+
+
+3、 选择你的打印机;在本例中,**EPSON Stylus CX3900 @ debian (Inkjet Inkjet Printer)**,然后点击**继续**:
+
+
+
+4、 是时候为打印机取个名字,并指定我们是否想要从当前工作站共享它:
+
+
+
+5、 安装驱动——选择品牌并点击**继续**。
+
+
+
+6、 如果打印机如果不被CUPS支持(没有在下一页中列出来),我们必须从生产厂家的网站上下载驱动(如[http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX][2]),安装完后回到该页。
+
+
+
+
+
+
+
+7、 注意,预编译的.deb文件必须从我们使用的机器上发送(例如,通过sftp或scp)到打印服务器(当然,如果我们有一个直接的下载链接就更加简单了,而不用下载按钮了):
+
+
+
+8、 在将.deb文件放到服务器上后,我们就可以安装了:
+
+ # dpkg -i epson-inkjet-printer-escpr_1.4.1-1lsb3.2_i386.deb
+
+**排障提示**:如果lsb包(一个第三方Linux应用编写者可以依赖标准核心系统)没有安装,那么驱动会无法安装:
+
+
+
+我们将安装lsb,然后尝试再次安装打印机驱动:
+
+ # aptitude install lsb
+ # dpkg -i epson-inkjet-printer-escpr_1.4.1-1lsb3.2_i386.deb
+
+9、 现在,我们可以返回到第五步并安装打印机:
+
+
+
+### 配置网络扫描仪 ###
+
+现在,我们将继续配置打印机服务器来共享扫描仪。首先,安装[xsane][3],这是[SANE][4]——扫描仪快捷访问的前端:
+
+ # aptitude install xsane
+
+接下来,让我们编辑/etc/default/saned文件以启用saned服务:
+
+ # Set to yes to start saned
+ RUN=yes
+
+最后,我们将检查saned是否已经在运行了(很可能不在运行哦——那么我们将启动服务并再来检查):
+
+ # ps -ef | grep saned | grep -v grep
+ # service saned start
+
+### 配置另一台网络打印机 ###
+
+通过CUPS,你可以配置多台网络打印机。让我们通过CUPS配置一台额外的打印机:Samsung ML-1640,它是一台USB打印机。
+
+splix包包含了单色(ML-15xx, ML-16xx, ML-17xx, ML-2xxx)和彩色(CLP-5xx, CLP-6xx)Samsung打印机驱动。此外,此包的详细信息中指出,一些新命名的Samsung打印机,如Xerox Phaser 6100也适用此驱动。
+
+ # aptitude install splix
+
+然后我们将使用CUPS网页接口来安装打印机,就像前面一样:
+
+
+
+### 安装PDF打印机 ###
+
+接下来,让我们在打印服务器上配置一台PDF打印机。这样,你就可以将来自客户计算机的文档转换成PDF格式了。
+
+由于我们已经安装了cups-pdf包,PDF打印机就已经自动安装好了,可以通过网页接口验证:
+
+
+
+当选定PDF打印机后,文档将被写入可配置目录(默认是~/PDF),或者也可以通过后续处理命令进行复制。
+
+在下一篇文章中,我们将配置桌面客户端来通过网络访问打印机和扫描仪。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/usb-network-printer-and-scanner-server-debian.html
+
+作者:[Gabriel Cánepa][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.gabrielcanepa.com.ar/
+[1]:https://www.cups.org/
+[2]:http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX
+[3]:http://www.xsane.org/
+[4]:http://www.sane-project.org/
diff --git a/published/201411/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md b/published/201411/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md
new file mode 100644
index 0000000000..5f34b81685
--- /dev/null
+++ b/published/201411/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md
@@ -0,0 +1,214 @@
+在 LVM中 录制逻辑卷快照并恢复(第三部分)
+================================================================================
+**LVM快照**是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小,可以使用lvreduce。
+
+
+
+*在LVM中录制快照*
+
+如果我们在创建快照后意外地删除了无论什么文件,我们没有必要担心,因为快照里包含了我们所删除的文件的原始文件。创建快照时,很有可能文件已经存在了。不要改变快照卷,保持创建时的样子,因为它用于快速恢复。
+
+快照不可以用于备份选项。备份是某些数据的基础副本,因此我们不能使用快照作为备份的一个选择。
+
+#### 前置阅读 ####
+
+- [在Linux中使用LVM构建灵活的磁盘存储(第一部分)][1]
+- [在Linux中扩展/缩减LVM(第二部分)][2]
+
+### 我的服务器设置 ###
+
+- 操作系统 — 安装有LVM的CentOS 6.5
+- 服务器IP — 192.168.0.200
+
+#### 步骤1: 创建LVM快照 ####
+
+首先,使用‘**vgs**’命令检查卷组中的空闲空间以创建新的快照。
+
+ # vgs
+ # lvs
+
+
+
+*检查LVM磁盘空间*
+
+正如你所见,在**vgs**命令输出中,我们可以看到有8GB的剩余空闲空间。所以,让我们为我的名为**tecmint_datas**的卷创建快照。处于演示的目的,我将会使用以下命令来创建1GB的快照卷。
+
+ # lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas
+
+或者
+
+ # lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas
+
+上面的两个命令都是干得同一件事:
+
+- **-s** – 创建快照
+- **-n** – 为快照命名
+
+
+
+*创建LVM快照*
+
+此处,是对上面高亮要点的说明。
+
+1. 我在此创建的快照的大小。
+2. 创建快照。
+3. 创建快照名。
+4. 新的快照名。
+5. 要创建快照的卷。
+
+如果你想要移除快照,可以使用‘**lvremove**’命令。
+
+ # lvremove /dev/vg_tecmint_extra/tecmint_datas_snap
+
+
+
+*移除LVM快照*
+
+现在,使用以下命令列出新创建的快照。
+
+ # lvs
+
+
+
+*验证LVM快照*
+
+上面的你看到了吧,成功创建了一个快照。上面我用箭头标出了快照创建的源,它就是**tecmint_datas**。是的,因为我已经为**tecmint_datas l-volume**创建了一个快照。
+
+
+
+*检查LVM快照空间*
+
+让我们添加一些新文件到**tecmint_datas**里头。现在卷里大概有650MB左右的数据,而我我们的快照有1GB大。因此,有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到,我们的快照当前的状态。
+
+ # lvs
+
+
+
+*检查快照状态*
+
+你看到了,现在已经用掉了**51%**的快照卷,你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。
+
+ # lvdisplay vg_tecmint_extra/tecmint_data_snap
+
+
+
+*查看快照信息*
+
+再来对上面图片中高亮的要点作个清楚的说明。
+
+1. 快照逻辑卷名称。
+2. 当前使用的卷组名。
+3. 读写模式下的快照卷,我们甚至可以挂载并使用该卷。
+4. 快照创建时间。这个很重要,因为快照将跟踪此时间之后的每个改变。
+5. 该快照属于tecmint_datas逻辑卷。
+6. 逻辑卷在线并可用。
+7. 我们录制快照的源卷大小。
+8. 写时复制表大小,Cow = copy on Write,这是说对tecmint_data卷所作的任何改变都会写入此快照。
+9. 当前使用的快照大小,我们的tecmint_data有10GB,而我们的快照大小是1GB,这就意味着我们的数据大概有650MB。所以,如果tecmint_datas中的文件增长到2GB,现在的51%中的内容将增加到超过所分配的快照的大小,当然,我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小(快照逻辑卷)
+10. 给出快照组块的大小。
+
+现在,让我们复制超过1GB的文件到**tecmint_datas**。让我们看看会发生什么。如果你那么做了,你将会见到‘**Input/output error**’这样的错误信息,它告诉你快照超出空间大小了。
+
+
+
+*添加文件到快照*
+
+如果该逻辑卷满了,它就会自动丢失新的数据,我们就不能再使用了,就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时,创建一个和源一样大小的快照卷。**tecmint_datas**的大小是10GB,如果我们创建一个10GB大小的快照,它就永远都不会像上面那样超载,因为它有足够的空间来录制你的逻辑卷的快照。
+
+#### 步骤2: 在LVM中扩展快照 ####
+
+如果我们需要在超过容量前扩展快照卷的大小,我们可以使用以下命令来完成此项任务。
+
+ # lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap
+
+现在,那里有总计2GB大小的快照空间。
+
+
+
+*扩展LVM快照*
+
+接下来,使用以下命令来验证新的大小和写时复制表。
+
+ # lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap
+
+要知道快照卷的大小使用**%**。
+
+ # lvs
+
+
+
+*检查快照大小*
+
+然而,如果你的快照大小和源卷一样,我们就没有必要担心这些问题了。
+
+#### 步骤3: 恢复快照或合并 ####
+
+要恢复快照,我们首先需要卸载文件系统。
+
+ # unmount /mnt/tecmint_datas/
+
+
+
+*卸载文件系统*
+
+只想检查挂载点是否卸载成功,可以使用下面的命令。
+
+ # df -h
+
+
+
+*检查文件系统挂载点*
+
+这里,我们的挂载已经被卸载,所以我们可以继续恢复快照。要恢复快照,可以使用**lvconvert**命令。
+
+ # lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap
+
+
+
+*恢复LVM快照*
+
+在合并完成后,快照卷将被自动移除。现在我们可以使用**df**命令来查看分区大小。
+
+ # df -Th
+
+
+
+在快照卷自动移除后,你可以用下面的命令查看逻辑卷大小。
+
+ # lvs
+
+
+
+*检查逻辑卷大小*
+
+**重要**:要自动扩展快照,我们可以通过修改配置文件来进行。对于手动扩展,我们可以使用lvextend。
+
+使用你喜欢的编辑器打开lvm配置文件。
+
+ # vim /etc/lvm/lvm.conf
+
+搜索单词autoextend。默认情况下,该值和下图中的类似。
+
+
+
+*LVM配置*
+
+修改此处的**100**为**75**,这样自动扩展的起始点就是**75**,而自动扩展百分比为20,它将自动扩容**百分之20**。
+
+如果快照卷达到**75%**,它会自动为快照卷扩容**20%**。这样,我们可以自动扩容了。使用**wq!**来保存并退出。
+
+这将把快照从超载导致下线事故中拯救出来,这也会帮助你节省更多时间。LVM是我们扩容以及获得其它众多特性如精简资源调配、拆卸、虚拟卷和使用精简池的唯一方法,让我们在下一个话题中来讨论吧。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
+[1]:http://linux.cn/article-3965-1.html
+[2]:http://linux.cn/article-3974-1.html
diff --git a/published/201411/20140819 Build a Raspberry Pi Arcade Machine.md b/published/201411/20140819 Build a Raspberry Pi Arcade Machine.md
new file mode 100644
index 0000000000..989d059f75
--- /dev/null
+++ b/published/201411/20140819 Build a Raspberry Pi Arcade Machine.md
@@ -0,0 +1,135 @@
+给那些怀旧的游戏骨灰粉丝们:自制一台树莓派街机
+================================================================================
+**利用当代神奇设备来重温80年代的黄金记忆。**
+
+### 你需要以下硬件 ###
+
+- 一台树莓派以及一张4GBSD卡
+- 一台支持HDMI的LCD显示屏
+- 游戏手柄或者...
+- 一个JAMMA街机游戏机外壳机箱
+- J-Pac或者I-Pac
+
+80年代有太多难忘的记忆;冷战结束,Quatro碳酸饮料,Korg Polysix合成器,以及Commodore 64家用电脑。但对于某些年轻人来说,这些都没有街机游戏机那样有说服力,或那种甜蜜的叛逆。笼罩着烟味和此起彼伏的8比特音效,它们就是在挤出来的时间里去探索的洞穴:50分钱和一个游戏币能让你消耗整个午餐时间,在这些游戏上磨练着你的技能:小蜜蜂,城市大金刚,蜈蚣,行星射击,吃豆小姐,火凤凰,R-Rype,大金刚,雷霆计划,铁手套,街头霸王,超越赛车,防卫者争战...噢,这个列表太长了。
+
+这些游戏,以及玩这些游戏的街机机器,仍然像30年前那样有吸引力。不像年轻时候那样,现在可以不用装一兜零钱就能玩了,最终让你超越那些有钱的孩子以及他们无休止的‘继续游戏’。所以是时候打造一个你自己的基于Linux的街机游戏机了,然后挑战一下过去的最高分。
+
+我们将会包括所有的步骤,来将一个便宜的街机游戏机器外壳变成一台Linux驱动的多平台复古游戏系统。但是这并不意味着你就一定要搭建一个同样的系统。比如说,你可以放弃那个又大又重还有潜在致癌性外壳的箱子本身,而是将内部控制核心装进一个旧游戏主机或同等大小的盒子里。或者说,你也可以简单地放弃小巧的树莓派,而将系统的大脑换成一台更强劲的Linux主机。举个例子,它可以作为运行SteamOS的一个理想平台,用来玩那些更优秀的现代街机游戏。
+
+在之后的几个页面里,我们将搭建一台基于树莓派的街机游戏机,你应该也能从其中发现很多点子应用到你自己的项目上,即使它们和我们这个项目不太一样。然后因为我们是用无比强大的MAME来做这件事情,你几乎可以让它在任意平台上运行。
+
+
+
+*我们是在B+型号出来以前完成的这个项目。它应该也可以同样工作在更新的主板上,你应该不用一个带电源的USB Hub也可以*
+
+### 声明 ###
+
+强调一下,我们捣腾的电子器件可能会让你受到电击。请确保你做的任何改动都是有资质的电子工程师帮你检查过的。我们也不会深入讨论如何获取游戏,但是有很多合法的资源,例如基于MAME模拟器的老游戏,以及较新的商业游戏。
+
+#### 第一步:街机机柜 ####
+
+街机机柜本身就是最大的挑战。我们在eBay上淘了个二手的90年代初的双人泡泡龙游戏机。然后花了£220装在一台旅行车后面送过来。类似这种机柜的价格并不确定。我们看到过很多在£100以内的。而另一方面,还有很多人愿意花数千块钱去买原版侧面贴纸完整的机器。
+
+决定买一个街机机柜,主要有两个考虑。第一个是它的体积:这东西又大又重。又占地方,而且需要至少两个人才能搬动。如果你不缺钱的话,还可以买DIY机柜或者全新的小一点的,例如适合摆在桌子上的那种。然后,酒柜也能很合适。
+
+
+
+*这种机柜可能很便宜,但是他们都很重。不要一个人去搬。一些更古老的机器可能还会需要一点小关怀,例如重新喷个漆以及一些修理工作*
+
+除了获得更加真实的游戏体验以外,购买原版的街机机柜的一个绝佳理由是可以使用原版的控制器。从eBay上买到的大多数机器都支持两个人同时玩,有两个摇杆以及每个玩家各自的一些按钮,再加上玩家一和玩家二的选择按钮。为了兼容更多游戏,我们建议您找一台每个玩家都有6个按键的型号,这个是通用配置。也许你还想看看支持超过两位玩家的控制台,或者有空间放其他游戏控制器的,比如说街机轨迹球(类似疯狂弹珠这种游戏需要的),或者一个旋钮(打砖块)。这些待会都可以轻松装上去,因为有现成的现代USB设备。
+
+控制器是第二考虑的,而且我们认为是最重要的,因为要通过它把你的摇动和拍打转变成游戏里的动作。当你准备买一个机柜时需要考虑一种叫JAMMA的东西,它是日本娱乐机械制造商协会(Japan Amusement Machinery Manufacturers Association)的缩写。JAMMA是街机游戏机里的行业标准,定义了包含游戏芯片的电路板和游戏控制器的连接方式,以及投币机制。它是一个连接两个玩家的摇杆和按钮的所有线缆的接口电路,把它们统一到一个标准的连接头。JAMMA就是这个连接头的大小以及引脚定义,这就意味着不管你安装的主板是什么,按钮和控制器都将会连接到相同功能接口,所以街机的主人只需要再更换下机柜上的外观图片,就可以招揽新玩家了。
+
+但是首先,提醒一下:JAMMA连接头上带有12V电压供电,通常由大多数街机里都有的电源模块供给。为了避免意外短路或是不小心掉个螺丝刀什么的造成损坏,我们完全切断了这个供电。在本教程后面的任何阶段,我们也不会用到这个连接头上的任何电源脚。
+
+
+
+#### 第二步:J-PAC ####
+
+有一点非常方便,你可以买到这样一种设备,连接街机机柜里的JAMMA接头和电脑的USB端口,将机柜上的摇杆和按键动作都转换成(可配置的)键盘命令,它们可以在Linux里用来控制任何想玩的游戏。这个设备就叫J-Pac([www.ultimarc.com/jpac.html][1] – 大概£54)。
+
+它最大的特点不是它的连接性;而是它处理和转换输入信号的方式,因为它比标准的USB手柄强太多太多了。每一个输入都有自己独立的中断,而且没有限制同时按下或按住的按钮或摇杆方向的数量。这对于类似街头霸王的游戏来说非常关键,因为他们依赖于同时迅速按下的组合键,而且用来对那些发飙后按下自己所有按键的不良对手发出致命一击时也必不可少。许多其他控制器,特别是那些生成键盘输入的,受到了他们所采用的USB控制器的同时六个输入的限制,以及一堆的Alt,Shift和Ctrl键的特殊处理的限制。J-Pac还可以接入倾角传感器,甚至某些投币装置,不用预先配置就可以在Linux下工作了。
+
+另外的选择是一个类似的叫I-Pac的设备。它做了和J-Pac相同的事情,只不过不支持JAMMA接头。这意味着你不能把JAMMA控制器接上去,但同时也就是说你可以设计你自己的控制器布局,再把每个控制接到I-Pac上去。这对第一个项目来说也许有点小难,但是这却是许多街机迷们选择的方式,特别是他们想设计一个支持四个玩家的控制板的时候,或者是一个整合许多不同类型控制的面板的时候。我们采用的方式并不是我们推荐必须要做的,我们改造了一个输入有问题的二手X-Arcade Tankstick控制面板,换上了新的摇杆和按钮,再接到新的JAMMA接口,这样有一个非常好的地方就是可以用便宜的价格(£8)买到所有用到的线材包括电路板边缘插头。
+
+
+
+*上图是我们已经装到机柜上的J-Pac。右边的蓝色和红色导线接到我们的机柜上额外的1号和2号玩家按钮*
+
+不管你选择的是I-Pac或是J-Pac,它们产生的按键都是MAME的默认值。也就是说运行模拟器之后不需要手动调整输入。例如玩家1,会默认将键盘方向键映射成上下左右,以及将左边的Ctrl,左边的ALT,空格和左边的Shift键映射到按钮1-4。但是真正实用的功能是,对于我们来说,是双键快捷方式。当按下并按住玩家1按钮后,就可以通过把玩家1的摇杆拉到下的位置发出用来暂停游戏的P按键,推到上的位置调整音量,以及推到右的位置来进入MAME自己的设置界面。这些特殊组合键设计的很巧妙,不会对正常玩游戏带来任何干扰,因为他们只有在按住玩家1按钮后才会生效,然后可以让你正在运行游戏的时候也能做任何需要的事情。例如,你可以完全地重新配置MAME,使用它自己的菜单,在玩游戏的时候改变输入绑定和灵敏度。
+
+最后,按住玩家1按钮然后按下玩家2按钮就可以退出MAME,如果你使用了启动菜单或MAME管理器的话就很有用了,因为他们会自动启动游戏,然后你就可以用最快的速度开始玩另一个游戏了。
+
+对于显示屏我们采取了比较保守的方式,拿掉了街机原装的笨重的而且已经坏掉的CRT,换成一个低成本的LCD显示器。这样做有很多好处。首先,这个显示器有HDMI接口,这样他就可以轻易地直接连接到树莓派或是现代的显卡上。第二,你也不用去设定驱动街机屏幕所需要的低频率刷新模式,也不需要驱动它的专用图形硬件。第三,这也是最安全的方式,因为街机屏幕往往在机身背后没有保护措施,让很高的电压离你的手只有几英寸的距离。也不是说你完全不能用CRT,如果那就是你追求的体验的话 – 这也是获得所追求的游戏体验的最真实的方式,但是我们在软件里充分细调了CRT模拟部分,我们对输出已经很满意了,而且不需要用那个古老的CRT更是让我们高兴。
+
+你也许还需要考虑用一个老式的4:3长宽比的LCD,而不是那种宽屏的现代产品,因为4:3模式用来玩竖屏或横屏的游戏更实用。比如说玩竖屏的射击游戏,例如雷电,如果使用宽屏显示器的话,会在屏幕两边都有一个黑条。这些黑条一般会用来显示一些游戏指引,或者你也可以把屏幕翻转90度,这样就可以用上每个像素了,但这却不实用,除非你只玩竖屏游戏或者有一个容易操作的旋转支座。
+
+装载显示屏也很重要。如果你拿掉了CRT的话,没有现成的地方安装LCD。我们的方式是买了一些中密度纤维板(MDF)并切割成适合原来摆放CRT的地方。固定以好,我们把一个便宜的VESA支座放在中间。VESA底座可以用来挂载大多数屏幕,大的或小的。最后,因为我们的机柜前面有烟玻璃,我们必须保证亮度和对比度都设置的足够高。
+
+### 第三步:装配 ###
+
+现在几个硬件大件都选好了,而且也基本上确定了最终街机机柜要摆放的地方,把这几个配件装到一起并没有太大难度。我们安全地把机柜后面的电源输入部分拆开,然后在背后的空间接了一个符合插座。接在了电源开关之后的电线上。
+
+几乎所有的街机机柜右上角都有个电源开关,但通常在机柜靠下一点的地方有大量的导线铰接在它上面,也就是说我们的设备可以使用普通的电源连接头。我们的机柜上还有一个荧光管,用做机器上边灯罩的背光,之前是直接连接到电源上的,我们可以用一个普通插头让它保持和电源连接。当你打开机柜上的电源开关的时候,电流会流入机柜里的各个部件 - 你的树莓派和显示屏都会开机,所有一切就都准备好了。
+
+J-Pac模块直接插到JAMMA接口上,但你可能还需要一点手动调整。标准的JAMMA只支持每个玩家最多三个按键(尽管许多非正式的支持四个),而J-Pac可以支持六个。为了连接额外的按钮,你需要把按钮开关的一端接到J-Pac的GND上,另一端接到J-Pac板边有螺丝固定的输入上。它们被标记成1SW4,1SW5,1SW6,2SW4,2SW5和2SW6。J-Pac也有声音的直通连接,但是我们发现杂音太多没法用。改成把机柜上的喇叭连接到一个二手的SoundBlaster功放上,再接到树莓派的音频输出端口。声音不一定要纯正,但音量一定要足够大。
+
+
+
+*我们的树莓派已经接到J-Pac左边,也已经连接了显示屏和USB hub*
+
+然后把J-Pac或I-Pac模块通过PS2转USB连接线接到你的PC或树莓派,也可以直接接到PC的PS2接口。要用旧的PS2接头的话额外还有个要求,你的电脑得足够古老还有这个,但是我们测试发现用USB性能是一样的。当然,这个不能用于不带PS2的树莓派,而且别忘了树莓派也需要供电。我们一般建议使用一个带电源的USB hub,因为没有供电是树莓派不工作最常见的错误。你还需要保证树莓派的网络正常,要么通过以太网(也许使用一个藏到机柜里的电力线适配器),或者通过无线USB设备。网络很关键是因为在树莓派被藏到机柜里后你还可以重新配置它,不用接键盘或鼠标就可以让你调整设置以及执行管理任务。
+
+> ### 投币装置 ###
+
+> 在街机模拟社区里,让投币装置工作在模拟器上工作就会和商业产品太接近了。这就意味着你有潜在的可能对使用你机器的人收取费用。这不仅仅只是不正当,考虑到运行在你自己街机上的那些游戏的来源,这将会是非法的。这很显然违背了模拟的精神。不过,我们和其他热爱者觉得一个能工作的投币装置更进一步地靠近了街机的真实,而且值得付出努力来营造对那个过去街机的怀念。丢个10便士硬币到投币口然后再听到机器发出增加点数的声音,没有什么比得上这种感受了。
+
+> 实际上难度也不大。取决于你街机上的投币装置,以及它如何发信号通知投了几个币。大多数投币装置分为两个部分。较大的一部分是硬币接收和验证装置。这是投币过程的物理部分,用于检测硬币是否真实以及确定它的价值。这是通过一个游戏点数逻辑电路板来实现的,通常用一个排线连接,上边还带有很多DIP开关。这些开关用来决定接受哪种硬币,以及一个硬币能产生多少点数。然后就是简单地找到输出开关,每个点数都会触发它一次,然后把它接到JAMMA连接头的投币输入上,或者直接接到J-Pac。我们的投币装置型号是Mars MS111,在90年代早期的英国很常见,网上有大量关于每个DIP开关作用的信息,也有如何重新编程控制器来接受新硬币的方法。我们还能在这个装置的12V上接个小灯用来照亮投币孔。
+
+#### 第四步:软件 ####
+
+MAME是这种规模项目唯一可行的模拟器,它如今支持运行在数不清的不同平台上的各种各样的游戏,从第一代街机到一些最近的机器。从这个项目中还孕育出了MESS,一个多模拟器的超级系统,针对的平台是80到90年代的家庭电脑以及电视游戏机。
+
+如何配置MAME本身都可以写上六页的文章了。它是一个复杂的,无序的,伟大的软件程序,模拟了如此之多的CPU,声卡,芯片,控制器以及那么多的选项,就像MythTV,你都永远不能真正配置好它。
+
+但是也有个相对省事的方式,一个特别为树莓派构建的版本。它叫PiMAME。它是一个可下载的发布版和脚本,基于Raspbian,这是树莓派的默认发布版。它不仅仅会把MAME装到树莓派上(这很有用因为没有哪个默认仓库里有这个),还会安装其他一些精选出来的模拟器,并通过一个前端来管理他们。MAME,举个例子,是一个有数十个参数的命令行应用。但是PiMAME还有一个妙招 - 它安装了一个简单的网页服务器,可以在连接上网络后让你通过浏览器来安装新游戏。这是一个很好的优点,因为把游戏文件放到正确的目录下是使用MAME的困难之一,这还能让你连接到树莓派的存储设备得到最优使用。还有,PiMAME会通过用来安装它的脚本更新自己,所以保持最新版本就太简单了。目前来说这个非常有用,因为在编写这个项目的时候,正好在0.8版这样一个重大更新发布的时间点上。我们在三月份早期时发现有一些轻微的不稳定,但是我们确定在你读到这篇文章的时候一切都会解决。
+
+安装PiMAME最好的方式就是先装Raspbian。你可以通过NOOBS安装,使用电脑上的图形工具,或者通过dd命令把Raspbian的内容直接写入到你的SD卡中。就像我们上个月的BrewPi教程里曾提到的,这个过程在之前已经被记录过很多次,所以就不再浪费口水了。想简单点就装一下NOOBS,参照树莓派网站上的指引。在装好Raspbian并跑起来以后,请确保使用配置工具来释放SD卡上的空间,以及确保系统已经更新到最新(`sudo apt-get update; sudo apt-get upgrade`)。然后再确保已经安装好了git工具包。当前任意Raspbian版本都会自带git,不过你仍然可以通过命令`sudo apt-get install git`检查一下。
+
+然后再在终端里输入下面的命令把PiMAME安装器从项目的GitHub仓库克隆到本地:
+
+ git clone https://github.com/ssilverm/pimame_installer
+
+之后,如果命令工作正常的话你应该能看到如下的反馈输出:
+
+ Cloning into ‘pimame_installer’...
+ remote: Reusing existing pack: 2306, done.
+ remote: Total 2306 (delta 0), reused 0 (delta 0)
+ Receiving objects: 100% (2306/2306), 4.61 MiB | 11 KiB/s, done.
+ Resolving deltas: 100% (823/823), done.
+
+这个命令会创建一个叫‘pimame_installer’的新目录,然后下一步就是进入这个目录再执行它里面的脚本:
+
+ cd pimame_installer/
+ sudo ./install.sh
+
+这个命令会安装和配置很多软件。所需的时间长短也取决于你的因特网速度,因为需要下载大量的包。我们那个简陋的树莓派加15Mb因特网连接用了差不多45分钟来执行完这个脚本,在这之后你会收到重启机器的提示。你现在可以安全的通过输入`sudo shutdown -r`来重启了,因为这个命令会自动处理剩下的SD卡写入操作。
+
+这就是安装的全部事情了。在重启树莓派后,就会自动登录,然后会出现PiMAME启动菜单。在0.8版本里这是个非常漂亮的界面,有每个支持平台的图片,还有红色图标提示已经安装了多少个游戏。现在应该可以用控制器来操作了。如果需要检查控制器是否正确连接,可以用SSH连接到树莓派然后检查一下文件**/dev/input/by-id/usb-Ultimarc_I-PAC_Ultimarc_I-PAC-event-kbd**是否存在。
+
+默认的按键配置就可以让你选择要在你的街机上运行哪个模拟器。我们最感兴趣的就是第一个,名字叫‘AdvMAME’,不过你也许会很惊讶看到还有一个MAME可选的,MAME4ALL。MAME4ALL是特别为树莓派构建的,使用了旧版的MAME源代码,所以它所支持的ROMS的性能也是最佳的。这是很合理的,因为你的树莓派不可能玩那些要求很高的游戏,所以没有理由苛求模拟器的没必要的兼容性。现在剩下的事情就是找些游戏装到你的系统里(参考下面的方法),然后尽情享受吧!
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxvoice.com/arcade-machine/
+
+作者:[Ben Everard][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxvoice.com/author/ben_everard/
+[1]:http://www.ultimarc.com/jpac.html
diff --git a/published/201411/20140821 How to configure a network printer and scanner on Ubuntu desktop.md b/published/201411/20140821 How to configure a network printer and scanner on Ubuntu desktop.md
new file mode 100644
index 0000000000..d405588726
--- /dev/null
+++ b/published/201411/20140821 How to configure a network printer and scanner on Ubuntu desktop.md
@@ -0,0 +1,229 @@
+
+如何在ubuntu桌面配置一个网络打印机和扫描仪
+================================================================================
+
+在[之前的文章中][1], 我们讨论过如何在Linux服务器安装各种各样的打印机(当然也包括网络扫描仪)。今天我们将来处理另一端:如何通过桌面客户端来访问网络打印机/扫描仪。
+
+
+### 网络环境 ###
+
+在这个安装教程中,我们的服务器(Debian Wheezy 7.2版本)的IP地址是192.168.0.10,我们的客户端(Ubuntu 12.04版本)的IP地址是192.168.0.105.注意这两台机器是在同一个网段(192.168.0.0/24).如果我们想允许打印机访问其它网段,我们需要在服务器上修改cupsd.conf文件的以下部分:
+
+
+ Order allow,deny
+ Allow localhost
+ Allow from XXX.YYY.ZZZ.*
+
+
+
+(在上述例子中,我们授予打印机从本地或者任何系统能够访问打印机,这些系统的IPv4地址以XXX.YYY.ZZZ开始。
+
+为了验证哪些打印机可以在我们的服务器上适用,我们也可以在服务器上使用lpstat命令,或者浏览网页https://192.168.0.10:631/printers page.
+
+ root@debian:~# lpstat -a
+
+----------
+
+ EPSON_Stylus_CX3900 accepting requests since Mon 18 Aug 2014 10:49:33 AM WARST
+ PDF accepting requests since Mon 06 May 2013 04:46:11 PM WARST
+ SamsungML1640Series accepting requests since Wed 13 Aug 2014 10:13:47 PM WARST
+
+
+
+### 在Ubuntu桌面安装网络打印机 ###
+
+在我们的Ubuntu 12.04的客户端,我们将打开"Printing"菜单(Dash -> Printing).你会注意到在其它发行版中,这个名字也许会有一点差别(例如会叫做"Printers" 或者 "Print & Fax"):
+
+
+
+还没有打印机添加到我们的客户端:
+
+
+
+下面是在Ubuntu桌面客户端安装一台网络打印机的一些步骤。
+
+**1)** “Add”按钮将弹出 "New Printer" 菜单。我们将选择"Network printer" -> "Find Network Printer"并输入我们服务器的IP地址,接着点击"Find":
+
+
+
+**2)** 在最下面我们将会看到可使用的打印机的名称。我们来选择这台三星打印机并按"Forward":
+
+
+
+**3)** 我们将会被要求填写一些关于我们打印机的信息。当我们输入完成时,将点击 "Apply"按钮。
+
+
+
+**4)** 我们接下来将被询问是否打印一张测试页。让我们点击"Print test page"吧:
+
+
+
+这个打印任务将被创建为本地id 2:
+
+
+
+
+5)适用我们服务器上的CUPS网络借口,我们可以观察到打印任务已经提交成功了(打印机 -> SamsungML1640系列 -> 显示完成任务):
+
+
+
+
+我们也可以通过在打印机服务器上运行以下命令显示同样信息:
+
+ root@debian:~# cat /var/log/cups/page_log | grep -i samsung
+
+----------
+
+ SamsungML1640Series root 27 [13/Aug/2014:22:15:34 -0300] 1 1 - localhost Test Page - -
+ SamsungML1640Series gacanepa 28 [18/Aug/2014:11:28:50 -0300] 1 1 - 192.168.0.105 Test Page - -
+ SamsungML1640Series gacanepa 29 [18/Aug/2014:11:45:57 -0300] 1 1 - 192.168.0.105 Test Page - -
+
+这个page_log日志显示每一页被打印过的信息,只包括哪些用户发送这些打印任务,打印日期&时间,以及客户端的IPv4地址。
+
+要安装Epson喷墨和PDF打印机,我们只需重复第1-5的步骤即可,并每一次选择左边的打印队列。例如,在下图中选择PDF打印机:
+
+
+
+然而,请注意到根据[CUPS-PDF 文档中][2],根据默认:
+
+>PDF文件将会被放置在打印作业的所有者命名的子目录内。在这个案例中,打印作业的所有者不能被识别(i.e.不会存在服务器中)输出的内容被放置在匿名操作的文件中。
+
+
+这些默认的文件夹可以通过改变在/etc/cups/cups-pdf目录中的**Out**值和**AnonDirName**变量来修改。这里,${HOME}被扩展到用户的家目录中:
+
+ Out ${HOME}/PDF
+ AnonDirName /var/spool/cups-pdf/ANONYMOUS
+
+
+
+### 网络打印实例 ###
+
+#### 实例 #1 ####
+
+从Ubuntu12.04中打印,通常在本地用gacanepa(具有相同名字存在打印机服务器上)。
+
+
+
+打印到PDF打印机之后,让我们来检查打印机服务器上的/home/gacanepa/PDF目录下的内容:
+
+ root@debian:~# ls -l /home/gacanepa/PDF
+
+----------
+
+ total 368
+ -rw------- 1 gacanepa gacanepa 279176 Aug 18 13:49 Test_Page.pdf
+ -rw------- 1 gacanepa gacanepa 7994 Aug 18 13:50 Untitled1.pdf
+ -rw------- 1 gacanepa gacanepa 74911 Aug 18 14:36 Welcome_to_Conference_-_Thomas_S__Monson.pdf
+
+
+这个PDF文件被创建时的,权限已经设置为600(-rw-------),这意味着只有打印任务的所有者(在这个例子中是gacanepa )可以访问它们。我们可以通过修改the /etc/cups/cups-pdf.conf文件**UserUMask**变量的值来改变这种行为。例如,0033的umask值将可以使PDF打印者以及其它所有者拥有创建文件的权限,但是只读权限也会赋予给其它所有者。
+
+ root@debian:~# grep -i UserUMask /etc/cups/cups-pdf.conf
+
+----------
+
+ ### Key: UserUMask
+ UserUMask 0033
+
+
+
+对于那些不熟悉umask(有名用户文件创建模式掩码),它作为一组可以用于控制那些为新文件创建时修改默认权限。给予特定的umask值,在计算最终文件的许可权限时,在文件基本权限(0666)和umask的单项按位补码之间进行按位布尔 AND 运算。因此,如果设置一个umask值为0033,那么新文件默认的权限将不是(0033)AND 0666 = 644的值(文件拥有者具有读/写/执行的权限,其他人拥有只读权限)。
+
+
+### 实例 #2 ###
+
+
+在Ubuntu12.04执行打印,本地登录用户为jdoe(同样的帐号名称但是服务器上是不存在的)。
+
+
+
+ root@debian:~# ls -l /var/spool/cups-pdf/ANONYMOUS
+
+----------
+
+ total 5428
+ -rw-rw-rw- 1 nobody nogroup 5543070 Aug 18 15:57 Linux_-_Wikipedia__the_free_encyclopedia.pdf
+
+
+这个PDF被创建时赋予的权限是666(-rw-rw-rw-),这意味着每个人都可以访问它们。我们可以通过编辑在/etc/cups/cups-pdf.conf文件中的**AnonUMask**值来改变这种行为。
+
+
+在这一点上,你也许会疑惑:为什么同样安装一台网络打印机,大多数(当然不是全部)当前的Linux桌面发行版都会内置一个"打印到文件"的功能来允许用户动态创建PDF文件?
+
+
+使用一台网络PDF打印机有以下好处:
+
+
+- 一个网络打印机(任何类型的)允许你直接从命令行直接打印,无需首先打开文件。
+
+- 在其它操作系统上安装一个网络客户端,一个PDF网络打印机备件,于是系统管理员不必再单独需要安装PDF创建者实用程序(也避免了最终用户安装这些工具存在的风险)。
+
+- 网络PDF打印机允许通过配置权限直接打印一个网络共享,如我们所见的例子。
+
+### 在Ubuntu桌面安装一个网络扫描仪 ###
+
+这里是通过Ubuntu桌面客户端安装和访问一台网络扫描仪的一些步骤。假设网络扫描仪服务器已经启动并运行所述[here][3].
+
+
+**1)**让我们第一步来检查在我们的Ubuntu客户端主机上是否存在一台可用的扫描仪。没有先前的安装,你将会看到信息提示"没有识别到扫描仪."
+ $ scanimage -L
+
+
+
+
+**2)** 现在我们需要启用saned进程,用来预装Ubuntu桌面。要启用它,我们需要编辑/etc/default/saned文件,并设置RUN变量为yes:
+
+ $ sudo vim /etc/default/saned
+
+----------
+
+ # Set to yes to start saned
+ RUN=yes
+
+
+**3)** 让我们编辑/etc/sane.d/net.conf文件,并在扫描仪安装后添加服务器IP地址:
+
+
+
+
+
+**4)** 重启saned进程:
+
+ $ sudo service saned restart
+
+
+
+**5)** 现在让我们来看看扫描仪是否可用:
+
+
+
+现在我们可以打开"Simple Scan"(或者其它扫描工具)并开始扫描文件。我们可以旋转,修剪,和保存生成的图片:
+
+
+
+
+### 总结 ###
+
+
+拥有一或多台网络打印机或扫描仪在任何办公和家庭网络中都是非常方便适用的,并同时提供了许多好处。例举如下:
+
+- 多用户(从不同的平台/地方)都能够向打印机发送打印作业的队列。
+
+- 由于硬件共享达到了节约成本和维护的作用。
+
+我希望这篇文章可以帮助你更充分地利用这些有点。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/configure-network-printer-scanner-ubuntu-desktop.html
+
+作者:[Gabriel Cánepa][a]
+译者:[disylee](https://github.com/disylee)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://linux.cn/article-4139-1.html
+[2]:http://www.cups-pdf.de/documentation.shtml
+[3]:http://xmodulo.com/2014/08/usb-network-printer-and-scanner-server-debian.html#scanner
diff --git a/published/201411/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md b/published/201411/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md
new file mode 100644
index 0000000000..37addffe32
--- /dev/null
+++ b/published/201411/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md
@@ -0,0 +1,464 @@
+Ansible :一个配置管理和IT自动化工具
+================================================================================
+
+
+今天我来谈谈 ansible,一个由 Python 编写的强大的配置管理解决方案。尽管市面上已经有很多可供选择的配置管理解决方案,但他们各有优劣,而 ansible 的特点就在于它的简洁。让 ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的一个优点在于,如果需要的话,你可以在不止一个地方控制你的整个基础架构。最后一点是它的正确性,或许这里有些争议,但是我认为在大多数时候这仍然可以作为它的一个优点。说得足够多了,让我们来着手在 RHEL/CentOS 和基于 Debian/Ubuntu 的系统中安装和配置 Ansible。
+
+### 准备工作 ####
+
+1. 发行版:RHEL/CentOS/Debian/Ubuntu Linux
+1. Jinja2:Python 的一个对设计师友好的现代模板语言
+1. PyYAML:Python 的一个 YAML 编码/反编码函数库
+1. paramiko:纯 Python 编写的 SSHv2 协议函数库 (译者注:原文对函数库名有拼写错误)
+1. httplib2:一个功能全面的 HTTP 客户端函数库
+1. 本文中列出的绝大部分操作已经假设你将在 bash 或者其他任何现代的 shell 中以 root 用户执行。
+
+### Ansible 如何工作 ###
+
+Ansible 工具并不使用守护进程,它也不需要任何额外的自定义安全架构,因此它的部署可以说是十分容易。你需要的全部东西便是 SSH 客户端和服务器了。
+
+ +-----------------+ +---------------+
+ |安装了 Ansible 的| SSH | 文件服务器1 |
+ |Linux/Unix 工作站|<------------------>| 数据库服务器2 | 在本地或远程
+ +-----------------+ 模块 | 代理服务器3 | 数据中心的
+ 192.168.1.100 +---------------+ Unix/Linux 服务器
+
+其中:
+
+1. 192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible。
+1. 文件服务器1到代理服务器3 - 使用 192.168.1.100 和 Ansible 来自动管理所有的服务器。
+1. SSH - 在 192.168.1.100 和本地/远程的服务器之间设置 SSH 密钥。
+
+### Ansible 安装教程 ###
+
+ansible 的安装轻而易举,许多发行版的第三方软件仓库中都有现成的软件包,可以直接安装。其他简单的安装方法包括使用 pip 安装它,或者从 github 里获取最新的版本。若想使用你的软件包管理器安装,在[基于 RHEL/CentOS Linux 的系统里你很可能需要 EPEL 仓库][1]。
+
+#### 在基于 RHEL/CentOS Linux 的系统中安装 ansible ####
+
+输入如下 [yum 命令][2]:
+
+ $ sudo yum install ansible
+
+#### 在基于 Debian/Ubuntu Linux 的系统中安装 ansible ####
+
+输入如下 [apt-get 命令][3]:
+
+ $ sudo apt-get install software-properties-common
+ $ sudo apt-add-repository ppa:ansible/ansible
+ $ sudo apt-get update
+ $ sudo apt-get install ansible
+
+#### 使用 pip 安装 ansible ####
+
+[pip 命令是一个安装和管理 Python 软件包的工具][4],比如它能管理 Python Package Index 中的那些软件包。如下方式在 Linux 和类 Unix 系统中通用:
+
+ $ sudo pip install ansible
+
+#### 从源代码安装最新版本的 ansible ####
+
+你可以通过如下命令从 github 中安装最新版本:
+
+ $ cd ~
+ $ git clone git://github.com/ansible/ansible.git
+ $ cd ./ansible
+ $ source ./hacking/env-setup
+
+当你从一个 git checkout 中运行 ansible 的时候,请记住你每次用它之前都需要设置你的环境,或者你可以把这个设置过程加入你的 bash rc 文件中:
+
+ # 加入 BASH RC
+ $ echo "export ANSIBLE_HOSTS=~/ansible_hosts" >> ~/.bashrc
+ $ echo "source ~/ansible/hacking/env-setup" >> ~/.bashrc
+
+ansible 的 hosts 文件包括了一系列它能操作的主机。默认情况下 ansible 通过路径 /etc/ansible/hosts 查找 hosts 文件,不过这个行为也是可以更改的,这样当你想操作不止一个 ansible 或者针对不同的数据中心的不同客户操作的时候也是很方便的。你可以通过命令行参数 -i 指定 hosts 文件:
+
+ $ ansible all -m shell -a "hostname" --ask-pass -i /etc/some/other/dir/ansible_hosts
+
+不过我更倾向于使用一个环境变量,这可以在你想要通过 source 一个不同的文件来切换工作目标的时候起到作用。这里的环境变量是 $ANSIBLE_HOSTS,可以这样设置:
+
+ $ export ANSIBLE_HOSTS=~/ansible_hosts
+
+一旦所有需要的组件都已经安装完毕,而且你也准备好了你的 hosts 文件,你就可以来试一试它了。为了快速测试,这里我把 127.0.0.1 写到了 ansible 的 hosts 文件里:
+
+ $ echo "127.0.0.1" > ~/ansible_hosts
+
+现在来测试一个简单的 ping:
+
+ $ ansible all -m ping
+
+或者提示 ssh 密码:
+
+ $ ansible all -m ping --ask-pass
+
+我在刚开始的设置中遇到过几次问题,因此这里强烈推荐为 ansible 设置 SSH 公钥认证。不过在刚刚的测试中我们使用了 --ask-pass,在一些机器上你会需要[安装 sshpass][5] 或者像这样指定 -c paramiko:
+
+ $ ansible all -m ping --ask-pass -c paramiko
+
+当然你也可以[安装 sshpass][6],然而 sshpass 并不总是在标准的仓库中提供,因此 paramiko 可能更为简单。
+
+### 设置 SSH 公钥认证 ###
+
+于是我们有了一份配置,以及一些基础的其他东西。现在让我们来做一些实用的事情。ansible 的强大很大程度上体现在 playbooks 上,后者基本上就是一些写好的 ansible 脚本(大部分来说),不过在制作一个 playbook 之前,我们将先从一些一句话脚本开始。现在让我们创建和配置 SSH 公钥认证,以便省去 -c 和 --ask-pass 选项:
+
+ $ ssh-keygen -t rsa
+
+样例输出:
+
+ Generating public/private rsa key pair.
+ Enter file in which to save the key (/home/mike/.ssh/id_rsa):
+ Enter passphrase (empty for no passphrase):
+ Enter same passphrase again:
+ Your identification has been saved in /home/mike/.ssh/id_rsa.
+ Your public key has been saved in /home/mike/.ssh/id_rsa.pub.
+ The key fingerprint is:
+ 94:a0:19:02:ba:25:23:7f:ee:6c:fb:e8:38:b4:f2:42 mike@ultrabook.linuxdork.com
+ The key's randomart image is:
+ +--[ RSA 2048]----+
+ |... . . |
+ |. . + . . |
+ |= . o o |
+ |.* . |
+ |. . . S |
+ | E.o |
+ |.. .. |
+ |o o+.. |
+ | +o+*o. |
+ +-----------------+
+
+现在显然有很多种方式来把它放到远程主机上应该的位置。不过既然我们正在使用 ansible,就用它来完成这个操作吧:
+
+ $ ansible all -m copy -a "src=/home/mike/.ssh/id_rsa.pub dest=/tmp/id_rsa.pub" --ask-pass -c paramiko
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | success >> {
+ "changed": true,
+ "dest": "/tmp/id_rsa.pub",
+ "gid": 100,
+ "group": "users",
+ "md5sum": "bafd3fce6b8a33cf1de415af432774b4",
+ "mode": "0644",
+ "owner": "mike",
+ "size": 410,
+ "src": "/home/mike/.ansible/tmp/ansible-tmp-1407008170.46-208759459189201/source",
+ "state": "file",
+ "uid": 1000
+ }
+
+下一步,把公钥文件添加到远程服务器里。输入:
+
+ $ ansible all -m shell -a "cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys" --ask-pass -c paramiko
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | FAILED | rc=1 >>
+ /bin/sh: /root/.ssh/authorized_keys: Permission denied
+
+矮油,我们需要用 root 来执行这个命令,所以还是加上一个 -u 参数吧:
+
+ $ ansible all -m shell -a "cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys" --ask-pass -c paramiko -u root
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | success | rc=0 >>
+
+请注意,我刚才这是想要演示通过 ansible 来传输文件的操作。事实上 ansible 有一个更加方便的内置 SSH 密钥管理支持:
+
+ $ ansible all -m authorized_key -a "user=mike key='{{ lookup('file', '/home/mike/.ssh/id_rsa.pub') }}' path=/home/mike/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | success >> {
+ "changed": true,
+ "gid": 100,
+ "group": "users",
+ "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq+Z8/usprXk0aCAPyP0TGylm2MKbmEsHePUOd7p5DO1QQTHak+9gwdoJJavy0yoUdi+C+autKjvuuS+vGb8+I+8mFNu5CvKiZzIpMjZvrZMhHRdNud7GuEanusTEJfi1pUd3NA2iXhl4a6S9a/4G2mKyf7QQSzI4Z5ddudUXd9yHmo9Yt48/ASOJLHIcYfSsswOm8ux1UnyeHqgpdIVONVFsKKuSNSvZBVl3bXzhkhjxz8RMiBGIubJDBuKwZqNSJkOlPWYN76btxMCDVm07O7vNChpf0cmWEfM3pXKPBq/UBxyG2MgoCGkIRGOtJ8UjC/daadBUuxg92/u01VNEB mike@ultrabook.linuxdork.com",
+ "key_options": null,
+ "keyfile": "/home/mike/.ssh/authorized_keys",
+ "manage_dir": false,
+ "mode": "0600",
+ "owner": "mike",
+ "path": "/home/mike/.ssh/authorized_keys",
+ "size": 410,
+ "state": "file",
+ "uid": 1000,
+ "unique": false,
+ "user": "mike"
+ }
+
+现在这些密钥已经设置好了。我们来试着随便跑一个命令,比如 hostname,希望我们不会被提示要输入密码
+
+ $ ansible all -m shell -a "hostname" -u root
+
+样例输出:
+
+ 127.0.0.1 | success | rc=0 >>
+
+成功!!!现在我们可以用 root 来执行命令,并且不会被输入密码的提示干扰了。我们现在可以轻易地配置任何在 ansible hosts 文件中的主机了。让我们把 /tmp 中的公钥文件删除:
+
+ $ ansible all -m file -a "dest=/tmp/id_rsa.pub state=absent" -u root
+
+样例输出:
+
+ 127.0.0.1 | success >> {
+ "changed": true,
+ "path": "/tmp/id_rsa.pub",
+ "state": "absent"
+ }
+
+下面我们来做一些更复杂的事情,我要确定一些软件包已经安装了,并且已经是最新的版本:
+
+ $ ansible all -m zypper -a "name=apache2 state=latest" -u root
+
+样例输出:
+
+ 127.0.0.1 | success >> {
+ "changed": false,
+ "name": "apache2",
+ "state": "latest"
+ }
+
+很好,我们刚才放在 /tmp 中的公钥文件已经消失了,而且我们已经安装好了最新版的 apache。下面我们来看看前面命令中的 -m zypper,一个让 ansible 非常灵活,并且给了 playbooks 更多能力的功能。如果你不使用 openSuse 或者 Suse enterprise 你可能还不熟悉 zypper, 它基本上就是 suse 世界中相当于 yum 的存在。在上面所有的例子中,我的 hosts 文件中都只有一台机器。除了最后一个命令外,其他所有命令都应该在任何标准的 *nix 系统和标准的 ssh 配置中使用,这造成了一个问题。如果我们想要同时管理多种不同的机器呢?这便是 playbooks 和 ansible 的可配置性闪闪发光的地方了。首先我们来少许修改一下我们的 hosts 文件:
+
+ $ cat ~/ansible_hosts
+
+样例输出:
+
+ [RHELBased]
+ 10.50.1.33
+ 10.50.1.47
+
+ [SUSEBased]
+ 127.0.0.1
+
+首先,我们创建了一些分组的服务器,并且给了他们一些有意义的标签。然后我们来创建一个为不同类型的服务器执行不同操作的 playbook。你可能已经发现这个 yaml 的数据结构和我们之前运行的命令行语句中的相似性了。简单来说,-m 是一个模块,而 -a 用来提供模块参数。在 YAML 表示中你可以先指定模块,然后插入一个冒号 :,最后指定参数。
+
+ ---
+ - hosts: SUSEBased
+ remote_user: root
+ tasks:
+ - zypper: name=apache2 state=latest
+ - hosts: RHELBased
+ remote_user: root
+ tasks:
+ - yum: name=httpd state=latest
+
+现在我们有一个简单的 playbook 了,我们可以这样运行它:
+
+ $ ansible-playbook testPlaybook.yaml -f 10
+
+样例输出:
+
+ PLAY [SUSEBased] **************************************************************
+
+ GATHERING FACTS ***************************************************************
+ ok: [127.0.0.1]
+
+ TASK: [zypper name=apache2 state=latest] **************************************
+ ok: [127.0.0.1]
+
+ PLAY [RHELBased] **************************************************************
+
+ GATHERING FACTS ***************************************************************
+ ok: [10.50.1.33]
+ ok: [10.50.1.47]
+
+ TASK: [yum name=httpd state=latest] *******************************************
+ changed: [10.50.1.33]
+ changed: [10.50.1.47]
+
+ PLAY RECAP ********************************************************************
+ 10.50.1.33 : ok=2 changed=1 unreachable=0 failed=0
+ 10.50.1.47 : ok=2 changed=1 unreachable=0 failed=0
+ 127.0.0.1 : ok=2 changed=0 unreachable=0 failed=0
+
+注意,你会看到 ansible 联系到的每一台机器的输出。-f 参数让 ansible 在多台主机上同时运行指令。除了指定全部主机,或者一个主机分组的名字以外,你还可以把导入 ssh 公钥的操作从命令行里转移到 playbook 中,这将在设置新主机的时候提供很大的方便,甚至让新主机直接可以运行一个 playbook。为了演示,我们把我们之前的公钥例子放进一个 playbook 里:
+
+ ---
+ - hosts: SUSEBased
+ remote_user: mike
+ sudo: yes
+ tasks:
+ - authorized_key: user=root key="{{ lookup('file', '/home/mike/.ssh/id_rsa.pub') }}" path=/root/.ssh/authorized_keys manage_dir=no
+ - hosts: RHELBased
+ remote_user: mdonlon
+ sudo: yes
+ tasks:
+ - authorized_key: user=root key="{{ lookup('file', '/home/mike/.ssh/id_rsa.pub') }}" path=/root/.ssh/authorized_keys manage_dir=no
+
+除此之外还有很多可以做的事情,比如在启动的时候把公钥配置好,或者引入其他的流程来让你按需配置一些机器。不过只要 SSH 被配置成接受密码登陆,这些几乎可以用在所有的流程中。在你准备开始写太多 playbook 之前,另一个值得考虑的事情是,代码管理可以有效节省你的时间。机器需要不断变化,然而你并不需要在每次机器发生变化时都重新写一个 playbook,只需要更新相关的部分并提交这些修改。与此相关的另一个好处是,如同我之前所述,你可以从不同的地方管理你的整个基础结构。你只需要将你的 playbook 仓库 git clone 到新的机器上,就完成了管理所有东西的全部设置流程。
+
+#### 现实中的 ansible 例子 ####
+
+我知道很多用户经常使用 pastebin 这样的服务,以及很多公司基于显而易见的理由配置了他们内部使用的类似东西。最近,我遇到了一个叫做 showterm 的程序,巧合之下我被一个客户要求配置它用于内部使用。这里我不打算赘述这个应用程序的细节,不过如果你感兴趣的话,你可以使用 Google 搜索 showterm。作为一个合理的现实中的例子,我将会试图配置一个 showterm 服务器,并且配置使用它所需要的客户端应用程序。在这个过程中我们还需要一个数据库服务器。现在我们从配置客户端开始:
+
+ ---
+ - hosts: showtermClients
+ remote_user: root
+ tasks:
+ - yum: name=rubygems state=latest
+ - yum: name=ruby-devel state=latest
+ - yum: name=gcc state=latest
+ - gem: name=showterm state=latest user_install=no
+
+这部分很简单。下面是主服务器:
+
+ ---
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: ensure packages are installed
+ yum: name={{item}} state=latest
+ with_items:
+ - postgresql
+ - postgresql-server
+ - postgresql-devel
+ - python-psycopg2
+ - git
+ - ruby21
+ - ruby21-passenger
+ - name: showterm server from github
+ git: repo=https://github.com/ConradIrwin/showterm.io dest=/root/showterm
+ - name: Initdb
+ command: service postgresql initdb
+ creates=/var/lib/pgsql/data/postgresql.conf
+
+ - name: Start PostgreSQL and enable at boot
+ service: name=postgresql
+ enabled=yes
+ state=started
+ - gem: name=pg state=latest user_install=no
+ handlers:
+ - name: restart postgresql
+ service: name=postgresql state=restarted
+
+ - hosts: showtermServers
+ remote_user: root
+ sudo: yes
+ sudo_user: postgres
+ vars:
+ dbname: showterm
+ dbuser: showterm
+ dbpassword: showtermpassword
+ tasks:
+ - name: create db
+ postgresql_db: name={{dbname}}
+
+ - name: create user with ALL priv
+ postgresql_user: db={{dbname}} name={{dbuser}} password={{dbpassword}} priv=ALL
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: database.yml
+ template: src=database.yml dest=/root/showterm/config/database.yml
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: run bundle install
+ shell: bundle install
+ args:
+ chdir: /root/showterm
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: run rake db tasks
+ shell: 'bundle exec rake db:create db:migrate db:seed'
+ args:
+ chdir: /root/showterm
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: apache config
+ template: src=showterm.conf dest=/etc/httpd/conf.d/showterm.conf
+
+还凑合。请注意,从某种意义上来说这是一个任意选择的程序,然而我们现在已经可以持续地在任意数量的机器上部署它了,这便是配置管理的好处。此外,在大多数情况下这里的定义语法几乎是不言而喻的,wiki 页面也就不需要加入太多细节了。当然在我的观点里,一个有太多细节的 wiki 页面绝不会是一件坏事。
+
+### 扩展配置 ###
+
+我们并没有涉及到这里所有的细节。Ansible 有许多选项可以用来配置你的系统。你可以在你的 hosts 文件中内嵌变量,而 ansible 将会把它们应用到远程节点。如:
+
+ [RHELBased]
+ 10.50.1.33 http_port=443
+ 10.50.1.47 http_port=80 ansible_ssh_user=mdonlon
+
+ [SUSEBased]
+ 127.0.0.1 http_port=443
+
+尽管这对于快速配置来说已经非常方便,你还可以将变量分成存放在 yaml 格式的多个文件中。在你的 hosts 文件路径里,你可以创建两个子目录 group_vars 和 host_vars。在这些路径里放置的任何文件,只要能对得上一个主机分组的名字,或者你的 hosts 文件中的一个主机名,它们都会在运行时被插入进来。所以前面的一个例子将会变成这样:
+
+ ultrabook:/etc/ansible # pwd
+ /etc/ansible
+ ultrabook:/etc/ansible # tree
+ .
+ ├── group_vars
+ │ ├── RHELBased
+ │ └── SUSEBased
+ ├── hosts
+ └── host_vars
+ ├── 10.50.1.33
+ └── 10.50.1.47
+
+----------
+
+ 2 directories, 5 files
+ ultrabook:/etc/ansible # cat hosts
+ [RHELBased]
+ 10.50.1.33
+ 10.50.1.47
+
+----------
+
+ [SUSEBased]
+ 127.0.0.1
+ ultrabook:/etc/ansible # cat group_vars/RHELBased
+ ultrabook:/etc/ansible # cat group_vars/SUSEBased
+ ---
+ http_port: 443
+ ultrabook:/etc/ansible # cat host_vars/10.50.1.33
+ ---
+ http_port: 443
+ ultrabook:/etc/ansible # cat host_vars/10.50.1.47
+ ---
+ http_port:80
+ ansible_ssh_user: mdonlon
+
+### 改善 Playbooks ###
+
+组织 playbooks 也已经有很多种现成的方式。在前面的例子中我们用了一个单独的文件,因此这方面被大幅地简化了。组织这些文件的一个常用方式是创建角色。简单来说,你将一个主文件加载为你的 playbook,而它将会从其它文件中导入所有的数据,这些其他的文件便是角色。举例来说,如果你有了一个 wordpress 网站,你需要一个 web 前端,和一个数据库。web 前端将包括一个 web 服务器,应用程序代码,以及任何需要的模块。数据库有时候运行在同一台主机上,有时候运行在远程的主机上,这时候角色就可以派上用场了。你创建一个目录,并对每个角色创建对应的小 playbook。在这个例子中我们需要一个 apache 角色,mysql 角色,wordpress 角色,mod_php,以及 php 角色。最大的好处是,并不是每个角色都必须被应用到同一台机器上。在这个例子中,mysql 可以被应用到一台单独的机器。这同样为代码重用提供了可能,比如你的 apache 角色还可以被用在 python 和其他相似的 php 应用程序中。展示这些已经有些超出了本文的范畴,而且做一件事总是有很多不同的方式,我建议搜索一些 ansible 的 playbook 例子。有很多人在 github 上贡献代码,当然还有其他一些网站。
+
+### 模块 ###
+
+在 ansible 中,对于所有完成的工作,幕后的工作都是由模块主导的。Ansible 有一个非常丰富的内置模块仓库,其中包括软件包安装,文件传输,以及我们在本文中做的所有事情。但是对一部分人来说,这些并不能满足他们的配置需求,ansible 也提供了方法让你添加自己的模块。Ansible 的 API 有一个非常棒的事情是,它并没有限制模块也必须用编写它的语言 Python 来编写,也就是说,你可以用任何语言来编写模块。Ansible 模块通过传递 JSON 数据来工作,因此你只需要用想用的语言生成一段 JSON 数据。我很确定任何脚本语言都可以做到这一点,因此你现在就可以开始写点什么了。在 Ansible 的网站上有很多的文档,包括模块的接口是如何工作的,以及 Github 上也有很多模块的例子。注意一些小众的语言可能没有很好的支持,不过那只可能是因为没有多少人在用这种语言贡献代码。试着写点什么,然后把你的结果发布出来吧!
+
+### 总结 ###
+
+总的来说,虽然在配置管理方面已经有很多解决方案,我希望本文能显示出 ansible 简单的设置过程,在我看来这是它最重要的一个要点。请注意,因为我试图展示做一件事的不同方式,所以并不是前文中所有的例子都是适用于你的个别环境或者对于普遍情况的最佳实践。这里有一些链接能让你对 ansible 的了解进入下一个层次:
+
+- [Ansible 项目][7]主页.
+- [Ansible 项目文档][8].
+- [多级环境与 Ansible][9].
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.cyberciti.biz/python-tutorials/linux-tutorial-install-ansible-configuration-management-and-it-automation-tool/
+
+作者:[Nix Craft][a]
+译者:[felixonmars](https://github.com/felixonmars)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.cyberciti.biz/tips/about-us
+[1]:http://www.cyberciti.biz/faq/fedora-sl-centos-redhat6-enable-epel-repo/
+[2]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
+[3]:http://www.cyberciti.biz/tips/linux-debian-package-management-cheat-sheet.html
+[4]:http://www.cyberciti.biz/faq/debian-ubuntu-centos-rhel-linux-install-pipclient/
+[5]:http://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
+[6]:http://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
+[7]:http://www.ansible.com/
+[8]:http://docs.ansible.com/
+[9]:http://rosstuck.com/multistage-environments-with-ansible/
diff --git a/published/201411/20140828 Interesting facts about Linux.md b/published/201411/20140828 Interesting facts about Linux.md
new file mode 100644
index 0000000000..b609bf0397
--- /dev/null
+++ b/published/201411/20140828 Interesting facts about Linux.md
@@ -0,0 +1,83 @@
+关于Linux的趣事
+================================================================================
+2014年8月25日,是Linux的第23个生日。1991年8月25日,一位21岁的赫尔辛基大学的学生发布了举世闻名的[新闻组][1](Usenet post),标志着现在世界著名的Linux正式诞生。
+
+23年以后的现在,Linux已经无处不在,不仅仅被安装于终端用户的桌面系统,[智能手机][2]和嵌入式系统,甚至也被[龙头企业][3]用于他们的关键系统,比如[美国海军的核潜艇][4](US Navy's nuclear submarines)和[联邦航空局的空中管制系统][5](FAA's air traffic control)。Linux进入了无处不在的云计算时代,在云计算平台方面仍然保持着它的优势。
+
+今天,让我来告诉大家**一些你们可能不知道的Linux趣事和Linux历史**。如果有什么要补充的,请在评论中分享出来。在这篇文章里,我将会用“linux”、“kernel”和“Linux kernel”来表示同一个意思。
+
+1.关于linux是否是一个开源的操作系统这种争论一直是无休无止的。事实上,“Linux”操作系统的核心组件参照的是Linux kernel(内核)。而反派认为Linux不是一个纯粹的操作系统,因为他们认为仅仅一个内核(kernel),并不是一个操作系统,自由软件的推崇者认为最大的操作系统应叫做“[GNU/Linux][7]”,把功劳归于应得的人。(比如:[GNU project][8])。另一方面,一些Linux的开发者和程序员认为,Linux拥有成为一个操作系统的资格,因为它实现了[POSIX标准][9]。
+
+2.从openhub网站的统计来看,绝大部分(95%)的Linux是用C语言写的。第二(2.8%)受欢迎的是汇编语言。毫无疑问,C语言比C++ 的更受欢迎,也表明了Linus对C++的立场。下面是Linus编程语言的分类。
+
+
+
+3.在全世界,Linux已经被[13,036个贡献者][10]创建和修改。当然,贡献最多的还是Linus Torvalds自己。从Linux创建至今,他提交了20,000次以上的代码。下图显示了总提交次数最多的前十位Linux贡献者。
+
+
+
+4.Linux的代码行(SLOC)超过了1700万行。估计整个代码库的花费大概是5,526人年,或者是超过300M(1M=10*1000万亿)美元,[基于模型的基本估算法][11](basic COCOMO model)。
+
+5.企业并不是单纯的Linux消费者。他们的员工也在[积极参与][12]Linux的开发。下图显示了参与Linux内核开发的企业员工2013年提交次数总和的前十位。他们包括Linux商业版发行者(Red Hat,SUSE),芯片/嵌入式系统制造商(Intel,Texas Instrument,wolfson),非盈利性组织(Linaro)和其它的IT公司(IBM,Samsung,Google)。
+
+
+
+6.Linux的官方吉祥物是一个非常可爱的小企鹅“Tux”。[第一次提出][13]并决定用小企鹅作为Linux吉祥物/标志这个想法的是Linus自己。为什么是小企鹅呢?因为Linus本人很喜欢企鹅,尽管他曾经被一只凶猛的企鹅咬伤过,还导致他得了一场病。
+
+7.一个Linux“发行版”包括Linux内核、支持GUN的组件和库、和一些第三方的应用。根据[distrowatch网站][14]的报告,现在总共有286个活跃的Linux发行版。其中最老的一个版本叫[Slackware][15],它是从1993年正式发布出来的一个可用的版本。
+
+8.Kernel.org是一个Linux源码的主要仓库,曾经在2011年8月被一个匿名的攻击者[攻陷][16],攻击者打算篡改kernel.org的服务器。为了加强Linux内核访问策略的安全性,Linux基金会最近在Linux内核的Git官方托管的仓库上[开启了][17]双重认证。
+
+9.Linux在500强超级计算机中的优势还在[增加][18]。截至2014年6月,世界范围内运算速度最快的计算机97%都是运行在Linux上面的。
+
+10.太空监视(spacewatch),是亚利桑那大学月球与行星实验室的一个研究项目,在GNU/Linux和它的创造者们出现之后,用他们名字命名了几颗小行星([小行星9793 Torvalds][19],[小行星9882 Stallman][20],[小行星9885 Linux][21],[小行星9965 GUN][22]),以表彰他们把开源操作系统用于他们的小行星调查活动。
+
+11.纵观Linux内核发展的近代史,版本从2.6到3.0有一个很大的跳跃。这个[重编的版本号3][23]实际上并不是意味着Linux内核有什么重大的构建,但却标志着Linux 20周年的一个里程碑。
+
+12.在2000年的时候,乔帮主还在苹果。他当时就[尝试雇佣][24]Linus Torvalds,让他放弃Linux的开发,转而为“Unix最大的用户群工作”,这个项目后面发展成了MAC OS X。当时,Linus拒绝了乔帮主的邀请。
+
+13.Linux 内核的重启函数[reboot()][25]需要两个神奇的数字,而这第二个数字来自Linus Torvalds和他3个女儿的出生日期。
+
+14.虽然全世界都有Linux的很多粉丝,但是也仍然存在很多对Linux的批评(主要是针对桌面系统),如缺乏硬件支持,缺乏标准化,由于很短的升级和发布周期导致系统的不稳定等等。2014年Linux内核小组在LinuxCon大会上,当Linus被问及Linux的未来将何去何从,他表示“I still want the desktop”(我仍然希望桌面化)。
+
+如果你还知道一些关于Linux的趣事,请在评论中与我们分享。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/interesting-facts-linux.html
+
+作者:[Dan Nanni][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:https://groups.google.com/forum/message/raw?msg=comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ
+[2]:http://developer.android.com/about/index.html
+[3]:http://fortune.com/2013/05/06/how-linux-conquered-the-fortune-500/
+[4]:http://www.linuxjournal.com/article/7789
+[5]:http://fcw.com/Articles/2006/05/01/FAA-manages-air-traffic-with-Linux.aspx
+[6]:http://thecloudmarket.com/stats
+[7]:http://www.gnu.org/gnu/why-gnu-linux.html
+[8]:http://www.gnu.org/gnu/gnu-history.html
+[9]:http://en.wikipedia.org/wiki/POSIX
+[10]:https://www.openhub.net/p/linux/contributors/summary
+[11]:https://www.openhub.net/p/linux/estimated_cost
+[12]:http://www.linuxfoundation.org/publications/linux-foundation/who-writes-linux-2013
+[13]:http://www.sjbaker.org/wiki/index.php?title=The_History_of_Tux_the_Linux_Penguin
+[14]:http://distrowatch.com/search.php?ostype=All&category=All&origin=All&basedon=All¬basedon=None&desktop=All&architecture=All&status=Active
+[15]:http://www.slackware.com/info/
+[16]:http://pastebin.com/BKcmMd47
+[17]:http://www.linux.com/news/featured-blogs/203-konstantin-ryabitsev/784544-linux-kernel-git-repositories-add-2-factor-authentication
+[18]:http://www.top500.org/statistics/details/osfam/1
+[19]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9793
+[20]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9882
+[21]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9885
+[22]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9965
+[23]:https://lkml.org/lkml/2011/5/29/204
+[24]:http://www.wired.com/2012/03/mr-linux/2/
+[25]:http://lxr.free-electrons.com/source/kernel/reboot.c#L199
+[26]:http://www.nndb.com/people/444/000022378/
+[27]:http://linuxfonts.narod.ru/why.linux.is.not.ready.for.the.desktop.current.html
+[28]:https://www.youtube.com/watch?v=8myENKt8bD0
diff --git a/published/201411/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md b/published/201411/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md
new file mode 100644
index 0000000000..61f4c9e389
--- /dev/null
+++ b/published/201411/20140828 Setup Thin Provisioning Volumes in Logical Volume Management (LVM)--Part IV.md
@@ -0,0 +1,227 @@
+在LVM中设置精简资源调配卷(第四部分)
+================================================================================
+逻辑卷管理有许多特性,比如像快照和精简资源调配。在先前([第三部分][3]中),我们已经介绍了如何为逻辑卷创建快照。在本文中,我们将了解如何在LVM中设置精简资源调配。
+
+
+
+*在LVM中设置精简资源调配*
+
+### 精简资源调配是什么? ###
+
+精简资源调配用于LVM以在精简池中创建虚拟磁盘。我们假定我服务器上有**15GB**的存储容量,而我已经有2个客户各自占去了5GB存储空间。你是第三个客户,你也请求5GB的存储空间。在以前,我们会提供整个5GB的空间(富卷)。然而,你可能只使用5GB中的2GB,其它3GB以后再去填满它。
+
+而在精简资源调配中我们所做的是,在其中一个大卷组中定义一个精简池,再在精简池中定义一个精简卷。这样,不管你写入什么文件,它都会保存进去,而你的存储空间看上去就是5GB。然而,这所有5GB空间不会全部铺满整个硬盘。对其它客户也进行同样的操作,就像我说的,那儿已经有两个客户,你是第三个客户。
+
+那么,让我们想想,我到底为客户分配了总计多少GB的空间呢?所有15GB的空间已经全部分配完了,如果现在有某个人来问我是否能提供5GB空间,我还可以分配给他么?答案是“可以”。在精简资源调配中,我可以为第四位客户分配5GB空间,即使我已经把那15GB的空间分配完了。
+
+**警告**:从那15GB空间中,如果我们对资源调配超过15GB了,那就是过度资源调配了。
+
+### 它是怎么工作的?我们又是怎样为客户提供存储空间的? ###
+
+我已经提供给你5GB空间,但是你可能只用了2GB,而其它3GB还空闲着。在富资源调配中,我们不能这么做,因为它一开始就分配了整个空间。
+
+在精简资源调配中,如果我为你定义了5GB空间,它就不会在定义卷时就将整个磁盘空间全部分配,它会根据你的数据写入而增长,希望你看懂了!跟你一样,其它客户也不会使用全部卷,所以还是有机会为一个新客户分配5GB空间的,这称之为过度资源调配。
+
+但是,必须对各个卷的增长情况进行监控,否则结局会是个灾难。在过度资源调配完成后,如果所有4个客户都尽量写入数据到磁盘,你将碰到问题了。因为这个动作会填满15GB的存储空间,甚至溢出,从而导致这些卷下线。
+
+### 前置阅读 ###
+
+- [在Linux中使用LVM构建灵活的磁盘存储(第一部分)][1]
+- [在Linux中扩展/缩减LVM(第二部分)][2]
+- [在 LVM中 录制逻辑卷快照并恢复(第三部分)][3]
+
+#### 我的服务器设置 ####
+
+ 操作系统 — 安装有LVM的CentOS 6.5
+ 服务器IP — 192.168.0.200
+
+### 步骤1: 设置精简池和卷 ###
+
+理论讲太多了,让我们还是来点实际的吧,我们一起来设置精简池和精简卷。首先,我们需要一个大尺寸的卷组。这里,我创建了一个**15GB**的卷组用于演示。现在,用下面的命令来列出卷组。
+
+ # vgcreate -s 32M vg_thin /dev/sdb1
+
+
+
+*列出卷组*
+
+接下来,在创建精简池和精简卷之前,检查逻辑卷有多少空间可用。
+
+ # vgs
+ # lvs
+
+
+
+*检查逻辑卷*
+
+我们可以在上面的lvs命令输出中看到,只显示了一些默认逻辑用于文件系统和交换分区。
+
+### 创建精简池 ###
+
+使用以下命令在卷组(vg_thin)中创建一个15GB的精简池。
+
+ # lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
+
+- **-L** – 卷组大小
+- **–thinpool** – 创建精简池
+- **tp\_tecmint\_poolThin** - 精简池名称
+- **vg\_thin** – 我们需要创建精简池的卷组名称
+
+
+
+*创建精简池*
+
+使用‘lvdisplay’命令来查看详细信息。
+
+ # lvdisplay vg_thin/tp_tecmint_pool
+
+
+
+*逻辑卷信息*
+
+这里,我们还没有在该精简池中创建虚拟精简卷。在图片中,我们可以看到分配的精简池数据为**0.00%**。
+
+### 创建精简卷 ###
+
+现在,我们可以在带有-V(Virtual)选项的‘lvcreate’命令的帮助下,在精简池中定义精简卷了。
+
+ # lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool
+
+我已经在我的**vg_thin**卷组中的**tp\_tecmint\_pool**内创建了一个精简虚拟卷,取名为**thin\_vol\_client1**。现在,使用下面的命令来列出逻辑卷。
+
+ # lvs
+
+
+
+*列出逻辑卷*
+
+刚才,我们已经在上面创建了精简卷,这就是为什么没有数据,显示为**0.00%M**。
+
+好吧,让我为其它2个客户再创建2个精简卷。这里,你可以看到在精简池(**tp\_tecmint\_pool**)下有3个精简卷了。所以,从这一点上看,我们开始明白,我已经使用所有15GB的精简池。
+
+
+
+### 创建文件系统 ###
+
+现在,使用下面的命令为这3个精简卷创建挂载点并挂载,然后拷贝一些文件进去。
+
+ # mkdir -p /mnt/client1 /mnt/client2 /mnt/client3
+
+列出创建的目录。
+
+ # ls -l /mnt/
+
+
+
+*创建挂载点*
+
+使用‘mkfs’命令为这些创建的精简卷创建文件系统。
+
+ # mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3
+
+
+
+*创建文件系统*
+
+使用‘mount’命令来挂载所有3个客户卷到创建的挂载点。
+
+ # mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/
+
+使用‘df’命令来列出挂载点。
+
+ # df -h
+
+
+
+*显示挂载点*
+
+这里,我们可以看到所有3个客户卷已经挂载了,而每个客户卷只使用了3%的数据空间。那么,让我们从桌面添加一些文件到这3个挂载点,以填充一些空间。
+
+
+
+*添加文件到卷*
+
+现在列出挂载点,并查看每个精简卷使用的空间,然后列出精简池来查看池中已使用的大小。
+
+ # df -h
+ # lvdisplay vg_thin/tp_tecmint_pool
+
+
+
+*检查挂载点大小*
+
+
+
+*检查精简池大小*
+
+上面的命令显示了3个挂载点及其使用大小百分比。
+
+ 13% of datas used out of 5GB for client1
+ 29% of datas used out of 5GB for client2
+ 49% of datas used out of 5GB for client3
+
+在查看精简池时,我们看到总共只有**30%**的数据被写入,这是上面3个客户虚拟卷的总使用量。
+
+### 过度资源调配 ###
+
+现在,**第四个**客户来申请5GB的存储空间。我能给他吗?因为我已经把15GB的池分配给了3个客户。能不能再给另外一个客户分配5GB的空间呢?可以,这完全可能。在我们使用**过度资源调配**时,就可以实现。过度资源调配可以给我们比我们所拥有的更大的空间。
+
+让我来为第四位客户创建5GB的空间,然后再验证一下大小吧。
+
+ # lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
+ # lvs
+
+
+
+*创建精简存储*
+
+在精简池中,我只有15GB大小的空间,但是我已经在精简池中创建了4个卷,其总量达到了20GB。如果4个客户都开始写入数据到他们的卷,并将空间填满,到那时我们将面对严峻的形势。如果不填满空间,那不会有问题。
+
+现在,我已经创建在**thin\_vol\_client4**中创建了文件系统,然后挂载到了**/mnt/client4**下,并且拷贝了一些文件到里头。
+
+ # lvs
+
+
+
+*验证精简存储*
+
+我们可以在上面的图片中看到,新创建的client 4总计使用空间达到了**89.34%**,而精简池的已用空间达到了**59.19**。如果所有这些用户不再过度对卷写入,那么它就不会溢出,下线。要避免溢出的话,我们需要扩展精简池大小。
+
+**重要**:精简池只是一个逻辑卷,因此,如果我们需要对其进行扩展,我们可以使用和扩展逻辑卷一样的命令,但我们不能缩减精简池大小。
+
+ # lvextend
+
+这里,我们可以看到怎样来扩展逻辑精简池(**tp_tecmint_pool**)。
+
+ # lvextend -L +15G /dev/vg_thin/tp_tecmint_pool
+
+
+
+*扩展精简存储*
+
+接下来,列出精简池大小。
+
+ # lvs
+
+
+
+*验证精简存储*
+
+前面,我们的**tp_tecmint_pool**大小为15GB,而在对第四个精简卷进行过度资源配置后达到了20GB。现在,它扩展到了30GB,所以我们的过度资源配置又回归常态,而精简卷也不会溢出下线了。通过这种方式,我们可以添加更多的精简卷到精简池中。
+
+在本文中,我们已经了解了怎样来使用一个大尺寸的卷组创建一个精简池,以及怎样通过过度资源配置在精简池中创建精简卷和扩着精简池。在下一篇文章中,我们将介绍怎样来移除逻辑卷。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/setup-thin-provisioning-volumes-in-lvm/
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
+[1]:http://linux.cn/article-3965-1.html
+[2]:http://linux.cn/article-3974-1.html
+[3]:http://linux.cn/article-4145-1.html
diff --git a/published/201411/20140901 How to install and configure ownCloud on Debian.md b/published/201411/20140901 How to install and configure ownCloud on Debian.md
new file mode 100644
index 0000000000..e360dad0dd
--- /dev/null
+++ b/published/201411/20140901 How to install and configure ownCloud on Debian.md
@@ -0,0 +1,209 @@
+如何在Debian上安装配置ownCloud
+================================================================================
+据其官方网站,ownCloud可以让你通过一个Web界面或者WebDAV访问你的文件。它还提供了一个平台,可以轻松地查看、编辑和同步您所有设备的通讯录、日历和书签。尽管ownCloud与广泛使用Dropbox非常相似,但主要区别在于ownCloud是免费的,开源的,从而可以自己的服务器上建立与Dropbox类似的云存储服务。使用ownCloud你可以完整地访问和控制您的私人数据,而对存储空间(除了硬盘容量)或客户端的连接数量没有限制。
+
+ownCloud提供了社区版(免费)和企业版(面向企业的有偿支持)。预编译的ownCloud社区版可以提供了CentOS、Debian、Fedora、openSUSE、,SLE和Ubuntu版本。本教程将演示如何在Debian Wheezy上安装和在配置ownCloud社区版。
+
+### 在Debian上安装 ownCloud ###
+
+进入官方网站:[http://owncloud.org][1],并点击‘Install’按钮(右上角)。
+
+
+
+为当前的版本选择“Packages for auto updates”(下面的图是v7)。这可以让你轻松的让你使用的ownCloud与Debian的包管理系统保持一致,包是由ownCloud社区维护的。
+
+
+
+在下一屏中点击继续:
+
+
+
+在可用的操作系统列表中选择Debian 7 [Wheezy]:
+
+
+
+加入ownCloud的官方Debian仓库:
+
+ # echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
+
+加入仓库密钥到apt中:
+
+ # wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
+ # apt-key add - < Release.key
+
+继续安装ownCLoud:
+
+ # aptitude update
+ # aptitude install owncloud
+
+打开你的浏览器并定位到你的ownCloud实例中,地址是 http://服务器 IP/owncloud:
+
+
+
+注意ownCloud可能会包一个Apache配置错误的警告。使用下面的步骤来解决这个错误来解决这些错误信息。
+
+a) 编辑 the /etc/apache2/apache2.conf (设置 AllowOverride 为 All):
+
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Order allow,deny
+ Allow from all
+
+
+b) 编辑 the /etc/apache2/conf.d/owncloud.conf
+
+
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ Allow from all
+
+
+c) 重启web服务器:
+
+ # service apache2 restart
+
+d) 刷新浏览器,确认安全警告已经消失
+
+
+
+### 设置数据库 ###
+
+这时可以为ownCloud设置数据库了。
+
+首先登录本地的MySQL/MariaDB数据库:
+
+ $ mysql -u root -h localhost -p
+
+为ownCloud创建数据库和用户账户。
+
+ mysql> CREATE DATABASE owncloud_DB;
+ mysql> CREATE USER ‘owncloud-web’@'localhost' IDENTIFIED BY ‘whateverpasswordyouchoose’;
+ mysql> GRANT ALL PRIVILEGES ON owncloud_DB.* TO ‘owncloud-web’@'localhost';
+ mysql> FLUSH PRIVILEGES;
+
+通过http://服务器 IP/owncloud 进入ownCloud页面,并选择‘Storage & database’ 选项。输入所需的信息(MySQL/MariaDB用户名,密码,数据库和主机名),并点击完成按钮。
+
+
+
+### 为ownCloud配置SSL连接 ###
+
+在你开始使用ownCloud之前,强烈建议你在ownCloud中启用SSL支持。使用SSL可以提供重要的安全好处,比如加密ownCloud流量并提供适当的验证。在本教程中,将会为SSL使用一个自签名的证书。
+
+创建一个储存服务器密钥和证书的目录:
+
+ # mkdir /etc/apache2/ssl
+
+创建一个证书(并有一个密钥来保护它),它有一年的有效期。
+
+ # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
+
+
+
+编辑/etc/apache2/conf.d/owncloud.conf 启用HTTPS。对于重写规则中的NC、R和L的意义,你可以参考[Apache 文档][2]:
+
+ Alias /owncloud /var/www/owncloud
+
+
+ RewriteEngine on
+ ReWriteCond %{SERVER_PORT} !^443$
+ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
+
+
+
+ SSLEngine on
+ SSLCertificateFile /etc/apache2/ssl/apache.crt
+ SSLCertificateKeyFile /etc/apache2/ssl/apache.key
+ DocumentRoot /var/www/owncloud/
+
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ Allow from all
+
+
+
+启用重写模块并重启Apache:
+
+ # a2enmod rewrite
+ # service apache2 restart
+
+打开你的ownCloud实例。注意一下,即使你尝试使用HTTP,你也会自动被重定向到HTTPS。
+
+注意,即使你已经按照上述步骤做了,在你启动ownCloud你仍将看到一条错误消息,指出该证书尚未被受信的机构颁发(那是因为我们创建了一个自签名证书)。您可以放心地忽略此消息,但如果你考虑在生产服务器上部署ownCloud,你可以从一个值得信赖的公司购买证书。
+
+### 创建一个账号 ###
+
+现在我们准备创建一个ownCloud管理员帐号了。
+
+
+
+欢迎来自你的个人云!注意你可以安装一个桌面或者移动端app来同步你的文件、日历、通讯录或者更多了。
+
+
+
+在右上叫,点击你的用户名,会显示一个下拉菜单:
+
+
+
+点击Personal来改变你的设置,比如密码,显示名,email地址、头像还有更多。
+
+### ownCloud 使用案例:访问日历 ###
+
+让我开始添加一个事件到日历中并稍后下载。
+
+点击左上角的下拉菜单并选择日历。
+
+
+
+添加一个时间并保存到你的日历中。
+
+
+
+通过 'Event and Tasks' -> 'Import...' -> 'Select file' 下载你的日历并添加到你的Thunderbird日历中:
+
+
+
+
+
+提示:你还需要设置你的时区以便在其他程序中成功地导入你的日历(默认情况下,日历程序将使用UTC+00:00时区)。要更改时区在左下角点击小齿轮图标,接着日历设置菜单就会出现,你就可以选择时区了:
+
+
+
+### ownCloud 使用案例:上传一个文件 ###
+
+接下来,我们会从本机上传一个文件
+
+进入文件菜单(左上角)并点击向上箭头来打开一个选择文件对话框。
+
+
+
+选择一个文件并点击打开。
+
+
+
+接下来你就可以打开/编辑选中的文件,把它移到另外一个文件夹或者删除它了。
+
+
+
+### 总结 ###
+
+ownCloud是一个灵活和强大的云存储,可以从其他供应商快速、简便、无痛的过渡。此外,它是开源软件,你只需要很少有时间和精力对其进行配置以满足你的所有需求。欲了解更多信息,可以随时参考[用户][3]、[管理][4]或[开发][5]手册。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/install-configure-owncloud-debian.html
+
+作者:[Gabriel Cánepa][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.gabrielcanepa.com.ar/
+[1]:http://owncloud.org/
+[2]:http://httpd.apache.org/docs/2.2/rewrite/flags.html
+[3]:http://doc.owncloud.org/server/7.0/ownCloudUserManual.pdf
+[4]:http://doc.owncloud.org/server/7.0/ownCloudAdminManual.pdf
+[5]:http://doc.owncloud.org/server/7.0/ownCloudDeveloperManual.pdf
\ No newline at end of file
diff --git a/published/201411/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md b/published/201411/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md
new file mode 100644
index 0000000000..8070ec36f8
--- /dev/null
+++ b/published/201411/20140905 Linux TCP or IP networking--net-tools vs. iproute2.md
@@ -0,0 +1,259 @@
+iproute2 对决 net-tools
+================================================================================
+
+如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。**但自2001年起,Linux社区已经对其停止维护。**同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。
+
+作为网络配置工具的一份子,iproute2的出现旨在从功能上取代net-tools。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。抛开性能而言,iproute2的用户接口比net-tools显得更加直观。比如,各种网络资源(如link、IP地址、路由和隧道等)均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象。更重要的是,到目前为止,iproute2仍处在[持续开发][1]中。
+
+如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。
+
+对于那些想要转到使用iproute2的用户,有必要了解下面有关net-tools和iproute2的众多对比。
+
+### 显示所有已连接的网络接口 ###
+
+下面的命令显示出所有可用网络接口的列表(无论接口是否激活)。
+
+使用**net-tools**:
+
+ $ ifconfig -a
+
+使用**iproute2**:
+
+ $ ip link show
+
+
+
+### 激活或停用网络接口 ###
+
+使用这些命令来激活或停用某个指定的网络接口。
+
+使用**net-tools**:
+
+ $ sudo ifconfig eth1 up
+ $ sudo ifconfig eth1 down
+
+使用**iproute2**:
+
+ $ sudo ip link set down eth1
+ $ sudo ip link set up eth1
+
+### 为网络接口分配IPv4地址 ###
+
+使用这些命令配置网络接口的IPv4地址。
+
+使用**net-tools**:
+
+ $ sudo ifconfig eth1 10.0.0.1/24
+
+使用**iproute2**:
+
+ $ sudo ip addr add 10.0.0.1/24 dev eth1
+
+值得注意的是,可以使用iproute2给同一个接口分配多个IP地址,ifconfig则无法这么做。使用ifconfig的变通方案是使用[IP别名][2]。
+
+ $ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
+ $ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
+ $ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1
+
+### 移除网络接口的IPv4地址 ###
+
+就IP地址的移除而言,除了给接口分配全0地址外,net-tools没有提供任何合适的方法来移除网络接口的IPv4地址。相反,iproute2则能很好地完全。
+
+使用**net-tools**:
+
+ $ sudo ifconfig eth1 0
+
+使用**iproute2**:
+
+ $ sudo ip addr del 10.0.0.1/24 dev eth1
+
+### 显示网络接口的IPv4地址 ###
+
+按照如下操作可查看某个指定网络接口的IPv4地址。
+
+使用**net-tools**:
+
+ $ ifconfig eth1
+
+使用**iproute2**:
+
+ $ ip addr show dev eth1
+
+同样,如果接口分配了多个IP地址,iproute2会显示出所有地址,而net-tools只能显示一个IP地址。
+
+
+
+### 为网络接口分配IPv6地址 ###
+
+使用这些命令为网络接口添加IPv6地址。net-tools和iproute2都允许用户为一个接口添加多个IPv6地址。
+
+使用**net-tools**:
+
+ $ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
+ $ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64
+
+使用**iproute2**:
+
+ $ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
+ $ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1
+
+### 显示网络接口的IPv6地址 ###
+
+按照如下操作可显示某个指定网络接口的IPv6地址。net-tools和iproute2都可以显示出所有已分配的IPv6地址。
+
+使用**net-tools**:
+
+ $ ifconfig eth1
+
+使用**iproute2**:
+
+ $ ip -6 addr show dev eth1
+
+
+
+### 移除网络设备的IPv6地址 ###
+
+使用这些命令可移除接口中不必要的IPv6地址。
+
+使用**net-tools**:
+
+ $ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64
+
+使用**iproute2**:
+
+ $ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1
+
+### 改变网络接口的MAC地址 ###
+
+使用下面的命令可[篡改网络接口的MAC地址][3],请注意在更改MAC地址前,需要停用接口。
+
+使用**net-tools**:
+
+ $ sudo ifconfig eth1 hw ether 08:00:27:75:2a:66
+
+使用**iproute2**:
+
+ $ sudo ip link set dev eth1 address 08:00:27:75:2a:67
+
+### 查看IP路由表 ###
+
+net-tools中有两个选择来显示内核的IP路由表:route和netstat。在iproute2中,使用命令ip route。
+
+使用**net-tools**:
+
+ $ route -n
+
+----------
+
+ $ netstat -rn
+
+使用**iproute2**:
+
+ $ ip route show
+
+
+
+### 添加和修改默认路由 ###
+
+这里的命令用来添加或修改内核IP路由表中的默认路由规则。请注意在net-tools中可通过添加新的默认路由、删除旧的默认路由来实现修改默认路由。在iproute2使用ip route命令来代替。
+
+使用**net-tools**:
+
+ $ sudo route add default gw 192.168.1.2 eth0
+ $ sudo route del default gw 192.168.1.1 eth0
+
+使用**iproute2**:
+
+ $ sudo ip route add default via 192.168.1.2 dev eth0
+ $ sudo ip route replace default via 192.168.1.2 dev eth0
+
+### 添加和移除静态路由 ###
+
+使用下面命令添加或移除一个静态路由。
+
+使用**net-tools**:
+
+ $ sudo route add -net 172.16.32.0/24 gw 192.168.1.1 dev eth0
+ $ sudo route del -net 172.16.32.0/24
+
+使用**iproute2**:
+
+ $ sudo ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0
+ $ sudo ip route del 172.16.32.0/24
+
+### 查看套接字统计信息 ###
+
+这里的命令用来查看套接字统计信息(比如活跃或监听状态的TCP/UDP套接字)。
+
+使用**net-tools**:
+
+ $ netstat
+ $ netstat -l
+
+使用**iproute2**:
+
+ $ ss
+ $ ss -l
+
+
+
+### 查看ARP表 ###
+
+使用这些命令显示内核的ARP表。
+
+使用**net-tools**:
+
+ $ arp -an
+
+使用**iproute2**:
+
+ $ ip neigh
+
+
+
+### 添加或删除静态ARP项 ###
+
+按照如下操作在本地ARP表中添加或删除一个[静态ARP项][4]。
+
+使用**net-tools**:
+
+ $ sudo arp -s 192.168.1.100 00:0c:29:c0:5a:ef
+ $ sudo arp -d 192.168.1.100
+
+使用**iproute2**:
+
+ $ sudo ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0
+ $ sudo ip neigh del 192.168.1.100 dev eth0
+
+### 添加、删除或查看多播地址 ###
+
+使用下面的命令配置或查看网络接口上的多播地址。
+
+使用**net-tools**:
+
+ $ sudo ipmaddr add 33:44:00:00:00:01 dev eth0
+ $ sudo ipmaddr del 33:44:00:00:00:01 dev eth0
+ $ ipmaddr show dev eth0
+ $ netstat -g
+
+使用**iproute2**:
+
+ $ sudo ip maddr add 33:44:00:00:00:01 dev eth0
+ $ sudo ip maddr del 33:44:00:00:00:01 dev eth0
+ $ ip maddr list dev eth0
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/linux-tcpip-networking-net-tools-iproute2.html
+
+作者:[Dan Nanni][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:https://www.kernel.org/pub/linux/utils/net/iproute2/
+[2]:http://xmodulo.com/2013/02/how-to-assign-multiple-ip-addresses-to-one-network-interface-on-centos.html
+[3]:http://xmodulo.com/2014/02/spoof-mac-address-network-interface-linux.html
+[4]:http://xmodulo.com/2013/02/how-to-add-or-remove-static-arp-entry-on-linux.html
\ No newline at end of file
diff --git a/published/201411/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md b/published/201411/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md
new file mode 100644
index 0000000000..8bf674367a
--- /dev/null
+++ b/published/201411/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md
@@ -0,0 +1,89 @@
+桌面看腻了?试试这 4 款漂亮的 Linux 图标主题吧
+================================================================================
+**Ubuntu 的默认图标主题在 5 年内[并未发生太大的变化][1],除了[一些古怪的新图标][2]。如果你确实想尝试一些新鲜的东西,我们将向你展示一些惊艳的替代品,它们会让你感到眼前一亮。**
+
+希望您可以在文末的评论里留下您比较中意的图标主题的链接地址。
+
+### Captiva ###
+
+
+
+Captiva 图标 + elementary 文件夹图标 + Moka GTK
+
+Captiva 是一款相对较新的图标主题,即使是那些喜欢华丽图标的用户也会接受它。
+
+Captiva 由 DeviantArt 的用户 ~[bokehlicia][3] 制作,它并未使用现在非常流行的2D扁平化风格,而是采用了一种柔和圆滑的外观。图标本身呈现出一种很有质感的材质外观,同时通过微调的阴影和亮丽的颜色提高了自身的格调。
+
+不过 Captiva 图标主题并未包含文件夹图标在内,因此它将使用 elementary(如果可以的话)或者普通的 Ubuntu 文件夹图标。
+
+要想在 Ubuntu 14.04 中安装 Captiva 图标,你可以新开一个终端,按如下方式添加官方 PPA 并进行安装:
+
+ sudo add-apt-repository ppa:captiva/ppa
+
+ sudo apt-get update && sudo apt-get install captiva-icon-theme
+
+或者,如果你不擅长通过软件源安装的话,你也可以直接从 DeviantArt 的主页上下载图标压缩包。把解压过的文件夹挪到家目录的‘.icons’目录下,即可完成安装。
+
+无论你选择哪种方式来安装,你必须得通过像 [Unity Tweak Tool][4] 这样的工具来把你安装的图标主题(本文列出的其他图标主题也要这样)应用到系统上。
+
+- [DeviantArt 上的 Captiva 图标主题][5]
+
+### Square Beam ###
+
+
+
+Orchis GTK 主题下的 Square Beam 图标
+
+厌倦有棱角的图标了?尝试下 Square Beam 吧。Square Beam 因为其艳丽的色泽、尖锐的坡度变化和鲜明的图标形象,比本文列出的其他图标具有更加宏大的视觉效果。Square Beam 声称自己有超过 30,000 个(抱歉,我没有仔细数过...)不同的图标(!),因此你很难找到它没有涉及到的地方。
+
+- [GNOME-Look.org 上的 Square Beam 图标主题][6]
+
+### Moka & Faba ###
+
+
+
+在 Orchis GTK 主题下的 Moka/Faba Mono 图标
+
+这里得稍微介绍下 Moka 图标集。事实上,我敢打赌阅读此文的大部分用户正在使用这款图标。
+
+淡柔的颜色、平滑的边缘以及简洁的图标艺术设计,Moka 是一款真正出色又覆盖全面的应用图标。它的兄弟 Faba 将这些特点展现得淋漓尽致,而 Moka 也将延续这些 —— 涵盖所有的系统图标、文件夹图标、面板图标,等等。这个组合的结果是...吸引你的眼球!
+
+欲知 Ubuntu 上的安装详情、访问项目官方网站?请点击下面的链接。
+
+- [下载 Moka & Faba 图标主题][7]
+
+### Compass ###
+
+
+
+Compass 图标在 Numix Blue GTK 主题下
+
+在本文最后推荐的是 Compass,最后推荐当然不是最差的意思。这款图标现在仍然保持着‘2D,双色’的 UI 设计风格。它也许是不像本文推荐的其他图标那样鲜明,但这正是它的特色。Compass 秉持这点并与之不断的完善 —— 看看文件夹的图标就知道了!
+
+可以通过 GNOME-Look(下面有链接)进行下载和安装,或者通过添加 Nitrux Artwork 的 PPA 安装:
+
+ sudo add-apt-repository ppa:nitrux/nitrux-artwork
+
+ sudo apt-get update && sudo apt-get install compass-icon-theme
+
+- [GNOME-Look.org 上的 Compass 图标主题][8]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/4-gorgeous-linux-icon-themes-download
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[SteveArcher](https://github.com/SteveArcher)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2010/02/lucid-gets-new-icons-for-rhythmbox-ubuntuone-memenu-more
+[2]:http://www.omgubuntu.co.uk/2012/08/new-icon-theme-lands-in-lubuntu-12-10
+[3]:http://bokehlicia.deviantart.com/
+[4]:http://www.omgubuntu.co.uk/2014/06/unity-tweak-tool-0-7-development-download
+[5]:http://bokehlicia.deviantart.com/art/Captiva-Icon-Theme-479302805
+[6]:http://gnome-look.org/content/show.php/Square-Beam?content=165094
+[7]:http://mokaproject.com/moka-icon-theme/download/ubuntu/
+[8]:http://gnome-look.org/content/show.php/Compass?content=160629
diff --git a/published/201411/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md b/published/201411/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md
new file mode 100644
index 0000000000..f6707b0080
--- /dev/null
+++ b/published/201411/20140910 How to monitor server memory usage with Nagios Remote Plugin Executor (NRPE).md
@@ -0,0 +1,155 @@
+如何用Nagios远程执行插件(NRPE)来检测服务器内存使用率
+================================================================================
+在[先前的教程中][1],我们已经见到了如何在Nagios设置中设置Nagios远程执行插件(NRPE)。然而,监控内存使用率的脚本和插件并没有在原生的Nagios中。本篇中,我们会看到如何配置NRPE来监控远程服务器上的内存使用率。
+
+我们要用的监控内存的脚本在[Nagios 市场][2]上,在创建者的[Github仓库][3]中也可以找到。
+
+假设我们已经安装了NRPE,我们首先在我们想要监控的服务器上下载脚本。
+
+### 准备远程服务器 ###
+
+#### 在 Debain/Ubuntu 中: ####
+
+ # cd /usr/lib/nagios/plugins/
+ # wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
+ # mv check_mem.pl check_mem
+ # chmod +x check_mem
+
+#### 在 RHEL/CentOS 中: ####
+
+ # cd /usr/lib64/nagios/plugins/ (or /usr/lib/nagios/plugins/ for 32-bit)
+ # wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
+ # mv check_mem.pl check_mem
+ # chmod +x check_mem
+
+你可以通过手工在本地运行下面的命令来检查脚本的输出是否正常。当使用NRPE时,这条命令应该会检测空闲的内存,当可用内存小于20%时会发出警告,并且在可用内存小于10%时会生成一个严重警告。
+
+ # ./check_mem -f -w 20 -c 10
+
+----------
+
+ OK - 34.0% (2735744 kB) free.|TOTAL=8035340KB;;;; USED=5299596KB;6428272;7231806;; FREE=2735744KB;;;; CACHES=2703504KB;;;;
+
+如果你看到像上面那样的输出,那就意味这命令正常工作着。
+
+现在脚本已经准备好了,我们要定义NRPE检查内存使用率的命令了。如上所述,命令会检查可用内存,在可用率小于20%时发出警报,小于10%时发出严重警告。
+
+ # vim /etc/nagios/nrpe.cfg
+
+#### 对于 Debian/Ubuntu: ####
+
+ command[check_mem]=/usr/lib/nagios/plugins/check_mem -f -w 20 -c 10
+
+#### 对于 RHEL/CentOS 32 bit: ####
+
+ command[check_mem]=/usr/lib/nagios/plugins/check_mem -f -w 20 -c 10
+
+#### 对于 RHEL/CentOS 64 bit: ####
+
+ command[check_mem]=/usr/lib64/nagios/plugins/check_mem -f -w 20 -c 10
+
+### 准备 Nagios 服务器 ###
+
+在Nagios服务器中,我们为NRPE定义了一条自定义命令。该命令可存储在Nagios内的任何目录中。为了让本教程简单,我们会将命令定义放在/etc/nagios目录中。
+
+#### 对于 Debian/Ubuntu: ####
+
+ # vim /etc/nagios3/conf.d/nrpe_command.cfg
+
+----------
+
+ define command{
+ command_name check_nrpe
+ command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
+ }
+
+#### 对于 RHEL/CentOS 32 bit: ####
+
+ # vim /etc/nagios/objects/nrpe_command.cfg
+
+----------
+
+ define command{
+ command_name check_nrpe
+ command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
+ }
+
+#### 对于 RHEL/CentOS 64 bit: ####
+
+ # vim /etc/nagios/objects/nrpe_command.cfg
+
+----------
+
+ define command{
+ command_name check_nrpe
+ command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
+ }
+
+现在我们定义Nagios的服务检查
+
+#### 在 Debian/Ubuntu 上: ####
+
+ # vim /etc/nagios3/conf.d/nrpe_service_check.cfg
+
+----------
+
+ define service{
+ use local-service
+ host_name remote-server
+ service_description Check RAM
+ check_command check_nrpe!check_mem
+ }
+
+#### 在 RHEL/CentOS 上: ####
+
+ # vim /etc/nagios/objects/nrpe_service_check.cfg
+
+----------
+
+ define service{
+ use local-service
+ host_name remote-server
+ service_description Check RAM
+ check_command check_nrpe!check_mem
+ }
+
+最后我们重启Nagios服务
+
+#### 在 Debian/Ubuntu 上: ####
+
+ # service nagios3 restart
+
+#### 在 RHEL/CentOS 6 上: ####
+
+ # service nagios restart
+
+#### 在 RHEL/CentOS 7 上: ####
+
+ # systemctl restart nagios.service
+
+### 故障排除 ###
+
+Nagios应该开始在使用NRPE的远程服务器上检查内存使用率了。如果你有任何问题,你可以检查下面这些情况。
+
+
+- 确保NRPE的端口在远程主机上是总是允许的。默认NRPE的端口是TCP 5666。
+- 你可以尝试通过执行check\_nrpe 命令: /usr/lib/nagios/plugins/check\_nrpe -H remote-server 手工检查NRPE操作。
+- 你同样可以尝试运行check\_mem 命令:/usr/lib/nagios/plugins/check\_nrpe -H remote-server –c check\_mem
+- 在远程服务器上,在/etc/nagios/nrpe.cfg中设置debug=1。重启NRPE服务并检查这些日志文件,/var/log/messages (RHEL/CentOS)或者/var/log/syslog (Debain/Ubuntu)。如果有任何的配置或者权限错误,日志中应该包含了相关的信息。如果日志中没有反映出什么,很有可能是由于请求在某些端口上有过滤而没有到达远程服务器上。
+
+总结一下,这边教程描述了我们该如何调试NRPE来监控远程服务器的内存使用率。过程只需要下载脚本、定义命令和重启服务就行了。希望这对你们有帮助。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/monitor-server-memory-usage-nagios-remote-plugin-executor.html
+
+作者:[Sarmed Rahman][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
+[1]:http://linux.cn/article-4101-1.html
+[2]:http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/check_mem-2Epl/details
+[3]:https://github.com/justintime/nagios-plugins/blob/master/check_mem/check_mem.pl
\ No newline at end of file
diff --git a/published/201411/20140919 How to install Arch Linux the easy way with Evo or Lution.md b/published/201411/20140919 How to install Arch Linux the easy way with Evo or Lution.md
new file mode 100644
index 0000000000..ff2b253bb0
--- /dev/null
+++ b/published/201411/20140919 How to install Arch Linux the easy way with Evo or Lution.md
@@ -0,0 +1,73 @@
+Arch Linux 安装捷径:Evo/Lution
+================================================================================
+有些人只体验过Ubuntu或Mint的安装,却鼓起勇气想要安装Arch Linux,他们的学习道路是那样的陡峭和严峻,安装过程中半途而废的人数可能要比顺利过关的人多得多。如果你成功搭建并按你所需的配置好了Arch Linux,那么它已经把你培养成了一个饱经风霜的Linux用户。
+
+即使有[可以帮助你的维基][1]为新手提供指南,对于那些想要征服Arch的人而言要求仍然太高。你需要至少熟悉诸如fdisk或mkfs之类的终端命令,并且听过mc、nano或chroot这些,并努力掌握它们。这让我回想起了10年前的Debian安装。
+
+对于那些满怀抱负而又缺乏知识的生灵,有一个叫[Evo/Lution Live ISO][2]的ISO镜像格式安装器可以拯救他们。即便它貌似像发行版一样启动,但它其实除了辅助安装Arch Linux准系统之外啥都不干。Evo/Lution是一个项目,它旨在通过提供Arch的简单安装方式来为Arch的增加更多的用户基数,就像为那些用户提供全面帮助和文档的社区一样。在这样一个组合中,Evo是Live CD(不可安装),而Lution是个安装器本身。项目创立者看到了Arch及其衍生发行版的开发者和用户之间的巨大鸿沟,而想要在所有参与者之间构筑一个身份平等的社区。
+
+
+
+项目的软件部分是命令行安装器Lution-AIS,它负责解释一个普通的纯净的Arch安装过程中的每一步。安装完毕后,你将获得Arch提供的没有从AUR添加任何东西的最新软件或其它任何自定义的包。
+
+启动这个422MB大小的ISO镜像后,一个由显示在右边的带有选项快捷方式的Conky和一个左边等待运行安装器的LX-Terminal组成的工作区便呈现在我们眼前。
+
+
+
+在通过右击桌面或使用ALT-i启动实际的安装器后,一个写满了16个等待运行的任务列表就出现在你面前了。除非你知道你在做什么,否则请将这些任务全部运行一遍。你可以一次运行,也可以进行选择,如1 3 6,或者1-4,也可以一次将它们全部运行,输入1-16。大多数步骤需要‘y’,即‘yes’,来确认,敲击回车即可。在此期间,你有足够的时间来阅读安装指南,它可以通过ALT-g来打开。当然,你也可以出去溜达一圈再回来。
+
+
+
+这16个步骤分成“基础安装”和“桌面安装”两组。第一个组安装主要关注本地化、分区,以及安装启动器。
+
+安装器带领你穿越分区世界,你可以选择使用gparted、gdisk,以及cfdisk。
+
+
+
+
+
+创建完分区后(如,像截图中所示,用gparted划分/dev/sda1用于root,/dev/sda2用于swap),你可以在10个文件系统中选择其中之一。在下一步中,你可以选择内核(最新或长期支持LTS)和基础系统。
+
+
+
+安装完你喜爱的启动加载器后,第一部分安装就完成了,这大约需要花费12分钟。这是在普通的Arch Linux中你第一次重启进入系统所处之处。
+
+在Lution的帮助下,继续进入第二部分,在这一部分中将安装Xorg、声音和图形驱动,然后进入桌面环境。
+
+
+
+安装器会检测是否在VirtualBox中安装,并且会自动为VM安装并加载正确的通用驱动,然后相应地设置**systemd**。
+
+在下一步中,你可以选择KDE、Gnome、Cinnamon、LXDE、Englightenment、Mate或XFCE作为你的桌面环境。如果你不喜欢臃肿的桌面,你也可以试试这些窗口管理器:Awesome、Fluxbox、i3、IceWM、Openbox或PekWM。
+
+
+
+在使用Cinnamon作为桌面环境的情况下,第二部分安装将花费不到10分钟的时间;而选择KDE的话,因为要下载的东西多得多,所以花费的时间也会更长。
+
+Lution-AIS在Cinnamon和Awesome上像个妩媚的小妖精。在安装完成并提示重启后,它就带我进入了我所渴望的环境。
+
+
+
+我要提出两点批评:一是在安装器要我选择一个镜像列表时,以及在创建fstab文件时。在这两种情况下,它都另外开了一个终端,给出了一些文本信息提示。这让我花了点时间才搞清楚,原来我得把它关了,安装器才会继续。在创建fstab后,它又会提示你,而你需要关闭终端,并在问你是否想要保存文件时回答‘是’。
+
+
+
+我碰到的第二个问题,可能与VirtualBox有关了。在启动的时候,你可以看到没有网络被检测到的提示信息。点击顶部左边的图标,将会打开我们所使用的网络管理器wicd。点击“断开”,然后再点击“连接”并重启安装器,就可以让它自动检测到了。
+
+Evo/Lution看起来是个有价值的项目,在这里Lution工作一切顺利,目前还没有什么可告诉社区的。他们开启了一个全新的网站、论坛和维基,需要填充内容进去啊。所以,如果你喜欢这主意,加入[他们的论坛][3]并告诉他们吧。本文中的ISO镜像可以从[此网站][4]下载。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/install-arch-linux-easy-way-evolution.html
+
+作者:[Ferdinand Thommes][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/ferdinand
+[1]:https://wiki.archlinux.org/
+[2]:http://www.evolutionlinux.com/
+[3]:http://www.evolutionlinux.com/forums/
+[4]:http://www.evolutionlinux.com/downloads.html
diff --git a/published/201411/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md b/published/201411/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md
new file mode 100644
index 0000000000..684dd87fbd
--- /dev/null
+++ b/published/201411/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md
@@ -0,0 +1,182 @@
+通过网络方式安装 Debian 7(Wheezy)
+================================================================================
+本教程将指引你直接通过使用**DNSMASQ**作为**PXE服务器(预启动执行环境)**,以网络方式安装**Debian 7(Wheezy)**,此种情况是假定你的服务器不提供任何CD/DVD/USB介质驱动器,或者它只能通过相连的监视器、键盘和鼠标操作。
+
+
+
+*客户机上的Debian 7网络安装*
+
+**DNSMASQ**是一个轻量级网络基础架构服务器,它可以通过内建的DNS、DHCP和TFTP服务器提供如DNS、DHCP和网络启动等关键服务。
+
+一旦PXE服务器启动并运行,你可以指示你所有的客户机直接从网络启动,前提是你的客户机必须拥有一张支持网络启动的网卡,网络启动可以从BIOS的网络启动或启动服务选项中启用。
+
+### 前置阅读 ###
+
+- [Debian 7 (Wheezy)安装指南][1]
+
+### 步骤1: 安装及配置DNSMASQ服务器 ###
+
+**1.** 首先,在安装Debian服务器后,要确保你的系统使用的是**静态IP地址**。因为除了网络启动之外,也要为你的整个网段提供DHCP服务。设置好静态IP地址后,以root帐号或具有root权力的用户来运行以下命令,进行DNSMASQ服务器的安装。
+
+ # apt-get install dnsmasq
+
+
+
+*安装Dnsmasq包*
+
+**2.** 安装好DNSMASQ包后,你可以开始编辑配置文件。首先创建一个主配置文件的备份,然后使用下面的命令对**dnsmasq.conf**文件进行编辑。
+
+ # mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
+ # nano /etc/dnsmasq.conf
+
+
+
+*备份Dnsmasq配置*
+
+**3.** 上面的备份过程适合重命名配置文件,所以新的文件应该是空,你可以使用以下描述的**DNSMASQ**配置文件节录。
+
+ interface=eth0
+ domain=debian.lan
+ dhcp-range=192.168.1.3,192.168.1.253,255.255.255.0,1h
+ dhcp-boot=pxelinux.0,pxeserver,192.168.1.100
+ pxe-prompt="Press F8 for menu.", 60
+ #pxe-service types: x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
+ pxe-service=x86PC, "Install Debian 7 Linux from network server 192.168.1.100", pxelinux
+ enable-tftp
+ tftp-root=/srv/tftp
+
+
+
+*Dnsmasq配置*
+
+- **interface** – 服务器监听的网络接口。
+- **domain** – 用你自己的域名替换。
+- **dhcp-range** – 用你自己的网络掩码定义的网络IP地址范围。
+- **dhcp-boot** – 保持默认,但使用你自己的服务器IP地址替换IP声明。
+- **pxe-prompt** – 保持默认 – 要求在**敲击F8键** 进入菜单时等待60秒。
+- **pxe=service** – 使用**x86PC**作为32位/64位架构,并进入引号字符串的菜单描述提示。其它值类型可能是:PC98,IA64_EFI,Alpha,Arc_x86,Intel_Lean_Client,IA32_EFI, BC_EFI,Xscale_EFI和 X86-64_EFI。
+- **enable-tftp** – 启用内建TFTP服务器。
+- **tftp-root** – 使用/srv/tftp作为Debian网络启动文件的存放位置。
+
+### 步骤2: 下载Debian网络启动文件并打开防火墙连接 ###
+
+**4.** 现在,该下载Debian网络启动文件了。首先,修改你当前工作目录路径到**TFTP根目录**位置,此位置由最后的配置语句定义(**/srv/tftp**系统路径)。
+
+转到[Debian网络安装][2] – [网络启动部分][3]的官方页面镜像,抓取以下文件,要抓取的文件取决于你想要安装到客户端的系统架构。
+
+下载好**netboot.tar.gz**文件后,同时提取归档(该过程描述只适用于64位,但对于其它系统架构也基本相同)。
+
+ # cd /srv/tftp/
+ # wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz
+ # tar xfz netboot.tar.gz
+ # wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/SHA256SUMS
+ # wget http://ftp.nl.debian.org/debian/dists/wheezy/Release
+ # wget http://ftp.nl.debian.org/debian/dists/wheezy/Release.gpg
+
+同时,必须确保**TFTP**目录中的所有文件都可让TFTP服务器读取。
+
+ # chmod -R 755 /srv/tftp/
+
+
+
+*下载Debian网络启动文件*
+
+使用以下变量用于**Debian网络安装**镜像和架构。
+
+ # wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/netboot/netboot.tar.gz
+ # wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/SHA256SUMS
+ # wget http://"$YOURMIRROR"/debian/dists/wheezy/Release
+ # wget http://"$YOURMIRROR"/debian/dists/wheezy/Release.gpg
+
+**5.** 下一步,启动或重启DNSMASQ守护进程,并运行netstat命令来获取服务器监听的端口列表。
+
+ # service dnsmasq restart
+ # netstat -tulpn | grep dnsmasq
+
+
+
+*启动Dnsmasq服务*
+
+**6.** 基于Debian的发行版通常附带了**UFW防火墙**包。使用以下命令来打开需要的**DNSMASQ**端口号:**67**(Bootps),**69**(TFTP),**53**(DNS)**4011**(代理DHCP)udp和**53** tcp(DNS)。
+
+ # ufw allow 69/udp
+ # ufw allow 4011/udp ## Only if you have a ProxyDHCP on the network
+ # ufw allow 67/udp
+ # ufw allow 53/tcp
+ # ufw allow 53/udp
+
+
+
+*开启Dnsmasq端口*
+
+现在,位于你的客户机网络接口上的PXE加载器将使用按以下顺序从**/srv/tftp/pxelinux.cfg**目录加载**pxelinux**配置文件。
+
+- GUID文件
+- MAC文件
+- 默认文件
+
+### 步骤3: 配置客户端从网络启动 ###
+
+**7.** 要为你的客户端计算机启用网络启动,请进入系统**BIOS配置**(如何进入BIOS设置,请查阅硬件主板提供商的文档)。
+
+转到**启动菜单**,然后选择**网络启动**作为**首要启动设备**(在某些系统上,你可以不用进入BIOS配置就能选择启动设备,只要在**BIOS自检**时按一个键就可以进行选择了)。
+
+
+
+*选择BIOS设置*
+
+**8。** 在编辑启动顺序后,通常按**F10**来保存BIOS设置。重启后,你的客户端计算机应该可以直接从网络启动了,应该会出第一个**PXE**提示,要求你按**F8**键进入菜单。
+
+接下来,敲击**F8**键来进入,会出现一个新的提示。敲击**回车**键,屏幕上会出现**Debian安装器**主界面提示,如下图所示。
+
+
+
+*启动菜单选择*
+
+
+
+*选择Debian安装器启动*
+
+
+
+*选择Debian安装*
+
+从这里开始,你可以使用Debian 7 Wheezy安装进程将Debian安装到你的机器上了(安装链接见上面)。然而,为了能够完成安装进程,你也需要确保你的机器上互联网连接已经激活。
+
+### 步骤4: DNSMASQ服务器排障并在系统范围内启用 ###
+
+**9.** 要诊断服务器以查询最终是否发生问题或要查询其它提供给客户端的信息,运行以下命令来打开日志文件。
+
+ # tailf /var/log/daemon.log
+
+
+
+*DNSMASQ服务器排障*
+
+**10.** 如果服务器测试中已一切就绪,你现在可以在**sysv-rc-conf**包的帮助下,启用**DNSMASQ**守护进程自启动,以使该进程在系统重启后自动启动。
+
+ # apt-get install sysv-rc-conf
+ # sysv-rc-conf dnsmaq on
+
+
+
+*启用DNSMASQ守护进程*
+
+到此为止吧!现在你的**PXE**服务器已经整装待发,随时准备好分配IP地址了(**DHCP**),并为你所有网段中的客户端提供需要的启动信息,这些信息配置用来从网络启动并安装Debian Wheezy。
+
+使用PXE网络启动安装在服务器主机数量很多时很有优势,因为你可以在短时间内火同时设置整个网络基础架构,为版本升级提供了方便,也可以通过kickstart文件使整个安装的全自动化。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/network-installation-of-debian-7-on-client-machines/
+
+作者:[Matei Cezar][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/cezarmatei/
+[1]:http://www.tecmint.com/debian-gnulinux-7-0-code-name-wheezy-server-installation-guide/
+[2]:http://www.debian.org/distrib/netinst#netboot
+[3]:http://ftp.nl.debian.org/debian/dists/wheezy/main/
diff --git a/published/201411/20140924 7 killer open source monitoring tools.md b/published/201411/20140924 7 killer open source monitoring tools.md
new file mode 100644
index 0000000000..f86ab1bd4f
--- /dev/null
+++ b/published/201411/20140924 7 killer open source monitoring tools.md
@@ -0,0 +1,67 @@
+7个杀手级的开源监测工具
+================================================================================
+想要更清晰的了解你的网络吗?没有比这几个免费的工具更好用的了。
+
+
+
+网络和系统监控是一个很宽的范畴。有监控服务器、网络设备、应用正常工作的方案,也有跟踪这些系统和设备性能,提供趋势性能分析的解决方案。有些工具像个闹钟一样,当发现问题的时候就会报警,而另外的一些工具甚至可以在警报响起的时候触发一些动作。这里,收集了一些开源的工具,旨在解决上述的一些甚至大部分问题。
+
+### Cacti ###
+
+
+
+Cacti是一个性能广泛的图表和趋势分析工具,可以用来跟踪并几乎可以绘制出任何可监测指标,描绘出图表。从硬盘的利用率到风扇的转速,在一个电脑管理系统中,只要是可以被监测的指标,Cacti都可以监测,并快速的转换成可视化的图表。
+
+### Nagios ###
+
+
+
+Nagios是一个经典的老牌系统和网络监测工具。运行速度快,可靠,需要针对应用定制。Nagios对于初学者是一个挑战。但是它的极其复杂的配置正好也反应出它的强大,因为它几乎可以适用于任何监控任务。要说缺点的话就是不怎么耐看,但是其强劲的功能和可靠性弥补了这个缺点。
+
+### Icinga ###
+
+
+
+Icinga 是一个正在重建的Nagios的分支,它提供了一个全面的监控和警报的框架,致力于设计一个像Nagios一样的开放和可扩展性的平台。但是和Nagios拥有不一样的Web界面。Icinga 1 和 Nagios非常的相近,不过Icinga 2就重写了。两个版本都能很好的兼容,而且,Nagios用户可以很轻松的转到Icinga 1平台。
+
+### NeDi ###
+
+
+
+NeDi可能不如其他的工具一样闻名全世界,但它确是一个跟踪网络接入的一个强大的解决方案。它可以很流畅的运行网络基础设施和设备目录,保持对任何事件的跟踪。并且可以提供任意设备的当前地点,也包括历史地点。
+
+NeDi可以被用于定位被偷的,或者是丢失掉的设备,只要设备出现在网络上。它甚至可以在地图上显示所有已发现的节点。并且很清晰的告诉人们网络是怎么互联的到物理设备端口的。
+
+### Observium ###
+
+
+
+Observium 综合了系统和网路监控,在性能趋势监测上有很好的表现,它支持静态和动态发现来确认服务器和网络设备,利用多种监测方法,可以监测任何可用的指标。Web界面非常的整洁,易用。
+
+就如我们看到的,Observium也可以在地图上显示任何被监测节点的实际地点。需要注意的是面板上关于活跃设备和警报的计数。
+
+### Zabbix ###
+
+
+
+Zabbix 利用一系列的工具监测服务器和网络。Zabbix的监控代理支持大多数的操作系统,你可以被动的或者是使用外部检查,包括SNMP来监控主机和网络设备。你也会发现很多提醒和通知设施,和一个非常人性化的Web界面,适用于不同的面板,此外,Zabbix还拥有一些特殊的管理工具来监测Web应用和虚拟化的管理程序。
+
+Zabbix 还可以提供详细的互联图,以便于我们了解某些对象是怎么连接的。这些图是可以定制的,并且,图也可以以被监测的服务器和主机的分组形式被创建。
+
+### Ntop ###
+
+
+
+Ntop是一个数据包嗅探工具。有一个整洁的Web界面,用来显示被监测网络的实时数据。即时的网络数据通过一个高级的绘图工具可以可视化。主机数据流和与之对应的主机通信信息可以被实时的进行可视化显示。
+
+--------------------------------------------------------------------------------
+
+via: http://www.networkworld.com/article/2686794/asset-management/164219-7-killer-open-source-monitoring-tools.html
+
+作者:[Paul Venezia][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.networkworld.com/author/Paul-Venezia/
diff --git a/published/201411/20140926 How to manage configurations in Linux with Puppet and Augeas.md b/published/201411/20140926 How to manage configurations in Linux with Puppet and Augeas.md
new file mode 100644
index 0000000000..fb47119207
--- /dev/null
+++ b/published/201411/20140926 How to manage configurations in Linux with Puppet and Augeas.md
@@ -0,0 +1,151 @@
+如何用Puppet和Augeas管理Linux配置
+================================================================================
+虽然[Puppet][1]是一个真正独特的有用工具,但在有些情况下你可以使用一点不同的方法来用它。比如,你要修改几个服务器上已有的配置文件,而且它们彼此稍有不同。Puppet实验室的人也意识到了这一点,他们在 Puppet 中集成了一个叫做[Augeas][2]的伟大的工具,它是专为这种使用情况而设计的。
+
+Augeas可被认为填补了Puppet能力的空白,比如在其中一个指定对象的资源类型(例如用于维护/etc/hosts中的条目的主机资源)还不可用时。在这个文档中,您将学习如何使用Augeas来减轻你管理配置文件的负担。
+
+### Augeas是什么? ###
+
+Augeas基本上就是一个配置编辑工具。它以他们原生的格式解析配置文件并且将它们转换成树。配置的更改可以通过操作树来完成,并可以以原生配置文件格式保存配置。
+
+### 这篇教程要达成什么目的? ###
+
+我们会针对[我们之前构建的Puppet服务器][1]安装并配置Augeas。我们会使用这个工具创建并测试几个不同的配置文件,并学习如何适当地使用它来管理我们的系统配置。
+
+### 前置阅读 ###
+
+我们需要一台工作的Puppet服务器和客户端。如果你还没有,请先按照我先前的[教程][1]来。
+
+Augeas安装包可以在标准CentOS/RHEL仓库中找到。不幸的是,Puppet用到的Augeas的ruby封装只在puppetlabs仓库中(或者[EPEL][4])中才有。如果你系统中还没有这个仓库,请使用下面的命令:
+
+在CentOS/RHEL 6.5上:
+
+ # rpm -ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabsrelease610.noarch.rpm
+
+在CentOS/RHEL 7上:
+
+ # rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabsrelease710.noarch.rpm
+
+在你成功地安装了这个仓库后,在你的系统中安装RubyAugeas:
+
+ # yum install rubyaugeas
+
+或者如果你是从我的[上一篇教程中继续][1]的,使用puppet的方法安装这个包。在/etc/puppet/manifests/site.pp中修改你的custom_utils类,在packages这行中加入“rubyaugeas”。
+
+ class custom_utils {
+ package { ["nmap","telnet","vimenhanced","traceroute","rubyaugeas"]:
+ ensure => latest,
+ allow_virtual => false,
+ }
+ }
+
+### 不带Puppet的Augeas ###
+
+如我先前所说,最初Augeas并不是来自Puppet实验室,这意味着即使没有Puppet本身我们仍然可以使用它。这种方法可在你将它们部署到Puppet环境之前,验证你的修改和想法是否是正确的。要做到这一点,你需要在你的系统中安装一个额外的软件包。请执行以下命令:
+
+ # yum install augeas
+
+### Puppet Augeas 示例 ###
+
+用于演示,这里有几个Augeas使用案例。
+
+#### 管理 /etc/sudoers 文件 ####
+
+1. 给wheel组加上sudo权限。
+
+这个例子会向你展示如何在你的GNU/Linux系统中为%wheel组加上sudo权限。
+
+ # 安装sudo包
+ package { 'sudo':
+ ensure => installed, # 确保sudo包已安装
+ }
+
+ # 允许用户属于wheel组来使用sudo
+ augeas { 'sudo_wheel':
+ context => '/files/etc/sudoers', # 目标文件是 /etc/sudoers
+ changes => [
+ # 允许wheel用户使用sudo
+ 'set spec[user = "%wheel"]/user %wheel',
+ 'set spec[user = "%wheel"]/host_group/host ALL',
+ 'set spec[user = "%wheel"]/host_group/command ALL',
+ 'set spec[user = "%wheel"]/host_group/command/runas_user ALL',
+ ]
+ }
+
+现在来解释这些代码做了什么:**spec**定义了/etc/sudoers中的用户段,**[user]**定义了数组中给定的用户,所有的定义放在该用户的斜杠( / ) 后那部分。因此在典型的配置中这个可以这么表达:
+
+ user host_group/host host_group/command host_group/command/runas_user
+
+这个将被转换成/etc/sudoers下的这一行:
+
+ %wheel ALL = (ALL) ALL
+
+2. 添加命令别称
+
+下面这部分会向你展示如何定义命令别名,它可以在你的sudoer文件中使用。
+
+ # 创建新的SERVICE别名,包含了一些基本的特权命令。
+ augeas { 'sudo_cmdalias':
+ context => '/files/etc/sudoers', # The target file is /etc/sudoers
+ changes => [
+ "set Cmnd_Alias[alias/name = 'SERVICES']/alias/name SERVICES",
+ "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[1] /sbin/service",
+ "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[2] /sbin/chkconfig",
+ "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[3] /bin/hostname",
+ "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[4] /sbin/shutdown",
+ ]
+ }
+
+sudo命令别名的语法很简单:**Cmnd_Alias**定义了命令别名字段,**[alias/name]**绑定所有给定的别名,/alias/name **SERVICES** 定义真实的别名,alias/command 是属于该别名的所有命令的数组。以上将被转换如下:
+
+ Cmnd_Alias SERVICES = /sbin/service , /sbin/chkconfig , /bin/hostname , /sbin/shutdown
+
+关于/etc/sudoers的更多信息,请访问[官方文档][5]。
+
+#### 向一个组中加入用户 ####
+
+要使用Augeas向组中添加用户,你也许要添加一个新用户,不管是排在 gid 字段还是最后的用户 uid 之后。我们在这个例子中使用SVN组。这可以通过下面的命令达成:
+
+在Puppet中:
+
+ augeas { 'augeas_mod_group:
+ context => '/files/etc/group', #目标文件是 /etc/group
+ changes => [
+ "ins user after svn/*[self::gid or self::user][last()]",
+ "set svn/user[last()] john",
+ ]
+ }
+
+使用 augtool:
+
+ augtool> ins user after /files/etc/group/svn/*[self::gid or self::user][last()] augtool> set /files/etc/group/svn/user[last()] john
+
+### 总结 ###
+
+目前为止,你应该对如何在Puppet项目中使用Augeas有点明白了。随意地试一下,你肯定需要浏览官方的Augeas文档。这会帮助你了解如何在你的个人项目中正确地使用Augeas,并且它会让你知道可以用它节省多少时间。
+
+如有任何问题,欢迎在下面的评论中发布,我会尽力解答和向你建议。
+
+### 有用的链接 ###
+
+- [http://www.watzmann.net/categories/augeas.html][6]: 包含许多关于 Augeas 使用的教程。
+- [http://projects.puppetlabs.com/projects/1/wiki/puppet_augeas][7]: Puppet wiki 带有许多实例。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/manage-configurations-linux-puppet-augeas.html
+
+作者:[Jaroslav Štěpánek][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/jaroslav
+[1]:http://linux.cn/article-3959-1.html
+[2]:http://augeas.net/
+[3]:http://xmodulo.com/manage-configurations-linux-puppet-augeas.html
+[4]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
+[5]:http://augeas.net/docs/references/lenses/files/sudoers-aug.html
+[6]:http://www.watzmann.net/categories/augeas.html
+[7]:http://projects.puppetlabs.com/projects/1/wiki/puppet_augeas
\ No newline at end of file
diff --git a/published/201411/20140926 How to monitor user login history on CentOS with utmpdump.md b/published/201411/20140926 How to monitor user login history on CentOS with utmpdump.md
new file mode 100644
index 0000000000..a4b025b1ca
--- /dev/null
+++ b/published/201411/20140926 How to monitor user login history on CentOS with utmpdump.md
@@ -0,0 +1,120 @@
+使用 utmpdump 监控 CentOS 用户登录历史
+================================================================================
+保留、维护和分析日志(如某个特定时期内发生过的,或正在发生的帐号事件),是Linux系统管理员最基础和最重要的任务之一。对于用户管理,检查用户的登入和登出日志(不管是失败的,还是成功的)可以让我们对任何潜在的安全隐患或未经授权使用系统的情况保持警惕。例如,工作时间之外或放假期间的来自未知IP地址或帐号的远程登录应当发出红色警报。
+
+在CentOS系统上,用户登录历史存储在以下这些文件中:
+
+- /var/run/utmp(用于记录当前打开的会话)被who和w工具用来记录当前有谁登录以及他们正在做什么,而uptime用来记录系统启动时间。
+- /var/log/wtmp (用于存储系统连接历史记录)被last工具用来记录最后登录的用户的列表。
+- /var/log/btmp(记录失败的登录尝试)被lastb工具用来记录最后失败的登录尝试的列表。
+
+
+
+在本文中,我将介绍如何使用utmpdump,这个小程序来自sysvinit-tools包,可以用于转储二进制日志文件到文本格式的文件以便检查。此工具默认在CentOS 6和7系列上可用。utmpdump收集到的信息比先前提到过的工具的输出要更全面,这让它成为一个胜任该工作的很不错的工具。除此之外,utmpdump可以用于修改utmp或wtmp。如果你想要修复二进制日志中的任何损坏条目,它会很有用(LCTT 译注:我怎么觉得这像是做坏事的前奏?)。
+
+### Utmpdump的使用及其输出说明 ###
+
+正如我们之前提到的,这些日志文件,与我们大多数人熟悉的其它日志相比(如/var/log/messages,/var/log/cron,/var/log/maillog),是以二进制格式存储的,因而我们不能使用像less或more这样的文件命令来查看它们的内容。所以,utmpdump的出现拯救了世界。
+
+为了要显示/var/run/utmp的内容,请运行以下命令:
+
+ # utmpdump /var/run/utmp
+
+
+
+同样要显示/var/log/wtmp的内容:
+
+ # utmpdump /var/log/wtmp
+
+
+
+最后,对于/var/log/btmp:
+
+ # utmpdump /var/log/btmp
+
+
+
+正如你所能看到的,三种情况下的输出结果是一样的,除了utmp和btmp的记录是按时间排序,而wtmp的顺序是颠倒的这个原因外(LCTT 译注:此处原文有误,实际上都是按照时间顺序排列的)。
+
+每个日志行格式化成了多列,说明如下。第一个字段显示了会话识别符,而第二个字段则是PID。第三个字段可以是以下值:--(表示运行等级改变或系统重启),bw(启动守候进程),数字(表示TTY编号),或者字符和数字(表示伪终端)。第四个字段可以为空或用户名、重启或运行级别。第五个字段是主TTY或PTY(伪终端),如果此信息可获得的话。第六个字段是远程主机名(如果是本地登录,该字段为空,运行级别信息除外,它会返回内核版本)。第七个字段是远程系统的IP地址(如果是本地登录,该字段为0.0.0.0)。如果没有提供DNS解析,第六和第七字段会显示相同的信息(远程系统的IP地址)。最后一个(第八)字段指明了该记录创建的日期和时间。
+
+### Utmpdump使用样例 ###
+
+下面提供了一些utmpdump的简单使用情况。
+
+1、 检查8月18日到9月17日之间某个特定用户(如gacanepa)的登录次数。
+
+ # utmpdump /var/log/wtmp | grep gacanepa
+
+
+
+如果你需要回顾先前日期的登录信息,你可以检查/var/log下的wtmp-YYYYMMDD(或wtmp.[1...N])和btmp-YYYYMMDD(或btmp.[1...N])文件,这些是由[logrotate][1]生成的旧wtmp和btmp的归档文件。
+
+2、 统计来自IP地址192.168.0.101的登录次数。
+
+ # utmpdump /var/log/wtmp | grep 192.168.0.101
+
+
+
+3、 显示失败的登录尝试。
+
+ # utmpdump /var/log/btmp
+
+
+
+在/var/log/btmp输出中,每个日志行都与一个失败的登录尝试相关(如使用不正确的密码,或者一个不存在的用户ID)。上面图片中高亮部分显示了使用不存在的用户ID登录,这警告你有人尝试猜测常用帐号名来闯入系统。这在使用tty1的情况下是个极其严重的问题,因为这意味着某人对你机器上的终端具有访问权限(该检查一下谁拿到了进入你数据中心的钥匙了,也许吧?)
+
+4、 显示每个用户会话的登入和登出信息
+
+ # utmpdump /var/log/wtmp
+
+
+
+在/var/logwtmp中,一次新的登录事件的特征是,第一个字段为‘7’,第三个字段是一个终端编号(或伪终端id),第四个字段为用户名。相关的登出事件会在第一个字段显示‘8’,第二个字段显示与登录一样的PID,而终端编号字段空白。例如,仔细观察上面图片中PID 1463的行。
+
+- 在 [Fri Sep 19 11:57:40 2014 ART],TTY1上显示登录提示符。
+- 在 [Fri Sep 19 12:04:21 2014 ART],用户 root 登入。
+- 在 [Fri Sep 19 12:07:24 2014 ART],用户 root 登出。
+
+旁注:第四个字段的LOGIN意味着出现了一次登录到第五字段指定的终端的提示。
+
+到目前为止,我介绍一些有点琐碎的例子。你可以将utmpdump和其它一些文本处理工具,如awk、sed、grep或cut组合,来产生过滤和加强的输出。
+
+例如,你可以使用以下命令来列出某个特定用户(如gacanepa)的所有登录事件,并发送输出结果到.csv文件,它可以用像LibreOffice Calc或Microsoft Excel之类的文字或工作簿应用程序打开查看。让我们只显示PID、用户名、IP地址和时间戳:
+
+ # utmpdump /var/log/wtmp | grep -E "\[7].*gacanepa" | awk -v OFS="," 'BEGIN {FS="] "}; {print $2,$4,$7,$8}' | sed -e 's/\[//g' -e 's/\]//g'
+
+
+
+就像上面图片中三个高亮区域描绘的那样,过滤逻辑操作是由三个管道步骤组成的。第一步用于查找由用户gacanepa触发的登录事件([7]);第二步和第三部用于选择期望的字段,移除utmpdump输出的方括号并设置输出字段分隔符为逗号。
+
+当然,如果你想要在以后打开来看,你需要重定向上面的命令输出到文件(添加“>[文件名].csv”到命令后面)。
+
+
+
+在更为复杂的例子中,如果你想要知道在特定时间内哪些用户(在/etc/passwd中列出)没有登录,你可以从/etc/passwd中提取用户名,然后运行grep命令来获取/var/log/wtmp输出中对应用户的列表。就像你看到的那样,有着无限可能。
+
+在进行总结之前,让我们简要地展示一下utmpdump的另外一种使用情况:修改utmp或wtmp。由于这些都是二进制日志文件,你不能像编辑文件一样来编辑它们。取而代之是,你可以将其内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。如下:
+
+ # utmpdump /var/log/utmp > tmp_output
+ <使用文本编辑器修改 tmp_output>
+ # utmpdump -r tmp_output > /var/log/utmp
+
+这在你想要移除或修复二进制日志中的任何伪造条目时很有用。
+
+下面小结一下,utmpdump从utmp、wtmp和btmp日志文件或轮循的旧归档文件来读取详细的登录事件,来补充如who,w,uptime,last,lastb之类的标准工具的不足,这也使得它成为一个很棒的工具。
+
+你可以随意添加评论以加强本帖的含金量。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/monitor-user-login-history-centos-utmpdump.html
+
+作者:[Gabriel Cánepa][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://linux.cn/article-4126-1.html
diff --git a/published/201411/20140928 How to turn your CentOS box into an OSPF router using Quagga.md b/published/201411/20140928 How to turn your CentOS box into an OSPF router using Quagga.md
new file mode 100644
index 0000000000..544ea12a6d
--- /dev/null
+++ b/published/201411/20140928 How to turn your CentOS box into an OSPF router using Quagga.md
@@ -0,0 +1,224 @@
+ 想玩路由器吗?使用 Quagga 将你的 CentOS 变成 OSPF 路由器
+================================================================================
+[Quagga][1]是一个开源路由软件套件,可以将Linux变成支持如RIP、OSPF、BGP和IS-IS等主要路由协议的路由器。它具有对IPv4和IPv6的完整支持,并支持路由/前缀过滤。Quagga可以是你生命中的救星,以防你的生产路由器一旦宕机,而你没有备用的设备而只能等待更换。通过适当的配置,Quagga甚至可以作为生产路由器。
+
+本教程中,我们将连接假设之间具有专线连接的两个分支机构网络(例如,192.168.1.0/24和172.17.1.0/24)。
+
+
+
+我们的CentOS位于所述专用链路的两端。两台主机名分别设置为“site-A-RTR”和“site-B-RTR'。下面是IP地址的详细信息。
+
+- **Site-A**: 192.168.1.0/24
+- **Site-B**: 172.16.1.0/24
+- **两个 Linux 路由器之间的对等网络**: 10.10.10.0/30
+
+Quagga包括了几个协同工作的守护进程。在本教程中,我们将重点建立以下守护进程。
+
+1. **Zebra**: 核心守护进程,负责内核接口和静态路由。
+1. **Ospfd**: IPv4 OSPF 守护进程。
+
+### 在CentOS上安装Quagga ###
+
+我们使用yum安装Quagga。
+
+ # yum install quagga
+
+在CentOS7,SELinux默认会阻止quagga将配置文件写到/usr/sbin/zebra。这个SELinux策略会干扰我们接下来要介绍的安装过程,所以我们要禁用此策略。对于这一点,无论是[关闭SELinux][2](这里不推荐),还是如下启用“zebra_write_config”都可以。如果你使用的是CentOS 6的请跳过此步骤。
+
+ # setsebool -P zebra_write_config 1
+
+如果没有做这个修改,在我们尝试在Quagga命令行中保存配置的时候看到如下错误。
+
+ Can't open configuration file /etc/quagga/zebra.conf.OS1Uu5.
+
+安装完Quagga后,我们要配置必要的对等IP地址,并更新OSPF设置。Quagga自带了一个命令行称为vtysh。vtysh里面用到的Quagga命令与主要的路由器厂商如思科和Juniper是相似的。
+
+### 步骤 1: 配置 Zebra ###
+
+我们首先创建Zebra配置文件,并启用Zebra守护进程。
+
+ # cp /usr/share/doc/quagga-XXXXX/zebra.conf.sample /etc/quagga/zebra.conf
+ # service zebra start
+ # chkconfig zebra on
+
+启动vtysh命令行:
+
+ # vtysh
+
+首先,我们为Zebra配置日志文件。输入下面的命令进入vtysh的全局配置模式:
+
+ site-A-RTR# configure terminal
+
+指定日志文件位置,接着退出模式:
+
+ site-A-RTR(config)# log file /var/log/quagga/quagga.log
+ site-A-RTR(config)# exit
+
+永久保存配置:
+
+ site-A-RTR# write
+
+接下来,我们要确定可用的接口并按需配置它们的IP地址。
+
+ site-A-RTR# show interface
+
+----------
+
+ Interface eth0 is up, line protocol detection is disabled
+ . . . . .
+ Interface eth1 is up, line protocol detection is disabled
+ . . . . .
+
+配置eth0参数:
+
+ site-A-RTR# configure terminal
+ site-A-RTR(config)# interface eth0
+ site-A-RTR(config-if)# ip address 10.10.10.1/30
+ site-A-RTR(config-if)# description to-site-B
+ site-A-RTR(config-if)# no shutdown
+
+继续配置eth1参数:
+
+ site-A-RTR(config)# interface eth1
+ site-A-RTR(config-if)# ip address 192.168.1.1/24
+ site-A-RTR(config-if)# description to-site-A-LAN
+ site-A-RTR(config-if)# no shutdown
+
+现在验证配置:
+
+ site-A-RTR(config-if)# do show interface
+
+----------
+
+ Interface eth0 is up, line protocol detection is disabled
+ . . . . .
+ inet 10.10.10.1/30 broadcast 10.10.10.3
+ . . . . .
+ Interface eth1 is up, line protocol detection is disabled
+ . . . . .
+ inet 192.168.1.1/24 broadcast 192.168.1.255
+ . . . . .
+
+----------
+
+ site-A-RTR(config-if)# do show interface description
+
+----------
+
+ Interface Status Protocol Description
+ eth0 up unknown to-site-B
+ eth1 up unknown to-site-A-LAN
+
+永久保存配置:
+
+ site-A-RTR(config-if)# do write
+
+在site-B上重复上面配置IP地址的步骤。
+
+如果一切顺利,你应该可以在site-A的服务器上ping通site-B上的对等IP地址10.10.10.2了。
+
+注意:一旦Zebra的守护进程启动了,在vtysh命令行中的任何改变都会立即生效。因此没有必要在更改配置后重启Zebra守护进程。
+
+### 步骤 2: 配置OSPF ###
+
+我们首先创建OSPF配置文件,并启动OSPF守护进程:
+
+ # cp /usr/share/doc/quagga-XXXXX/ospfd.conf.sample /etc/quagga/ospfd.conf
+ # service ospfd start
+ # chkconfig ospfd on
+
+现在启动vtysh命令行来继续OSPF配置:
+
+ # vtysh
+
+输入路由配置模式:
+
+ site-A-RTR# configure terminal
+ site-A-RTR(config)# router ospf
+
+可选配置路由id:
+
+ site-A-RTR(config-router)# router-id 10.10.10.1
+
+添加在OSPF中的网络:
+
+ site-A-RTR(config-router)# network 10.10.10.0/30 area 0
+ site-A-RTR(config-router)# network 192.168.1.0/24 area 0
+
+永久保存配置:
+
+ site-A-RTR(config-router)# do write
+
+在site-B上重复和上面相似的OSPF配置:
+
+ site-B-RTR(config-router)# network 10.10.10.0/30 area 0
+ site-B-RTR(config-router)# network 172.16.1.0/24 area 0
+ site-B-RTR(config-router)# do write
+
+OSPF的邻居现在应该启动了。只要ospfd在运行,通过vtysh的任何OSPF相关配置的改变都会立即生效而不必重启ospfd。
+
+下一节,我们会验证我们的Quagga设置。
+
+### 验证 ###
+
+#### 1. 通过ping测试 ####
+
+首先你应该可以从site-A ping同site-B的LAN子网。确保你的防火墙没有阻止ping的流量。
+
+ [root@site-A-RTR ~]# ping 172.16.1.1 -c 2
+
+#### 2. 检查路由表 ####
+
+必要的路由应该同时出现在内核与Quagga理由表中。
+
+ [root@site-A-RTR ~]# ip route
+
+----------
+
+ 10.10.10.0/30 dev eth0 proto kernel scope link src 10.10.10.1
+ 172.16.1.0/30 via 10.10.10.2 dev eth0 proto zebra metric 20
+ 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
+
+----------
+
+ [root@site-A-RTR ~]# vtysh
+ site-A-RTR# show ip route
+
+----------
+
+ Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
+ I - ISIS, B - BGP, > - selected route, * - FIB route
+
+ O 10.10.10.0/30 [110/10] is directly connected, eth0, 00:14:29
+ C>* 10.10.10.0/30 is directly connected, eth0
+ C>* 127.0.0.0/8 is directly connected, lo
+ O>* 172.16.1.0/30 [110/20] via 10.10.10.2, eth0, 00:14:14
+ C>* 192.168.1.0/24 is directly connected, eth1
+
+#### 3. 验证OSPF邻居和路由 ####
+
+在vtysh命令行中,你可以检查必要的邻居是否在线与是否已经学习了合适的路由。
+
+ [root@site-A-RTR ~]# vtysh
+ site-A-RTR# show ip ospf neighbor
+
+
+
+本教程中,我们将重点放在使用Quagga配置基本的OSPF。在一般情况下,Quagga能让我们能够轻松在一台普通的Linux机器上配置动态路由协议,如OSPF、RIP或BGP。启用了Quagga的机器可以与你网络中的其他路由器进行通信和交换路由信息。由于它支持主要的开放标准的路由协议,它或许是许多情况下的首选。更重要的是,Quagga的命令行界面与主要路由器厂商如思科和Juniper几乎是相同的,这使得部署和维护Quagga机器变得非常容易。
+
+
+希望这些对你们有帮助。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/turn-centos-box-into-ospf-router-quagga.html
+
+作者:[Sarmed Rahman][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
+[1]:http://www.nongnu.org/quagga/
+[2]:http://xmodulo.com/how-to-disable-selinux.html
\ No newline at end of file
diff --git a/published/201411/20140928 How to use xargs command in Linux.md b/published/201411/20140928 How to use xargs command in Linux.md
new file mode 100644
index 0000000000..2f22f1ee1c
--- /dev/null
+++ b/published/201411/20140928 How to use xargs command in Linux.md
@@ -0,0 +1,116 @@
+如何在Linux里使用xargs命令
+================================================================================
+你是否遇到过这样的情况,需要一遍又一遍地对多个文件执行同样的操作?如果有过,那你肯定会深有感触这是多么的无聊和效率低下。还好有种简单的方式,可以在基于Unix的操作系统中使用xargs命令解决这个烦恼。通过这个命令你可以有效地处理多个文件,节省你的时间和精力。在这篇教程中,你可以学到如何一次性对多个文件执行命令或脚本操作,再也不用担心像单独处理无数个日志或数据文件那样吓人的任务了。
+
+xargs命令有两个要点。第一,你必须列出目标文件。第二,你必须指定对每个文件需要执行的命令或脚本。
+
+这篇教程会涉及三个应用场景,xargs命令被用来处理分布在不同目录下的文件:
+
+1. 计算所有文件的行数
+1. 打印指定文件的第一行
+1. 对每个文件执行一个自定义脚本
+
+请看下面这个叫xargstest的目录(用tree命令以及-i和-f选项显示了目录树结构,这样可以避免缩进显示而且每个文件都会带有完整路径):
+
+ $ tree -if xargstest/
+
+
+
+这六个文件的内容分别如下:
+
+
+
+这个**xargstest**目录,以及它包含的子目录和文件将用在下面的例子中。
+
+### 场景1:计算所有文件的行数 ###
+
+就像之前提到的,使用xargs命令的第一个要点是一个用来运行命令或脚本的文件列表。我们可以用find命令来确定和列出目标文件。选项**-name 'file??'**指定了xargstest目录下那些名字以"file"开头并跟随两个任意字符的文件才是匹配的。这个搜索默认是递归的,意思是find命令会在xargstest和它的子目录下搜索匹配的文件。
+
+ $ find xargstest/ -name 'file??'
+
+----------
+
+ xargstest/dir3/file3B
+ xargstest/dir3/file3A
+ xargstest/dir1/file1A
+ xargstest/dir1/file1B
+ xargstest/dir2/file2B
+ xargstest/dir2/file2A
+
+我们可以通过管道把结果发给sort命令让文件名按顺序排列:
+
+ $ find xargstest/ -name 'file??' | sort
+
+----------
+
+ xargstest/dir1/file1A
+ xargstest/dir1/file1B
+ xargstest/dir2/file2A
+ xargstest/dir2/file2B
+ xargstest/dir3/file3A
+ xargstest/dir3/file3B
+
+然后我们需要第二个要素,就是需要执行的命令。我们使用带有-l选项的wc命令来计算每个文件包含的换行符数目(会在输出的每一行的前面打印出来):
+
+ $ find xargstest/ -name 'file??' | sort | xargs wc -l
+
+----------
+
+ 1 xargstest/dir1/file1A
+ 2 xargstest/dir1/file1B
+ 3 xargstest/dir2/file2A
+ 4 xargstest/dir2/file2B
+ 5 xargstest/dir3/file3A
+ 6 xargstest/dir3/file3B
+ 21 total
+
+可以看到,不用对每个文件手动执行一次wc -l命令,而xargs命令可以让你在一步里完成所有操作。那些之前看起来无法完成的任务,例如单独处理数百个文件,现在可以相当轻松地完成了。
+
+### 场景2:打印指定文件的第一行 ###
+
+既然你已经有一些使用xargs命令的基础,你可以自由选择执行什么命令。有时,你也许希望只对一部分文件执行操作而忽略其他的。在这种情况下,你可以使用find命令的-name选项以及?通配符(匹配任意单个字符)来选中特定文件并通过管道输出给xargs命令。举个例子,如果你想打印以“B”字符结尾的文件而忽略以“A”结尾的文件的第一行,可以使用下面的find、xargs和head命令组合来完成(head -n1会打印一个文件的第一行):
+
+ $ find xargstest/ -name 'file?B' | sort | xargs head -n1
+
+----------
+
+ ==> xargstest/dir1/file1B <==
+ one
+
+ ==> xargstest/dir2/file2B <==
+ one
+
+ ==> xargstest/dir3/file3B <==
+ one
+
+你将看到只有以“B”结尾的文件会被处理,而所有以“A”结尾的文件都被忽略了。
+
+### 场景3:对每个文件执行一个自定义脚本 ###
+
+最后,你也许希望对一些文件执行一个自定义脚本(例如Bash、Python或是Perl)。要做到这一点,只要简单地用你的自定义脚本名字替换掉之前例子中的wc和head命令就好了:
+
+ $ find xargstest/ -name 'file??' | xargs myscript.sh
+
+自定义脚本**myscript.sh**需要写成接受一个文件名作为参数并处理这个文件。上面的命令将为find命令找到的每个文件分别调用脚本。
+
+注意一下上面的例子中的文件名并没有包含空格。通常来说,在Linux环境下操作没有空格的文件名会舒服很多。如果你实在是需要处理名字中带有空格的文件,上边的命令就不能用了,需要稍微处理一下来让它可以被接受。这可以通过find命令的-print0选项(它会打印完整的文件名到标准输出,并以空字符结尾),以及xargs命令的-0选项(它会以空字符作为字符串结束标记)来实现,就像下面的例子:
+
+ $ find xargstest/ -name 'file*' -print0 | xargs -0 myscript.sh
+
+注意一下,-name选项所跟的参数已经改为'file\*',意思是所有以"file"开头而结尾可以是任意字符的文件都会被选中。
+
+### 总结 ###
+
+在看完这篇教程后你应该会理解xargs命令的作用,以及如何应用到自己的工作中。很快你就可以有时间享受这个命令所带来的高效率,而不用把你的时间耗费在一些重复的任务上了。想了解更详细的信息以及更多的选项,你可以在终端中输入'man xargs'命令来查看xargs的文档。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/xargs-command-linux.html
+
+作者:[Joshua Reed][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/joshua
diff --git a/published/201411/20141008 How to configure a host intrusion detection system on CentOS.md b/published/201411/20141008 How to configure a host intrusion detection system on CentOS.md
new file mode 100644
index 0000000000..c671e46083
--- /dev/null
+++ b/published/201411/20141008 How to configure a host intrusion detection system on CentOS.md
@@ -0,0 +1,125 @@
+在CentOS上配置基于主机的入侵检测系统(IDS)
+================================================================================
+所有系统管理员想要在他们生产服务器上首先要部署的安全手段之一,就是检测文件篡改的机制——不仅仅是文件内容,而且也包括它们的属性。
+
+[AIDE][1] (“高级入侵检测环境”的简称)是一个开源的基于主机的入侵检测系统。AIDE通过检查大量文件属性的不一致性来检查系统二进制文件和基本配置文件的完整性,这些文件属性包括权限、文件类型、索引节点、链接数、链接名、用户、组、文件大小、块计数、修改时间、添加时间、创建时间、acl、SELinux安全上下文、xattrs,以及md5/sha校验值在内的各种特征。
+
+AIDE通过扫描一台(未被篡改)的Linux服务器的文件系统来构建文件属性数据库,以后将服务器文件属性与数据库中的进行校对,然后在服务器运行时对被修改的索引了的文件发出警告。出于这个原因,AIDE必须在系统更新后或其配置文件进行合法修改后重新对受保护的文件做索引。
+
+对于某些客户,他们可能会根据他们的安全策略在他们的服务器上强制安装某种入侵检测系统。但是,不管客户是否要求,系统管理员都应该部署一个入侵检测系统,这通常是一个很好的做法。
+
+### 在 CentOS或RHEL 上安装AIDE ###
+
+AIDE的初始安装(同时是首次运行)最好是在系统刚安装完后,并且没有任何服务暴露在互联网甚至局域网时。在这个早期阶段,我们可以将来自外部的一切闯入和破坏风险降到最低限度。事实上,这也是确保系统在AIDE构建其初始数据库时保持干净的唯一途径。(LCTT 译注:当然,如果你的安装源本身就存在安全隐患,则无法建立可信的数据记录)
+
+出于上面的原因,在安装完系统后,我们可以执行下面的命令安装AIDE:
+
+ # yum install aide
+
+我们需要将我们的机器从网络断开,并实施下面所述的一些基本配置任务。
+
+### 配置AIDE ###
+
+默认配置文件是/etc/aide.conf,该文件介绍了几个示例保护规则(如FIPSR,NORMAL,DIR,DATAONLY),各个规则后面跟着一个等号以及要检查的文件属性列表,或者某些预定义的规则(由+分隔)。你也可以使用此种格式自定义规则。
+
+
+
+ FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
+ NORMAL = FIPSR+sha512
+
+例如,上面的例子说明,NORMAL规则将检查下列属性的不一致性:权限(p)、索引节点(i)、链接数(n)、用户(u)、组(g)、大小(s)、修改时间(m)、创建时间(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校验和(sha256和sha512)。
+
+定义的规则可灵活地用于不同的目录和文件(用正则表达式表示)。
+
+
+
+条目之前的感叹号(!)告诉AIDE忽略子目录(或目录中的文件),对于这些可以另外定义规则。
+
+在上面的例子中,PERMS是用于/etc机器子目录和文件的默认规则。然而,对于/etc中的备份文件(如/etc/.*~)则不应用任何规则,也没有规则用于/etc/mtab文件。对于/etc中的其它一些选定的子目录或文件,使用NORMAL规则替代默认规则PERMS。
+
+定义并应用正确的规则到系统中正确的位置,是使用AIDE最难的一部分,但作一个好的判断是一个良好的开始。作为首要的一条规则,不要检查不必要的属性。例如,检查/var/log或/var/spool里头的文件的修改时间将导致大量误报,因为许多的应用程序和守护进程经常会写入内容到该位置,而这些内容都没有问题。此外,检查多个校验值可能会加强安全性,但随之而来的是AIDE的运行时间的增加。
+
+可选的,如果你使用MAILTO变量指定电子邮件地址,就可以将检查结果发送到你的邮箱。将下面这一行放到/etc/aide.conf中的任何位置即可。
+
+ MAILTO=root@localhost
+
+### 首次运行AIDE ###
+
+运行以下命令来初始化AIDE数据库:
+
+ # aide --init
+
+
+
+根据/etc/aide.conf生成的/var/lib/aide/aide.db.new.gz文件需要被重命名为/var/lib/aide/aide.db.gz,以便AIDE能读取它:
+
+ # mv /var/lib/aide/aide.db.new.gz /var/lib/aide.db.gz
+
+现在,是时候来将我们的系统与数据库进行第一次校对了。任务很简单,只需运行:
+
+ # aide
+
+在没有选项时,AIDE假定使用了--check选项。
+
+如果在数据库创建后没有对系统做过任何修改,AIDE将会以OK信息来结束本次校对。
+
+
+
+### 生产环境中管理AIDE ###
+
+在构建了一个初始AIDE数据库后,作为不断进行的系统管理活动,你常常需要因为某些合法的理由更新受保护的服务器。每次服务器更新后,你必须重新构建AIDE数据库,以更新数据库内容。要完成该任务,请执行以下命令:
+
+ # aide --update
+
+要使用AIDE保护生产系统,可能最好通过任务计划调用AIDE来周期性检查不一致性。例如,要让AIDE每天运行一次,并将结果发送到邮箱:
+
+ # crontab -e
+
+----------
+
+ 0 0 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE run for $HOSTNAME" your@email.com
+
+### 测试AIDE检查文件篡改 ###
+
+下面的测试环境将演示AIDE是如何来检查文件的完整性的。
+
+#### 测试环境 1 ####
+
+让我们添加一个新文件(如/etc/fake)。
+
+ # cat /dev/null > /etc/fake
+
+
+
+#### 测试环境 2 ####
+
+让我们修改文件权限,然后看看它是否被检测到。
+
+ # chmod 644 /etc/aide.conf
+
+#### 测试环境 3 ####
+
+最后,让我们修改文件内容(如,添加一个注释行到/etc/aide.conf)。
+
+ echo "#This is a comment" >> /etc/aide.conf
+
+
+
+上面的截图中,第一栏显示了文件的属性,第二栏是AIDE数据库中的值,而第三栏是更新后的值。第三栏中空白部分表示该属性没有改动(如本例中的ACL)。
+
+### 结尾 ###
+
+如果你曾经发现你自己有很好的理由确信系统被入侵了,但是第一眼又不能确定到底哪些东西被改动了,那么像AIDE这样一个基于主机的入侵检测系统就会很有帮助了,因为它可以帮助你很快识别出哪些东西被改动过,而不是通过猜测来浪费宝贵的时间。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/host-intrusion-detection-system-centos.html
+
+作者:[Gabriel Cánepa][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://aide.sourceforge.net/
diff --git a/published/201411/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md b/published/201411/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md
new file mode 100644
index 0000000000..425a19ae11
--- /dev/null
+++ b/published/201411/20141008 How to speed up slow apt-get install on Debian or Ubuntu.md
@@ -0,0 +1,120 @@
+极速蜗牛:apt-fast
+================
+
+如果你在Debian或Ubuntu系统上经常感觉到**apt-get** 或 **aptitude**包安装速度过慢,那么这里就有几种改善这一情况的方法。你有没有考虑过改变正被使用的默认镜像站点?你有没有排除因特网连接的上游带宽成为瓶颈的可能?
+
+如果不是这些原因,你可以尝试第三个选择:使用[apt-fast][1]工具。apt-fast实际上是一个围绕apt-get和aptitude所写的shell脚本容器,它能加速包的下载速度。apt-fast本质上采用[aria2][2]下载工具,这款工具能够以“块”的方式从多个镜像并行下载一个文件(就像BitTorrent下载)。
+
+### 在Debian或Ubuntu上安装apt-fast
+
+下面是在基于Debian的Linux上安装apt-fast的步骤
+
+### Debian ###
+
+ $ sudo apt-get install aria2
+ $ wget https://github.com/ilikenwf/apt-fast/archive/master.zip
+ $ unzip master.zip
+ $ cd apt-fast-master
+ $ sudo cp apt-fast /usr/bin
+ $ sudo cp apt-fast.conf /etc
+ $ sudo cp ./man/apt-fast.8 /usr/share/man/man8
+ $ sudo gzip /usr/share/man/man8/apt-fast.8
+ $ sudo cp ./man/apt-fast.conf.5 /usr/share/man/man5
+ $ sudo gzip /usr/share/man/man5/apt-fast.conf.5
+
+### Ubuntu 14.04 以及更高版本 ###
+
+ $ sudo add-apt-repository ppa:saiarcot895/myppa
+ $ sudo apt-get update
+ $ sudo apt-get install apt-fast
+
+### Ubuntu 11.04 到 Ubuntu 13.10 ###
+
+ $ sudo add-apt-repository ppa:apt-fast/stable
+ $ sudo apt-get update
+ $ sudo apt-get install apt-fast
+
+在安装期间,你需要选择一个默认的软件包管理器 (e.g., apt-get. aptitude ),还需要设置其余选项。但是你可以随时通过编辑配置文件 /etc/apt-fast/conf 来更改设置。
+
+
+
+
+
+
+
+### 配置 apt-get ###
+
+安装完成后,你需要在/etc/apt-fast.conf里配置**apt-fast**使用的一系列镜像。
+
+你可以在下面的URL中找到一系列Debian/Ubuntu镜像。
+
+- **Debian**: [http://www.debian.org/mirror/list][3]
+- **Ubuntu**: [https://launchpad.net/ubuntu/+archivemirrors][4]
+
+选择完那些地理上靠近你的镜像后,你需按照下面的格式将选择的镜像加入到/etc/apt-fast.conf。
+
+ $ sudo vi /etc/apt-fast.conf
+
+Debian:
+
+ MIRRORS=('http://ftp.us.debian.org/debian/,http://carroll.aset.psu.edu/pub/linux/distributions/debian/,http://debian.gtisc.gatech.edu/debian/,http://debian.lcs.mit.edu/debian/,http://mirror.cc.columbia.edu/debian/')
+
+Ubuntu/Mint:
+
+ MIRRORS=('http://us.archive.ubuntu.com/ubuntu,http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/,http://mirror.cc.vt.edu/pub2/ubuntu/,http://mirror.umd.edu/ubuntu/,http://mirrors.mit.edu/ubuntu/')
+
+如上面所示,对于一个特定档案的个别镜像,需要用逗号分割开来。你需要在/etc/apt/sources.list的MIRRORS字符串中包含默认的镜像指定站点。
+
+### 使用apt-fast安装一个包 ###
+
+现在你就可以测试apt-fast的强大了。下面是使用**apt-fast**的示例:
+
+ apt-fast [apt-get options and arguments]
+ apt-fast [aptitude options and arguments]
+ apt-fast { { install | upgrade | dist-upgrade | build-dep | download | source } [ -y | --yes | --assume-yes | --assume-no ] ... | clean }
+
+使用**apt-fast**安装包:
+
+ $ sudo apt-fast install texlive-full
+
+在当前目录下载软件包,但不安装:
+
+ $ sudo apt-fast download texlive-full
+
+
+
+如前面所示,apt-fast的并行下载是通过aria2完成的。你可以看到如下图般从多个镜像并行下载。
+
+ $ sudo netstat -nap | grep aria2c
+
+
+
+请注意,**apt-fast**并没有加速"apt-get update"。并行下载只在"install", "upgrade", "dist-upgrage"和"build-dep"操作中触发。其余的操作,apt-fast就会简单地回到默认的包管理器apt-get或aptitude。
+
+### apt-fast有多快? ###
+
+为了比较apt-fast和apt-get,我尝试在两个相同的Ubuntu实例上使用两种方法安装几个软件包。下面的图表展示了所有软件包安装的时间(单位为秒)。
+
+
+
+正如你所见到的,**apt-fast**确实比**apt-get**快(e.g. 快3--4秒),特别是安装庞大软件包的时候。
+
+当然,安装性能的提高程度还依赖你上游因特网连通性。以我为例,我有富足的带宽来支持我的上游连接。这也是为什么我看到并行下载带来了成功的提高。
+
+---
+
+via: http://xmodulo.com/speed-slow-apt-get-install-debian-ubuntu.html
+
+作者:[Dan Nanni][a]
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:https://github.com/ilikenwf/apt-fast
+[2]:http://aria2.sourceforge.net/
+[3]:http://www.debian.org/mirror/list
+[4]:https://launchpad.net/ubuntu/+archivemirrors
+
+
diff --git a/published/201411/20141008 The Why and How of Ansible and Docker.md b/published/201411/20141008 The Why and How of Ansible and Docker.md
new file mode 100644
index 0000000000..b8aa820c8f
--- /dev/null
+++ b/published/201411/20141008 The Why and How of Ansible and Docker.md
@@ -0,0 +1,103 @@
+Ansible和Docker的作用和用法
+================================================================================
+在 [Docker][1] 和 [Ansible][2] 的技术社区内存在着很多好玩的东西,我希望在你阅读完这篇文章后也能像我们一样热爱它们。当然,你也会收获一些实践知识,那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整的服务器环境。
+
+也许有人会问:你怎么不去用 Heroku?首先,我可以在任何供应商提供的主机上运行 Docker 和 Ansible;其次,相比于方便性,我更偏向于喜欢灵活性。我可以在这种组合中运行任何程序,而不仅仅是 web 应用。最后,我骨子里是一个工匠,我非常了解如何把零件拼凑在一起工作。Heroku 的基础模块是 Linux Container,而 Docker 表现出来的多功能性也是基于这种技术。事实上,Docker 的其中一个座右铭是:容器化是新虚拟化技术。
+
+### 为什么使用 Ansible? ###
+
+我重度使用 Chef 已经有4年了(LCTT:Chef 是与 puppet 类似的配置管理工具),**基础设施即代码**的观念让我觉得非常无聊。我花费大量时间来管理代码,而不是管理基础设施本身。不论多小的改变,都需要相当大的努力来实现它。使用 [Ansible][3],你可以一手掌握拥有可描述性数据的基础架构,另一只手掌握不同组件之间的交互作用。这种更简单的操作模式让我把精力集中在如何将我的技术设施私有化,提高了我的工作效率。与 Unix 的模式一样,Ansible 提供大量功能简单的模块,我们可以组合这些模块,达到不同的工作要求。
+
+除了 Python 和 SSH,Ansible 不再依赖其他软件,在它的远端主机上不需要部署代理,也不会留下任何运行痕迹。更厉害的是,它提供一套内建的、可扩展的模块库文件,通过它你可以控制所有的一切:包管理器、云服务供应商、数据库等等等等。
+
+### 为什么要使用 Docker? ###
+
+[Docker][4] 的定位是:提供最可靠、最方便的方式来部署服务。这些服务可以是 mysqld,可以是 redis,可以是 Rails 应用。先聊聊 git 吧,它的快照功能让它可以以最有效的方式发布代码,Docker 的处理方法与它类似。它保证应用可以无视主机环境,随心所欲地跑起来。
+
+一种最普遍的误解是人们总是把 Docker 容器看成是一个虚拟机,当然,我表示理解你们的误解。Docker 满足[单一功能原则][5],在一个容器里面只跑一个进程,所以一次修改只会影响一个进程,而这些进程可以被重用。这种模型参考了 Unix 的哲学思想,当前还处于试验阶段,并且正变得越来越稳定。
+
+### 设置选项 ###
+
+不需要离开终端,我就可以使用 Ansible 来在这些云平台中生成实例:Amazon Web Services,Linode,Rackspace 以及 DigitalOcean。如果想要更详细的信息,我于1分25秒内在位于阿姆斯特丹的2号数据中心上创建了一个 2GB 的 DigitalOcean 虚拟机。另外的1分50秒用于系统配置,包括设置 Docker 和其他个人选项。当我完成这些基本设定后,就可以部署我的应用了。值得一提的是这个过程中我没有配置任何数据库或程序开发语言,Docker 已经帮我把应用所需要的事情都安排好了。
+
+Ansible 通过 SSH 为远端主机发送命令。我保存在本地 ssh 代理上面的 SSH 密钥会通过 Ansible 提供的 SSH 会话分享到远端主机。当我把应用代码从远端 clone 下来,或者上传到远端时,我就不再需要提供 git 所需的证书了,我的 ssh 代理会帮我通过 git 主机的身份验证程序的。
+
+### Docker 和应用的依赖性 ###
+
+我发现有一点挺有意思的:大部分开发者非常了解他们的应用需要什么版本的编程语言,这些语言依赖关系有多种形式:Python 的包、Ruby 的打包系统 gems、node.js 的模块等等,但与数据库或消息队列这种重要的概念相比起来,这些语言就处于很随便的境地了——随便给我个编程语言环境,我都能把数据库和消息队列系统跑起来。我认为这是 DevOps 运动(它旨在促进开发与运维团队的和谐相处)的动机之一,开发者负责搭建应用所需要的环境。Docker 使这个任务变得简单明了直截了当,它为现有环境加了实用的一层配置。
+
+我的应用依赖于 MySQL 5.5和 Redis 2.8,依赖关系放在“.docker_container_dependencies”文件里面:
+
+ gerhard/mysql:5.5
+ gerhard/redis:2.8
+
+Ansible 会查看这个文件,并且通知 Docker 加载正确的镜像,然后在容器中启动。它还会把这些服务容器链接到应用容器。如果你想知道 Docker 容器的链接功能是怎么工作的,可以参考[Docker 0.6.5 发布通知][6].
+
+我的应用包括一个 Dockerfile,它详细指定了 Ruby Docker 镜像的信息,这里面的步骤能够保证把正确的 Ruby 版本加载到镜像中。
+
+ FROM howareyou/ruby:2.0.0-p353
+
+ ADD ./ /terrabox
+
+ RUN \
+ . /.profile ;\
+ rm -fr /terrabox/.git ;\
+ cd /terrabox ;\
+ bundle install --local ;\
+ echo '. /.profile && cd /terrabox && RAILS_ENV=test bundle exec rake db:create db:migrate && bundle exec rspec' > /test-terrabox ;\
+ echo '. /.profile && cd /terrabox && export RAILS_ENV=production && rake db:create db:migrate && bundle exec unicorn -c config/unicorn.rails.conf.rb' > /run-terrabox ;\
+ # END RUN
+
+ ENTRYPOINT ["/bin/bash"]
+ CMD ["/run-terrabox"]
+
+ EXPOSE 3000
+
+第一步是复制应用的所有代码到 Docker 镜像,加载上一个镜像的全局环境变量。这个例子中的 Ruby Docker 镜像会加载 PATH 配置,这个配置能确保镜像加载正确的 Ruby 版本。
+
+接下来,删除 git 历史,Docker 容器不需要它们。我安装了所有 Ruby 的 gems,创建一个名为“/test-terrabox”的命令,这个命令会被名为“test-only”的容器执行。这个步骤的目的是能正确解决应用和它的依赖关系,让 Docker 容器正确链接起来,保证在真正的应用容器启动前能通过所有测试项目。
+
+CMD 这个步骤是在新的 web 应用容器启动后执行的。在测试环节结束后马上就执行`/run-terrabox`命令进行编译。
+
+最后,Dockerfile 为应用指定了一个端口号,将容器内部端口号为3000的端口映射到主机(运行着 Docker 的机器)的一个随机分配的端口上。当 Docker 容器里面的应用需要响应来自外界的请求时,这个端口可用于反向代理或负载均衡。
+
+### Docker 容器内运行 Rails 应用 ###
+
+没有本地 Docker 镜像,从零开始部署一个中级规模的 Rails 应用大概需要100个 gems,进行100次整体测试,在使用2个核心实例和2GB内存的情况下,这些操作需要花费8分16秒。装上 Ruby、MySQL 和 Redis Docker 镜像后,部署应用花费了4分45秒。另外,如果从一个已存在的主应用镜像编译出一个新的 Docker 应用镜像出来,只需花费2分23秒。综上所述,部署一套新的 Rails 应用,解决其所有依赖关系(包括 MySQL 和 Redis),只需花我2分钟多一点的时间就够了。
+
+需要指出的一点是,我的应用上运行着一套完全测试套件,跑完测试需要花费额外1分钟时间。尽管是无意的,Docker 可以变成一套简单的持续集成环境,当测试失败后,Docker 会把“test-only”这个容器保留下来,用于分析出错原因。我可以在1分钟之内和我的客户一起验证新代码,保证不同版本的应用之间是完全隔离的,同操作系统也是隔离的。传统虚拟机启动系统时需要花费好几分钟,Docker 容器只花几秒。另外,一旦一个 Dockedr 镜像编译出来,并且针对我的某个版本的应用的测试都被通过,我就可以把这个镜像提交到一个私有的 Docker Registry 上,可以被其他 Docker 主机下载下来并启动一个新的 Docker 容器,而这不过需要几秒钟时间。
+
+### 总结 ###
+
+Ansible 让我重新看到管理基础设施的乐趣。Docker 让我有充分的信心能稳定处理应用部署过程中最重要的步骤——交付环节。双剑合璧,威力无穷。
+
+从无到有搭建一个完整的 Rails 应用可以在12分钟内完成,这种速度放在任何场合都是令人印象深刻的。能获得一个免费的持续集成环境,可以查看不同版本的应用之间的区别,不会影响到同主机上已经在运行的应用,这些功能强大到难以置信,让我感到很兴奋。在文章的最后,我只希望你能感受到我的兴奋!
+
+我在2014年1月伦敦 Docker 会议上讲过这个主题,[已经分享到 Speakerdeck][7]了。
+
+如果想获得更多的关于 Ansible 和 Docker 的内容,请订阅 [changlog 周报][8],它会在每周六推送一周最有价值的关于这两个主题的新闻链接。
+
+如果你想为我们的 Changlog 写一篇文章,请[使用 Draft repo][9],他们会帮到你的。
+
+下次见,[Gerhard][a]。
+
+--------------------------------------------------------------------------------
+
+via: http://thechangelog.com/ansible-docker/
+
+作者:[Gerhard Lazu][a]
+译者:[bazz2](https://github.com/bazz2)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://twitter.com/gerhardlazu
+[1]:https://www.docker.io/
+[2]:https://github.com/ansible/ansible
+[3]:http://ansible.com/
+[4]:http://docker.io/
+[5]:http://en.wikipedia.org/wiki/Single_responsibility_principle
+[6]:http://blog.docker.io/2013/10/docker-0-6-5-links-container-naming-advanced-port-redirects-host-integration/
+[7]:https://speakerdeck.com/gerhardlazu/ansible-and-docker-the-path-to-continuous-delivery-part-1
+[8]:http://thechangelog.com/weekly/
+[9]:https://github.com/thechangelog/draft
diff --git a/published/201411/20141012 Simple guide to forks in github and git.md b/published/201411/20141012 Simple guide to forks in github and git.md
new file mode 100644
index 0000000000..bb087dc250
--- /dev/null
+++ b/published/201411/20141012 Simple guide to forks in github and git.md
@@ -0,0 +1,71 @@
+在Github和Git上fork之简单指南
+===
+
+以我的经验来看,刚接触Git和GitHub时,最困扰的一件事情就是尝试解决下面的问题:**在Git和GitHub上,我能做什么?**
+
+Git教程往往不会解决这个问题,因为它集中篇幅来教你Git命令和概念,并且不认为你会使用GitHub。[GitHub帮助教程](https://help.github.com/)一定程度上弥补了这一缺陷,但是它每篇文章的关注点都较为狭隘,而且没有提供关于"Git vs GitHub"问题的概念性概述。
+
+**如果你是习惯于先理解概念,再着手代码的学习者**,而且你也是Git和GitHub的初学者,我建议你先理解清楚什么是fork。为什么呢 ?
+
+1. Fork是在GitHub起步最普遍的方式。
+2. Fork只需要很少的Git命令,但是起得作用却非常大。
+3. Fork提供了对Git和GitHub最基础的了解,有益于你之后的工作。
+
+**本篇指南使用两张简单的图表,来教会你fork的两种主要工作流程。**我并不打算涉及任何代码,但是在结论中,我会把你需要使用的代码的链接给你。
+
+### fork并且更新一个仓库
+
+现在有这样一种情形:有一个叫做Joe的程序猿写了一个游戏程序,而你可能要去改进它。并且Joe将他的代码放在了GitHub仓库上。下面是你要做的事情:
+
+
+
+**fork并且更新GitHub仓库的图表演示**
+
+1. **Fork他的仓库**:这是GitHub操作,这个操作会复制Joe的仓库(包括文件,提交历史,issues,和其余一些东西)。复制后的仓库在你自己的GitHub帐号下。目前,你本地计算机对这个仓库没有任何操作。
+
+2. **Clone你的仓库**:这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。
+
+3. **更新某些文件**:现在,你可以在任何程序或者环境下更新仓库里的文件。
+
+4. **提交你的更改**:这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。
+
+5. **将你的更改push到你的GitHub仓库**:这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成,所以直到你做了push操作,GitHub才知道你的提交。
+
+6. **给Joe发送一个pull request**:如果你认为Joe会接受你的修改,你就可以给他发送一个pull request。这是GitHub操作,使用此操作可以帮助你和Joe交流你的修改,并且询问Joe是否愿意接受你的"pull request",当然,接不接受完全取决于他自己。
+
+如果Joe接受了你的pull request,他将把那些修改拉到自己的仓库。胜利!
+
+### 同步一个fork
+
+Joe和其余贡献者已经对这个项目做了一些修改,而你将在他们的修改的基础上,还要再做一些修改。在你开始之前,你最好"同步你的fork",以确保在最新的复制版本里工作。下面是你要做的:
+
+
+
+*同步GitHub fork的图表示意图*
+
+1. **从Joe的仓库中取出那些变化的文件**:这是Git操作,使用该命令让你可以从Joe的仓库获取最新的文件。
+
+2. **将这些修改合并到你自己的仓库**:这是Git操作,使用该命令使得那些修改更新到你的本地计算机(那些修改暂时存放在一个"分支"中)。记住:步骤1和2经常结合为一个命令使用,合并后的Git命令叫做"pull"。
+
+3. **将那些修改更新推送到你的GitHub仓库**(可选):记住,你本地计算机不会自动更新你的GitHub仓库。所以,唯一更新GitHub仓库的办法就是将那些修改推送上去。你可以在步骤2完成后立即执行push,也可以等到你做了自己的一些修改,并已经本地提交后再执行推送操作。
+
+**比较一下fork和同步工作流程的区别**:当你最初fork一个仓库的时候,信息的流向是从Joe的仓库到你的仓库,然后再到你本地计算机。但是最初的过程之后,信息的流向是从Joe的仓库到你的本地计算机,之后再到你的仓库。
+
+### 结论
+
+我希望这是一篇关于GitHub和Git 的 [fork](https://help.github.com/articles/fork-a-repo)有用概述。现在,你已经理解了那些概念,你将会更容易地在实际中执行你的代码。GitHub关于fork和[同步](https://help.github.com/articles/syncing-a-fork)的文章将会给你大部分你需要的代码。
+
+如果你是Git的初学者,而且你很喜欢这种学习方式,那么我极力推荐书籍[Pro Git](http://git-scm.com/book)的前两个章节,网上是可以免费查阅的。
+
+如果你喜欢视频学习,我创建了一个[11部分的视频系列](http://www.dataschool.io/git-and-github-videos-for-beginners/)(总共36分钟),来向初学者介绍Git和GitHub。
+
+---
+via: http://www.dataschool.io/simple-guide-to-forks-in-github-and-git/
+
+作者:[Kevin Markham][a]
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://disqus.com/home/user/justmarkham/
\ No newline at end of file
diff --git a/published/201411/20141014 How to monitor and troubleshoot a Linux server using sysdig.md b/published/201411/20141014 How to monitor and troubleshoot a Linux server using sysdig.md
new file mode 100644
index 0000000000..1239f33483
--- /dev/null
+++ b/published/201411/20141014 How to monitor and troubleshoot a Linux server using sysdig.md
@@ -0,0 +1,149 @@
+系统之锹sysdig:Linux服务器监控和排障利器
+================================================================================
+当你需要追踪某个进程产生和接收的系统调用时,首先浮现在你脑海中的是什么?你可能会想到strace,那么你是对的。你会使用什么样的命令行工具来监控原始网络通信呢?如果你想到了tcpdump,你又作出了一个极佳的选择。而如果你碰到必须追踪打开的文件(在Unix意义上:一切皆文件)的需求,可能你会使用lsof。
+
+strace、tcpdump以及lsof,确实是些伟大的工具,它们应该成为每个系统管理员工具集之中的一部分,而这也正是你为什么应该爱上[sysdig][1]的原因。它是一个强大的开源工具,用于系统级别的勘察和排障,它的创建者在介绍它时称之为“strace+tcpdump+lsof+上面点缀着lua樱桃的绝妙酱汁”。抛开幽默不说,sysdig的最棒特性之一在于,它不仅能分析Linux系统的“现场”状态,也能将该状态保存为转储文件以供离线检查。更重要的是,你可以自定义sysdig的行为,或者甚至通过内建的(你也可以自己编写)名为凿子(chisel)的小脚本增强其功能。单独的凿子可以以脚本指定的各种风格分析sysdig捕获的事件流。
+
+在本教程中,我们将探索sysdig的安装及其基本用法,在Linux上实施系统监控和排障。
+
+### 安装Sysdig ###
+
+对于本教程,由于为了简便、缩短安装流程以及版本的不可知,我们将选择使用官方网站提供的自动化安装过程。在自动化过程中,安装脚本会自动检测操作系统并安装必需的依赖包。
+
+以root身份运行以下命令来从官方apt/yum仓库安装sysdig:
+
+ # curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash
+
+
+
+安装完成后,我们可以通过以下方法调用sysdig来感受一下它:
+
+ # sysdig
+
+我们的屏幕将马上被系统上发生的所有事件填满,对于这些信息,不便于我们做更多操作。要进一步处理,我们可以运行:
+
+ # sysdig -cl | less
+
+来查看可用的凿子列表。
+
+
+
+默认有以下类目可用,各个类目中分布有多个内建的凿子。
+
+- CPU Usage:CPU使用量
+- Errors:错误
+- I/O
+- Logs:日志
+- Misc:混杂
+- Net:网络
+- Performance:性能
+- Security:安全
+- System State:系统状态
+
+要显示指定凿子上的信息(包括详细的命令行用法),运行以下命令:
+
+ # sysdig -cl [凿子名称]
+
+例如,我们可以检查“网络”类目下关于spy_port凿子的信息:
+
+ # sysdig -i spy_port
+
+
+
+凿子可以通过过滤器(可同时应用于实时数据和记录文件)组合,以获取更多有用的输出。
+
+过滤器遵从“类.字段”结构。例如:
+
+- **fd.cip**:客户端IP地址。
+- **evt.dir**:事件方向,可以是‘>’用于进入事件,或‘<’用于退出事件。
+
+完整的过滤器列表可以通过以下命令显示:
+
+ # sysdig -l
+
+在本教程剩余部分,我将演示几个sysdig的使用案例。
+
+### Sysdig实例: 服务器性能排障 ###
+
+假定你的服务器发生了性能问题(如,没有回应,或者重大的回应延迟)。你可以使用瓶颈凿子来显示当前10个最慢系统调用的列表。
+
+使用以下命令在存活服务器上进行实时检查。“-c”标识,后跟凿子名称告诉sysdig运行指定的凿子。
+
+ # sysdig -c bottlenecks
+
+或者,你可以离线对服务器实施性能分析。在此种情况下,你可以保存完整的sysdig记录到文件,然后像下面这样针对记录运行瓶颈凿子。
+
+首先,保存sysdige记录(使用Ctrl+c来停止收集):
+
+ # sysdig -w trace.scap
+
+收集完记录后,你可以运行以下命令来检查捕获间隔中最慢的系统调用:
+
+ # sysdig -r trace.scap -c bottlenecks
+
+
+
+你需要关注栏#2,#3和#4,这些分别表示执行时间、进程名和PID。
+
+### Sysdig实例: 监控交互用户活动 ###
+
+假定你作为系统管理员想要监控系统中交互的用户活动(如,用户在命令行输入了什么命令,以及用户去了什么目录),这时spy_user凿子就派上用场了。
+
+让我们首先通过一些额外选项来收集一个sysdig记录。
+
+ # sysdig -s 4096 -z -w /mnt/sysdig/$(hostname).scap.gz
+
+- “-s 4096”告诉sysdig每个事件捕获4096字节。
+- “-z” (与“-w”一起使用)为记录文件启用压缩。
+- “-w ”保存sysdig记录到指定的文件。
+
+在上面的例子中,我们自定义了基于每个主机的压缩的记录文件的名称。记住,你可以在任何时候按下Ctrl+c来打断sysdig的执行。
+
+在我们收集到了合理数量的数据后,我们可以通过运行以下命令来查看每个用户的交互活动:
+
+ # sysdig -r /mnt/sysdig/debian.scap.gz -c spy_users
+
+
+
+上面输出的第一栏表示与指定用户的活动相关进程的PID。
+
+如果你想要定位一个指定的用户,以及只监控该用户的活动又怎么样呢?你可以通过用户名对spy_users凿子的结果进行过滤:
+
+ # sysdig -r /mnt/sysdig/debian.scap.gz -c spy_users "user.name=xmodulo"
+
+
+
+### Sysdig实例: 监控文件I/O ###
+
+我们可以使用“-p”标识来自定义sysdig记录的输出格式,并指定双引号括起来的想要的字段(如用户名、进程名,以及文件或套接口名称)。在本例中,我们将创建一个记录文件,该文件将只包含在家目录中的写入事件(我们今后可以使用“sysdig -r writetrace.scap.gz”来检测该文件)。
+
+ # sysdig -p "%user.name %proc.name %fd.name" "evt.type=write and fd.name contains /home/" -z -w writetrace.scap.gz
+
+
+
+### Sysdig实例: 监控网络I/O ###
+
+作为服务器排障的一部分,你可能想要监听网络通信,此工作通常由tcpdump做。对于sysdig,可以很容易进行通信嗅探,其风格更为对用户友好。
+
+例如,你可以检查由特定IP地址,特定进程(如apache2)提供的数据(ASCII编码格式):
+
+ # sysdig -s 4096 -A -c echo_fds fd.cip=192.168.0.100 -r /mnt/sysdig/debian.scap.gz proc.name=apache2
+
+如果你想要监控原生数据传输(二进制格式),请把“-A”替换为“-X”:
+
+ # sysdig -s 4096 -X -c echo_fds fd.cip=192.168.0.100 -r /mnt/sysdig/debian.scap.gz proc.name=apache2
+
+要获取更多信息、实例以及案例分析,你可以查阅[项目网站][1]。相信我,会有着无限可能,但请不要仅仅局限于我所写的这些。安装sysdig,请从今天开始深入挖掘吧!
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/monitor-troubleshoot-linux-server-sysdig.html
+
+作者:[Gabriel Cánepa][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://www.sysdig.org/
diff --git a/published/201411/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md b/published/201411/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md
new file mode 100644
index 0000000000..c8511cf36c
--- /dev/null
+++ b/published/201411/20141014 Linux FAQs with Answers--How to change date and time from the command line on Linux.md
@@ -0,0 +1,84 @@
+Linux 有问必答:在 Linux 上如何通过命令行来更改日期和时间
+================================================================================
+> **问题**: 在 Linux 上, 我怎样通过命令行来改变日期和时间?
+
+在 Linux 系统中保持日期和时间的同步是每一个 Linux 用户和系统管理员的重要责任. 很多程序都依靠精确的时间信息得以正常工作. 另外, 不精确的日期和时间会使得日志文件中的时间戳变得毫无意义, 减弱了它们在系统检查和检修中的作用. 对于生产系统来说, 精确的日期和时间甚至更为重要. 例如, 在零售公司中, 所有产品必须时刻准确地计数(并储存在数据库服务器中)以便于财政部门计算每天及每周,每月,每年的支出和收入.
+
+我们必须注意, 在 Linux 机器上有两种时钟: 由内核维持的软件时钟(又称系统时钟)和在机器关机后记录时间的(电池供电的)硬件时钟. 启动的时候, 内核会把系统时钟与硬件时钟同步. 之后, 两个时钟各自独立运行.
+
+### 方法一: Date 命令 ###
+
+在 Linux 中, 你可以通过 date 命令来更改系统的日期和时间:
+
+ # date --set='NEW_DATE'
+
+其中 NEW_DATE 是诸如 "Sun, 28 Sep 2014 16:21:42" 或者 "2014-09-29 16:21:42" 的可读格式的日期字符串.
+
+日期格式也可以手动指定以获得更精确的结果:
+
+ # date +FORMAT --set='NEW_DATE'
+
+例如:
+
+ # date +’%Y%m%d %H%m’ --set='20140928 1518'
+
+
+
+你也可以用相对的方式地增加或减少一定的天数,周数,月数和秒数,分钟数,小时数。 你也可以把日期和时间的参数放到一个命令中。
+
+ # date --set='+5 minutes'
+ # date --set='-2 weeks'
+ # date --set='+3 months'
+ # date --set='-3 months +2 weeks -5 minutes'
+
+
+
+最后, 把硬件时钟设置为当前系统时钟:
+
+ # hwclock --systohc
+
+运行 **hwclock --systohc** 的目的是将硬件时钟同软件时钟同步, 这可以更正硬件时钟的系统漂移(即时钟按照一定的速度走快或走慢).
+
+另一方面, 如果硬件时钟是正确的, 但系统时钟有误, 可以用下面的命令更正:
+
+ # hwclock --hctosys
+
+在两种情况下, hwclock 命令都是将两个时钟同步. 否则, 重启后时间会是错误的, 因为当电源关闭时硬件时钟会记忆时间. 然而, 这对于虚拟机器并不适用, 因为虚拟机器并不能访问硬件时钟.
+
+如果你的 Linux 系统上的默认时区是错误的, 你可以按照[这个指导][1]进行更正.
+
+### 方法二: NTP ###
+
+另一种使系统日期和时间保持精确的方法是使用 NTP (网络时间协议). 在 Linux 上, ntpdate 命令通过 NTP 将系统时钟和[公共 NTP 服务器][2]同步.
+
+你可以使用如下命令来安装 **ntpdate**:
+
+在 Debian 及基于 Debian 的发行版上:
+
+ # aptitude install ntpdate
+
+在基于 Ret Hat 的发行版上:
+
+ # yum install ntpdate
+
+使用 NTP 同步系统时钟:
+
+ # ntpdate -u
+ # hwclock --systohc
+
+
+
+除了一次性使用 ntpdate 来同步时钟, 你也可以使用 NTP 守护进程(ntpd), 它会始终在后台运行, 不断地通过 NTP 来调整系统时钟. 关于 NTP 的设置, 请参考[这个指导][3].
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/change-date-time-command-line-linux.html
+
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ask.xmodulo.com/change-timezone-linux.html
+[2]:http://www.pool.ntp.org/
+[3]:http://xmodulo.com/how-to-synchronize-time-with-ntp.html
diff --git a/published/201411/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md b/published/201411/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md
new file mode 100644
index 0000000000..af4b02c606
--- /dev/null
+++ b/published/201411/20141014 Linux FAQs with Answers--How to change default location of libvirt VM images.md
@@ -0,0 +1,90 @@
+Linux 有问必答:如何改变libvirt VM镜像的默认位置
+================================================================================
+> **提问**: 我使用libvirt和virt-manager在我的Linux系统上创建虚拟机。我注意到虚拟机镜像位于/var/lib/libvirt/images目录。有没有办法改变虚拟机镜像的默认路径?
+
+**libvirt**和它的GUI前端**virt-manager**可以使用不同的虚拟机管理程序创建和管理VM,例如LVM和Xen。默认上所有的虚拟机镜像通过**libvirt**创建到/var/lib/libvirt/images目录。然而,这有时并不是我们希望的。比如/var/lib/libvirt/images此处的磁盘分区大小有限。或者你想要存储所有的虚拟机镜像到一个特定的用于管理的仓库中。
+
+实际上,你可以非常容易地改变libvirt镜像的默认目录,或者称之为“存储池”。
+
+有两种方法可以改变默认存储池。
+
+### 方法一: Virt-Manager GUI ###
+
+如果你正在使用virt-manager GUI程序,改变默认存储池非常容易。
+
+进入**virt-manager**的菜单GUI “编辑” -> "连接细节"。
+
+
+
+你可以看到如下所是的默认存储池。在窗口的左下角,点击叉形按钮,将会停止默认的存储池。存储池一旦停止后,点击右边的垃圾桶,将会删除存储池。**注意这个动作不会删除池中的镜像。**
+
+现在点击左边的加号增加一个新的存储池。
+
+
+
+输入新的存储池的名字(比如:default),并且选择存储池的类型。本例中,因为我们只是改变存储池目录所以选择“文件系统目录”。
+
+
+
+输入新的存储池路径(比如,/storage)。
+
+
+
+这时,新的存储池应该启动了,并且自动在你创建一个新的虚拟机的时候使用。
+
+
+
+### 方法二: Virsh 命令行 ###
+
+另外一个改变默认存储池目录的方法是使用来自**libvirt**包的**virsh** 命令行工具。
+
+首先,运行下面的命令来导出默认存储池的XML定义。
+
+ $ virsh pool-dumpxml default > pool.xml
+
+用文本编辑器打开XML文件,并且改变节点中的/var/lib/libvirt/images改成新的地址。
+
+
+ default
+ 0ec0e393-28a2-e975-feec-0c7356f38d08
+ 975762788352
+ 530052247552
+ 445710540800
+
+
+
+ /var/lib/libvirt/images
+
+ 0711
+ -1
+ -1
+
+
+
+
+移除现在的默认池。
+
+ $ virsh pool-destroy default
+
+----------
+
+ Pool default destroyed
+
+现在创建一个基于更新后的XML文件的新存储池。
+
+ $ virsh pool-create pool.xml
+
+----------
+
+ Pool default created from pool.xml
+
+这时,默认池已经改变到新的地址了,并且可以使用了。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/change-default-location-libvirt-vm-images.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201411/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md b/published/201411/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md
new file mode 100644
index 0000000000..e30ae8b532
--- /dev/null
+++ b/published/201411/20141014 Linux FAQs with Answers--How to create and mount an XFS file system on Linux.md
@@ -0,0 +1,68 @@
+Linux有问必答-如何创建和挂载XFS文件系统
+================================================================================
+> **问题**: 我听说一个牛X的文件系统XFS,打算在我的磁盘上试试XFS。那格式化和挂载XFS文件系统的Linux命令是什么呢?
+
+[XFS][1]是高性能文件系统,SGI为他们的IRIX平台而设计。自从2001年移植到Linux内核上,由于它的[高性能][2],XFS成为了许多企业级系统的首选,特别是有大量数据,需要结构化伸缩性和稳定性的。例如,RHEL/CentOS 7 和Oracle Linux将XFS作为默认文件系统,SUSE/openSUSE已经为XFS做了长期支持。
+
+XFS有许多独特的性能提升功能使他从众多文件系统中脱颖而出,像可伸缩/并行 IO,元数据日志,热碎片整理,IO 暂停/恢复,延迟分配等。
+
+如果你想要创建和挂载XFS文件系统到你的Linux平台,下面是相关的操作命令。
+
+### 安装 XFS系统工具集 ###
+
+首先,你需要安装XFS系统工具集,这样允许你执行许多XFS相关的管理任务。(例如:格式化,[扩展][3],修复,设置配额,改变参数等)
+
+Debian, Ubuntu , Linux Mint系统:
+
+ $ sudo apt-get install xfsprogs
+
+Fedora, CentOS, RHEL系统:
+
+ $ sudo yum install xfsprogs
+
+其他版本Linux:
+
+ $ sudo pacman -S xfsprogs
+
+### 创建 XFS格式分区 ###
+
+先准备一个分区来创建XFS。假设你的分区在/dev/sdb,如下:
+
+ $ sudo fdisk /dev/sdb
+
+
+
+假设此创建的分区叫/dev/sdb1。
+
+接下来,格式化分区为XFS,使用mkfs.xfs命令。如果已有其他文件系统创建在此分区,必须加上"-f"参数来覆盖它。
+
+ $ sudo mkfs.xfs -f /dev/sdb1
+
+
+
+至此你已经准备好格式化后分区来挂载。假设/storage是XFS本地挂载点。使用下述命令挂载:
+
+ $ sudo mount -t xfs /dev/sdb1 /storage
+
+验证XFS挂载是否成功:
+
+ $ df -Th /storage
+
+
+
+如果你想要启动时自动挂载XFS分区在/storage上,加入下列行到/etc/fstab:
+
+ /dev/sdb1 /storage xfs defaults 0 0
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/create-mount-xfs-file-system-linux.html
+
+译者:[Vic___/VicYu](http://www.vicyul.net/)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://xfs.org/
+[2]:http://lwn.net/Articles/476263/
+[3]:http://ask.xmodulo.com/expand-xfs-file-system.html
diff --git a/published/201411/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md b/published/201411/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md
new file mode 100644
index 0000000000..25122894c8
--- /dev/null
+++ b/published/201411/20141017 Linus Torvalds' Best Quotes from LinuxCon Europe 2014.md
@@ -0,0 +1,60 @@
+2014年欧洲LinuxCon大会Linus Torvalds的最佳语录
+================================================================================
+
+
+在今年的10月15日星期三,Linux的创造者Linus Torvalds出席了欧洲LinuxCon和CloudOpen大会并回答了英特尔的Linux及开源技术专家Dirk Hohndel提出的问题。
+
+Linus Torvalds在那天的[欧洲LinuxCon和CloudOpen大会][1]上说,从他首次创造出Linux操作系统到现在的23年里,他没后悔过任何他做过的技术决策。
+
+“技术问题,甚至是完全错误的技术问题,你也可以之后再去修复它。” Torvalds说。
+
+
+
+他还说,尽管这些个人问题和异议在社区里“日益繁荣”,但是这些人或许能创造出最好的技术。
+
+他本人就是这样的,然而,他对他在内核邮件列表中用粗话对待开发者和用户的事情感到遗憾。但是彼此间的关系不可能那么轻易就缓和。
+
+社区里的那些人能创造出最好的技术同样也是Torvalds的终极目标和期望。
+
+在英特尔的Linux及开源技术专家Dirk Hohndel的问答环节里,Torvalds 谈了社区里的一些现状和内核开发进展,谈了怎么成为一名内核开发者以及Linux的未来。以下是对话中的一些闪光点。
+
+**1.** “在过去的几年里,我们开发的速度真的没有慢下来。每个版本我们都能从超过1000个人中得到大约100000个补丁,最终效果自然是非常好的。”
+
+**2.** Dirk Hohndel: “你说你希望不只一个子系统的维护人员考虑对x86模型产生兴趣,你是怎么把自己的建议应用到实际中的?
+
+Torvalds: “某一天我可能不得不这么做。目前我还没有收到关于'不主动'的任何投诉。主动是一个内核开发者最重要的东西,不论水平档次...迄今为止,一定程度上要感谢Git,我才能一直保持着前进的动力。”
+
+**3.** “很多人都想要得到市场份额数,包括很多用户,因为那是体现自我价值的一种方式。就我来说,对Linux最重要的事情之一,就是拥有一个一直在不停测试新内核的大社区,这是支持我们处理大量硬件问题的唯一办法。”
+
+**4.** Hohndel: “如果你能改变在过去23年里尼做过的一个决策,你会怎么做?”
+
+Torvalds: “从技术角度来看,没有哪个决定重要到这个程度...有个问题是慢慢地疏远了用户和开发者,而我却恰恰很擅长这个。我说了粗话,但是这不是我想要改变的某一个决定,这些粗话应该有所限制。”
+
+**5.** “大多数人即使他们不一定彼此喜欢,但会尊重他们写出的代码。对于Linux来说这是很重要的一部分。真正重要的是大家都在尽自己所能产出最佳的代码。”
+
+**6.** “在互联网上没人能察觉到渺小的你。”
+
+**7.** “我们说粗话这个传统导致很多人倒胃口,其中有一个原因是当有强烈的意愿和推动力的技术人员要做一些技术上的进步时,你就需要用一些强烈的语言来表达你的意愿。”
+
+**8.** Hohndel: “你跟那个想成为下一个Linus的学生是怎么说的?”
+
+Torvalds: “寻找能让你充满热情的事情并去完成它。”
+
+**9.** “成为一个维护人员很容易,你只需要无限的时间并且回复人们的邮件就行。”
+
+**10.** Hohndel: “给Linux的未来做个大胆的预测吧。”
+
+Torvalds: “我能做的一个最大的猜测,就是我可能会一周更新一次RC1版本。”
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/news/featured-blogs/200-libby-clark/791788-linus-torvalds-best-quotes-from-linuxcon-europe-2014
+
+作者:[Libby Clark][a]
+译者:[ZTinoZ](https://github.com/ZTinoZ)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/community/forums/person/41373/catid/200-libby-clark
+[1]:http://events.linuxfoundation.org/events/linuxcon-europe
diff --git a/published/201411/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md b/published/201411/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md
new file mode 100644
index 0000000000..94bc0c7444
--- /dev/null
+++ b/published/201411/20141017 pidstat - Monitor and Find Statistics for Linux Procesess.md
@@ -0,0 +1,88 @@
+pidstat - 监控并统计Linux进程的数据
+================================================================================
+**pidstat**命令用来监控被Linux内核管理的独立任务(进程)。它输出每个受内核管理的任务的相关信息。pidstat命令也可以用来监控特定进程的子进程。间隔参数用于指定每次报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。
+
+### 如何安装pidstat ###
+
+pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。
+
+在Debian/Ubuntu系统中可以使用下面的命令来安装
+
+ # apt-get install sysstat
+
+CentOS/Fedora/RHEL版本的linux中则使用下面的命令:
+
+ # yum install sysstat
+
+### 使用pidstat ###
+
+使用pidstat不加任何参数等价于加上-p参数,但是只有正在活动的任务会被显示出来。
+
+ # pidstat
+
+
+
+在结果中你能看到如下内容:
+
+- **PID** - 被监控的任务的进程号
+- **%usr** - 当在用户层执行(应用程序)时这个任务的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。
+- **%system** - 这个任务在系统层使用时的cpu使用率。
+- **%guest** - 任务花费在虚拟机上的cpu使用率(运行在虚拟处理器)。
+- **%CPU** - 任务总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。
+- **CPU** - 正在运行这个任务的处理器编号。
+- **Command** - 这个任务的命令名称。
+
+### I/O 统计数据 ###
+
+通过使用-d参数来得到I/O的统计数据。比如:
+
+ # pidstat -d -p 8472
+
+
+
+IO 输出会显示一些内的条目:
+
+- **kB_rd/s** - 任务从硬盘上的读取速度(kb)
+- **kB_wr/s** - 任务向硬盘中的写入速度(kb)
+- **kB_ccwr/s** - 任务写入磁盘被取消的速率(kb)
+
+### 页面失败和内存使用 ###
+
+使用-r标记你能够得到内存使用情况的数据。
+
+
+
+重要的条目:
+
+- **minflt/s** - 从内存中加载数据时每秒出现的小的错误的数目,这些不要求从磁盘载入内存页面。
+- **majflt/s** - 从内存中加载数据时每秒出现的较大错误的数目,这些要求从磁盘载入内存页面。
+- **VSZ** - 虚拟容量:整个进程的虚拟内存使用(kb)
+- **RSS** - 长期内存使用:任务的不可交换物理内存的使用量(kb)
+
+### 举例 ###
+
+**1.** 你可以通过使用下面的命令来监测内存使用
+
+ # pidstat -r 2 5
+
+这会给你5份关于page faults的统计数据结果,间隔2秒。这将会更容易的定位出现问题的进程。
+
+**2.** 显示所有mysql服务器的子进程
+
+ # pidstat -T CHILD -C mysql
+
+**3.** 将所有的统计数据结合到一个便于阅读的单一报告中:
+
+ # pidstat -urd -h
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-command/linux-pidstat-monitor-statistics-procesess/
+
+作者:[Adrian Dinu][a]
+译者:[John](https://github.com/johnhoow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/adriand/
diff --git a/published/201411/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md b/published/201411/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md
new file mode 100644
index 0000000000..bdba913853
--- /dev/null
+++ b/published/201411/20141022 Linux FAQs with Answers--How to change character encoding of a text file on Linux.md
@@ -0,0 +1,52 @@
+Linux 有问必答:在 Linux 如何更改文本文件的字符编码
+================================================================================
+> **问题**:在我的 Linux 系统中有一个编码为 iso-8859-1 的字幕文件,其中部分字符无法正常显示,我想把文本改为 utf8 编码。在 Linux 中, 有没有一个好的工具来转换文本文件的字符编码?
+
+正如我们所知道的那样,电脑只能够处理低级的二进制值,并不能直接处理字符。当一个文本文件被存储时,文件中的每一个字符都被映射成二进制值,实际存储在硬盘中的正是这些“二进制值”。之后当程序打开文本文件时,所有二进制值都被读入并映射回原始的可读字符。只有当所有需要访问这个文件的程序都能够“理解”它的编码,即二进制值到字符的映射时,这个“保存和打开”的过程才能很好地完成,这也确保了可理解数据的往返过程。
+
+如果不同的程序使用不同的编码来处理同一个文件,源文件中的特殊字符就无法正常显示。这里的特殊字符指的是非英文字母的字符,例如带重音的字符(比如 ñ,á,ü)。
+
+然后问题就来了: 1)我们如何确定一个确定的文本文件使用的是什么字符编码? 2)我们如何把文件转换成已选择的字符编码?
+
+### 步骤一 ###
+
+为了确定文件的字符编码,我们使用一个名为 “file” 的命令行工具。因为 file 命令是一个标准的 UNIX 程序,所以我们可以在所有现代的 Linux 发行版中找到它。
+
+运行下面的命令:
+
+ $ file --mime-encoding filename
+
+
+
+### 步骤二 ###
+
+下一步是查看你的 Linux 系统所支持的文件编码种类。为此,我们使用名为 iconv 的工具及 “-l” 选项(L 的小写)来列出所有当前支持的编码。
+
+ $ iconv -l
+
+iconv 工具是 GNU libc 库组成部分,因此它在所有 Linux 发行版中都是开箱即用的。
+
+### 步骤三 ###
+
+在我们在我们的 Linux 系统所支持的编码里面选定了目标编码之后,运行下面的命令来完成编码转换:
+
+ $ iconv -f old_encoding -t new_encoding filename
+
+例如,把 iso-8859-1 编码转换为 utf-8 编码:
+
+ $ iconv -f iso-8859-1 -t utf-8 input.txt
+
+
+
+了解了我们演示的如何使用这些工具之后,你可以像下面这样修复一个受损的字幕文件:
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/change-character-encoding-text-file-linux.html
+
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201411/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md b/published/201411/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md
new file mode 100644
index 0000000000..c91b027cb7
--- /dev/null
+++ b/published/201411/20141022 Linux FAQs with Answers--How to fix fatal error--openssl or aes.h--No such file or directory.md
@@ -0,0 +1,28 @@
+Linux 有问必答:如何修复“fatal error: openssl/aes.h: No such file or directory”
+================================================================================
+> **Question**:我尝试在Linux编译一个程序,但是编译失败并报了一个错,“fatal error: openssl/aes.h: No such file or directory”。我该怎样安装要求的头文件并在我的Linux上解决这个问题?
+
+ fatal error: openssl/aes.h: No such file or directory
+
+如果你在编译时遇到这个错误,这可能是下面的原因:你尝试编译的程序使用OpenSSL,但是需要和OpenSSL链接的文件(库和头文件)在你Linux平台上缺少。(LCTT 译注:其它类似的错误也可以照此处理)
+
+要解决这个问题,你需要安装**OpenSSL 开发包**,这在所有的现代Linux发行版的标准软件仓库中都有。
+
+要在Debian、Ubuntu或者其他衍生版上安装OpenSSL:
+
+ $ sudo apt-get install libssl-dev
+
+要在Fedora、CentOS或者RHEL上安装OpenSSL开发包:
+
+ $ sudo yum install openssl-devel
+
+安装完后,尝试重新编译程序。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/fix-fatal-error-openssl.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201411/20141023 6 Minesweeper Clones for Linux.md b/published/201411/20141023 6 Minesweeper Clones for Linux.md
new file mode 100644
index 0000000000..a4e958dfb2
--- /dev/null
+++ b/published/201411/20141023 6 Minesweeper Clones for Linux.md
@@ -0,0 +1,54 @@
+Linux下的6个扫雷游戏的翻版
+================================================================================
+Windows 下的扫雷游戏还没玩够么?那么来 Linux 下继续扫雷吧——这是一个雷的时代~~
+
+### GNOME Mines ###
+
+这是GNOME扫雷复制品,允许你从3个不同的预定义表大小(8×8, 16×16, 30×16)中选择其一,或者自定义行列的数量。它能以全屏模式运行,带有高分值、耗时和提示。游戏可以暂停和继续。
+
+
+
+### ace-minesweeper ###
+
+这是一个大的软件包中的游戏,此包中也包含有其它一些游戏,如ace-freecel,ace-solitaire或ace-spider。它有一个以小企鹅为特色的图形化界面,但好像不能调整表的大小。该包在Ubuntu中名为ace-of-penguins。
+
+
+
+### XBomb ###
+
+XBomb是针对X Windows系统扫雷游戏,它有三种不同的表尺寸和卡牌风格,包含有不同的外形:六角形、矩形(传统)或三角形。不幸的是,在Ubuntu 14.04中的版本会出现程序分段冲突,所以你可能需要安装另外一个版本。
+[首页][1]。
+
+
+
+([图像来源][1])
+
+### KMines ###
+
+KMines是一个KDE游戏,和GNOME Mines类似,有三个内建表尺寸(简易、中等、困单),也可以自定义,支持主题和高分。
+
+
+
+### freesweep ###
+
+Freesweep是一个针对终端的扫雷复制品,它可以配置表行列、炸弹比例、颜色,也有一个高分表。
+
+
+
+### xdemineur ###
+
+另外一个针对X的图形化扫雷Xdemineur,和Ace-Minesweeper十分相像,带有一个预定义的表尺寸。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.tuxarena.com/2014/10/6-minesweeper-clones-for-linux/
+
+作者:Craciun Dan
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://www.gedanken.org.uk/software/xbomb/
diff --git a/published/201411/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md b/published/201411/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md
new file mode 100644
index 0000000000..4059bbcf00
--- /dev/null
+++ b/published/201411/20141024 How To Upgrade Ubuntu 14.04 To Ubuntu 14.10.md
@@ -0,0 +1,51 @@
+如何从 Ubuntu 14.04 升级到 Ubuntu 14.10
+================================================================================
+
+
+Ubuntu 14.10已于前段时间发布。想知道**如何从 Ubuntu 14.04 升级到 Ubuntu 14.10**么?别担心,这很容易做到。事实上,只要网络连接速度好,升级只是点击几下鼠标的事情而已。
+
+### 你需要从 Ubuntu 14.04 切换到 Ubuntu 14.10 么? ###
+
+在你升级到Ubuntu 14.10之前,请确定你真的想为升级 14.10 而抛弃 Ubuntu 14.04。一个很重要的原因是你不能从Ubuntu 14.10 回归到14.04。 你需要完全重新安装。
+
+Ubuntu 14.04是长期支持(LTS)版本。这意味着有更多的稳定性和更长的支持周期。如果升级到14.10,你将被迫在9个月后从Ubuntu 14.10 升级到15.04,而14.04将会持续3年以上。
+
+此外,目前Ubuntu 14.10没有很多的新功能使吸引用户切换到14.10。当然了,你肯定会得到最前沿的操作系统。所以,在这之前是否升级到Ubuntu 14.10是你自己的决定。
+
+### 从Ubuntu 14.04 升级到 Ubuntu 14.10 ###
+
+要从Ubuntu 14.04 升级到 Ubuntu 14.10,遵循下面的步骤:
+
+#### 步骤 1: ####
+
+打开 **软件和更新**.
+
+
+
+进入**更新**选项卡。这里要确保**Ubuntu有新版本时通知我** 设置成**对于任何新版本**。默认Ubuntu只会在另一个LTS发布时通知你。你必须要把它改成在任何中间版本都升级。
+
+
+
+#### 步骤 2: ####
+
+现在运行 **软件升级**。
+
+
+
+升级完成后,它应该会提示一个可用的新版本。点击升级,接着按照提示的步骤来。
+
+
+
+我希望本篇教程可以帮助你**从 Ubuntu 14.04 升级到 Ubuntu 14.10**。虽然本教程是为Ubuntu写的,但是你可以用同样的步骤升级到 Xubuntu 14.10、Kubuntu 14.10 或者Lubuntu。敬请期待下一篇Ubuntu 14.10相关文章。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/upgrade-ubuntu-14-04-to-14-10/
+
+作者:[Abhishek][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
diff --git a/published/201411/20141024 How To Upgrade Ubuntu 14.04 Trusty To Ubuntu 14.10 Utopic.md b/published/201411/20141024 How To Upgrade Ubuntu 14.04 Trusty To Ubuntu 14.10 Utopic.md
new file mode 100644
index 0000000000..8a5102ef8f
--- /dev/null
+++ b/published/201411/20141024 How To Upgrade Ubuntu 14.04 Trusty To Ubuntu 14.10 Utopic.md
@@ -0,0 +1,104 @@
+如何将 Ubuntu14.04 安全的升级到14.10
+================================================================================
+
+如果想从Ubuntu14.04/13.10/13.04/12.10/12.04或者更老的版本升级到14.10,只要遵循下面给出的步骤。注意,你不能直接从13.10升级到14.10。你应该先将13.10升级到14.04在从14.04升级到14.10。下面是详细步骤。
+
+下面的步骤不仅能用于14.10,也兼容于一些像Lubuntu14.10,Kubuntu14.10和Xubuntu14.10等的Ubuntu衍生版本
+
+**重要**:在升级之前,保险起见,不要忘了将你的数据在U盘或外部硬盘上保存一下。
+
+### 桌面升级 ###
+
+在升级之前,我们要先更新系统。打开终端输入以下命令
+
+ sudo apt-get update && sudo apt-get dist-upgrade
+
+上面的命令会下载安装最新的包。
+
+重启你的电脑以完成更新。
+
+然后输入下面的命令来升级到新的可获得的版本
+
+ sudo update-manager -d
+
+软件更新器会出现并且搜索新的发行版。
+
+几秒钟之后,你会在屏幕中看到如下字样:**ubuntu14.10现在可以获得(你现在是14.04系统)**。点击升级按钮开始升级。
+
+
+
+软件更新器会提示你确定更新。点击开始更新开始安装14.10
+
+
+
+**请注意**:这是beta版本。不要在生产用的机器上安装。
+
+
+
+几分钟之后,软件更新器会提醒你一些将被移除的和将被安装的软件包的详细信息。点击**开始升级**继续。确保你更新时在稳定的网络下。
+
+
+
+现在,更新程序会开始获取新的软件包。获取速度取决于你的网速。
+
+
+
+
+
+之后,你会被询问是否移除不必要的应用程序。最后,点击**重启**来完成整个升级过程。
+
+这时侯,恭喜你已经成功的升级到了ubuntu14.10
+
+
+
+你可以开始使用新的ubuntu版本了。
+
+### 服务器升级 ###
+
+从ubuntu14.04的服务器升级到14.10的服务器,采用下面的步骤。
+
+安装update-manager-core 这个包如果之前没唷安装的话:
+
+ sudo apt-get install update-manager-core
+
+编辑 /etc/update-manager/release-upgrades这个文件。
+
+ sudo nano /etc/update-manager/release-upgrades
+
+像下面那样设置Prompt=normal或者Prompt=lts
+
+ # Default behavior for the release upgrader.
+
+ [DEFAULT]
+ # Default prompting behavior, valid options:
+ #
+ # never - Never check for a new release.
+ # normal - Check to see if a new release is available. If more than one new
+ # release is found, the release upgrader will attempt to upgrade to
+ # the release that immediately succeeds the currently-running
+ # release.
+ # lts - Check to see if a new LTS release is available. The upgrader
+ # will attempt to upgrade to the first LTS release available after
+ # the currently-running one. Note that this option should not be
+ # used if the currently-running release is not itself an LTS
+ # release, since in that case the upgrader won't be able to
+ # determine if a newer release is available.
+ Prompt=normal
+
+现在可以通过下面的命令来更新你的服务系统了。
+
+ sudo do-release-upgrade -d
+
+直到屏幕提示你已完成。
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/upgrade-ubuntu-14-04-trusty-ubuntu-14-10-utopic/
+
+作者:SK
+译者:[johnhoow](https://github.com/johnhoow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://wiki.ubuntu.com/UtopicUnicorn/ReleaseSchedule
diff --git a/published/201411/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md b/published/201411/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md
new file mode 100644
index 0000000000..b01f4725d8
--- /dev/null
+++ b/published/201411/20141024 How to Upgrade Ubuntu 14.04 LTS to Ubuntu 14.10.md
@@ -0,0 +1,32 @@
+小白技巧:如何从Ubuntu 14.04 LTS 升级到Ubuntu 14.10
+================================================================================
+
+
+**想知道怎样从Ubuntu 14.04 LTS 升级到Ubuntu 14.10么? 这就是我们要讲的**
+
+Canonical不会强迫14.04的用户升级到14.10这个中间版本
+
+但这并不意味着 **你**不能将你的坚如磐石的Trusty Tahr升级到(有点让人印象深刻的)Utopic Unicorn。
+
+要得到非LTS版本的Ubuntu发布通知,你需要在软件和更新工具中选择。这个很直接。
+
+- 打开 ‘**软件和更新**’
+- 选择 ‘**更新**’ 选项
+- 进入‘**有新版本Ubuntu时通知我**’的选项
+- 在下拉菜单选项中将‘**对于长期支持版本**’改成‘**对于任何版本**’
+
+切换后你会想快点更新。
+
+现在准备就绪!Canonical此刻会弹出“升级”提示给用户(相比较普通的ISO镜像而言经常延迟)可以通过软件更新工具更新到14.10了。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/10/upgrade-ubuntu-14-04-to-14-10
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
\ No newline at end of file
diff --git a/published/201411/20141024 SUSE Linux--Zypper Command Examples.md b/published/201411/20141024 SUSE Linux--Zypper Command Examples.md
new file mode 100644
index 0000000000..f43cb82eef
--- /dev/null
+++ b/published/201411/20141024 SUSE Linux--Zypper Command Examples.md
@@ -0,0 +1,168 @@
+SUSE Linux – Zypper 命令示例
+================================================================================
+Zypper是SuSE Linux中用于安装,升级,卸载,管理仓库、进行各种包查询的命令行接口。本篇将会讨论zypper的几个不同命令的例子。
+
+语法:
+
+ # zypper [--global-opts] [--command-opts] [command-arguments]
+
+中括号中的部分可以不需要。执行zypper最简单的方法是输入 zypper 及 。
+
+### 例子1:列出可用的全局选项和命令 ###
+
+打开终端,输入zypper并按回车,它会显示所有可用的全局选项和命令。
+
+ linux-xa3t:~ # zypper
+
+### 例子2:获得zypper的某个命令的帮助 ###
+
+语法: zypper help [command]
+
+ linux-xa3t:~ # zypper help remove
+ remove (rm) [options] ...
+
+ Remove packages with specified capabilities.
+ A capability is NAME[.ARCH][OP], where OP is one of <, <=, =, >=, >.
+
+ Command options:
+ -r, --repo Load only the specified repository.
+ -t, --type Type of package (package, patch, pattern, product).
+
+ Default: package.
+ -n, --name Select packages by plain name, not by capability.
+ -C, --capability Select packages by capability.
+ --debug-solver Create solver test case for debugging.
+ -R, --no-force-resolution Do not force the solver to find solution,let it ask.
+ --force-resolution Force the solver to find a solution (even an aggressive one).
+ -u, --clean-deps Automatically remove unneeded dependencies.
+ -U, --no-clean-deps No automatic removal of unneeded dependencies.
+ -D, --dry-run Test the removal, do not actually remove.
+
+### 例子3:打开zypper shell/会话 ###
+
+ linux-xa3t:~ # zypper sh
+ zypper>
+
+或
+
+ linux-xa3t:~ # zypper shell
+ zypper>
+
+### 例子4:列出已定义的仓库 ###
+
+ linux-xa3t:~ # zypper repos
+
+
+
+或
+
+ linux-xa3t:~ # zypper lr
+
+#### 4.1) 以表格的形式列出仓库的URI ####
+
+
+
+#### 4.2) 以优先级列出仓库 ####
+
+ linux-xa3t:~ # zypper lr -p
+
+
+
+### 例子5:刷新仓库 ###
+
+ linux-xa3t:~ # zypper ref
+ Repository 'openSUSE-13.1-Non-Oss' is up to date.
+ Repository 'openSUSE-13.1-Oss' is up to date.
+ Repository 'openSUSE-13.1-Update' is up to date.
+ Repository 'openSUSE-13.1-Update-Non-Oss' is up to date.
+ All repositories have been refreshed.
+
+### 例子6:修改zypper仓库 ###
+
+zypper仓库可以通过别名、数字或者URI或者通过‘–all、 –remote、 –local、 –medium-type’这些选项修改。
+
+linux-xa3t:~ # zypper mr -d 6 #禁用6号仓库
+linux-xa3t:~ # zypper mr -rk -p 70 upd #启用自动书信并为‘upd’仓库设置rpm文件‘缓存’,且设置它的优先级为70
+linux-xa3t:~ # zypper mr -Ka #为所有的仓库禁用rpm文件缓存
+linux-xa3t:~ # zypper mr -kt #为远程仓库设置rpm文件缓存
+
+### 例子7:添加仓库 ###
+
+语法: zypper addrepo 或者 zypper ar <仓库的URL或者别名>
+
+ linux-xa3t:~ # zypper ar http://download.opensuse.org/update/13.1/ update
+ Adding repository 'update' .............................................[done]
+ Repository 'update' successfully added
+ Enabled: Yes
+ Autorefresh: No
+ GPG check: Yes
+ URI: http://download.opensuse.org/update/13.1/
+
+### 例子8:移除仓库 ###
+
+语法: zypper removerepo <仓库名> <别名>
+
+或者
+
+zypper rr <仓库名> <别名>
+
+ linux-xa3t:~ # zypper rr openSUSE-13.1-1.10 openSUSE-13.1-1.10
+ Removing repository 'openSUSE-13.1-1.10' ............................[done]
+ Repository 'openSUSE-13.1-1.10' has been removed.
+
+### 例子9:安装软件包 ###
+
+语法: zypper install <包名> 或者 zypper in <包名>
+
+ linux-xa3t:~ # zypper install vlc
+
+### 例子10:卸载软件包 ###
+
+语法: zypper remove <包名> 或者 zypper rm <包名>
+
+ linux-xa3t:~ # zypper remove sqlite
+
+### 例子11:导出和导入仓库 ###
+
+导出仓库的语法 : zypper repos –export 或者 zypper lr -e
+
+ linux-xa3t:~ # zypper lr --export repo-backup/back.repo
+ Repositories have been successfully exported to repo-backup/back.repo.
+
+导入仓库的语法 :
+
+ linux-xa3t:~ # zypper ar repo-backup/back.repo
+
+### 例子12:更新一个软件包 ###
+
+语法: zypper update <包名> 或者 zypper up <包名>
+
+ linux-xa3t:~ # zypper update bash
+
+### 例子13:安装源码包 ###
+
+语法: zypper source-install <源码包> 或 zypper si <源码包>
+
+ linux-xa3t:~ # zypper source-install zypper
+
+### 例子14:只安装依赖包 ###
+
+例子13中的命令会安装和构建特定包的依赖。如果你想要安装源码包就用-D选项
+
+ # zypper source-install -D package_name
+
+只安装依赖就使用-d
+
+ # zypper source-install -d package_name
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/suse-linux-zypper-command-examples/
+
+作者:[Pradeep Kumar][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
\ No newline at end of file
diff --git a/published/201411/20141027 Handy Disk Image Tools.md b/published/201411/20141027 Handy Disk Image Tools.md
new file mode 100644
index 0000000000..418af42ed2
--- /dev/null
+++ b/published/201411/20141027 Handy Disk Image Tools.md
@@ -0,0 +1,172 @@
+Linux 下易用的光盘镜像管理工具
+================================================================================
+磁盘镜像包括了整个磁盘卷的文件或者是全部的存储设备的数据,比如说硬盘,光盘(DVD,CD,蓝光光碟),磁带机,USB闪存,软盘。一个完整的磁盘镜像应该包含与原来的存储设备上一样完整、准确,包括数据和结构信息。
+
+磁盘镜像文件格式可以是采用开放的标准,像ISO格式的光盘镜像,或者是专有的软件应用程序的特定格式。"ISO"这个名字来源于用CD存储的ISO 9660文件系统。但是,当用户转向Linux的时候,经常遇到这样的问题,需要把专有的的镜像格式转换为开放的格式。
+
+磁盘镜像有很多不同的用处,像烧录光盘,系统备份,数据恢复,硬盘克隆,电子取证和提供操作系统(即LiveCD/DVDs)。
+
+有很多不同的方法可以把ISO镜像挂载到Linux系统下。强大的mount 命令给我们提供了一个简单的解决方案。但是如果你需要很多工具来操作磁盘镜像,你可以试一试下面的这些强大的开源工具。
+
+很多工具还没有看到最新的版本,所以如果你正在寻找一个很好用的开源工具,你也可以加入,一起来为开源做出一点贡献。
+
+### Furius ISO Mount
+
+
+
+
+Furius ISO Mount是一个简单易用的开源应用程序,可以用来挂载镜像文件,它支持直接打开ISO,IMG,BIN,MDF和NRG格式的镜像而不用把他们烧录到磁盘。
+
+特性:
+
+- 支持自动挂载ISO, IMG, BIN, MDF and NRG镜像文件
+- 支持通过 loop 方式挂载 UDF 镜像
+- 自动在根目录创建挂载点
+- 自动解挂镜像文件
+- 自动删除挂载目录,并返回到主目录之前的状态
+- 自动记录最近10次挂载历史
+- 支持挂载多个镜像文件
+- 支持烧录ISO文件及IMG文件到光盘
+- 支持MD5校验和SHA1校验
+- 自动检索之前解挂的镜像
+- 自动创建手动挂载和解挂的日志文件
+- 语言支持(目前支持保加利亚语,中文(简体),捷克语,荷兰语,法语,德语,匈牙利语,意大利语,希腊语,日语,波兰语,葡萄牙语,俄语,斯洛文尼亚语,西班牙语,瑞典语和土耳其语)
+
+---
+- 项目网址: [launchpad.net/furiusisomount/][1]
+- 开发者: Dean Harris (Marcus Furius)
+- 许可: GNU GPL v3
+- 版本号: 0.11.3.1
+
+
+###fuseiso
+
+
+
+fuseiso 是用来挂载ISO文件系统的一个开源的安全模块。
+
+使用FUSE,我们完全可以在用户空间里运行一个完整的文件系统。
+
+特性:
+
+- 支持读ISO,BIN和NRG镜像,包括ISO 9660文件系统
+- 支持普通的ISO 9660级别1和级别2
+- 支持一些常用的扩展,想Joliet,RockRidge和zisofs
+- 支持非标准的镜像,包括CloneCD's IMGs 、Alcohol 120%'s MDFs 因为他们的格式看起来恰好像BIN镜像一样
+
+---
+
+- 项目网址: [sourceforge.net/projects/fuseiso][2]
+- 开发者: Dmitry Morozhnikov
+- 许可: GNU GPL v2
+- 版本号: 20070708
+
+
+###iat
+
+
+
+iat(Iso 9660分析工具)是一个通用的开源工具,能够检测很多不同镜像格式文件的结构,包括BIN,MDF,PDI,CDI,NRG和B5I,并转化成ISO 9660格式.
+
+特性:
+
+- 支持读取(输入)NRG,MDF,PDI,CDI,BIN,CUE 和B5I镜像
+- 支持用 cd 刻录机直接烧录光盘镜像
+- 输出信息包括:进度条,块大小,ECC扇形分区(大小),头分区(大小),镜像偏移地址等等
+
+---
+
+- 项目网址: [sourceforge.net/projects/iat.berlios][3]
+- 开发者: Salvatore Santagati
+- 许可: GNU GPL v2
+- 版本号: 0.1.3
+
+
+###AcetoneISO
+
+
+
+AcetoneISO 是一个功能丰富的开源图形化应用程序,用来挂载和管理CD/DVD镜像。
+
+当你打开这个程序,你就会看到一个图形化的文件管理器用来挂载镜像文件,包括专有的镜像格式,也包括像ISO, BIN, NRG, MDF, IMG 等等,并且允许您执行一系列的操作。
+
+AcetoneISO是用QT 4写的,也就是说,对于基于QT的桌面环境能很好的兼容,像KDE,LXQT或是Razor-qt。
+
+这个软件适用于所有正在寻找Linux版本的Daemon Tools的人。
+
+特性:
+
+- 支持挂载大多数windows 镜像,界面简洁易用
+- 可以将其所有支持镜像格式转换到ISO,或者是从中提取内容
+- 加密,压缩,解压任何类型的镜像
+- 转换DVD成xvid avi,支持将各种常规视频格式转换成xvid avi
+- 从视频里提取声音
+- 从不同格式中提取镜像中的文件,包括bin mdf nrg img daa dmg cdi b5i bwi pdi
+- 用Kaffeine / VLC / SMplayer播放DVD镜像,可以从Amazon 自动下载封面。
+- 从文件夹或者是CD/DVD生成ISO镜像
+- 可以做镜像的MD5校验,或者是生成镜像的MD5校验码
+- 计算镜像的ShaSums(128,256和384位)
+- 支持加密,解密一个镜像文件
+- 按兆数分拆和合并镜像
+- 以高压缩比将镜像压缩成7z 格式
+- 翻录PSX CD成BIN格式,以便在ePSXe/pSX模拟器里运行
+- 为BIN和IMG格式恢复丢失的 CUE 文件
+- 把MAC OS的DMG镜像转换成可挂载的镜像
+- 从指定的文件夹中挂载镜像
+- 创建数据库来管理一个大的镜像集合
+- 从CD/DVD 或者是ISO镜像中提取启动文件
+- 备份CD成BIN镜像
+- 简单快速的把DVD翻录成Xvid AVI
+- 简单快速的把常见的视频(avi, mpeg, mov, wmv, asf)转换成Xvid AVI
+- 简单快速的把FLV 换换成AVI 格式
+- 从YouTube和一些视频网站下载视频
+- 提取一个有密码的RAR存档
+- 支持转换任何的视频到PSP上
+- 国际化的语言支持支持(英语,意大利语,波兰语,西班牙语,罗马尼亚语,匈牙利语,德语,捷克语和俄语)
+
+---
+
+- 项目网址: [sourceforge.net/projects/acetoneiso][4]
+- 开发者: Marco Di Antonio
+- 许可: GNU GPL v3
+- 版本号: 2.3
+
+
+###ISO Master
+
+
+
+ISO Master是一个开源、易用的、图形化CD 镜像编辑器,适用于Linux 和BSD 。可以从ISO 里提取文件,给ISO 里面添加文件,创建一个可引导的ISO,这些都是在一个可视化的用户界面完成的。可以打开ISO,NRG 和一些MDF文件,但是只能保存成ISO 格式。
+
+ISO Master 是基于bkisofs 创建的,这是一个简单、稳定的阅读,修改和编写ISO 镜像的软件库,支持Joliet, RockRidge 和EL Torito扩展,
+
+特性:
+
+- 支持读ISO 格式文件(ISO9660, Joliet, RockRidge 和 El Torito),大多数的NRG 格式文件和一些单轨道的MDF文件,但是,只能保存成ISO 格式
+- 创建和修改一个CD/DVD 格式文件
+- 支持CD 格式文件的添加或删除文件和目录
+- 支持创建可引导的CD/DVD
+- 国际化的支持
+
+---
+
+- 项目网址: [www.littlesvr.ca/isomaster/][5]
+- 开发者: Andrew Smith
+- 许可: GNU GPL v2
+- 版本号: 1.3.11
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/20141025082352476/DiskImageTools.html
+
+作者:Frazer Kline
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://launchpad.net/furiusisomount/
+[2]:http://sourceforge.net/projects/fuseiso/
+[3]:http://sourceforge.net/projects/iat.berlios/
+[4]:http://sourceforge.net/projects/acetoneiso/
+[5]:http://www.littlesvr.ca/isomaster/
\ No newline at end of file
diff --git a/published/201411/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md b/published/201411/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md
new file mode 100644
index 0000000000..2bfad6b78e
--- /dev/null
+++ b/published/201411/20141027 How to download an ISO image with BitTorrent fast and safely from the command line.md
@@ -0,0 +1,126 @@
+如何在命令行下使用 BitTorrent 下载 ISO 镜像
+================================================================================
+如果你喜欢尝试最新版甚至是 beta 版的 Linux 发行版来满足你的好奇心,并始终保持是最新版,那么你就会时常遇到下载较大的 ISO 镜像的烦恼。提供 ISO 的人通常会使用 ISO 镜像的 .torrent 文件来减少服务器的带宽消耗。P2P 下载对于使用者来说好处也是很明显的(就下载速度而言),特别是当流行的 Linux 发行版有新版本发布并上传供下载,每个人同时在下载做种的时候。
+
+Ubuntu 14.10 (utopic Unicorn) 这刚刚发布不久,因此现在在 BitTorrent 网络上应该有很多种子可以下载该版本。虽然有很多基于图形界面的 BitTorrent 客户端,不过我将展示**如何通过基于简单的命令行界面的 BitTorrent 客户端下载 ISO 镜像**,如果是在远程无图形界面的服务器上的话这会很方便。在[另外一篇教程][4]里面,我还会演示**如何验证已下载的 ISO 镜像的完整性**。
+
+我今天要使用的基于命令行的 BitTorrent 客户端是 transmission-cli。正如你可能知道的那样,[Transmission][1] 是最流行的基于图形界面的 BitTorrent 客户端之一。transmission-cli 是它的简装的命令行版本。
+
+### 在 Linux 上安装 Transmission-cli ###
+
+要安装 **transmission-cli**,你不必安装完整的基于图形界面的 Transmission,这是听起来不错。
+
+在 Debian、Ubuntu 或者是基于它们的发行版上:
+
+ $ sudo apt-get install transmission-cli
+
+在 Fedora 上:
+
+ $ sudo yum install transmission-cli
+
+在 CentOS 或者 RHEL 上(在安装了 [EPEL 仓库][2]之后):
+
+ $ sudo yum install transmission-cli
+
+### 通过 transmission-cli 快速地下载 ISO 镜像 ###
+
+**transmission-cli**的使用非常简单。如果你懒于学习它的命令行选项,所有你要做的事情就是下载 .torrent 文件并运行命令。这会自动寻找可用的种子并从那里下载 ISO 文件。
+
+ $ wget http://releases.ubuntu.com/14.10/ubuntu-14.10-desktop-amd64.iso.torrent
+ $ transmission-cli ubuntu-14.10-desktop-amd64.iso.torrent
+
+
+
+一旦 ISO 镜像下载完成,它默认存储在 ~/Downloads 文件夹中。下载 1GB 的 Ubuntu ISO 镜像只用了我 5 分钟的时间。
+
+
+
+程序下载 ISO 镜像完成后,你会在终端中看到“状态由未完成变为完成”的提示。要注意的是 transmission-cli 会继续运行并做种以便于其他下载者下载。可以按 Ctrl+C 来退出。
+
+### 为重复使用定制下载选项 ###
+
+如果你经常使用 **transmission-cli** ,那么值得花时间来熟悉一下它的命令行选项。
+
+- "-w /path/to/download-directory" 选项指定下载文件保存的文件夹。
+
+- "-f /path/to/finish-script" 选项设置当前下载完成后要运行的脚本。注意 transmission-cli 默认在文件下载完成后继续运行。如果你想在成功下载完成后自动关闭 transmission-cli,你可以使用这个选项。下面这个简单的脚本可以完成这个功能。
+
+ #!/bin/sh
+ sleep 10
+ killall transmission-cli
+
+- 如果你想为 transmission-cli 分配上传/下载带宽限制,你可以使用 “-d ” 和 “-u ” 选项。如果你不想限制带宽使用,仅仅指定 “D” 或 “-U” 选项即可。
+
+这有一个更高级的 transmission-cli 使用范例。在这个例子中,命令行客户端在成功下载后自动退出。下载速度不限而上传速度限制为 50KB/s。
+
+ $ transmission-cli -w ~/iso -D -u 50 -f ~/finish.sh ubuntu-14.10-desktop-amd64.iso.torrent
+
+
+
+### 验证已下载的 ISO 镜像的完整性 ###
+
+当你下载了一个 ISO 镜像,特别是从 BitTorrent 网络上很多未知的种子处下载的,通常建议要验证下载镜像的完整性。
+
+对于 Ubuntu 发行版的情况, Canonical 提供了几个供验证使用的验校文件(如 MD5SUM, SHA1SUMS 和 SHA256SUMS)。在这个例子中我们使用 SHA256SUMS。
+
+
+
+首先,下载下面两个文件。
+
+ $ wget http://releases.ubuntu.com/14.10/SHA256SUMS
+ $ wget http://releases.ubuntu.com/14.10/SHA256SUMS.gpg
+
+第一个文件是 ISO 镜像的 SHA256 验校文件,而第二个文件(*.gpg)是验校文件的签名。第二个文件的目的是验证验校文件本身的有效性。
+
+我们通过运行下面的命令来验证 SHA256SUMS 文件的有效性。
+
+ $ gpg --verify SHA256SUMS.gpg SHA256SUMS
+
+----------
+
+ gpg: Signature made Thu 23 Oct 2014 09:36:00 AM EDT using DSA key ID FBB75451
+ gpg: Can't check signature: public key not found
+
+如果你得到上面的错误信息,是因为你还没有导入生成这个签名的公共密钥。因此我们现在导入需要的公共密钥。
+
+这样做之前,你需要知道公共密钥的 “key ID”,而这在上面的 gpg 命令的输出中有显示。在这个例子中,密钥 ID 时 “FBB75451”。运行下面的命令来从官方 Ubuntu 密钥服务器导入公共密钥。
+
+ $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys FBB75451
+
+
+
+既然公共密钥已经被导入,我们可以继续并重新运行之前的命令来验证签名。
+
+ gpg --verify SHA256SUMS.gpg SHA256SUMS
+
+
+
+这次你没有看到 “public key not found” 的错误信息。如果 SHA256SUMS 文件时有效的,你会看到 “Good signature from ” 的信息。注意到你还看到一个 “This key is not certified with a trusted signature” 的警告信息。基本上这个警告信息是告诉你对导入的公共密钥没有明确信任。要避免这个警告,你可以选择指定[完全信任][3]导入的公共密钥,但你应该只有在通过其他方式审查了这个密钥之后才这样做。否则的话,你可以暂时忽略这个警告。
+
+在验证了 SHA256SUMS 文件的完整性后,最后一个步骤是比较已下载 ISO 文件的 SHA256 验校和和 SHA256SUMS 文件中对应的验校值。你可以使用 sha256sum 命令行工具来完成这个步骤。
+
+为方便起见,下面一行命令比较 SHA256 验校和并报告结果。
+
+ $ sha256sum -c <(grep ubuntu-14.10-desktop-amd64.iso SHA256SUMS)
+
+----------
+
+ ubuntu-14.10-desktop-amd64.iso: OK
+
+如果你看到了上面的输出信息,这表明两个验校值相匹配。这样已下载 ISO 镜像的完整性就被成功的验证了。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/download-iso-image-bittorrent-command-line.html
+
+作者:[Dan Nanni][a]
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:https://www.transmissionbt.com/
+[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
+[3]:http://xmodulo.com/verify-authenticity-integrity-downloaded-file.html
+[4]:http://xmodulo.com/download-iso-image-bittorrent-command-line.html
diff --git a/published/201411/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md b/published/201411/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md
new file mode 100644
index 0000000000..5fe337a8d1
--- /dev/null
+++ b/published/201411/20141029 How to Install MariaDB in Ubuntu 14.04 LTS.md
@@ -0,0 +1,52 @@
+如何在Ubuntu 14.04 LTS上安装MariaDB
+================================================================================
+MariaDB是一个开源数据库且100%与MySQL兼容,目标是替代MySQL数据库。
+
+### MariaDB的背景 : ###
+
+2008年,MySQL被后来被Oracle在2010年收购的**Sun Microsystems**收购了。 最初被Sun公司的收购由于符合项目的需要而受到MySQL社区的欢呼,但是这种情绪并没有持续太久,接下来被Oracle的收购,不幸期望远远低于预期。许多MySql的开发者离开了Sun和Oracle公司开始新的项目。在他们中间就有MySQL的创建者以及项目长期技术带头人之一的**Michael ‘Monty’ Widenius**。Monty和他的团队创建了MySQL的一个fork版本并且命名它为**MariaDB**。
+
+本篇我们会讨论如何在Ubuntu上安装MariaDB。默认上MariaDB的包并没有在Ubuntu仓库中。要安装MariaDB,我们首先要设置MariaDB仓库。
+
+#### 设置 MariaDB 仓库 ####
+
+ $ sudo apt-get install software-properties-common
+ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
+ $ sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'
+
+#### 安装 MariaDB : ####
+
+ $ sudo apt-get update
+ $ sudo apt-get install mariadb-server
+
+在安装中,你会被要求设置MariaDB的root密码。
+
+
+
+#### 从命令行连接到MariaDB : ####
+
+ linuxtechi@mail:~$ mysql -uroot -p
+ Enter password:
+ Welcome to the MariaDB monitor. Commands end with ; or \g.
+ Your MariaDB connection id is 40
+ Server version: 10.0.14-MariaDB-1~trusty-log mariadb.org binary distribution
+ Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
+ Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+ MariaDB [(none)]>
+
+#### Maria DB 服务 ####
+
+ $ sudo /etc/init.d/mysql stop
+ $ sudo /etc/init.d/mysql start
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/install-mariadb-in-ubuntu/
+
+作者:[Pradeep Kumar][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
\ No newline at end of file
diff --git a/published/201411/20141029 How to create and manage LXC containers on Ubuntu.md b/published/201411/20141029 How to create and manage LXC containers on Ubuntu.md
new file mode 100644
index 0000000000..62407e8021
--- /dev/null
+++ b/published/201411/20141029 How to create and manage LXC containers on Ubuntu.md
@@ -0,0 +1,141 @@
+教你在 Ubuntu 上使用 LXC 容器
+================================================================================
+使用“容器”来保证主机环境的安全性,这个概念早在十年前就已经存在(例如 FreeBSD 的 jail 虚拟化技术),但是直到最近,随着部署云架构需求越来越多,像 LXC 和 [Docker][1] 这种 Linux 下的容器才成为被关注的焦点。当然,由于主流厂商(云服务商如亚马逊主推 AWS,微软主推 Azure;发行版如红帽、Ubuntu等)组成的强大靠山,[Docker][2] 已经被放在媒体的聚光灯下面,其实,Docker 里面所谓的“容器”技术是由 LXC 提供的。
+
+你只是一个普通的 Linux 用户,那 Docker/LXC 能为你带来什么好处呢?容器可以将你的应用在不同的 Linux 发行版之间迁移。想像一下这个场景:你正在用的发行版是 Debian,你喜欢它的稳定性,同时你又想玩一款最新的 Ubuntu 游戏,你不需要在电脑上装双系统然后重启进入 Ubuntu,也不需要在 Debian 上跑一个耗资源的 Ubuntu 虚拟机,你只需要简单地生成一个 Ubuntu 容器就够了。
+
+抛开 Docker 的好处不谈,让我们聊一下 LXC 容器的好处:我可以使用 libvirt 提供的接口来管理 LXC,这些接口和 Docker 没有任何关系。如果你有使用基于 libvirt 库的管理工具(例如 virt-manager 和 virsh),你就可以使用它们来管理 LXC 容器。
+
+在这篇教程中,我只介绍标准 LXC 容器管理工具的命令行操作,来教你**如何在 Ubuntu 下创建和管理 LXC 容器**。
+
+### Ubuntu 下安装 LXC ###
+
+使用下面的命令安装 LXC 在用户态的工具:
+
+ $ sudo apt-get install lxc
+
+然后检查当前内核是否支持 LXC。如果所有结果都是“enable”,说明内核支持:
+
+ $ lxc-checkconfig
+
+
+
+安装完 LXC 工具后,就能看到 LXC 自动创建了一块桥接网卡(lxcbr0,可以在 /etc/lxc/default.conf 中设置)。
+
+
+
+当你创建了 LXC 容器后,它的网口会自动链接到这个桥接网卡上,然后这个容器就能和外部世界通信了。
+
+### 创建 LXC 容器 ###
+
+为了在指定环境下(比如 Debian Wheezy 64位)创建 LXC 容器,你需要一个相应的 LXC 模板。幸运的是 LXC 提供的工具集成了一整套现成的 LXC 模板,你可以在 /usr/share/lxc/templates 目录下找到它们。
+
+ $ ls /usr/share/lxc/templates
+
+
+
+一个 LXC 模板实质上就是一个脚本,用于创建指定环境下的容器。当你创建 LXC 容器时,你需要用到它们。
+
+比如你要新建 Ubuntu 容器,使用下面的命令即可:
+
+ $ sudo lxc-create -n -t ubuntu
+
+
+
+默认情况下,这个命令会创建一个最小的 Ubuntu 环境,版本号与你的宿主机一致,我这边是“活泼的蝾螈”(版本号是13.10),64位。
+
+当然你也可以创建任何你喜欢的版本,只要在命令里面加一个版本参数即可。举个例子,创建 Ubuntu 14.10 的容器:
+
+ $ sudo lxc-create -n -t ubuntu -- --release utopic
+
+这个命令就会下载安装指定环境下的软件包,创建新容器。整个过程需要几分钟时间,与容器的类型有关,所以,你可能需要耐心等待。
+
+
+
+下载安装完所有软件包后,LXC 容器镜像就创建完成了,你可以看到默认的登录界面。容器被放到 /var/lib/lxc/<容器名> 这个目录下,容器的根文件系统放在 /var/lib/lxc/<容器名>/rootfs 目录下。
+
+创建过程中下载的软件包保存在 /var/cache/lxc 目录下面,当你想另外建一个一样的容器时,可以省去很多下载时间。
+
+用下面的命令看看主机上所有的 LXC 容器:
+
+ $ sudo lxc-ls --fancy
+
+----------
+
+ NAME STATE IPV4 IPV6 AUTOSTART
+ ------------------------------------
+ test-lxc STOPPED - - NO
+
+使用下面的命令启动容器。参数“-d”将容器作为后台进程打开。如果没有指定这个参数,你可以在控制台界面上直接把容器的运行程序关闭(LCTT译注:Ctrl+C组合键)。
+
+ $ sudo lxc-start -n -d
+
+打开容器后,看看状态:
+
+ $ sudo lxc-ls --fancy
+
+----------
+
+ NAME STATE IPV4 IPV6 AUTOSTART
+ -----------------------------------------
+ lxc RUNNING 10.0.3.55 - NO
+
+容器状态是“运行中”,容器 IP 是10.0.3.55。
+
+你也可以看到容器的网络接口(比如我这里是 vethJ06SFL)自动与 LXC 内部网桥(lxcbr0)连上了:
+
+ $ brctl show lxcbr0
+
+
+
+### 管理 LXC 容器 ###
+
+我们已经学习了怎么创建和启动 LXC 容器,现在来看看怎么玩一个正在运行着的容器。
+
+第一步:打开容器控制台:
+
+ $ sudo lxc-console -n
+
+
+
+使用“Crtl+a q”组合键退出控制台。
+
+停止、删除容器:
+
+ $ sudo lxc-stop -n
+ $ sudo lxc-destroy -n
+
+复制容器,用下面的命令:
+
+ $ sudo lxc-stop -n
+ $ sudo lxc-clone -o -n
+
+### 常见问题 ###
+
+这个小节主要介绍你们在使用 LXC 过程中碰到过的问题。
+
+1. 创建 LXC 容器时遇到下面的错误:
+
+ $ sudo lxc-create -n test-lxc -t ubuntu
+
+----------
+
+ lxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync
+
+错误的原因是你运行了最新的 LXC,但是它所依赖的 libcgmanager 版本较老,两者不兼容。升级下 libcmanager 即可解决问题:
+
+ $ sudo apt-get install libcgmanager0
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/lxc-containers-ubuntu.html
+
+作者:[Dan Nanni][a]
+译者:[bazz2](https://github.com/bazz2)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://xmodulo.com/docker-containers-centos-fedora.html
+[2]:http://xmodulo.com/manage-linux-containers-docker-ubuntu.html
diff --git a/published/201411/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md b/published/201411/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md
new file mode 100644
index 0000000000..e31d360a7c
--- /dev/null
+++ b/published/201411/20141029 How to install LEMP stack nginx MariaDB or MySQL and php on CentOS.md
@@ -0,0 +1,248 @@
+CentOS 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)
+================================================================================
+LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用。正如其名称所暗示的, LEMP 包是由 Linux、nginx、MariaDB/MySQL 和 PHP 组成的。在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案。 MariaDB 是一款社区支持驱动的 MySQL 数据库的分支,其功能更多性能更佳。PHP,服务端编程语言,具体是由 PHP FastCGI 的增强版 PHP-FPM 组件来处理,生成网页动态内容。
+
+这篇文章里,我们示范**如何在 CentOS 操作平台上安装 LEMP 包**。我们安装的目标是 CentOS 6 和 CentOS 7 两个操作平台,如有必要会指出它们的不同。
+
+### 第一步: Nginx ###
+
+让我们在 CentOS 上安装 nginx 作为第一步,然后对它作些基本的配置,比如使其能引导时启动和[对防火墙做个性化设置][1]。
+
+#### 安装 Nginx ####
+
+让我们从它的官方的 RPM 源来安装一个预构建的稳定版本的 nginx 包。
+
+在 CentOS 7 系统上:
+
+ $ sudo rpm --import http://nginx.org/keys/nginx_signing.key
+ $ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
+ $ sudo yum install nginx
+
+在 CentOS 6 系统上:
+
+ $ sudo rpm --import http://nginx.org/keys/nginx_signing.key
+ $ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
+ $ sudo yum install nginx
+
+注意在安装 nginx RPM 包之前,如果您没有导入 nginx 的官方 GPG 密钥的话,会出一如下所示的警告:
+
+ warning: /var/tmp/rpm-tmp.KttVHD: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
+
+#### 启动 Nginx ####
+
+安装完成后,nginx 是不会自动启动的。现在让我们来启动它吧,还要做些配置让其可以随着操作系统启动而启动。我们也需要在防火墙里打开 TCP/80 端口,以使得可以远程访问 nginx 的 web 服务。所有这些操作、设置都只需要输入如下命令就可实现。
+
+在 CentOS 7 系统上:
+
+ $ sudo systemctl start nginx
+ $ sudo systemctl enable nginx
+ $ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
+ $ sudo firewall-cmd --reload
+
+在 CentOS 6 系统上:
+
+ $ sudo service nginx start
+ $ sudo chkconfig nginx on
+ $ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
+ $ sudo service iptables save
+
+#### 测试 Nginx ####
+
+nginx 的默认文档要目录是 /usr/share/nginx/html。默认的 index.html 文件一定已经在这目录下了。让我们检测下是否可以访问到这个测试 web 页,输入 http://nginx的ip地址/ 访问。
+
+
+
+ 如果您看到的是如上所示的页面的话,说明 nginx 已经正常启动。继续往下。
+
+### 第二步: MariaDB/MySQL ###
+
+下一步就是安装 LEMP 包的数据库组件。CentOS/RHEL 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS/RHEL 7 已使用了 MariaDB 替代了默认的 MySQL。作为 MySQL 的简单替代品,MariaDB 保证了与 MySQL 的 API 和命令行用法方面最大的兼容性。下面是关于怎么在 CentOS 上安装和配置 MaraDB/MySQL 的操作示例。
+
+在 CentOS 7 系统上:
+
+如下所示操作来安装 MariaDB 服务/客户端包以及启动 MariaDB 服务。
+
+ $ sudo yum install mariadb-server
+ $ sudo systemctl start mariadb
+ $ sudo systemctl enable mariadb
+
+在 CentOS 6 系统上:
+
+如下示,安装 MySQL 服务/客户端包并且启动 MySQL 服务。
+
+ $ sudo yum install mysql-server
+ $ sudo service mysqld start
+ $ sudo chkconfig mysqld on
+
+在成功启动 MariaDB/MySQL 服务后,执行在 MariaDB/MySQL 服务包中的脚本。这一次的运行会为为数据库服务器进行一些安全强化措施,如设置(非空)的 root 密码、删除匿名用户、锁定远程访问。
+
+ $ sudo mysql_secure_installation
+
+
+
+这就是数据库的设置。现在进行下一步。
+
+### 第三步: PHP ###
+
+PHP 是 LEMP 包中一个重要的组件,它负责把存储在 MariaDB/MySQL 服务器的数据取出生成动态内容。为了 LEMP 需要,您至少需要安装上 PHP-FPM 和 PHP-MySQL 两个模块。PHP-FPM(FastCGI 进程管理器)实现的是 nginx 服务器和生成动态内容的 PHP 应用程序的访问接口。PHP-MySQL 模块使 PHP 程序能访问 MariaDB/MySQL 数据库。
+
+#### 安装 PHP 模块 ####
+
+在 CentOS 7 系统上:
+
+ $ sudo yum php php-fpm php-mysql
+
+在 CentOS 6 系统上:
+
+首先,您需要从仓库中安装 REMI 库(参见[本指南][2]),并安装软件包。
+
+ $ sudo yum --enablerepo=remi install php php-fpm php-mysql
+
+
+
+在安装 PHP 时,得注意两个地方:
+
+在 CentOS 6 系统中,安装 REMI仓库中最新的 php-mysql 模块时,MySQL 的服务端包和客户端包会被当做一部分依赖包而自动的更新。
+
+在 CentOS 6 和 CentOS 7 中,在安装 PHP 包的同时会把 Apache web 服务器(即 httpd)当做它的依赖包一起安装。这会跟 nginx web 服务器起冲突。这个问题会在下一节来讨论。
+
+取决于您的使用情况,可以使用 yum 命令来定制您的 PHP 引擎,也许会想安装下面的任意一个扩展 PHP 模块包。
+
+- **php-cli**: PHP 的命令行界面。从命令行里测试 PHP 时非常有用。
+- **php-gd**: PHP 的图像处理支持。
+- **php-bcmath**: PHP 的数学支持。
+- **php-mcrypt**: PHP 的加密算法支持 (例如 DES、Blowfish、CBC、 CFB、ECB ciphers 等)。
+- **php-xml**: PHP 的 XML 解析和处理支持。
+- **php-dba**: PHP 的数据抽象层支持。
+- **php-pecl-apc**: PHP 加速器/缓存支持。
+
+安装时,要查看可用的 PHP 模块的完整列表的话,可以运行:
+
+ $ sudo yum search php- (CentOS 7)
+ $ sudo yum --enablerepo=remi search php- (CentOS 6)
+
+#### 启动 PHP-FPM ####
+
+您需要启动 PHP-FPM ,然后把它放到自动启动服务列表。
+
+在 CentOS 7 系统上:
+
+ $ sudo systemctl start php-fpm
+ $ sudo systemctl enable php-fpm
+
+在 CentOS 6 系统上:
+
+ $ sudo chkconfig php-fpm on
+ $ sudo service php-fpm start
+
+### 第四步: 配置 LEMP 组合包 ###
+
+本教程的最后一步是调整 LEMP 组合包的配置。
+
+#### 使 Httpd 不可用 ####
+
+首先,让我们把早先随 PHP 包安装的 httpd 服务给禁用掉。
+
+在 CentOS 7 系统上:
+
+ $ sudo systemctl disable httpd
+
+在 CentOS 6 系统上:
+
+ $ sudo chkconfig httpd off
+
+#### 配置 Nginx ####
+
+接下来,让我们配置 nginx 虚拟主机,使得 nginx 可以通过 PHP-FPM 来处理 PHP 的任务。用文本编辑器打开 /etc/nginx/conf.d/default.conf ,然后按如下所示修改。
+
+ $ sudo vi /etc/nginx/conf.d/default.conf
+
+----------
+
+ server {
+ listen 80;
+ server_name www.server_domain.com;
+ root /usr/share/nginx/html;
+ index index.php index.html index.htm;
+
+ location / {
+ }
+
+ # redirect server error pages to the static page /50x.html
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ }
+
+ # nginx passes PHP scripts to FastCGI server via a TCP/9000 socket
+ # this setting much be consistent with /etc/php-fpm.d/www.conf
+ # try_files prevents nginx from passing bad scripts to FastCGI server
+ location ~ \.php$ {
+ 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;
+ }
+ }
+
+nginx 的默认工作线程数(在 /etc/nginx/nginx.conf 文件中指定的)是 1,让我们也来调整一下这个数字。通常来说我们创建的工作线程数应该和 CPU 核数相同。要确信您的 CPU 的核数,请运行下面这命令:
+
+ $ grep processor /proc/cpuinfo | wc -l
+
+如果您的 CPU 是 4 核的,就如下所示修改 /etc/nginx/nginx.conf 文件。
+
+ $ sudo vi /etc/nginx/nginx.conf
+
+----------
+
+ worker_processes 4;
+
+#### 配置 PHP ####
+
+接下来,让我们对 PHP 的配置文件 /etc/php.ini 做自定义设置。更具体的就是在 /etc/php.ini 文件中增加以下两行。
+
+ cgi.fix_pathinfo=0
+ date.timezone = "PRC"
+
+为了安全起见,我们希望的是 PHP 解释器只是处理指定文件路径的文件任务,而不是预测搜索一些并不存在的文件任务。上面的第一行起的就是这个作用。(LCTT 译注:原文用的时区是“America/New York”,根据国内情况,应该用 PRC或 Asia 下的中国城市。)
+
+第二行定义的是 PHP 中日期/时间相关函数使用相关的默认时区。使用[本指南][3],找出您所在的时区,并设置相应 **date.timezone 的值**。
+
+#### 测试 PHP ####
+
+最后,让我们来测试下 nginx 是否能处理 PHP 页面。在测试之前,请确保重启 nginx 和 PHP-FPM。
+
+在 CentOS 7 系统上:
+
+ $ sudo systemctl restart nginx
+ $ sudo systemctl restart php-fpm
+
+在 CentOS 6 系统上:
+
+ $ sudo service nginx restart
+ $ sudo service php-fpm restart
+
+创建一个叫名叫 test.php 的文件,然后写入如下内容,并放入 /var/www/html/ 目录。
+
+
+
+打开浏览器,输入 http://nginx的IP地址/test.php 。
+
+
+
+如果您能看到如上所示的页面,说明设置的 LEMP 完全成功!
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/install-lemp-stack-centos.html
+
+作者:[Dan Nanni][a]
+译者:[runningwater](https://github.com/runningwater)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://linux.cn/article-4243-1.html
+[2]:http://linux.cn/article-4192-1.html
+[3]:http://ask.xmodulo.com/set-default-timezone-php.html
\ No newline at end of file
diff --git a/published/201411/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md b/published/201411/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md
new file mode 100644
index 0000000000..916a48061a
--- /dev/null
+++ b/published/201411/20141029 Linux FAQs with Answers--How to fix hda-duplex not supported in this QEMU binary.md
@@ -0,0 +1,40 @@
+Linux 有问必答:如何修复“hda-duplex not supported in this QEMU binary”
+================================================================================
+> **提问**: 当我尝试在虚拟机中安装一个新的Linux时,虚拟机不能启动且报了下面这个错误:"unsupported configuration: hda-duplex not supported in this QEMU binary."(“不支持的配置:hda-duplex在此QEMU文件中不支持。”) 我该如何修复?
+
+这个错误可能来自一个当默认声卡型号不能被识别时的一个qemu bug。
+
+
+
+ 无法完成安装:‘不支持的配置:hda-duplex在此QEMU文件中不支持’
+
+要解决这个问题,按照下面的做。
+
+### 方案一: virt-manager ###
+
+在**virt-manager**中,打开虚拟机的虚拟硬件详细菜单,进入声卡选项,改变默认的设备型号为ac97。
+
+
+
+点击“应用”按钮并保存设置。看一下虚拟机现在是否可以启动了。
+
+### 方案二: Virsh ###
+
+如果你使用的是**virsh** 而不是**virt-manager**, 你可以编辑VM相应的配置文件。在节点中查找**sound**节点,并按照下面的默认声卡型号改成**ac97**。
+
+
+ . . .
+
+
+
+ . . .
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/hda-duplex-not-supported-in-this-qemu-binary.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201411/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md b/published/201411/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md
new file mode 100644
index 0000000000..f3004b32dd
--- /dev/null
+++ b/published/201411/20141029 Linux FAQs with Answers--How to install REMI repository on CentOS or RHEL.md
@@ -0,0 +1,52 @@
+Linux 有问必答:如何在CentOS或者RHEL上安装REMI仓库
+================================================================================
+> **Question**:我该如何在CentOS或者RHEL中配置REMI仓库,并安装其中的包?
+
+[REMI 仓库][1]提供了CentOS和RHEL的核心包的更新版本,尤其是最新的PHP/MySQL系列(LCTT 译注:当你需要一个更新包,而 CentOS/RHEL 没有及时提供更新时, REMI 仓库可以帮助你)。
+
+安装REMI仓库要记住的一件事是不要在启用了REMI仓库时运行yum update。因为REMI仓库的包名与RHEL/CentOS中的相同,运行yum update可能会触发意外的更新。一个好办法是禁用REMI仓库,在你需要安装RMEI仓库中独有的包时再启用。
+
+### 预备工作 ###
+
+安装REMI仓库之前,你首先需要启用EPEL仓库,因为REMI中的一些包依赖于EPEL。按照[这份指南][2]在CentOS或者RHEL中设置EPEL仓库。
+
+### 安装REMI仓库 ###
+
+现在按照下面的步骤安装REMI仓库。
+
+在CentOS 7上:
+
+ $ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
+ $ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
+
+在CentOS 6上:
+
+ $ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
+ $ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
+
+默认地,REMI是禁用的。要检查REMI是否已经成功安装,使用这个命令。你会看到几个REMI仓库,比如remi、remi-php55和remi-php56。
+
+ $ yum repolist disabled | grep remi
+
+
+
+### 从REMI仓库中安装一个包 ###
+
+如上所述,最好保持禁用REMI仓库,**只有在需要的时候再启用**。
+
+要搜索或安装REMI仓库中的包,使用这些命令:
+
+ $ sudo yum --enablerepo=remi search
+ $ sudo yum --enablerepo=remi install
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/install-remi-repository-centos-rhel.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://rpms.famillecollet.com/
+[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
\ No newline at end of file
diff --git a/published/201411/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md b/published/201411/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md
new file mode 100644
index 0000000000..c569a622b4
--- /dev/null
+++ b/published/201411/20141029 Linux FAQs with Answers--How to open a port in the firewall on CentOS or RHEL.md
@@ -0,0 +1,68 @@
+Linux有问必答:在CentOS或RHEL防火墙上开启端口
+================================================================================
+> **问题**:我在CentOS系统上运行一台网页或文件服务器,打算远程访问服务器。因此,我需要更改防火墙规则以允许访问系统上的某个TCP端口。那么,有什么好方法在CentOS或RHEL系统的防火墙上开启TCP/UDP端口?
+
+如果希望在服务器上提供服务,诸如CentOS或RHEL的企业级Linux发行版包含内置的强大防火墙,它们默认的防火墙规则十分严格。因此,如果你安装了任何定制的服务(比如web服务器、NFS和Samba),那么它们的流量很有可能被防火墙规则阻塞。所以需要在防火墙上开启必要的端口以允许流量通过。
+
+在CentOS/RHEL 6或更早的版本上,iptables服务允许用户与netfilter内核模块交互来在用户空间中配置防火墙规则。然而,从CentOS/RHEL 7开始,一个叫做firewalld新用户空间接口被引入以取代iptables服务。
+
+使用这个命令察看当前的防火墙规则:
+
+ $ sudo iptables -L
+
+
+
+现在,让我们看看如何在CentOS/RHEL上修改防火墙来开启一个端口。
+
+### 在CentOS/RHEL 7上开启端口 ###
+
+启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。
+
+使用这些命令来永久打开一个新端口(如TCP/80)。
+
+ $ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
+ $ sudo firewall-cmd --reload
+
+如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。
+
+### 在CentOS/RHEL 6上开启端口 ###
+
+在CentOS/RHEL 6甚至更早版本系统上,iptables服务负责维护防火墙规则。
+
+使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则,还需要第二条命令。
+
+ $ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
+ $ sudo service iptables save
+
+另一种方法是通过一个名为system-config-firewall-tui的命令行用户接口(TUI)的防火墙客户端。
+
+ $ sudo system-config-firewall-tui
+
+选择位于中间的“Customize”按钮,按下ENTER键即可。
+
+
+
+如果想要为任何已知的服务(如web服务器)修改防火墙,只需勾选该服务,然后关闭工具。如果想要开启任意一个TCP/UDP端口,选择“Forward”按钮,然后进入下一个界面。
+
+
+
+选择“Add”按钮添加一条新规则。
+
+
+
+指定一个端口(如80)或者端口范围(如3000-3030)和协议(如tcp或udp)。
+
+
+
+最后,保存修改过的配置,关闭工具。这样,防火墙就永久保存了。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/open-port-firewall-centos-rhel.html
+
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201411/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md b/published/201411/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md
new file mode 100644
index 0000000000..1a56c4bc1b
--- /dev/null
+++ b/published/201411/20141030 Ubuntu Could Give a Fatal Blow to Windows in China.md
@@ -0,0 +1,36 @@
+Ubuntu也许能在中国给Windows以致命打击
+================================================================================
+> Ubuntu Kylin也许能在中国用来替代Windows
+
+**Windows操作系统将退出中国的前门,而它的位置将由一个Linux发行版替代,用于官方和政府部门。问题是目前还没有一个真正的可替代系统,尽管还是有一款操作系统也许已经准备接下这个任务,它就是Ubuntu Kylin。**
+
+至少可以这么说,中国政府和微软目前的关系很紧张。[就像新闻里说的][1],一个用Linux类似系统在全国逐步替换Windows的计划已经在准备了。还不清楚具体会采用哪个系统,因为情况很复杂而且这是一个非常大的国家。
+
+通常,这种问题没有一个普适的解决方案,而且中国的行动确实看起来有点呆板。不管怎样,这为Ubuntu Keylin打开了一扇巨大的机会之窗,它是一个基于Ubuntu由中国开发者和Canonical共同开发的发行版。它已经稳定一段时间了,而且已经发布了几个连续版本。
+
+### Ubuntu Kylin在敲Windows的大门 ###
+
+有趣的是,在这个关于中国意图的新闻冒出来的同一天里,发布了一篇对国防科技大学(NUDT)副教授Dr. Jonas Zhang的采访,关于[最新的14.10分支开发计划][2]。
+
+“在这次的14.10版本中,有许多很好的功能。比如,新手也可以轻松地通过Ubuntu Kylin软件中心找到Windows软件的替代;用户可以使用Ubuntu Kylin的SSO(Ubuntu Kylin的单一登录系统,我们叫它UKID)来登录到Ubuntu Kylin的软件和社区;Sogou输入法(一款世界知名的中文输入法,上个月已经在苹果的应用市场上线了)减少了40%的CPU和内存占用。”
+
+“来自CSIP(中国政府的一个部门),超过50个 Canonical 和 NUDT(国防科技大学)的项目经理、工程师和社区管理员在为 Ubuntu Kylin 工作。大部分全职工程师来自NUDT。许多来自Ubuntu,Debian和其他社区的开发者也参与到Ubuntu Kylin的开发中了。”Dr. Jonas Zhang[说][2]。
+
+中国政府也许自己也正想办法搭建另一个Linux发行版(不是第一次尝试了),但是目前看来已经有一个很好的用来替代Windows的候选者了。这对于Canonical也是很好的商机,至少从被承认这个角度看。
+
+如果Ubuntu,通过它和Kylin的联系,想在像中国这样的大国里取代Windows,对这家公司将会是个巨大的促进。让我们拭目以待,看看开发者们让Ubuntu Kylin变成一个有竞争力的操作系统所花费的努力是不是白费力气。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Ubuntu-Could-Give-a-Fatal-Blow-to-Windows-in-China-463500.shtml
+
+作者:[Silviu Stahie][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://news.softpedia.com/news/China-Starts-Windows-Eradication-15-of-Govt-PCs-to-Switch-to-Linux-Every-Year-463393.shtml
+[2]:http://news.softpedia.com/news/Ubuntu-Kylin-14-10-Utopic-Unicorn-Consolidates-Its-Position-in-China-463068.shtml
+[3]:https://insights.ubuntu.com/2014/10/29/interview-nudt-talks-ubuntu-kylin-and-its-14-10-release/
diff --git a/published/201411/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md b/published/201411/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md
new file mode 100644
index 0000000000..df48101bba
--- /dev/null
+++ b/published/201411/20141104 Cinnamon 2.4 Debuts With New Features, Here's How To Install It In Ubuntu.md
@@ -0,0 +1,72 @@
+Cinnamon 2.4 携新功能来袭
+================================================================================
+**上个周末,Linux Mint 为我们带来了新的气息,发布了 Cinnamon 桌面的一个新版本。**
+
+[ Linux Mint 发布了其新 LTS 版本的第一个更新 17.1 ][1],它的易用 shell 的最新版本将是该发行版的重中之重。
+
+
+
+*新的墙纸幻灯片功能 *
+
+### Cinnamon 2.4 新特性 ###
+
+Cinnamon 2.4 带来了大量受欢迎的功能,包括改进了波兰语支持、降低内存占用,新的“隐私”和“提醒”设置和桌面墙纸幻灯片功能。
+
+其[官方发布公告][2]里面主要提到了如下变化:
+
+- Cinnamon 桌面启动时带有缩放动画
+- 通过代码审核修复了30个内存泄露问题
+- 使用‘Super+e’ 可以打开“home”文件夹
+- 桌面字体现在可以定制了
+- 去除了“退出对话框”的超时设置
+- 重新设计了“主题与背景”设置
+- 支持桌面幻灯片功能(增加了一个新的面板小应用来控制它)
+- 增加了“提醒与隐私”设置面板
+
+
+
+*有些人说 Nemo 是 Linux 上最好的文件管理器*
+
+Nemo 文件管理器也做了如下改进:
+
+- 重新设计了工具条
+- ‘nemo-emblems‘扩展支持为文件夹增加标志(emblems)
+- 边栏在鼠标移动上去时会有高亮效果
+- “智能动态书签区”放到边栏
+- 文件夹的颜色可以通过 nemo-folder-color-switcher 快速设置(还没有发布)
+
+### 在 Ubuntu 中升级或安装 Cinnamon 2.4 ###
+
+如果**你更在意稳定的话**就不要升级到 Cinnamon 2.4。新的 Cinnamon 在 Linux Mint 发布前一个月才释出,主要是为了测试、解决 bug 和搜集反馈。
+
+不过要是你不在意的话,你可以使用如下的每夜构建 PPA 在 Ubuntu 14.04 LTS 和 Ubuntu 14.10 中安装Cinnamon 2.4:
+
+ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-nightly
+
+然后:
+
+ sudo apt-get update && sudo apt-get install cinnamon
+
+如果你已经安装了(旧版本的) Cinnamon,我建议你运行下列命令来替代上面的安装命令。这会自动通过包管理器解决冲突的包依赖关系:
+
+ sudo apt-get update && sudo apt-get dist-upgrade
+
+安装后如果不喜欢了,那也很容易,你可以使用如下命令将 Cinnamon 2.4 和它的一大堆配置统统移走:
+
+ sudo apt-get purge cinnamon
+
+**如果你体验过了,请让我们知道你的意见,反馈到下面,最好带上一两张截屏!**
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/11/install-cinnamon-2-4-ubuntu-14-04-lts
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://blog.linuxmint.com/?p=2688
+[2]:http://segfault.linuxmint.com/2014/11/cinnamon-2-4/
diff --git a/published/201411/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md b/published/201411/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md
new file mode 100644
index 0000000000..f30b5f7dfa
--- /dev/null
+++ b/published/201411/20141104 Install LEMP Server (Nginx, MySQL or MariaDB, PHP And phpMyAdmin) On Ubuntu 14.10 or 14.04 or 13.10.md
@@ -0,0 +1,351 @@
+在 Ubuntu 14.10/14.04/13.10 上安装 LEMP 服务(Nginx,MySQL 或 MariaDB,PHP 和 phpMyAdmin)
+================================================================================
+
+
+
+**LEMP**是一个操作系统和几个开源软件包的合称。缩写LEMP来自 **L** inux,Nginx(发音是 **e** ngine-x)HTTP服务器, **M** ySQL数据库,和 **P** HP/ **P** erl/ **P** ython的首字母。
+
+在这篇教程里,让我们看一下如何在 Ubuntu 14.10 上安装 Nginx,MySQL 或 MariaDB,PHP 和 phpMyAdmin。
+
+### 安装Nginx ###
+
+**Nginx** (发音是engine-x)是一个免费的、开源的、高性能HTTP服务器和反向代理,也可以用作IMAP/POP3代理服务器,它是由Igor Sysoev开发。
+
+要安装Nginx,在你的终端里输入下面的命令:
+
+**注意**:如果你的系统里已经安装了apache2,先卸载掉以避免冲突。要卸载apache,运行下面的命令:
+
+ sudo apt-get purge apache2*
+ sudo apt-get autoremove -y
+
+现在,用下面的命令安装nginx:
+
+ sudo apt-get install nginx
+
+用下面的命令启用Nginx服务:
+
+ sudo service nginx start
+
+### 测试 nginx ###
+
+打开你的浏览器访问http://IP地址/或者http://localhost/。将可以看到类似下面的截图。
+
+
+
+### 配置 Nginx ###
+
+用任意文本编辑器打开文件**/etc/nginx/nginx.conf**
+
+ sudo nano /etc/nginx/nginx.conf
+
+设置 worker_processes(例如,你系统里CPU数目)。查看CPU数目,可以使用命令“lscpu”。在我这里是“1”。所以我把这个值设为1。
+
+ worker_processes 1;
+
+重启 Nginx 服务:
+
+ sudo service nginx restart
+
+默认虚拟主机(服务器模块)定义在文件**/etc/nginx/sites-available/default**里。
+
+用任意文本编辑器打开文件/etc/nginx/sites-available/default。
+
+ sudo nano /etc/nginx/sites-available/default
+
+在Server区域里,按如下设置服务器FQDN或IP地址。确保你增加了index.php这一行。
+
+ [...]
+ server {
+ listen 80 default_server;
+ listen [::]:80 default_server ipv6only=on;
+ root /usr/share/nginx/html;
+ index index.php index.html index.htm;
+ # Make site accessible from http://localhost/
+ server_name server.unixmen.local;
+ [...]
+
+这里面
+
+- **listen 80;** –> 监听ipv4端口
+- **listen [::]:80 default_server ipv6only=on;** –> 监听ipv6宽口
+- **root /usr/share/nginx/html;** –> 文件根目录
+- **server_name server.unixmen.local;** –> 服务器FQDN
+
+现在,向下滚动找到区域#location **~ \.php$**。去掉注释并按如下修改:
+
+ location ~ \.php$ {
+ try_files $uri =404; ---------> Add this line
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+ #
+ # # With php5-cgi alone:
+ # fastcgi_pass 127.0.0.1:9000;
+ # # With php5-fpm:
+ fastcgi_pass unix:/var/run/php5-fpm.sock;
+ fastcgi_index index.php;
+ include fastcgi.conf;
+ }
+
+这里面,我增加了额外一行**‘try_files $uri =404;’**用于避免0day漏洞。
+
+保存文件并退出。
+
+### 测试 nginx 配置 ###
+
+使用下面的命令测试nginx配置是否存在语法错误:
+
+ sudo nginx -t
+
+典型输出:
+
+ nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
+ nginx: configuration file /etc/nginx/nginx.conf test is successful
+
+最后重启nginx服务
+
+ sudo service nginx restart
+
+### 安装 MySQL ###
+
+**MySQL**是一个关系型数据库管理系统(RDBMS),作为服务启动提供给多用户访问多种数据库,尽管SQLite可能有更多的嵌入式部署。
+
+ sudo apt-get install mysql-server mysql-client
+
+在安装过程中,会提示你设置MySQL超级用户密码。输入密码并按确认。
+
+
+
+重新输入密码。
+
+
+
+现在,MySQL服务器就安装好了。
+
+你可以用下面的命令检查 MySQL 服务器状态:
+
+ sudo service mysql status
+
+典型输出:
+
+ mysql start/running, process 5671
+
+**注意**:如果你希望使用MariaDB而不是MySQL,可以参考下面的步骤。
+
+### 安装 MariaDB ###
+
+**MariaDB**是 MySQL 的一个直接替代软件。它是一个稳定、可扩展又可靠的SQL服务器,包含许多增强功能。
+
+首先,如果有的话你得先卸载掉 MySQL。要完全卸载 MySQL 包括配置文件,输入如下命令:
+
+ sudo apt-get purge mysql*
+
+运行如下命令清除不需要的软件包。
+
+ sudo apt-get autoremove
+
+在卸载完MySQL后,运行如下命令安装MariaDB。
+
+ sudo apt-get install mariadb-server mariadb-client
+
+另外,如果你希望体验最新版的MariaDB,可以从[MariaDB仓库][1]安装。运行下面的命令添加PPA。在写这篇文章的时候,MariaDB PPA还没有更新 Ubuntu 14.10。不过,我们还是可以使用 Ubuntu 14.04 的仓库来替代。
+
+ sudo apt-get install software-properties-common
+ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
+ sudo add-apt-repository 'deb http://sgp1.mirrors.digitalocean.com/mariadb/repo/5.5/ubuntu trusty main'
+
+用如下命令更新一下软件源列表,然后安装MariaDB:
+
+ sudo apt-get update
+ sudo apt-get install mariadb-server mariadb-client -y
+
+在安装过程中,会提示你设置数据库‘root’用户密码。
+
+
+
+重新输入一次密码:
+
+
+
+点击‘是’迁移到 MariaDB。注意一下,如果在安装MariaDB之前没有装过 MySQL 的话,不会提示你这个问题。
+
+
+
+你可以用如下命令检查 MariaDB 版本:
+
+ sudo mysql -v -u root -p
+
+典型输出:
+
+ Welcome to the MariaDB monitor. Commands end with ; or \g.
+ Your MariaDB connection id is 34
+ Server version: 5.5.39-MariaDB-2 (Ubuntu)
+
+ Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
+
+ Reading history-file /home/sk/.mysql_history
+ Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+
+用如下命令检查MariaDB是否已经开始运行:
+
+ sudo service mysql status
+
+典型输出:
+
+ * /usr/bin/mysqladmin Ver 9.0 Distrib 5.5.39-MariaDB, for debian-linux-gnu on x86_64
+ Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
+
+ Server version 5.5.39-MariaDB-2
+ Protocol version 10
+ Connection Localhost via UNIX socket
+ UNIX socket /var/run/mysqld/mysqld.sock
+ Uptime: 2 min 21 sec
+
+ Threads: 1 Questions: 566 Slow queries: 0 Opens: 330 Flush tables: 4 Open tables: 22 Queries per second avg: 4.014
+
+### 安装 PHP ###
+
+**PHP**(PHP: Hypertext Preprocessor的递归缩写)是一个应用广泛的开源通用脚本语言,特别适合于网页开发,可以直接嵌入到 HTML 中。
+
+使用如下命令安装PHP:
+
+ sudo apt-get install php5 php5-fpm php5-mysql
+
+### 配置PHP ###
+
+用任意文本编辑器打开**php.ini**文件:
+
+ sudo nano /etc/php5/fpm/php.ini
+
+找到这一行‘cgi.fix_pathinfo=1′,去掉注释并把值1改为0。
+
+ cgi.fix_pathinfo=0
+
+现在重启php-fpm服务。
+
+ sudo service php5-fpm restart
+
+### 测试 PHP ###
+
+在nginx文档根目录下创建一个测试文件“testphp.php”。
+
+ sudo nano /usr/share/nginx/html/testphp.php
+
+加入下面几行。
+
+
+
+保存文件并退出。
+
+访问地址**http://server-ip-address/testphp.php**。将显示出所有关于 php 的信息,比如版本、构建日期以及命令等等。
+
+
+
+PHP-FPM会默认监听套接字**/var/run/php5-fpm.sock**。如果你希望PHP-FPM使用TCP连接,打开文件**/etc/php5/fpm/pool.d/www.conf**,
+
+ sudo nano /etc/php5/fpm/pool.d/www.conf
+
+找到这一行listen = /var/run/php5-fpm.sock,
+
+ ;listen = /var/run/php5-fpm.sock
+
+把它改成**listen = 127.0.0.1:9000**。
+
+ listen = 127.0.0.1:9000
+
+保存退出。重启 php5-fpm 服务。
+
+ sudo service php5-fpm restart
+
+现在打开 nginx 配置文件:
+
+ sudo nano /etc/nginx/sites-available/default
+
+找到这一行**fastcgi_pass unix:/var/run/php5-fpm.sock;**,参考下面把它改成 fastcgi_pass 127.0.0.1:9000;。
+
+ location ~ \.php$ {
+ try_files $uri =404;
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass 127.0.0.1:9000;
+ # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+ #
+ # # With php5-cgi alone:
+ fastcgi_pass 127.0.0.1:9000;
+ # # With php5-fpm:
+ # fastcgi_pass unix:/var/run/php5-fpm.sock;
+ fastcgi_index index.php;
+ include fastcgi.conf;
+ }
+
+保存退出。最后重启 nginx 服务。
+
+ sudo service nginx restart
+
+### 使用 phpMyAdmin 管理 MySQL 数据库(可选) ###
+
+**phpMyAdmin**是一个免费的开源网页界面工具,用来管理你的 MySQL 数据库。
+
+### 安装 phpMyAdmin ###
+
+在 Debian 官方仓库里就有。所以可以用下面的命令安装:
+
+ sudo apt-get install phpmyadmin
+
+选择一个网页服务器。默认情况下,这里不会显示 nginx。所以,选择 apache 或者 lighttpd,然后我们再把 phpMyAdmin 和 nginx 连接起来工作。
+
+
+
+选择‘是’通过dbconfig-common为phpMyAdmin配置数据库。
+
+
+
+输入数据库的管理员账号密码。
+
+
+
+输入 phpmyadmin 帐号的 MySQL 密码:
+
+
+
+重新输入一次密码。
+
+
+
+phpMyAdmin 就安装完成了。
+
+创建一个 phpMyAdmin 的软连接到网站根目录。这里我们的网站根文档目录是/usr/share/nginx/html/。
+
+ sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html
+
+重启 nginx 服务。
+
+ sudo service nginx restart
+
+### 访问 phpMyAdmin 网页控制台 ###
+
+现在你可以在浏览器中通过地址**http://server-ip-address/phpmyadmin/**访问 phpMyAdmin 的控制台了。
+
+输入你在前面步骤里留下的 MySQL 用户名和密码。在我这里是“root”和“ubuntu”。
+
+
+
+就可以重定向到 phpMyAdmin 的网页管理首页。
+
+
+
+现在你就可以在 phpMyAdmin 网页里管理你的 MyQL 数据库了。
+
+就这样。你的 LEMP 服务器已经配置完毕,可以使用了。
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/install-lemp-server-nginx-mysql-mariadb-php-phpmyadmin-ubuntu-14-1014-0413-10/
+
+作者:[SK][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[Caroline](https://github.com/carolinewuyan)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/sk/
+[1]:https://downloads.mariadb.org/mariadb/repositories/#mirror=tsinghua
diff --git a/published/201411/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md b/published/201411/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md
new file mode 100644
index 0000000000..5779aecdb1
--- /dev/null
+++ b/published/201411/20141104 Mozilla to Launch Brand New Developer Web Browser Next Week.md
@@ -0,0 +1,42 @@
+Mozilla 下周发布全新的开发者浏览器
+================================================================================
+**当你早晨醒来的时候,你可能没有期望在网上看到‘Mozilla’、‘新的’,‘浏览器’这样的词。**
+
+但是我手上的正是你要找的。
+
+
+注:youtube 视频地址,发布的时候不行做个链接吧
+VIDEO
+
+### Mozilla – 推动前沿 ###
+
+Mozilla一直处于推动开源,开放标准和开放访问的最前沿。他们引导了世界上最流行的桌面浏览器之一。他们的开源的基于Linux的移动操作系统[在24个国家的13个运营商的12款手机上出售][1]。他们[甚至可以在谷歌的Chromecast上运行][2]!
+
+他们将 Web 推广到每个角落的追求依然旺盛。在Mozilla博客上发布的一篇文章传达了公司宣布在推动前沿上的努力- 这次是针对开发者而不是用户而言的。
+
+这被打趣为“独特但又熟悉”,公司打算发布基于Firefox、由开发人员设计、针对开发人员提供的全新的浏览器。 Mozilla说它集成了“像[WebIDE][3]和[Firefox工具适配器][4]这样强大的新工具。
+
+>“在构建Web时,开发人员倾向于使用不同的工具,但这往往不能很好地协同工作。这意味着你不用在不同的工具、平台和浏览器等这些会减缓你开发效率的工作中切换了
+
+### #Fx10 ###
+
+“Firefox开发者”版声称会在11.10发布。 现在还不知道它支持的平台,但是第一它是Mozilla推出的,第二针对的是开发者,所以如果在那天没有Linux版本的话将会是一件很意外的事情。
+
+Mozilla说感兴趣的人可以注册他们的[黑客简讯][5]来在浏览器发布的时候收到通知。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/11/mozilla-launch-brand-new-developer-focused-web-browser
+
+作者:[Joey-Elijah Sneddon ][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:https://twitter.com/firefox/status/522175938952716289
+[2]:http://www.omgchrome.com/mozillas-chromecast-rival-leaks-online/
+[3]:https://hacks.mozilla.org/2014/06/webide-lands-in-nightly/
+[4]:https://hacks.mozilla.org/2014/09/firefox-tools-adapter/
+[5]:https://hacks.mozilla.org/newsletter/
\ No newline at end of file
diff --git a/published/201411/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md b/published/201411/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md
new file mode 100644
index 0000000000..fd7d239d6b
--- /dev/null
+++ b/published/201411/20141105 Linux FAQs with Answers--How to disable HTTP redirect in wget.md
@@ -0,0 +1,33 @@
+Linux 有问必答:如何在wget中禁用HTTP转发
+================================================================================
+> **提问**: 当我用wget获取一个重定向到URL Y的URL X的时候,wget默认会自动获取URL Y。然而我想要强制获取不带重定向的URL X。我该如何禁用wget重定向URL的功能。
+
+在HTTP标准中,重定向响应(带3XX的HTTP响应)说明请求的URL被移到了新的位置。重定向相应接着包含了目标重定向的URL。
+
+像常规的HTTP客户端,wget支持URL重定向(也叫URL转发),意味着当你尝试下载一个重定向的URL时,wget会自动跟随URL重定向获取重定向后的资源。如果你由于一些原因想要禁用URL重定向,并停止3XX的状态码,你可以使用wget的“--max-redirect=number”选项。这个选项用来指定最大(递归)重定向的数字,默认是20。
+
+如果你想要禁用wget中的HTTP重定向,使用“--max-redirect=0”
+
+ $ wget --max-redirect=0 http://www.aaa.com/a.html
+
+----------
+
+ --2014-10-31 23:08:58-- http://www.aaa.com/a.html
+ Resolving aaa.com (aaa.com)... 1.2.3.4
+ Connecting to aaa.com (aaa.com)|1.2.3.4|:80... connected.
+ HTTP request sent, awaiting response... 301 Moved Permanently
+ Location: http://www.bbb.com/b.html [following]
+ 0 redirections exceeded.
+
+如你所见,当wget遇到HTTP重定向响应时,它不会跟着重定向,并以“0 redirections exceeded”(超出0次重定向)的错误信息停止。它同样会显示一个HTTP的状态码(比如301)。
+
+注意一下curl,另外一个类似的HTTP客户端,行为正好相反。默认上,curl并不会跟随URL重定向。要强制使cutl重定向到一个URL,你要使用“-L”选项。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/disable-http-redirect-wget.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/published/201411/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md b/published/201411/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md
new file mode 100644
index 0000000000..ae09f3adc3
--- /dev/null
+++ b/published/201411/20141105 The Latest Ubuntu Images Arrive on Google Cloud Platform.md
@@ -0,0 +1,30 @@
+最新版本的 Ubuntu 在 Google 云平台上架
+================================================================================
+
+
+自从Canonical和Google合作后,Canonical宣布已经在Google云平台发布Ubuntu14.04LTS、12.04LTS和14.10的公开beta版本。“从今天起,可以在Google云平台上选择优化过的、最新的、十分安全和一致的Ubuntu镜像”Canonical的公告称,“Canonical将会继续地维护、测试和更新认证的Ubuntu镜像,在官方版本发布后,Google云平台马上就会拥有最新版本”。
+
+Ubuntu 在云环境和作为云分发基础中已经日益流行,因此为Google云平台提供镜像可以吸引更多的用户。
+
+对于所有Ubuntu LTS版本,Canonical会为之提供维护和安全更新5年的版本,这些会吸引更多的Canonical已经日益重视的企业级用户。
+
+领先的开源云管理平台Scalr的创始人Sebastian Stadil说道:“官方Ubuntu镜像的缺乏已经阻止我们部分迁移我们的基础设施到Google云平台,我们很高兴看到Ubuntu技术提供给我们所有企业客户。”
+
+认证公有云(CPC) 的项目经理Federico Lucifredi 提到:“越来越多的企业开始创业,从而转向公有云环境来运行大量的关键的向外扩展的工作负载,Google作为全球领先的竞争者之一,Google 云平台已经快速建成。给Google云平台增加Ubuntu镜像是顺理成章的一步,我们确信这样的合作在开发者和企业部署云时,便于寻找到一个易于使用和信赖的操作系统。”
+
+通过Canonical得知,在作为所有公有云的操作系统选择上,Ubuntu事实上已经有显著业绩,70%的工作负载运行在Ubuntu上。据OpenStack基金会消息,Ubuntu已经是OpenStack部署的基础。
+
+浏览[Google Cloud Platform][1]获得更多信息。
+
+--------------------------------------------------------------------------------
+
+via: http://ostatic.com/blog/the-latest-ubuntu-images-arrive-on-google-cloud-platform
+
+作者:[Sam Dean][a]
+译者:[Vic020/VicYu](http://www.vicyu.net)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://ostatic.com/member/samdean
+[1]:https://cloud.google.com/compute/docs/operating-systems
diff --git a/published/201411/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md b/published/201411/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md
new file mode 100644
index 0000000000..f540639934
--- /dev/null
+++ b/published/201411/20141106 Quick Tip Allow Services Through Firewall In openSUSE.md
@@ -0,0 +1,31 @@
+小白技巧:openSUSE设置服务服务通过防火墙
+================================================================================
+
+
+正如你所知道的,在openSUSE/SUSE系统上,不是所有的服务是激活并且默认允许的。例如,**ssh**服务是默认不允许通过防火墙的。当然,这是一个安全措施,但是有时我们必须需要ssh服务从远程地点来连接服务器。
+
+这个小教程将会展示如何允许服务,不单是ssh,也包括所有其他的服务,如http,ftp等,通过服务器。我们可以使用**YaST**命令允许服务通过防火墙,**YaST**命令是openSUSE和其企业版,默认安装配置工具。
+
+首先,在菜单中打开YaST控制中心。选择**Security and Users(安全和用户) -> Firewall(防火墙)**
+
+
+
+接下来,打开**Allowed Services(已允许服务)**选项卡;从Service to Allow(选择需要允许的服务)下拉框中选择**Secure Shell Service(ssh服务)**,然后 **Add(增加)**,**Next(下一步)**,最后**Finish(完成)**,搞定。
+
+
+
+就是如此简单!ssh服务已经允许通过防火墙,这样你就可以在远程系统连接这个系统了。就像这样,我们可以同样设置其他服务。
+
+鼓掌!!
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/quick-tip-allow-services-firewall-opensuse/
+
+作者:[SK][a]
+译者:[VicYu/Vic020](http://www.vicyu.net)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/sk/
diff --git a/published/201411/20141106 timedatectl--Control Linux System Time and Date in Systemd.md b/published/201411/20141106 timedatectl--Control Linux System Time and Date in Systemd.md
new file mode 100644
index 0000000000..e3e4b1b6a3
--- /dev/null
+++ b/published/201411/20141106 timedatectl--Control Linux System Time and Date in Systemd.md
@@ -0,0 +1,72 @@
+如何在 systemd 下管理Linux系统的时间和日期
+===
+
+**timedatectl**是用来查询和修改系统时间和配置的Linux应用程序。它是[systemd 系统服务管理][1]的一部分,并且允许你检查和修改系统时钟的配置。
+
+在这篇文章中,我们将涉及该小巧但十分重要应用程序的所有方面
+
+### 系统当前的时间状态 ###
+
+想要查看系统当前日期/时间,以及可使用不带任何参数的命令查看当前系统时间配置,可以这样:
+
+ # timedatectl
+
+输入的结果就像这样:
+
+
+
+### 修改日期 ###
+
+想要修改系统日期,你可以简单地使用timedatectl设置时间命令,紧随命令的是YYYY-MM-DD格式的日期,YYYY代表年,MM代表2位数字的月份,DD代表2位数字的天。举个例子,如果你想把日期改为2015年2月4号,你应该使用下面的命令:
+
+ # timedatectl 2015-02-04
+
+### 修改时间 ###
+
+想要修改时间,你可以以相同的方式使用该工具,但是使用的格式为HH:MM:SS,HH代表24小时制的时钟,MM代表分钟,SS代表秒钟。想将当前时间设为22:04:43,使用下面的命令:
+
+ # timedatectl 22:04:43
+
+### 修改时区 ###
+
+设置正确的时区是保持时间同步的关键,特别是在你使用NTP协议同步的时候。首先,你应该使用list-timezones选项列出你所在区域的可用时区,你也可以使用grep和more来让格式方便阅读:
+
+ # timedatectl list-timezones | grep America | more
+
+这将显示一个简单的滚动列表格式。
+
+之后,你就会知道你想设置的时区是如何命名的,然后使用下面的命令修改它:
+
+ # timedatectl set-timezone America/Los_Angeles
+
+### 设置本地时钟 ###
+
+**实时时钟(RTC)**,通常被称为硬件时钟,完全独立于操作系统当前状态,甚至可以在计算机关闭的时候工作。你可以配置系统使用国际时间(UTC)或当地时间来校正RTC。注意,使用当地时区校正RTC并没有完美支持,而且还有可能因为时区变化和夏令时调整引起许多问题。如果有可能,在UTC模式下校正RTC。这一做法的唯一问题是,其他操作系统可能不完全支持它(如果你在同一台机器上运行2个操作系统的话)。
+
+使用UTC模式校正RTC,使用下面的命令:
+
+ # timedatectl set-local-rtc 0
+
+使用当地时间校正,使用:
+
+ # timedatectl set-local-rtc 1
+
+### 设置NTP同步 ###
+
+**网络时间协议(NTP)**是在分组交换、可变数据延迟的计算机系统间进行时钟同步的网络协议。NTP被设计使用[几毫秒的协调通用时间(UTC)][2]来同步所有参与的计算机。如果你希望设置NTP同步,你可以使用set-ntp选项设置。使用“no”关闭NTP同步,使用“yes”开启。
+
+ # timedatectl set-ntp yes
+
+---
+
+via: http://linoxide.com/linux-command/timedatectl-change-time-date-systemd/
+
+作者:[Adrian Dinu][a]
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/adriand/
+[1]:http://www.freedesktop.org/wiki/Software/systemd/
+[2]:https://en.wikipedia.org/wiki/Coordinated_Universal_Time
diff --git a/published/201411/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md b/published/201411/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md
new file mode 100644
index 0000000000..0337b197ba
--- /dev/null
+++ b/published/201411/20141108 How to Record Your Desktop Video and Audio Using 'Avconv' Tool in Ubuntu.md
@@ -0,0 +1,129 @@
+在 Linux 中使用"avconv"工具录制计算机桌面视频和音频
+================================================================================
+**Libav**是一款跨平台的工具库,能够用来处理多媒体文件、流和协议。它最初是源自ffmpeg。Libav带有一些工具,比如:
+
+- **Avplay**: 一款视频音频播放器。
+- **Avconv**: 能够记录多个设备输入源的一个多媒体转换器和视频音频录制器。
+- **Avprobe**: 一个连接多媒体文件流并且返回关于这个文件流的统计信息的工具。
+- **Libavfilter**: 一个Libav工具的过滤器(filtering)API。
+
+在这篇文章里面,我们就要展示如何通过'Avconv'程序在**Debian/Ubuntu/Linux Mint**发行版上录制Linux桌面视频音频。
+
+### 第一步:下载 Avconv 工具 ###
+
+**1.** **avconv**是 “**libav-tools**” 的一部分, 可以通过官方的基于debian的仓库下载,比如Mint、Ubuntu。输入下面命令即可:
+
+ $ sudo apt-get update
+ $ sudo apt-get install libav-tools
+
+
+
+*下载Avconv工具*
+
+**注意**: 如果从默认仓库下载的话, ‘**avconv**’ 的版本可能比较老。 因此我们推荐你拉取最新的git官方版本。
+
+ $ sudo apt-get install yasm
+ $ git clone git://git.libav.org/libav.git
+ $ cd libav
+ $ ./configure
+ $ make
+ $ sudo make install
+
+**注意**: 你应该运行 ‘**./configure –help**’ 来列出所有的可选配置选项并且安装相应的解码器和库,你还需要做很多工作来解决依赖问题。
+
+也要注意,如果你是从源代码编译的,就需要使用**sudo avconv**而不是**avconv**来运行这个工具。
+
+### 第二步:开始录制桌面视频 ###
+
+**2.**一切就绪,现在可以通过运行下面的命令录制你的视频了:
+
+ $ avconv -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 $HOME/output.avi
+
+简单解释一下这个命令:
+
+- **avconv -f x11grab** 默认从X服务捕捉画面。
+- **-r 25** 这是你需要的视频帧率,可以自行设置。
+- **-s 1920×1080** 是你的系统的桌面分辨率,要设置成你当前桌面的分辨率,这一点非常重要。
+- **-i :0.0** 我们要记录的位置(X 服务输出端口),设置成这样就可以了。
+- **-vcodec libx264** 我们用来录制视频的编码器。
+- **-threads 4** 线程数,可以根据情况更改。
+- **$HOME/output** 输出的目标文件路径。
+- **.avi** 使用的视频格式,可以换成 “flv”、“mp4″、 “wmv”、 “mov”、 “mkv”等。
+
+**3.**在运行命令之后,就会在terminal上自动运行一个进程进行记录,按"Ctrl+C"键来终止记录。
+
+
+
+*录制桌面视频*
+
+**4.** 现在,你可以使用VLC或者其他的播放器,或者使用来自Libav包里的播放器"avplay"来播放你录制的视频。
+
+ $ avplay $HOME/output.avi
+
+**注意:** 别忘了替换输出文件的路径为你自己的,录制效果还是很好的。
+
+
+
+*播放录制的文件*
+
+这有一段我用 “**avconv**” 录制的[视频](http://www.youtube.com/embed/g1FEh4wByGE) (墙外)。
+
+
+### 第三步: 开始录制桌面的音频和视频 ###
+
+**5.** 如果也想同时录制音频,先运行这个命令,列出所有的音频输入源:
+
+ $ arecord -l
+
+结果类似这样:
+
+
+
+*检查音频输入源*
+
+在我这里,我只有一个音频输入源,所以数量是**1**,这就是我使用如下命令来捕捉我的视频以及麦克风的音频的原因。
+
+ $ avconv -f alsa -i hw:1 -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 output-file2.avi
+
+我修改了部分地方,下面做个简短的解释:
+
+- **-f** alsa 一个从alsa设备捕捉声音的选项。
+- **-i** hw:1 是一个从 “hw:1” 设备捕捉音频的选项,这个设备是我电脑上仅有的一个音频输入设备。
+
+**注意**: 如果你想用**arecord -l**显示的**1**之外的设备的话,别忘了替换 “**1**”。
+
+结束录制,再来一次“**Ctrl + C**” 就可以。
+
+### 第四步: 开始录制桌面音频 ###
+
+**6.** 如果只想录制音频的话,使用下面的命令。
+
+ $ avconv -f alsa -i hw:1 out.wav
+
+**7.** 替换成 **.mp3** 等Libav支持的格式都可以,播放 **out.wav**就能听到你自己的声音了。
+
+
+
+*录制桌面音频*
+
+###最后 ###
+
+“**avconv**” 工具可以用来做很多其他事情,不仅仅是录制桌面视频,更多的教程和文档请移步到官网。
+
+- [https://libav.org/avconv.html][1]
+
+你对"avconv"的体验如何,你使用过其他工具录制桌面视频么?在评论里面和我们分享吧。
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/record-ubuntu-desktop-screen-using-avconv/
+
+作者:[Hanny Helal][a]
+译者:[ggaaooppeenngg](https://github.com/ggaaooppeenngg)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/hannyhelal/
+[1]:https://libav.org/avconv.html
diff --git a/published/201411/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md b/published/201411/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md
new file mode 100644
index 0000000000..e2f037df85
--- /dev/null
+++ b/published/201411/20141112 [Quick Tip] How To Fix Docky Compositing Error In Lubuntu.md
@@ -0,0 +1,39 @@
+小技巧:如何修复Lubuntu中的Docky混合错误
+================================================================================
+总所周知,**Docky**是Unix/Linux类系统中的轻量级应用启动器。我是 Lubuntu 和 Docky 的忠实粉丝,因为它们不需要占用我的所有系统资源,这样就可以同时运行更多应用。我在笔记本上使用Docky应用启动器,系统为Lubuntu 14.04.
+
+但是,如果你使用LXDE发行版,你也许肯定遇到过使用Docky时报混合的错误。看下面的截图。
+
+
+
+如果不开启混合功能,就不能使用Docky一些特别功能,如3D背景、自动隐藏。如果你想开启这些Docky的功能,那么你需要在你的LXDE系统中开启混合功能。
+
+就像这样,首先安装 **xcompmgr**包:
+
+ sudo apt-get install xcompmgr
+
+然后,选择**菜单(Menu) -> 偏好(Preferences) -> LXSession默认程序(Default applications for LXSession)**。选择自动开始(Autostart)选项卡。 在**(+增加)+Add**框中输入“**@xcompmgr -n**”不带引号。最后点击增加按钮。
+
+
+
+这样就搞定了。关掉LXSession配置窗口,注销或重启系统。之后,你就可以看见混合功能已经打开。
+
+
+
+这时,你就可以使用3D背景和隐藏功能,如自动隐藏(Auto-hide),Intellihide和窗口闪烁(Window dodge)等。
+
+
+
+搞定!干杯!
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/quick-tip-fix-docky-compositing-error-lubuntu/
+
+作者:[SK][a]
+译者:[Vic020/VicYu](http://www.vicyu.net)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.unixmen.com/author/sk/
diff --git a/published/201411/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md b/published/201411/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md
new file mode 100644
index 0000000000..9701a6d27a
--- /dev/null
+++ b/published/201411/20141114 Ubuntu MATE 14.04 LTS Now Available to Download.md
@@ -0,0 +1,45 @@
+对,你没看错!Ubuntu MATE 14.04 LTS 现在发布了
+================================================================================
+
+
+**传统桌面的粉丝现在可以欢呼了,Ubuntu MATE的第一个长期支持版本现在发布了,马上去下载吧!**
+
+这个社区产物使用基于 GNOME2 的MATE桌面环境,这个分支还继续着积极的开发和提升。Ubuntu MATE 14.04 LTS跟随着上月发布的Ubuntu 14.10一起发布了。
+
+### 回顾补充 ###
+
+你大概会想我是不是打错了(我是Joey Sneddon,这大概可以肯定)。但这此是没错的,你看到的是对的。Ubuntu MATE团队决定追溯创建一个LTS版本。
+
+**Ubuntu MATE 14.04 LTS** 确切地应该叫Ubuntu MATE 14.11 LTS。[如项目领导者 Martin Wimpress 注明的][1]:不只是因为他在11月份发布,还因为它混合了14.04和14.10的代码。
+
+> “该版本并不寻常,它虽然基于Ubuntu MATE 14.10 但是加入了很多新的特性,并且修复了很多bug。虽然这是一个14.04版本,但是你可以认为它是一个比14.10 更新的版本...”
+
+如其他社区产物一样,Ubuntu MATE 14.04也将至少支持接下来的三年,但是应该同样会得到来自上游的严重安全更新。
+
+**与14.10相比的改变**包括:
+
+- 更新了主题和壁纸
+- 增加了两个新的应用: MATE Menu 和 MATE Tweak
+- 改善辅助功能
+- VLC 代替了 Totem 视频播放器
+- 更新了几个 MATE 桌面包
+
+### 下载 ###
+
+要知道更多细节,以及硬件需求和支持信息,可以在官方网站上找到,也可以点击下面的链接。
+
+- [下载 Ubuntu MATE 14.04 LTS][2]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/11/ubuntu-mate-14-04-download-released
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:https://ubuntu-mate.org/blog/ubuntu-mate-trusty-final-release/
+[2]:https://ubuntu-mate.org/longterm/
\ No newline at end of file
diff --git a/published/201411/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md b/published/201411/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md
new file mode 100644
index 0000000000..34319b75e3
--- /dev/null
+++ b/published/201411/20141115 LibreOffice 4.3.4 Released With 60 Bug Fixes v4.4 Shaping Up Nicely.md
@@ -0,0 +1,58 @@
+修复了60个bug的LibreOffice 4.3.4正式发布
+================================================================================
+
+
+
+**[前一段时间][1], 文档基金会带着它的开源LibreOffice生产力套件的又一个小版本更新回来了。**
+
+LibreOffice 4.3.4,新系列中的第四个次版本,该版本只包含 BUG 修复,按计划发布了。
+
+可以看到的变化是,如基金会所说的在developers’ butterfly net上被揪出来并且修复的bug数量大概有:60个左右。
+
+- 排序操作现在还是默认为旧式风格(Calc)
+- 在预览后恢复焦点窗口(Impress)
+- 图表向导对话框不再是‘切除’式
+- 修复了记录改变时的字数统计问题 (Writer)
+- 各种各样的RTF修复,包括图像边框导入(Writer)
+
+完整列表可以在 [LibreOffice Wiki 页面][2]查看。
+
+### 下载 ###
+
+许多家伙有完整的LibreOffice安装程序但是从来没用过它。如果你是其中一份子,你就当做没看到。
+
+如果你喜欢升级,你可以在官方网站上找到所有相关的下载链接。
+
+- [下载LibreOffice 4.3.4][3]
+
+### 预测一下LibreOffice 4.4 ###
+
+
+
+*来自LibreOffice 4.4的信息栏*
+
+LibreOffice 4.4应该会让大家更多期望。
+
+[维基上讲述了][4]正在进行中的不间断大范围GUI调整,包括一个新的颜色选择器,重新设计的段落行距选择器和一个在凸显部位表示该文件是否为只读模式的信息栏。
+
+虽然我知道一些桌面社区对这些大规模的界面变动的抗议声不断,但是他们还是朝着正确的方向稳步前进。
+
+要记住,在一些必要情况下,LibreOffice对于企业和机构来说是一款非常重要的软件。在外观和布局上有任何引人注目的修改都会引发一串连锁效应。
+
+感谢Tim W!
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/11/libreoffice-4-3-4-arrives-bundle-bug-fixes
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[ZTinoZ](https://github.com/ZTinoZ)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/10/libreoffice-4-3-3-released-62-bug-fixes
+[2]:https://wiki.documentfoundation.org/Releases/4.3.4/RC1
+[3]:http://www.libreoffice.org/download/libreoffice-fresh/
+[4]:https://wiki.documentfoundation.org/ReleaseNotes/4.4#GUI
diff --git a/published/201411/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md b/published/201411/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md
new file mode 100644
index 0000000000..fe6ce70b0d
--- /dev/null
+++ b/published/201411/20141125 Linux FAQs with Answers--How to check glibc version on Linux.md
@@ -0,0 +1,54 @@
+Linux有问必答:如何检查Linux上的glibc版本
+================================================================================
+> **问题**:我需要找出我的Linux系统上的GNU C库(glibc)的版本,我怎样才能检查Linux上的glibc版本呢?
+
+GNU C库(glibc)是标准C库的GNU实现。glibc是GNU工具链的关键组件,用于和二进制工具和编译器一起使用,为目标架构生成用户空间应用程序。
+
+当从源码进行构建时,一些Linux程序可能需要链接到某个特定版本的glibc。在这种情况下,你可能想要检查已安装的glibc信息以查看是否满足依赖关系。
+
+这里介绍几种简单的方法,方便你检查Linux上的glibc版本。
+
+### 方法一 ###
+
+下面给出了命令行下检查GNU C库的简单命令。
+
+ $ ldd --version
+
+
+
+在本例中,**glibc**版本是**2.19**。
+
+### 方法二 ###
+
+另一个方法是在命令行“输入”**glibc 库的名称**(如,libc.so.6),就像命令一样执行。
+
+输出结果会显示更多关于**glibc库**的详细信息,包括glibc的版本以及使用的GNU编译器,也提供了glibc扩展的信息。glibc变量的位置取决于Linux版本和处理器架构。
+
+在基于Debian的64位系统上:
+
+ $ /lib/x86_64-linux-gnu/libc.so.6
+
+在基于Debian的32位系统上:
+
+ $ /lib/i386-linux-gnu/libc.so.6
+
+在基于Red Hat的64位系统上:
+
+ $ /lib64/libc.so.6
+
+在基于Red Hat的32位系统上:
+
+ $ /lib/libc.so.6
+
+下图中是输入glibc库后的输出结果样例。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/check-glibc-version-linux.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/published/201411/20141127 How to install Docker on CentOS 7.md b/published/201411/20141127 How to install Docker on CentOS 7.md
new file mode 100644
index 0000000000..63ccb537f5
--- /dev/null
+++ b/published/201411/20141127 How to install Docker on CentOS 7.md
@@ -0,0 +1,84 @@
+如何在 CentOS 7 上安装 Docker
+================================================================================
+
+Docker 是一个开源工具,它可以让创建和管理 **Linux 容器**变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点。
+
+容器和 VM(虚拟机)的主要区别是,容器提供了**基于进程的隔离**,而虚拟机提供了资源的完全隔离。虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。容器使用宿主操作系统的内核,而虚拟机使用独立的内核。
+
+Docker 的局限性之一是,它只能用在 **64 位**的操作系统上。
+
+在这篇文章中我们将讨论如何在 CentOS 7.x 中安装 docker。
+
+### CentOS 7 中 Docker 的安装 ###
+
+Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:
+
+ [root@localhost ~]# yum install docker
+
+### 启动 Docker 服务 ###
+
+安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
+
+ [root@localhost ~]# service docker start
+ [root@localhost ~]# chkconfig docker on
+
+(LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
+
+ [root@localhost ~]# systemctl start docker.service
+ [root@localhost ~]# systemctl enable docker.service
+
+)
+
+**下载官方的 CentOS 镜像到本地** (LCTT 译注:由于 Docker 被**墙** :-< ,所以请使用 http://docker.cn 的[镜像][1],感谢 @马全一 的镜像。 )
+
+ [root@localhost ~]# docker pull centos
+ Pulling repository centos
+ 192178b11d36: Download complete
+ 70441cac1ed5: Download complete
+ ae0c2d0bdc10: Download complete
+ 511136ea3c5a: Download complete
+ 5b12ef8fd570: Download complete
+
+**确认 CentOS 镜像已经被获取:**
+
+ [root@localhost ~]# docker images centos
+ REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
+ centos centos5 192178b11d36 2 weeks ago 466.9 MB
+ centos centos6 70441cac1ed5 2 weeks ago 215.8 MB
+ centos centos7 ae0c2d0bdc10 2 weeks ago 224 MB
+ centos latest ae0c2d0bdc10 2 weeks ago 224 MB
+
+**运行一个 Docker 容器:**
+
+ [root@localhost ~]# docker run -i -t centos /bin/bash
+ [root@dbf66395436d /]#
+
+我们可以看到,CentOS 容器已经被启动,并且我们得到了 bash 提示符。在 docker 命令中我们使用了 “-i 捕获标准输入输出”和 “-t 分配一个终端或控制台”选项。若要断开与容器的连接,输入 exit。
+
+ [root@cd05639b3f5c /]# cat /etc/redhat-release
+ CentOS Linux release 7.0.1406 (Core)
+ [root@cd05639b3f5c /]# exit
+ exit
+ [root@localhost ~]#
+
+我们还可以搜索基于 Fedora 和 Ubuntu 操作系统的容器。
+
+ [root@localhost ~]# docker search ubuntu
+ [root@localhost ~]# docker search fedora
+
+**显示当前正在运行容器的列表**
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/install-docker-on-centos-7/
+
+作者:[Pradeep Kumar][a]
+译者:[felixonmars](https://github.com/felixonmars)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
+[1]:https://docker.cn/h/how-to-use-docker-official-repositories
diff --git a/published/201411/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md b/published/201411/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md
new file mode 100644
index 0000000000..d5ba37285a
--- /dev/null
+++ b/published/201411/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md
@@ -0,0 +1,218 @@
+在Linux中使用Openswan搭建站点到站点的IPsec VPN 隧道
+================================================================================
+虚拟私有网络(VPN)隧道是通过Internet隧道技术将两个不同地理位置的网络安全的连接起来的技术。当两个网络是使用私有IP地址的私有局域网络时,它们之间是不能相互访问的,这时使用隧道技术就可以使得两个子网内的主机进行通讯。例如,VPN隧道技术经常被用于大型机构中不同办公区域子网的连接。
+
+有时,使用VPN隧道仅仅是因为它很安全。服务提供商与公司会使用这样一种方式架设网络,他们将重要的服务器(如,数据库,VoIP,银行服务器)放置到一个子网内,仅仅让有权限的用户通过VPN隧道进行访问。如果需要搭建一个安全的VPN隧道,通常会选用[IPsec][1],因为IPsec VPN隧道被多重安全层所保护。
+
+这篇指导文章将会告诉你如何构建站点到站点的 VPN隧道。
+
+### 拓扑结构 ###
+
+这边指导文章将按照以下的拓扑结构来构建一个IPsec 隧道。
+
+
+
+
+
+
+
+### 安装软件包以及准备VPN服务器 ###
+
+一般情况下,你仅能管理A点,但是根据需求,你可能需要同时管理A点与B点。我们从安装Openswan软件开始。
+
+基于Red Hat的系统(CentOS,Fedora,或RHEL):
+
+ # yum install openswan lsof
+
+在基于Debian的系统(Debian,Ubuntu或Linux Mint):
+
+ # apt-get install openswan
+
+现在禁用VPN的重定向功能,如果有服务器,可以执行下列命令:
+
+ # for vpn in /proc/sys/net/ipv4/conf/*;
+ # do echo 0 > $vpn/accept_redirects;
+ # echo 0 > $vpn/send_redirects;
+ # done
+
+接下来,允许IP转发并且禁重定向功能。
+
+ # vim /etc/sysctl.conf
+
+----------
+
+ net.ipv4.ip_forward = 1
+ net.ipv4.conf.all.accept_redirects = 0
+ net.ipv4.conf.all.send_redirects = 0
+
+重加载 /etc/sysctl.conf文件:
+
+ # sysctl -p
+
+在防火墙中启用所需的端口,并保证不与系统当前的规则冲突。
+
+ # iptables -A INPUT -p udp --dport 500 -j ACCEPT
+ # iptables -A INPUT -p tcp --dport 4500 -j ACCEPT
+ # iptables -A INPUT -p udp --dport 4500 -j ACCEPT
+
+最后,我们为NAT创建防火墙规则。
+
+ # iptables -t nat -A POSTROUTING -s site-A-private-subnet -d site-B-private-subnet -j SNAT --to site-A-Public-IP
+
+请确保上述防火墙规则是持久有效的(LCTT 译注:你可以save这些规则或加到启动脚本中)。
+
+#### 注意: ####
+
+- 你可以使用MASQUERAD替代SNAT(iptables)。理论上说它也能正常工作,但是有可能会与VPS发生冲突,所以我仍然建议使用SNAT。
+- 如果你同时在管理B点,那么在B点也设置同样的规则。
+- 直连路由则不需要SNAT。
+
+### 准备配置文件 ###
+
+我们将要用来配置的第一个文件是ipsec.conf。不论你将要配置哪一台服务器,总是将你这端的服务器看成是左边的,而将远端的看作是右边的。以下配置是在站点A的VPN服务器做的。
+
+ # vim /etc/ipsec.conf
+
+----------
+
+ ## general configuration parameters ##
+
+ config setup
+ plutodebug=all
+ plutostderrlog=/var/log/pluto.log
+ protostack=netkey
+ nat_traversal=yes
+ virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/16
+ ## disable opportunistic encryption in Red Hat ##
+ oe=off
+
+ ## disable opportunistic encryption in Debian ##
+ ## Note: this is a separate declaration statement ##
+ include /etc/ipsec.d/examples/no_oe.conf
+
+ ## connection definition in Red Hat ##
+ conn demo-connection-redhat
+ authby=secret
+ auto=start
+ ike=3des-md5
+ ## phase 1 ##
+ keyexchange=ike
+ ## phase 2 ##
+ phase2=esp
+ phase2alg=3des-md5
+ compress=no
+ pfs=yes
+ type=tunnel
+ left=
+ leftsourceip=
+ leftsubnet=/netmask
+ ## for direct routing ##
+ leftsubnet=/32
+ leftnexthop=%defaultroute
+ right=
+ rightsubnet=/netmask
+
+ ## connection definition in Debian ##
+ conn demo-connection-debian
+ authby=secret
+ auto=start
+ ## phase 1 ##
+ keyexchange=ike
+ ## phase 2 ##
+ esp=3des-md5
+ pfs=yes
+ type=tunnel
+ left=
+ leftsourceip=
+ leftsubnet=/netmask
+ ## for direct routing ##
+ leftsubnet=/32
+ leftnexthop=%defaultroute
+ right=
+ rightsubnet=/netmask
+
+有许多方式实现身份验证。这里使用预共享密钥,并将它添加到文件 /etc/ipsec.secrets。
+
+ # vim /etc/ipsec.secrets
+
+----------
+
+ siteA-public-IP siteB-public-IP: PSK "pre-shared-key"
+ ## in case of multiple sites ##
+ siteA-public-IP siteC-public-IP: PSK "corresponding-pre-shared-key"
+
+### 启动服务并排除故障 ###
+
+目前,服务器已经可以创建站点到站点的VPN隧道了。如果你可以管理B站点,请确认已经为B服务器配置了所需的参数。对于基于Red Hat的系统,使用chkconfig命令以确定这项服务以设置为开机自启动。
+
+ # /etc/init.d/ipsec restart
+
+如果所有服务器没有问题的话,那么可以打通隧道了。注意以下内容后,你可以使用ping命令来测试隧道。
+
+1. A点不可达B点的子网,当隧道没有启动时ping不通。
+1. 隧道启动后,在A点直接ping B点的子网IP,是可以ping通的。
+
+并且,到达目的子网的路由也会出现在服务器的路由表中。(LCTT译注:这里“子网”指的是site-B,“服务器”指的是site-A)
+
+ # ip route
+
+----------
+
+ [siteB-private-subnet] via [siteA-gateway] dev eth0 src [siteA-public-IP]
+ default via [siteA-gateway] dev eth0
+
+另外,我们可以使用命令来检测隧道的状态。
+
+ # service ipsec status
+
+----------
+
+ IPsec running - pluto pid: 20754
+ pluto pid 20754
+ 1 tunnels up
+ some eroutes exist
+
+----------
+
+ # ipsec auto --status
+
+----------
+
+ ## output truncated ##
+ 000 "demo-connection-debian": myip=; hisip=unset;
+ 000 "demo-connection-debian": ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0; nat_keepalive: yes
+ 000 "demo-connection-debian": policy: PSK+ENCRYPT+TUNNEL+PFS+UP+IKEv2ALLOW+SAREFTRACK+lKOD+rKOD; prio: 32,28; interface: eth0;
+
+ ## output truncated ##
+ 000 #184: "demo-connection-debian":500 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 1653s; newest IPSEC; eroute owner; isakmp#183; idle; import:not set
+
+ ## output truncated ##
+ 000 #183: "demo-connection-debian":500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 1093s; newest ISAKMP; lastdpd=-1s(seq in:0 out:0); idle; import:not set
+
+日志文件/var/log/pluto.log记录了关于身份验证,密钥交换以及隧道处于不同时期的一些信息。如果你的隧道无法启动了,可以查看这个文档。
+
+如果你确信所有配置都是正确的,但是你的隧道任然无法启动,那么你需要检查以下的事件。
+
+1. 很多ISP会过滤IPsec端口。确认你的网络ISP允许使用UDP 500, TCP/UDP 4500端口。你可以试着在远端通过telnet连接服务器的IPsec端口。
+1. 确认所用的端口在服务器防火墙规则中是允许的。
+1. 确认两端服务器的预共享密钥是一致的。
+1. 左边和右边的参数应该正确配置在两端的服务器上
+1. 如果你遇到的是NAT问题,试着使用SNAT替换MASQUERADING。
+
+总结,这篇指导重点在于使用Openswan搭建站点到站点IPsec VPN的流程。管理员可以使用VPN使得一些重要的资源仅能通过隧道来获取,这对于加强安全性很有效果。同时VPN确保数据不被监听以及劫持。
+
+希望对你有帮助。让我知道你的意。
+
+---
+
+via: http://xmodulo.com/2014/08/create-site-to-site-ipsec-vpn-tunnel-openswan-linux.html
+
+作者:[Sarmed Rahman][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/sarmed
+[1]:http://en.wikipedia.org/wiki/IPsec
+[2]:https://www.openswan.org/
diff --git a/published/201411/How to sniff HTTP traffic from the command line on Linux.md b/published/201411/How to sniff HTTP traffic from the command line on Linux.md
new file mode 100644
index 0000000000..849ed9e86d
--- /dev/null
+++ b/published/201411/How to sniff HTTP traffic from the command line on Linux.md
@@ -0,0 +1,103 @@
+Linux 命令行下嗅探 HTTP 流量的工具:httpry
+================================================================================
+假设由于某种原因,你需要嗅探HTTP站点的流量(如HTTP请求与响应)。举个例子,你可能在测试一个web服务器的实验性功能,或者你在为某个web应用或RESTful服务排错,又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因,在这些情况下,进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。
+
+数据包嗅工具tcpdump被广泛用于实时数据包的导出,但是你需要设置过滤规则来捕获HTTP流量,甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如[ngxtop][3]可以提供可读的实时web流量跟踪痕迹,但这仅适用于可完全访问live web服务器日志的情况。
+
+要是有一个仅用于抓取HTTP流量的类似tcpdump的数据包嗅探工具就非常好了。事实上,[httpry][4]就是:**HTTP包嗅探工具**。httpry捕获HTTP数据包,并且将HTTP协议层的数据内容以可读形式列举出来。通过这篇指文章,让我们了解如何使用httpry工具嗅探HTTP流量。
+
+###在Linux上安装httpry###
+
+基于Debian系统(Ubuntu 或 LinuxMint),基础仓库中没有httpry安装包(译者注:本人ubuntu14.04,仓库中已有包,可直接安装)。所以我们需要通过源码安装:
+
+ $ sudo apt-get install gcc make git libpcap0.8-dev
+ $ git clone https://github.com/jbittel/httpry.git
+ $ cd httpry
+ $ make
+ $ sudo make install
+
+在Fedora,CentOS 或 RHEL系统,可以使用如下yum命令安装httpry。在CentOS/RHEL系统上,运行yum之前使其能够访问[EPEL repo][5]。
+
+ $ sudo yum install httpry
+
+如果你仍想通过基于RPM系统的源码来安装httpry的话,你可以通过这几个步骤实现:
+
+ $ sudo yum install gcc make git libpcap-devel
+ $ git clone https://github.com/jbittel/httpry.git
+ $ cd httpry
+ $ make
+ $ sudo make install
+
+###httpry的基本用法###
+
+以下是httpry的基本用法
+
+ $ sudo httpry -i
+
+httpry就会监听指定的网络接口,并且实时的显示捕获到的HTTP请求/相应。
+
+
+
+在大多数情况下,由于发送与接到的数据包过多导致刷屏很快,难以分析。这时候你肯定想将捕获到的数据包保存下来以便离线分析。可以使用'b'或'-o'选项保存数据包。'-b'选项将数据包以二进制文件的形式保存下来,这样可以使用httpry软件打开文件以浏览。另一方面,'-o'选项将数据以可读的字符文件形式保存下来。
+
+以二进制形式保存文件:
+
+ $ sudo httpry -i eth0 -b output.dump
+
+浏览所保存的HTTP数据包文件:
+
+ $ httpry -r output.dump
+
+注意,不需要根用户权限就可以使用'-r'选项读取数据文件。
+
+将httpry数据以字符文件保存:
+
+ $ sudo httpry -i eth0 -o output.txt
+
+###httpry 的高级应用###
+
+如果你想监视指定的HTTP方法(如:GET,POST,PUT,HEAD,CONNECT等),使用'-m'选项:
+
+ $ sudo httpry -i eth0 -m get,head
+
+
+
+如果你下载了httpry的源码,你会发现源码下有一些Perl脚本,这些脚本用于分析httpry输出。脚本位于目录httpry/scripts/plugins。如果你想写一个定制的httpry输出分析器,则这些脚可以作为很好的例子。其中一些有如下的功能:
+
+- **hostnames**: 显示唯一主机名列表。
+- **find_proxies**: 探测web代理。
+- **search_terms**: 查找及统计在搜索服务里面的搜索词。
+- **content_analysis**: 查找含有指定关键的URL。
+- **xml_output**: 将输出转换为XML形式。
+- **log_summary**: 生成日志汇总。
+- **db_dump**: 将日志文件数据保存数据库。
+
+在使用这些脚本之前,首先使用'-o'选项运行httpry。当获取到输出文件后,立即使用如下命令执行脚本:
+
+ $ cd httpry/scripts
+ $ perl parse_log.pl -d ./plugins
+
+你可能在使用插件的时候遇到警告。比如,如果你没有安装带有DBI接口的MySQL数据库,那么使用db\_dump插件时可能会失败。如果一个插件初始化失败的话,那么只是这个插件不能使用,所以你可以忽略那些警告。
+
+当parse\_log.pl完成后,你将在httpry/scripts 目录下看到数个分析结果。例如,log\_summary.txt 与如下内容类似。
+
+
+
+总的来说,当你要分析HTTP数据包的时候,httpry非常有用。它可能并不被大多Linux使用者所熟知,但会用总是有好处的。你觉得这个工具怎么样呢?
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/sniff-http-traffic-command-line-linux.html
+
+作者:[Dan Nanni][a]
+译者:[DoubleC](https://github.com/DoubleC)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://xmodulo.com/2012/12/how-to-set-up-proxy-auto-config-on-ubuntu-desktop.html
+[2]:http://xmodulo.com/2012/11/what-are-popular-packet-sniffers-on-linux.html
+[3]:http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html
+[4]:http://dumpsterventures.com/jason/httpry/
+[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
diff --git a/published/201411/How-to-debug-a-C or C++ program with GDB command-line debugger.md b/published/201411/How-to-debug-a-C or C++ program with GDB command-line debugger.md
new file mode 100644
index 0000000000..f65bcb96d8
--- /dev/null
+++ b/published/201411/How-to-debug-a-C or C++ program with GDB command-line debugger.md
@@ -0,0 +1,167 @@
+使用GDB命令行调试器调试C/C++程序
+============================================================
+没有调试器的情况下编写程序时最糟糕的状况是什么?编译时跪着祈祷不要出错?用血祭召唤恶魔帮你运行可执行程序?或者在每一行代码间添加printf("test")语句来定位错误点?如你所知,编写程序时不使用调试器的话是不方便的。幸好,linux下调试还是很方便的。大多数人使用的IDE都集成了调试器,但 linux 最著名的调试器是命令行形式的C/C++调试器GDB。然而,与其他命令行工具一致,DGB需要一定的练习才能完全掌握。这里,我会告诉你GDB的基本情况及使用方法。
+
+###安装GDB###
+
+大多数的发行版仓库中都有GDB
+
+Debian 或 Ubuntu
+
+ $ sudo apt-get install gdb
+
+Arch Linux
+
+ $ sudo pacman -S gdb
+
+Fedora,CentOS 或 RHEL:
+
+ $sudo yum install gdb
+
+如果在仓库中找不到的话,可以从[官网中下载][1]。
+
+###示例代码###
+
+当学习GDB时,最好有一份代码,动手试验。下列代码是我编写的简单例子,它可以很好的体现GDB的特性。将它拷贝下来并且进行实验——这是最好的方法。
+
+ #include
+ #include
+
+ int main(int argc, char **argv)
+ {
+ int i;
+ int a=0, b=0, c=0;
+ double d;
+ for (i=0; i<100; i++)
+ {
+ a++;
+ if (i>97)
+ d = i / 2.0;
+ b++;
+ }
+ return 0;
+ }
+
+###GDB的使用###
+
+首先最重要的,你需要使用编译器的 “-g“选项来编译程序,这样可执行程序才能通过GDB来运行。通过下列语句开始调试:
+
+ $ gdb -tui [executable's name]
+
+使用”-tui“选项可以将代码显示在一个漂亮的交互式窗口内(所以被称为“文本用户界面 TUI”),在这个窗口内可以使用光标来操控,同时在下面的GDB shell中输入命令。
+
+
+
+现在我们可以在程序的任何地方设置断点。你可以通过下列命令来为当前源文件的某一行设置断点。
+
+ break [行号]
+
+或者为一个特定的函数设置断点:
+
+ break [函数名]
+
+甚至可以设置条件断点
+
+ break [行号] if [条件]
+
+例如,在我们的示例代码中,可以设置如下:
+
+ break 11 if i > 97
+
+
+
+这样,程序循环97次之后停留在“a++”语句上。这样是非常方便的,避免了我们需要手动循环97次。
+
+最后但也是很重要的是,我们可以设置一个“观察断点”,当这个被观察的变量发生变化时,程序会被停止。
+
+ watch [变量]
+
+这里我们可以设置如下:
+
+ watch d
+
+当d的值发生变化时程序会停止运行(例如,当i>97为真时)。
+
+当设置断点后,使用"run"命令开始运行程序,或按如下所示:
+
+ r [程序的输入参数(如果有的话)]
+
+gdb中,大多数的命令单词都可以简写为一个字母。
+
+不出意外,程序会停留在11行。这里,我们可以做些有趣的事情。下列命令:
+
+ bt
+
+回溯功能(backtrace)可以让我们知道程序如何到达这条语句的。
+
+
+
+ info locals
+
+这条语句会显示所有的局部变量以及它们的值(你可以看到,我没有为d设置初始值,所以它现在的值是任意值)。
+
+当然:
+
+
+
+ p [变量]
+
+这个命令可以显示特定变量的值,而更进一步:
+
+ ptype [变量]
+
+可以显示变量的类型。所以这里可以确定d是double型。
+
+
+
+既然已经到这一步了,我么不妨这么做:
+
+ set var [变量] = [新的值]
+
+这样会覆盖变量的值。不过需要注意,你不能创建一个新的变量或改变变量的类型。我们可以这样做:
+
+ set var a = 0
+
+
+
+如其他优秀的调试器一样,我们可以单步调试:
+
+ step
+
+使用如上命令,运行到下一条语句,有可能进入到一个函数里面。或者使用:
+
+ next
+
+这可以直接运行下一条语句,而不进入子函数内部。
+
+
+
+结束测试后,删除断点:
+
+ delete [行号]
+
+从当前断点继续运行程序:
+
+ continue
+
+退出GDB:
+
+ quit
+
+总之,有了GDB,编译时不用祈祷上帝了,运行时不用血祭了,再也不用printf(“test“)了。当然,这里所讲的并不完整,而且GDB的功能远远不止于此。所以我强烈建议你自己更加深入的学习它。我现在感兴趣的是将GDB整合到Vim中。同时,这里有一个[备忘录][2]记录了GDB所有的命令行,以供查阅。
+
+你对GDB有什么看法?你会将它与图形调试器对比吗,它有什么优势呢?对于将GDB集成到Vim有什么看法呢?将你的想法写到评论里。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/gdb-command-line-debugger.html
+
+作者:[Adrien Brochard][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/adrien
+[1]:https://www.gnu.org/software/gdb/
+[2]:http://users.ece.utexas.edu/~adnan/gdb-refcard.pdf
diff --git a/published/201411/Meet systemd, the controversial project taking over a Linux distro near you.md b/published/201411/Meet systemd, the controversial project taking over a Linux distro near you.md
new file mode 100644
index 0000000000..ceecf96843
--- /dev/null
+++ b/published/201411/Meet systemd, the controversial project taking over a Linux distro near you.md
@@ -0,0 +1,80 @@
+Systemd这个有争议的项目正在接管你身边的Linux发行版
+=========
+
+
+Systemd 是目前为止在Linux平台上最有争议的项目之一。它到底有多大的争议?它的争议大到systemd的开发者之一Lennart Poettering 声称有人使用[比特币][2]雇佣职业杀手要干掉他。但是还是有比较理智的做法的,有一个[抵制systemd网站][3]在技术角度上提出了抵制systemd的原因。
+
+如此强烈的抵制也反映了systemd的成功。它已经被或将要被Fedroa、OpenSUSE、Ubuntu、Debian、Arch Linux等众多发行版采用。随着时间推移,GNOME越来越依赖它,Debian[回归GNOME][4]的原因之一就是它采用了systemd。systemd无处不在!
+
+那么如此激烈的争论到底是关于什么呢?让我们近距离观察这场战争。
+
+###Systemd是一个全新的init
+
+[Systemd][5]的核心是取代老旧的[SysV init][6]。init用来初始化你的操作系统,当你启动系统时,init负责加载需要的驱动,激活你的网络链接,启动众多的系统服务,最后进入图形登陆界面。而SysV init 是一个老旧的系统,它基本上仅运行**/etc/init.d**目录下的一些脚本。
+
+Systemd是一个现代技术,用以取代老旧以及粗糙的SysV init。它可以在接收到事件响应时启动相关服务;比如,当你接入了一个USB打印机,systemd可以在接收到设备接入响应时启动打印服务。当它接收到某个网络端口的连接请求时,它可以启动在此端口上监听的服务并且传递这个连接。
+
+获取更多关于SysV init 与 systemd的信息,可以参考Jorgen Schäfer的 “[Why systemd?][9]”
+
+###但是systemd远不止此###
+
+systemd的反对者之中也有部分人认为SysV太老了,应该被取代掉。但是批评systemd的人发现Systemd是一个巨大的项目,其中包括了很多其他的功能。它是一个软件套件,而不仅仅是一个init。
+
+
+
+*[维基共享资源][10] systemd 结构图解*
+
+Systemd包括用于管理用户登陆的守护进程logind,还包括journald,并且journald 颇有争议的使用了二进制形式保存系统日志而不是以文本形式。systemd也采用了[udev][11]的思想及代码,它对**/dev/**目录下的虚拟设备文件进行管理,并且处理设备接入或推出时所产生的事件。除了这些还有很多其他的,如:systemd还包括了[cron][12]风格的任务调度器与网络守护进程networkd等等。
+
+###抨击者认为systemd不是类UNIX风格
+
+多数的抱怨源于人们认为systemd项目太大以至于超出了它的工作范围,并且它从Linux系统接管的部分太多了。不要感到惊奇,systemd的抵制活动是以下面的抱怨开始的:
+
+>"systemd文件是一大堆的复杂的高度耦合的二进制组成的,这违反了UNIX哲学:‘做一件事情,并把它做好’。它超出了一个init程序的职责范围,因为它还有电源管理,设备管理,挂载管理,cron(定时执行工具),磁盘加密,socket接口/inetd,syslog,网络配置,登陆/会话管理,文件预读,GPT分区发现,容器注册,hostname/locale/time管理,mDNS/DNS-SD等功能,它将Linux控制台以及其他的一些功能都包装在一个程序里面。
+
+##那么,systemd是好是坏?
+
+到这里,我判断一下,到底谁是正确的。
+
+
+
+systemd最初的想法是非常好的。Linux需要一个新的东西来替换老的 SysV init 和沉重的 SysV init 脚本,这个新的程序应该是灵活的,现代化的系统守护进程,它可以响应更多类型,并且智能化的管理众多的守护进程。然而,事实上systemd好像成为了**一个仅依赖Linux核心的完全统一的系统层**。
+
+*但是*,尽管Linux是一个社区开发项目,但它不是为PC世界的专栏作家或者是一群网络评论者提供的,这些人都不能决定它的进化与发展。只有那些亲手贡献代码以及全身心投入的人才有这个资格。巧的是,Linux发行版以及那些参与者好像大部分都倾向与systemd。
+
+>'我对于systemd本身并没有很强烈的个人看法。我与核心开发人员争论过它的bug与兼容性,并且我认为它的一些设计是愚蠢的(比如二进制的日志),但这只是细节,不是大问题。
+
+如果 Linux Torvald 对于systemd的设计没有什么反对意见,那么说明它可能还是不错的。如果你想平静的看下为什么Linux发行版要使用systemd的话,我推荐这篇文章,[Debian's systemd discussion document][13]。
+
+你是如何看systemd的,可以在评论回复!但是请文明讨论。
+
+*更新这篇文章以澄清之前的错误的消息,ubuntu 桌面版将在下一个版本中纳入systemd。之前我们错误的认为ubuntu已经使用了systemd*。
+
+-------------------------------------------------------------------------------
+
+via: http://www.pcworld.com/article/2841873/meet-systemd-the-controversial-project-taking-over-a-linux-distro-near-you.html
+
+作者:[Chris Hoffman][a]
+译者:[SPccman](https://github.com/SPccman)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.pcworld.com/article/2841873/meet-systemd-the-controversial-project-taking-over-a-linux-distro-near-you.html#chrishoffman
+[1]:https://plus.google.com/app/basic/stream/z13rdjryqyn1xlt3522sxpugoz3gujbhh04
+[2]:http://www.pcworld.com/article/2033715/7-things-you-need-to-know-about-bitcoin.html
+[3]:http://boycottsystemd.org/
+[4]:http://www.pcworld.com/article/2691192/how-gnome-3-14-is-winning-back-disillusioned-linux-users.html
+[5]:http://www.freedesktop.org/wiki/Software/systemd/
+[6]:http://en.wikipedia.org/wiki/Init#SysV-style
+[7]:http://www.pcworld.com/column/world-beyond-windows/
+[8]:http://www.pcworld.com/blog/world-beyond-windows/index.rss
+[9]:http://blog.jorgenschaefer.de/2014/07/why-systemd.html
+[10]:http://en.wikipedia.org/wiki/File:Systemd_components.svg
+[11]:http://en.wikipedia.org/wiki/Udev
+[12]:http://en.wikipedia.org/wiki/Cron
+[13]:http://www.markshuttleworth.com/archives/1295
+[14]:http://www.pcworld.com/article/2836984/why-ubuntu-1410-utopic-unicorns-humble-changes-are-the-calm-before-the-storm.html
+[15]:http://www.maximumpc.com/article/news/linus_torvalds_tosses_f-bombs_middle_fingers_and_general_disdain_nvidia
+[16]:http://www.zdnet.com/linus-torvalds-and-others-on-linuxs-systemd-7000033847/
+[17]:https://wiki.debian.org/Debate/initsystem/systemd
diff --git a/published/201412/20140818 What are useful CLI tools for Linux system admins.md b/published/201412/20140818 What are useful CLI tools for Linux system admins.md
new file mode 100644
index 0000000000..58703a178d
--- /dev/null
+++ b/published/201412/20140818 What are useful CLI tools for Linux system admins.md
@@ -0,0 +1,187 @@
+Linux系统管理员的命令行工具箱目录
+================================================================================
+系统管理员(sysadmins)负责日常维护生产系统和服务。其中一个关键任务就是保证功能性服务能24小时工作。为了这个,他们得很小心地计划备份方式,灾难管理策略,定时维护,安全审查,等等。和任意其他管理一样,系统管理员也有他们的必备工具。在正确的时间正确的情况下使用合适的工具,可以帮助维护操作系统的健壮,达到最小的服务中断时间和最大的运行时间。
+
+
+
+这篇文章会介绍一些系统管理员日常活动中最常用和有效的命令行工具。如果你想推荐其他没在这里列出来的好用的工具,别忘了在评论区里分享一下。
+
+### 网络工具 ###
+
+1. **ping**:通过ICMP回应/回复报文来检查远端主机的端到端连接性(RTT延时,抖动,丢包)。用来检查系统状态和可连接性很不错。
+
+2. **[phping][1]**:网络扫描和检测工具,可以产生ICMP/TCP/UDP ping数据包。常常用于高级端口扫描,防火墙测试,手动MTU路径发现和碎片测试。
+
+3. **traceroute**:通过TTL限定的ICMP/UDP/TCP侦测包来发现从本地主机到远端目标主机之间的第三层转发路径。用来调试网络连接性和路由问题。
+
+4. **mtr**:traceroute的一个变种,能根据运行时统计数据整理出每一跳的包丢失/抖动。用来评估路由路径延时很不错。
+
+5. **[netcat][2]/[socat][3]**:TCP/IP网络里的瑞士军刀,可以读/写 TCP/UDP 协议字节流。用来调试防火墙策略和服务可用性很不错。
+
+6. **dig**:DNS调试工具,可以生成正向查询,反向查询,搜索域名服务器,检查CNAME,MX和其他DNS记录。可以在侦错的时候查询特定的DNS服务器。
+
+7. **nslookup**:另外一个DNS检查/调试工具。支持所有DNS查询和记录。可以查询特定DNS服务器。
+
+8. **dnsyo**:一个DNS测试工具,通过对全世界1500个不同网络中的大量开放解析器执行DNS查询来测试DNS传输。
+
+9. **lsof**:显示进程打开的文件信息(例如,普通文件,管道或套接字)。用来监视网络连接很不错。
+
+10. **iftop**:一个基于ncurses的命令行界面应用,可以实时监视各个网络物理接口上的网络连接和带宽占用。用来记录霸占带宽的应用、用户、目的地和端口等很不错。
+
+11. **netstat**:一个网络统计工具,可以显示状态以及统计信息,当前网络连接(TCP/UDP端口,IP地址)、路由表、TX/RX traffic以及网络协议。用来做网络相关诊断和性能调试很不错。
+
+12. **[tcpdump][4]**:一个常用的基于libpcap抓包库的包侦测工具。可以按伯克利包过滤器格式定义抓包条件。
+
+13. **[tshark][5]**:另一个命令行抓包工具,和它的GUI版本Wireshark完全兼容。支持[1000种协议][6]而且这个列表还在增加。用来调试、分析和保存实时网络封包信息很不错。
+
+14. **ip**:一个多功能的命令行网络工具,是iproute2包的一部分。可以检查和修改路由表、网络设备状态以及IP隧道设置。用来查看路由表、增加/删除静态路由、配置网络接口、以及调试路由问题很有用。
+
+15. **ifup/ifdown**:用来激活和关闭特定的网络接口。经常用于重启整个网络服务。
+
+16. **[autossh][7]**:一个能建立SSH连接并在断线后自动重新连接的程序。用来创建长时间保持的穿越严格企业网络的SSH隧道很有用。
+
+17. **iperf**:一个网络测试工具,通过在发送自定义TCP/UDP数据流来衡量主机间双向最大吞吐量。
+
+18. **[elinks][8]/[lynx][9]**:为基于命令行的服务器环境下使用的基于文字的网页浏览器。
+
+### 安全工具 ###
+
+19. **[iptables][10]**:一个用户空间下的命令行工具,用于配置Linux内核防火墙。可以创建和修改Linux内核空间的网络包接收、转发和发送规则。
+
+20. **[nmap][11]**:一个常用的为了安全审查目的的端口扫描和网络发现工具。用来在本地网络中找出哪些主机开机并运行起来了以及某台特定主机打开了哪些端口很有用。
+
+21. **[TCP Wrappers][12]**:一个主机端的网络访问控制列表工具,可以过滤进入/出去的网络请求/回复。经常配合iptables一起使用,作为额外一层安全保护。
+
+22. **getfacl/setfacl**:查看和定制文件和目录的访问控制列表,作为传统文件权限的扩展。
+
+23. **cryptsetup**:用于创建和管理LUKS加密磁盘分区。
+
+24. **lynis**:一个命令行的漏洞扫描工具。可以扫描整个Linux系统,并汇报潜在的漏洞以及相关可能解决方案。
+
+25. **maldet**:一个恶意软件扫描命令行工具,可以检测和隔离潜在的感染文件。可以在后台运行长期监视。
+
+26. **[rkhunter][13]/[chkrootkit][14]**:一个命令行工具,可以扫描本地系统里的潜在木马、隐藏后门和可疑利用,并禁用它们。
+
+### 存储工具 ###
+
+27. **fdisk**:一个磁盘分区编辑工具。用于查看、创建和修改本地磁盘或可移动磁盘的分区。
+
+28. **sfdisk**:fdisk的一个变种,能用一种非交互的方式访问或更新磁盘分区表。用来自动化备份和恢复过程中的磁盘分区很有用。
+
+29. **[parted][15]**:另一个磁盘分区编辑器,支持超过2TB的磁盘的GPT(GUID分区表)格式。gparted是parted的一个前端GTK+图形界面。
+
+30. **df**:用来查看不同分区或文件路径的已用/可用存储空间和挂载点。还有一个更易用的变种dfc。
+
+31. **du**:用来查看不同文件和目录的当前磁盘占用情况(例如,du -sh *)。
+
+32. **mkfs**:一个磁盘格式化命令,用来在独立磁盘分区上建立文件系统。有多个文件系统相关的版本:ext2、ext3、ext4、bfs、ntfs、vfat/fat。
+
+33. **fsck**:一个命令行工具,用来检查文件系统错误并尝试可能的修复。通常在启动时自动运行,但是在卸载一个分区后也可以根据需要手动运行。
+
+34. **mount**:用来映射一个物理磁盘分区、网络共享或远程存储到一个本地挂载点。任何对挂载点里的读/写操作都是对应实际存储的实际数据读/写。
+
+35. **mdadm**:一个命令行工具,用来管理物理块设备上的软件RAID设备。可以创建、构造、增长或监视RAID阵列。
+
+36. **lvm**:一套命令行工具集,用来管理卷分组和物理/逻辑卷,可以用最小的停机时间在多个物理磁盘上创建、调整大小、拆分和合并卷。
+
+### 日志访问工具 ###
+
+37. **tail**:用来查看一个(增长中的)日志文件的尾部。有几个变种,包括multitail(多窗口查看)和[ztail][16](支持inotify和正则表达式过滤以及颜色)。
+
+38. **logrotate**:一个命令行工具,可以在根据设定的时间段拆分、压缩并通过邮件发送旧的/大的日志文件。用来管理可能产生大量日志文件的繁忙主机很有用。
+
+39. **grep/egrep**:可以通过特定的模式或正则表达式过滤日志内容。变种包括用户更友好的ack和速度更快的ag。
+
+40. **awk**:一个多功能的文本扫描和处理工具。常用于从文本/日志文件中找出特定的列或内容,并输出给其他工具。
+
+41. **sed**:一个文本流编辑工具,可以过滤和改变(例如,删除行/空格、替换/转换单词、增加计数)文本流并通过管道连接到stdout/stderr或者其他工具。
+
+### 备份工具 ###
+
+42. **[rsync][17]**:一个快速的单向增量备份和镜像工具(LCTT 译注:rsync 应是双向的)。常用于复制一个数据仓库到线下存储,可以选择通过SSH或stunnel的加密连接。
+
+43. **[rdiff-backup][18]**:另一个有效利用带宽的增量备份工具。管理两个连续快照之间的差分。
+
+44. **duplicity**:一个加密的增量备份工具。使用GnuPG加密备份,并通过SSH上传到远程服务器。
+
+### 性能监视工具 ###
+
+45. **top**:一个命令行的进程查看程序。可以监视系统负载、进程状态、CPU和内存占用。有一个更易用的变种htop。
+
+46. **ps**:显示系统所有运行中进程的一个快照。输出可以定制成显示PID、PPID、用户、负载、内存、积累的用户/系统时间、启动时间、以及更多。有一个变种pstree可以用树结构显示进程。
+
+47. **[nethogs][19]**:一个带宽监视工具,按进程来分组显示活动网络连接,实时汇报每个进程占用的(上传/下载)带宽。
+
+48. **ngxtop**:一个网页服务器访问日志解析和监视工具,界面受到了top命令启发。它可以实时汇报整理过的页面请求列表,包括频率、大小、HTTP返回值、IP地址,等等。
+
+49. **vmstat**:一个简单的命令行工具,可以显示多个实时系统特征,例如进程数、剩余内存、分页状态、CPU占用、块设备I/O活动、中断/上下文切换统计、等等。
+
+50. **iotop**:一个基于ncurses的I/O监视工具,可以实时排序显示所有运行中进程的磁盘I/O活动。
+
+51. **iostat**:一个命令行工具,可以汇报当前CPU使用情况,以及设备I/O使用情况,这里的I/O使用情况(例如,块传输速度、字节读/写速度)是按设备或分区来汇报的。
+
+### 效率工具 ###
+
+52. **screen**:用来把一个单一的终端拆分成多个持久的虚拟终端,也支持远程用户访问,类似teamviewer的屏幕分享功能。
+
+53. **tmux**:另一个终端复用工具,可以支持多个长期会话,还可以横向/纵向拆分终端。
+
+54. **cheat**:一个简单的命令行工具,可以让你查看多个常用Linux命令的备忘录,就在手边非常方便。内建的备忘录也可以完全定制。
+
+55. **apropos**:用来在帮助手册里查找描述或关键字很有用。
+
+### 包管理工具 ###
+
+56. **apt**:基于Debian系统的事实上的包管理工具,例如Debian、Ubuntu或Backtrack。一个救生圈。
+
+57. **apt-fast**:apt-get的一个支撑应用,可以通过多个并行连接明显提高apt-get的下载速度。
+
+58. **apt-file**:用来查看某个特定文件属于哪个.deb包,或者显示一个特定.deb包里的所有文件。已安装和未安装的包都能支持。
+
+59. **dpkg**:一个用来手动安装.deb包的命令行工具。强烈建议尽可能的使用apt。
+
+60. **yum**:用于基于红帽的系统的自动包管理工具,比如RHEL、CentOS或Fedora。这是另一个救生圈!
+
+61. **rpm**:通常我都是使用 rpm 来配合 yum 使用。有很多有用的参数,比如-q、-f、-l可以分别用来查询、指定文件和路径。
+
+### 硬件工具 ###
+
+62. **lspci**:一个命令行工具,可以显示已安装的PCI设备的各种信息,比如型号名称、设备驱动、设备功能、内存地址、PCI总线地址。
+
+63. **lshw**:一个命令行工具,可以查询和显示不同分类下的硬件配置的详细信息(例如,处理器、内存、主板、网络、存储)。支持多重输出格式:html、xml、json、text。
+
+64. **[inxi][20]**:一个综合硬件查看工具,可以提供不同硬件模块的总览,例如CPU,显卡,声卡,网卡,温度/风扇传感器,等等。
+
+如果你希望推荐没有列在这里的好用的工具,不要客气,在评论区里分享一下。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/useful-cli-tools-linux-system-admins.html
+
+作者:[Sarmed Rahman][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
+[1]:http://www.hping.org/
+[2]:http://netcat.sourceforge.net/
+[3]:http://www.dest-unreach.org/socat/
+[4]:http://www.tcpdump.org/
+[5]:https://www.wireshark.org/docs/man-pages/tshark.html
+[6]:https://www.wireshark.org/docs/dfref/
+[7]:http://www.harding.motd.ca/autossh/
+[8]:http://elinks.or.cz/
+[9]:http://lynx.isc.org/
+[10]:http://www.netfilter.org/projects/iptables/
+[11]:http://nmap.org/
+[12]:http://en.wikipedia.org/wiki/TCP_Wrapper
+[13]:http://rkhunter.sourceforge.net/
+[14]:http://www.chkrootkit.org/
+[15]:http://www.gnu.org/software/parted/
+[16]:https://hackage.haskell.org/package/ztail
+[17]:http://rsync.samba.org/
+[18]:http://www.nongnu.org/rdiff-backup/
+[19]:http://nethogs.sourceforge.net/
+[20]:http://code.google.com/p/inxi/
diff --git a/published/201412/20140818 Why Your Company Needs To Write More Open Source Software.md b/published/201412/20140818 Why Your Company Needs To Write More Open Source Software.md
new file mode 100644
index 0000000000..12f1a6be22
--- /dev/null
+++ b/published/201412/20140818 Why Your Company Needs To Write More Open Source Software.md
@@ -0,0 +1,76 @@
+为什么公司需要参与更多开源软件的编写?
+================================================================================
+
+> 闭门造车是产生不了创新的。
+
+
+
+
+[据华尔街日报称][1],有消息表明,Zulily正在开发更多的内部软件,但实际上根本不是。多年前[Eric Raymond写道][2],全世界95%的软件写来用的,而不是售卖。原因很多,但是其中有一个比较突出:正如Zulily的CIO Luke Friang所说,几乎没有一个[非定制]软件解决方案能跟上我们的步伐。
+
+20年前是这样,现在也是这样。
+
+但是有一点是不同的,这也正是华尔街日报完全忽略的地方。而这也正是历史上开发的内部软件始终保持着专有的原因了,因为它是一个公司的核心竞争力。然而今天,越来越多的公司意识到另一面:开源内部软件将会比保持专有获益更多。
+
+这也就是为什么你的公司需要为开源项目做出更多的贡献。记住是更多。
+
+### 不寻常的那些年
+
+我们刚刚经历了一个很不一样的20年,那时很多软件的开发都是为了内部的使用,大多数人的精力都放在由SAP和微软这样的厂商建立的应用广泛的企业级解决方案。
+
+不管怎么说,这都是一个理论。
+
+在实践中,买方花费很少的钱购买license,然后至少付出5倍以上的代价来使软件符合他们的需求。比如说,一个公司可能在一个ERP系统上花费 100,000美元,但是他们还得继续花费500,000来维持软件正常运行。
+
+开源软件甚至是应用程序正式发展起来的原因之一是很多公司可以免费获得一些功能性的产品(或者是以一个相对便宜的费用获得产品), 然后定制为他们所需要的。不管怎样,定制是有必要的,而且开源的根本是使成本更低,或许,这样的定制或许能产生更好的结果。
+
+同时,开发者尽量的减少同类之间的相似之处。作为Redmonk分析师,[Stephen O'Grady认为][3]:
+
+> 从最近几年看,主流技术产业都有意避开专业化。运行在定制操作系统上的虚拟设备,已经彻底败给了RHEL和Windowns这些通用的操作系统。 最快20年,任何程序的数据保存都意味着一件事:一个关联的数据库,如果你要做的是企业级应用开发,那么你首先要接触的是Java,等等。
+
+然而,开源的道路上,一些公司也发现,有些销售商不能很好地描述他们所想要的,即便是很好理解的产品类别,如像内容管理系统,他们需要 知道的是产品亮点,而不希望是一个模子刻出来的。
+
+所以顾客没了,他们中有一部分转变成了供应商。
+
+### 自己动手,丰衣足食
+
+这也是常有的事,[O'Grady指出了][4]这一点。2010年,O'Grady发现了一个有趣的现象:“软件提供商正面对着一个强有力的市场竞争者:他们的顾客。”
+
+回想一下今天的高科技,大多数都是开源的,几乎所有的项目一开始都是某些公司的内部项目,或者仅仅是有些开发者的爱好,Linux,Git,Hadoop,Cassandra,MongDB,Android,等等。没有一个项目起初是为了售卖而产生的。
+
+相反,这些项目通常是由一些公司维护,他们使用开源的资源来构建软件并[完善软件][5],这主要是一些Web公司。不像以前银行,医院和一些组织开发的软件只供内部使用,他们开源源码。
+
+虽然,[有些公司避免定制软件][6],因为他们不想自己维护它,开源(稍微)减轻了这些发展中公司来维护一个项目的压力。从而为项目发起人均摊项目的开发成本,Yahoo,建立了 Hadoop,但是现在最大的贡献者是Cloudera和Hortonworks。Facebook 建立了 Cassandra,但是现在主要是靠DataStax在维护。等等。
+
+### 现在就走出来吧!
+
+今天,真正的软件创新并不是闭门造车能造出来的,即便是可以,它也不会在那儿,开源项目颠覆了几十年的软件开发传统。
+
+这不仅仅是一个人的一点点力量。
+
+最好的开源项目都[发展得很快][7],但是这并不意味着别人在乎你的开源代码。[开放你的源码有显著的优缺点][8],其中一个很重要的优点是很多伟大的开发者都希望为开源做出贡献:如果你也想找一个伟大的开发者跟你一起,你需要给他们一个开放的源代码来让他们工作。([Netflix][9]说)
+
+但是,我们没有理由站在一边看,现在正是时候参与开源社区了,而不是把“社区”妖魔化。是的,开源最大的参与者正是你们和你们的公司。 赶紧开始吧。
+
+主要图片来自于Shutterstock. (注:Shutterstock是美国的一家摄影图片网站。)
+
+--------------------------------------------------------------------------------
+
+via: http://readwrite.com/2014/08/16/open-source-software-business-zulily-erp-wall-street-journal
+
+作者:[Matt Asay][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://readwrite.com/author/matt-asay
+[1]:http://blogs.wsj.com/cio/2014/08/08/zulily-calls-in-house-software-a-differentiator-for-competitive-advantage/
+[2]:http://oreilly.com/catalog/cathbazpaper/chapter/ch05.html
+[3]:http://redmonk.com/sogrady/2010/01/12/roll-your-own/#ixzz3ATBuZsef
+[4]:http://redmonk.com/sogrady/2010/01/12/roll-your-own/
+[5]:http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar
+[6]:http://www.abajournal.com/magazine/article/roll_your_own_software_hidden_dangers_on_the_road_less_traveled/
+[7]:http://readwrite.com/2013/12/12/open-source-innovation
+[8]:http://readwrite.com/2014/07/07/open-source-software-pros-cons
+[9]:http://techblog.netflix.com/2012/07/open-source-at-netflix-by-ruslan.html
diff --git a/published/201412/20140818 Will Linux ever be able to give consumers what they want.md b/published/201412/20140818 Will Linux ever be able to give consumers what they want.md
new file mode 100644
index 0000000000..df66e15bbb
--- /dev/null
+++ b/published/201412/20140818 Will Linux ever be able to give consumers what they want.md
@@ -0,0 +1,51 @@
+Linux能够提供消费者想要的东西吗?
+================================================================================
+> 由Jack Wallen提出的新观点,提供消费者想要的东西也许是收获无限成就的关键。
+
+
+
+在消费电子的世界里,如果你不能提供购买者想要的东西,那他们就会跑去别家。我们最近在Firefox浏览器上就看过类似的事情。消费者想要的是一个快速而不那么臃肿的软件,而开发者们却走到了另外的方向上。最后,用户都转移到Chrome或Chromium上去了。
+
+Linux需要深深凝视自己的水晶球,仔细体会那场浏览器大战留下的尘埃,然后留意一下这点建议:
+
+> 如果你不能提供他们想要的,他们就会离开。
+
+而这种事与愿违的另一个例子是Windows 8。消费者不喜欢那套界面。而微软却坚持使用,因为这是把所有东西搬到Surface平板上所必须的。相同的情况也可能发生在Canonical和Ubuntu Unity身上 -- 尽管它们的目标并不是单一独特地针对平板电脑来设计(所以,整套界面在桌面系统上仍然很实用而且直观)。
+
+一直以来,Linux开发者和设计者们看上去都按照他们自己的想法来做事情。他们过分在意“吃你自家的狗粮”这句话了。以至于他们忘记了一件非常重要的事情:
+
+> 没有新用户,他们的“根基”也仅仅只属于他们自己。
+
+换句话说,唱诗班不仅仅是被传道,他们也同时在宣传。让我给你看三个案例来完全掌握这一点。
+
+- 多年以来,一直有在Linux系统中替代活动目录(Active Directory)的需求。我很想把这个名称换成LDAP,但是你真的用过LDAP吗?那就是个噩梦。开发者们也努力了想让LDAP能易用一点,但是没一个做到了。而让我很震惊的是这样一个从多用户环境下发展起来的平台居然没有一个能和AD正面较量的功能。这需要一组开发人员,从头开始建立一个AD的开源替代。这对那些寻求从微软产品迁移的中型企业来说是非常大的福利。但是在这个产品做好之前,他们还不能开始迁移。
+- 另一个从微软激发的需求是Exchange/Outlook。是,我也知道许多人都开始用云。但是,事实上中等和大型规模生意仍然依赖于Exchange/Outlook组合,直到能有更好的产品出现。而这将非常有希望发生在开源社区。整个拼图的一小块已经摆好了(虽然还需要一些工作)- 群件客户端,Evolution。如果有人能够从Zimbra拉出一个分支,然后重新设计成可以配合Evolution(甚至Thunderbird)来提供服务实现Exchange的简单替代,那这个游戏就不是这么玩了,而消费者获得的利益将是巨大的。
+- 便宜,便宜,还是便宜。这是大多数人都得咽下去的苦药片 - 但是消费者(和生意)就是希望便宜。看看去年一年Chromebook的销量吧。现在,搜索一下Linux笔记本看能不能找到700美元以下的。而只用三分之一的价格,就可以买到一个让你够用的Chromebook(一个使用了Linux内核的平台)。但是因为Linux仍然是一个细分市场,很难降低成本。像红帽那种公司也许可以改变现状。他们也已经推出了服务器硬件。为什么不推出一些和Chromebook有类似定位但是却运行完整Linux环境的低价中档笔记本呢?(请看“[Cloudbook是Linux的未来吗?][1]”)其中的关键是这种设备要低成本并且符合普通消费者的要求。不要站在游戏玩家/开发者的角度去思考了,记住普通消费者真正的需求 - 一个网页浏览器,不会有更多了。这是Chromebook为什么可以这么轻松地成功。Google精确地知道消费者想要什么,然后推出相应的产品。而面对Linux,一些公司仍然认为他们吸引买家的唯一途径是高端昂贵的硬件。而有一点讽刺的是,口水战中最经常听到的却是Linux只能在更慢更旧的硬件上运行。
+
+最后,Linux需要看一看乔布斯传(Book Of Jobs),搞清楚如何说服消费者们他们真正要的就是Linux。在公司里和在家里 -- 每个人都可以享受到Linux带来的好处。说真的,开源社区怎么可能做不到这点呢?Linux本身就已经带有很多漂亮的时髦术语标签:稳定性、可靠性、安全性、云、免费 -- 再加上Linux实际已经进入到绝大多数人手中了(只是他们自己还不清楚罢了)。现在是时候让他们知道这一点了。如果你是用Android或者Chromebooks,那么你就在用(某种形式上的)Linux。
+
+搞清楚消费者需求一直以来都是Linux社区的绊脚石。而且我知道 -- 太多的Linux开发都基于某个开发者有个特殊的想法。这意味着这些开发都针对的“微型市场”。是时候了,无论如何,让Linux开发社区能够进行全球性思考了。“一般用户有什么需求,我们怎么满足他们?”让我提几个最基本的点。
+
+一般用户想要:
+
+- 低价
+- 设备和服务能无缝衔接
+- 直观而现代的设计
+- 百分百可靠的浏览器体验
+
+把这四点放在心中,应该可以轻松地以Linux为基础开发出用户实际需要的产品。Google做到了...当然Linux社区也可以参照Google的工作并开发出更好的产品。把这些应用到集成AD这件事上,能开发出Exchange/Outlook的替代或者基于云的群件工具,就会发生一件非常特殊的事 -- 人们会为它买单。
+
+你觉得Linux社区能够提供消费者想要的东西吗?在下边的讨论区里分享一下你的看法。
+
+--------------------------------------------------------------------------------
+
+via: http://www.techrepublic.com/article/will-linux-ever-be-able-to-give-consumers-what-they-want/
+
+作者:[Jack Wallen][a]
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.techrepublic.com/search/?a=jack+wallen
+[1]:http://www.techrepublic.com/article/is-the-cloudbook-the-future-of-linux/
diff --git a/published/201412/20140826 20 Postfix Interview Questions and Answers.md b/published/201412/20140826 20 Postfix Interview Questions and Answers.md
new file mode 100644
index 0000000000..a2c5f7e569
--- /dev/null
+++ b/published/201412/20140826 20 Postfix Interview Questions and Answers.md
@@ -0,0 +1,122 @@
+20个关于Postfix的面试题
+================================================================================
+### 问题1:什么是 Postfix,它的默认端口是多少? ###
+
+答:Postfix 是一个开源的 MTA(邮件传送代理,英文名:Mail Transfer Agent),用于转发 email。相信很多人知道 Sendmail,而 Postfix 是它的替代品。默认端口是25。
+
+### 问题2:Postfix 和 Sendmail 有什么区别? ###
+
+答:Postfix 使用模块化设计,由多个独立的可执行程序组成;而 Sendmail 被设计成有一个强大的后台进程提供所有服务。
+
+### 问题3:什么是 MTA,它在邮件系统中扮演什么角色? ###
+
+答:MTA 是 Mail Transfer Agent (邮件传输代理)的缩写。MTA 负责接收和发送邮件、确定发送路径和地址重写(LCTT译注:address rewriting,就是完善发送地址,比如将“username”这个地址重写为“username@example.com”)。本地转发就是将邮件发送给 MDA。Qmail、Postix、Sendmail 都是 MTA。
+
+### 问题4:什么是 MDA? ###
+
+答:MDA 是 Mail Delivery Agent (邮件投递代理)的缩写。MDA 这个程序用于从 MTA 获取邮件并投递至本地收件人的邮箱。MDA 通常可以过滤邮件或为邮件分类。一个 MDA 也能决定一封邮件是否需要转发到另一个邮箱地址。Procmail 就是一个 MDA。
+
+### 问题5:什么是 MUA? ###
+
+答:MUA 是 Mail User Agent (邮件用户代理)的缩写。MUA 是一个邮件客户端软件,可以用来写邮件、发送邮件、接收邮件。发送邮件时使用的是 MTA;接收邮件时可以从邮件存储区直接收取,也可以通过 POP/IMAP 服务器间接收取。Outlook、Thunkerbird、Evolution 都是 MUA。
+
+### 问题6:邮件服务器里 postmaster 的作用是什么? ###
+
+答:邮件管理者一般就是 postmaster。一个 postmaster 的责任就是保证邮件系统正常工作、更新系统配置、添加/删除邮箱帐号,以及其他工作。每个域中必须存在一个 postmaster 的别名(LCTT译注:postmaster 别名用于接受一些其它服务器/用户对该邮件系统的沟通邮件,如关于垃圾邮件拒收的投诉等,通常都会直接被邮件服务器的管理员所接受。一些系统错误和提示的邮件,也往往以postmaster 作为发件人),用于将邮件发往正确的用户。
+
+### 问题7:Postfix 都有些什么重要的进程? ###
+
+答:以下是 Postfix 邮件系统里最重要的后台进程列表:
+
+- **master**:这条进程是 Postfix 邮件系统的大脑,它产生所有其他进程。
+- **smtpd**:作为服务器端程序处理所有外部连进来的请求。
+- **smtp**:作为客户端程序处理所有对外发起连接的请求。
+- **qmgr**:它是 Postfix 邮件系统的心脏,处理和控制邮件队列里面的所有消息。
+- **local**:这是 Postfix 自有的本地投递代理MDA,就是它负责把邮件保存到邮箱里。
+
+### 问题8:Postfix 服务器的配置文件是什么? ###
+
+答:有两个主要配置文件:
+
+- **/etc/postfix/main.cf**:这个文件保存全局配置信息,所有进程都会用到,除非这些配置在 master.cf 文件中被重新设置了。
+- **/etc/postfix/master.cf**:这个文件保存了额外的进程运行时环境参数,在 main.cf 文件中定义的配置可能会被本文件的配置覆盖掉。
+
+### 问题9:如何将 Postfix 重启以及设为开机启动? ###
+
+答:使用这个命令重启:`service postfix restart`;使用这个命令设为开机启动:`chkconfig postfix on`
+
+### 问题10:怎么查看 Postfix 的邮件队列? ###
+
+答:Postfix 维护两个队列:未决邮件队列(pending mails queue)和等待邮件队列(deferred mail queue)。等待队列包含了暂时发送失败、需要重新发送的邮件,Postfix 会定期重发(默认5分钟,可自定义设置)。(LCTT译注:其实 Postfix 维护5个队列:输入队列,邮件进入 Postfix 系统的第一站;活动队列,qmgr 将输入队列的邮件移到活动队列;等待队列,保存暂时不能发送出去的邮件;故障队列,保存受损或无法解读的邮件;保留队列,将邮件无限期留在 Postfix 队列系统中。)
+
+列出邮件队列里面所有邮件:
+
+ # postqueue -p
+
+保存邮件队列名单:
+
+ # postqueue -p > /mnt/queue-backup.txt
+
+让 Postfix 马上处理队列:
+
+ # postqueue -f
+
+### 问题11:如何删除邮件队列里面的邮件? ###
+
+答:以下命令删除所有邮件:
+
+ # postsuper -d ALL
+
+以下命令只删除等待队列中的邮件:
+
+ # postsuper -d ALL deferred
+
+### 问题12:如何通过命令来检查 Postfix 配置信息? ###
+
+答:使用`postconf -n`命令可以查看,它会过滤掉配置文件里面被注释掉的配置信息。
+
+### 问题13:实时查看邮件日志要用什么命令? ###
+
+答:`tail -f /var/log/maillog` 或 `tailf /var/log/maillog`
+
+### 问题14:如何通过命令行发送测试邮件? ###
+
+答:参考下面的命令:
+
+ # echo "Test mail from postfix" | mail -s "Plz ignore" info@something.com
+
+### 问题15:什么是“开放邮件转发(Open Relay)”? ###
+
+答:开放邮件转发是 SMTP 服务器的一项设定,允许因特网上任意的其他用户能通过该服务器转发邮件,而不是直接发送到某个帐号的服务器或只允许授权用户通过它来发送邮件。过去,这项功能在许多邮件服务器中都是默认开启的,但是现在已经不再流行了,因为邮件转发会导致大量垃圾邮件和病毒邮件在网络上肆虐。
+
+### 问题16:什么是 Postfix 上的邮件转发主机? ###
+
+答:转发主机是 SMTP 的地址,如果在配置文件中有配置,那么所有输入邮件都将被 SMTP 服务器转发。
+
+### 问题17:什么是灰名单? ###
+
+答:灰名单(LCTT译注:介于白名单和黑名单之间)是一种用于拦截垃圾邮件的技术。一个 MTA 使用灰名单时就会“暂时拒绝”未被识别的发送者发来的所有邮件。如果邮件是正当合理的,发起者会在一段时间后重新发送,然后这份邮件就能被接收。(LCTT译注:灰名单基于这样一个事实,就是大多数的垃圾邮件服务器和僵尸网络的邮件只发送一次,而会忽略要求它们在一定的时间间隔后再次发送的请求。)
+
+### 问题18:邮件系统中 SPF 记录有什么重要作用? ###
+
+答:SPF 是 Sender Policy Framework 的缩写,用于帮助邮件域的拥有者确认发送方是否来自他们的域,目的是其他邮件系统能够保证发送方在发送邮件时来自经过授权的来源 —— 这种方法可以减小遇到邮件地址欺骗、网络钓鱼和垃圾邮件的风险。
+
+### 问题19:邮件系统中 DKIM 有什么用处? ###
+
+答:域名密匙是一套电子邮件身份认证系统,用于验证邮件发送方的 DNS 域和邮件的完整性。域名密匙规范采用互联网电子邮件认证技术,建立了一套加强版协议:域名密匙识别邮件(就是 DKIM)。
+
+### 问题20:邮件系统中 ASSP 的规则是什么? ###
+
+答:ASSP(Anti-Spam SMTP Proxy,反垃圾代理) 是一个网关服务器,安装在你的 MTA 前面,通过自建白名单、自动学习贝叶斯算法、灰名单、DNS 黑名单(DNSBL)、DNS 白名单(DNSWL)、URI黑名单(URIBL)、SPF、SRS、Backscatter、病毒扫描功能、附件阻拦功能、基于发送方等多种方法来反垃圾邮件。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxtechi.com/postfix-interview-questions-answers/
+
+作者:[Pradeep Kumar][a]
+译者:[bazz2](https://github.com/bazz2)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linuxtechi.com/author/pradeep/
diff --git a/published/201412/20140901 How to use on-screen virtual keyboard on Linux.md b/published/201412/20140901 How to use on-screen virtual keyboard on Linux.md
new file mode 100644
index 0000000000..9c9123d8d9
--- /dev/null
+++ b/published/201412/20140901 How to use on-screen virtual keyboard on Linux.md
@@ -0,0 +1,129 @@
+如何在 Linux 中使用屏幕键盘
+================================================================================
+
+屏幕键盘可以作为实体键盘输入的替代方案。在某些时候,屏幕键盘显得非常需要。 比如, 你的键盘刚好坏了;你的机器太多,没有足够的键盘;你的机器没有多余的接口来连接键盘;你是个残疾人,打字有困难;或者你正在组建基于触摸屏的信息服务站。
+
+屏幕键盘也可以作为一种防范实体键盘记录器的保护手段,键盘记录器会悄悄记录按键来获取密码等敏感信息。一些网上银行页面实际上会强制你使用屏幕键盘来增强交易的安全性。
+
+在 linux 中有几个可用的开源键盘软件, 比如 [GOK (Gnome 的屏幕键盘)][1],[kvkbd][2],[onboard][3],[Florence][4]。
+
+我会在这个教程中集中讲解 Florence, 告诉你**如何用 Florence 设置一个屏幕键盘**。 Florence 有着布局方案灵活、输入法多样、自动隐藏等特性。作为教程的一部分,我也将会示范**如何只使用鼠标来操作 Ubuntu 桌面**。
+
+### 在 Linux 中安装 Florence 屏幕键盘 ###
+
+幸运的是,Florence 存在于大多数 Linux 发行版的基础仓库中。
+
+在 Debian,Ubuntu 或者 Linux Mint 中:
+
+ $ sudo apt-get install florence
+
+在 Fedora,CentOS 或者 RHEL (CentOS/RHEL 需要[EPEL 仓库][5]) 中:
+
+ $ sudo yum install florence
+
+在 Mandriva 或者 Mageia 中:
+
+ $ sudo urpmi florence
+
+对于 Archlinux 用户,Florence 存在于 [AUR][6] 中。
+
+### 配置和加载屏幕键盘 ###
+
+当你安装好 Florence 之后,你只需要简单的输入以下命令就能加载屏幕键盘:
+
+ $ florence
+
+默认情况下,屏幕键盘总是在其他窗口的顶部,让你能够在任意活动的窗口上进行输入。
+
+在键盘的左侧点击工具按键来改变 Florence 的默认配置。
+
+
+
+在 Florence 的 "样式 (style)" 菜单中,你能够自定义键盘样式,启用/取消声音效果。
+
+
+
+在“窗口 (window)”菜单中,你能够调整键盘背景透明度、按键不透明度,以及控制键盘比例、工具栏、尺寸和总是置顶等特性。如果你的桌面分辨率不是非常高,透明度调整就显得非常有用,因为屏幕键盘会挡住其他窗口。在这个例子中,我切换到透明键盘,并且设置不透明度为 50%。
+
+
+
+在“行为 (behaviour)”菜单中,你能够改变输入方法。Florence 支持几种不同的输入法: 鼠标 (mouse)、触摸屏 (touch screen)、计时器 (timer) 和漫步 (ramble)。鼠标输入是默认输入法。最后的两种输入法不需要按鼠标键。 计时器输入通过将指针滞留在按键上一定时间来触发按键。漫步输入的原理跟**计时器**输入差不多,但是经过训练和灵巧使用,能够比**计时器**输入更加迅速。
+
+
+
+在“布局 (layout)”菜单中,你能够改变键盘布局。比如,你能够扩展键盘布局来增加导航键,数字键和功能键。
+
+
+
+### 只使用鼠标来操作 Ubuntu 桌面
+
+我将示范如何将 Florence 集成到 Ubuntu 桌面中,然后我们不需要实体键盘就能够进入桌面。这个教程使用 LightDM (Ubuntu 的默认显示管理器) 来进入 Ubuntu,其他桌面环境也能设置类似的环境。
+
+初始设置时需要实体键盘,但是一旦设置完成,你只需要一个鼠标,而不是键盘。
+
+当你启动 Ubuntu 桌面时,启动程序最后会停在显示管理器 (或者登录管理器) 的欢迎界面。在这个界面上你需要输入你的登录信息。默认的情况下,Ubuntu 桌面会使用 LightDM 显示管理器和 Unity 欢迎界面。如果没有实体键盘, 你就不能在登录界面输入用户名和密码。
+
+为了能够在登录界面加载屏幕键盘,安装配备了屏幕键盘支持的 GTK+ 欢迎界面。
+
+ $ sudo apt-get install lightdm-gtk-greeter
+
+然后用编辑器打开欢迎界面配置文件 (/etc/lightdm/lightdm-gtk-greeter.conf),指定 Florence 作为屏幕键盘来使用。如果你愿意,你也能够使用 Ubuntu 的默认屏幕键盘 onboard 来代替 Florence。
+
+ $ sudo vi /etc/lightdm/lightdm-gtk-greeter.conf
+
+----------
+
+ [greeter]
+ keyboard=florence --no-gnome --focus &
+
+
+
+重启 Ubuntu 桌面,然后看看你是否能够在登录界面使用屏幕键盘。
+
+启动之后当你看到 GTK+ 欢迎界面时, 点击右上角的人形符号。你会看到“使用屏幕键盘 (On Screen Keyboard)”菜单选项,如下:
+
+
+
+点击这个选项,屏幕键盘就会在登录界面弹出。现在你应该能够用屏幕键盘来登录了。
+
+
+
+对于 GDM2/GDM3 用户怎么在 GDM2/GDM3 界面上使用屏幕键盘,Florence 官方网页提供了 [文档 (documentation)][7]。
+
+Ubuntu 桌面完全无键盘化的最后一步是让屏幕键盘在登录后自动启动,这样我们在登录后能够不使用实体键盘就操作桌面,为了做到这一点,创建以下桌面文件:
+
+ $ mkdir -p ~/.config/autostart
+ $ vi ~/.config/autostart/florence.desktop
+
+----------
+
+ [Desktop Entry]
+ Type=Application
+ Name=Virtual Keyboard
+ Comment=Auto-start virtual keyboard
+ Exec=florence --no-gnome
+
+这样可以让你在登录到桌面的时候就看到屏幕键盘。
+
+
+
+希望这个教程对你有用。与你所看到的一样,Florence 是非常强大的屏幕键盘,可以用于不同目的。请和我分享你使用屏幕键盘的经验。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/onscreen-virtual-keyboard-linux.html
+
+作者:[Dan Nanni][a]
+译者:[forsil](https://github.com/forsil)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:https://developer.gnome.org/gok/
+[2]:http://homepage3.nifty.com/tsato/xvkbd/
+[3]:https://launchpad.net/onboard
+[4]:http://florence.sourceforge.net/
+[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
+[6]:https://aur.archlinux.org/packages/florence/
+[7]:http://florence.sourceforge.net/english/how-to.html
\ No newline at end of file
diff --git a/published/201412/20140910 How to create a cloud-based encrypted file system on Linux.md b/published/201412/20140910 How to create a cloud-based encrypted file system on Linux.md
new file mode 100644
index 0000000000..7c147bb7c0
--- /dev/null
+++ b/published/201412/20140910 How to create a cloud-based encrypted file system on Linux.md
@@ -0,0 +1,156 @@
+如何在 Linux 系统中创建一个云端加密文件系统
+================================================================================
+[Amazon S3][1] 和 [Google Cloud Storage][2] 之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采用,这些提供商为他们的产品通过明确的 API 和 SDK 培养了一个良好的开发者生态系统。而基于云的文件系统便是这些活跃的开发者社区中的典型产品,已经有了好几个开源的实现。
+
+[S3QL][3] 便是最流行的开源云端文件系统之一。它是一个基于 FUSE 的文件系统,提供了好几个商业或开源的云存储后端,比如 Amazon S3、Google Cloud Storage、Rackspace CloudFiles,还有 OpenStack。作为一个功能完整的文件系统,S3QL 拥有不少强大的功能:最大 2T 的文件大小、压缩、UNIX 属性、加密、基于写入时复制的快照、不可变树、重复数据删除,以及软、硬链接支持等等。写入 S3QL 文件系统任何数据都将首先被本地压缩、加密,之后才会传输到云后端。当你试图从 S3QL 文件系统中取出内容的时候,如果它们不在本地缓存中,相应的对象会从云端下载回来,然后再即时地解密、解压缩。
+
+需要明确的是,S3QL 的确也有它的限制。比如,你不能把同一个 S3FS 文件系统在几个不同的电脑上同时挂载,只能有一台电脑同时访问它。另外,ACL(访问控制列表)也并没有被支持。
+
+在这篇教程中,我将会描述“如何基于 Amazon S3 用 S3QL 配置一个加密文件系统”。作为一个使用范例,我还会说明如何在挂载的 S3QL 文件系统上运行 rsync 备份工具。
+
+### 准备工作 ###
+
+本教程首先需要你创建一个 [Amazon AWS 帐号][4](注册是免费的,但是需要一张有效的信用卡)。
+
+然后 [创建一个 AWS access key][4](access key ID 和 secret access key),S3QL 使用这些信息来访问你的 AWS 帐号。
+
+之后通过 AWS 管理面板访问 AWS S3,并为 S3QL 创建一个新的空 bucket。
+
+
+
+为最佳性能考虑,请选择一个地理上距离你最近的区域。
+
+
+
+### 在 Linux 上安装 S3QL ###
+
+在大多数 Linux 发行版中都有预先编译好的 S3QL 软件包。
+
+#### 对于 Debian、Ubuntu 或 Linux Mint:####
+
+ $ sudo apt-get install s3ql
+
+#### 对于 Fedora:####
+
+ $ sudo yum install s3ql
+
+对于 Arch Linux,使用 [AUR][6]。
+
+### 首次配置 S3QL ###
+
+在 ~/.s3ql 目录中创建 autoinfo2 文件,它是 S3QL 的一个默认的配置文件。这个文件里的信息包括必须的 AWS access key,S3 bucket 名,以及加密口令。这个加密口令将被用来加密一个随机生成的主密钥,而主密钥将被用来实际地加密 S3QL 文件系统数据。
+
+ $ mkdir ~/.s3ql
+ $ vi ~/.s3ql/authinfo2
+
+----------
+
+ [s3]
+ storage-url: s3://[bucket-name]
+ backend-login: [your-access-key-id]
+ backend-password: [your-secret-access-key]
+ fs-passphrase: [your-encryption-passphrase]
+
+指定的 AWS S3 bucket 需要预先通过 AWS 管理面板来创建。
+
+为了安全起见,让 authinfo2 文件仅对你可访问。
+
+ $ chmod 600 ~/.s3ql/authinfo2
+
+### 创建 S3QL 文件系统 ###
+
+现在你已经准备好可以在 AWS S3 上创建一个 S3QL 文件系统了。
+
+使用 mkfs.s3ql 工具来创建一个新的 S3QL 文件系统。这个命令中的 bucket 名应该与 authinfo2 文件中所指定的相符。使用“--ssl”参数将强制使用 SSL 连接到后端存储服务器。默认情况下,mkfs.s3ql 命令会在 S3QL 文件系统中启用压缩和加密。
+
+ $ mkfs.s3ql s3://[bucket-name] --ssl
+
+你会被要求输入一个加密口令。请输入你在 ~/.s3ql/autoinfo2 中通过“fs-passphrase”指定的那个口令。
+
+如果一个新文件系统被成功创建,你将会看到这样的输出:
+
+
+
+### 挂载 S3QL 文件系统 ###
+
+当你创建了一个 S3QL 文件系统之后,下一步便是要挂载它。
+
+首先创建一个本地的挂载点,然后使用 mount.s3ql 命令来挂载 S3QL 文件系统。
+
+ $ mkdir ~/mnt_s3ql
+ $ mount.s3ql s3://[bucket-name] ~/mnt_s3ql
+
+挂载一个 S3QL 文件系统不需要特权用户,只要确定你对该挂载点有写权限即可。
+
+视情况,你可以使用“--compress”参数来指定一个压缩算法(如 lzma、bzip2、zlib)。在不指定的情况下,lzma 将被默认使用。注意如果你指定了一个自定义的压缩算法,它将只会应用到新创建的数据对象上,并不会影响已经存在的数据对象。
+
+ $ mount.s3ql --compress bzip2 s3://[bucket-name] ~/mnt_s3ql
+
+因为性能原因,S3QL 文件系统维护了一份本地文件缓存,里面包括了最近访问的(部分或全部的)文件。你可以通过“--cachesize”和“--max-cache-entries”选项来自定义文件缓存的大小。
+
+如果想要除你以外的用户访问一个已挂载的 S3QL 文件系统,请使用“--allow-other”选项。
+
+如果你想通过 NFS 导出已挂载的 S3QL 文件系统到其他机器,请使用“--nfs”选项。
+
+运行 mount.s3ql 之后,检查 S3QL 文件系统是否被成功挂载了:
+
+ $ df ~/mnt_s3ql
+ $ mount | grep s3ql
+
+
+
+### 卸载 S3QL 文件系统 ###
+
+想要安全地卸载一个(可能含有未提交数据的)S3QL 文件系统,请使用 umount.s3ql 命令。它将会等待所有数据(包括本地文件系统缓存中的部分)成功传输到后端服务器。取决于等待写的数据的多少,这个过程可能需要一些时间。
+
+ $ umount.s3ql ~/mnt_s3ql
+
+### 查看 S3QL 文件系统统计信息及修复 S3QL 文件系统 ###
+
+若要查看 S3QL 文件系统统计信息,你可以使用 s3qlstat 命令,它将会显示诸如总的数据、元数据大小、重复文件删除率和压缩率等信息。
+
+ $ s3qlstat ~/mnt_s3ql
+
+
+
+你可以使用 fsck.s3ql 命令来检查和修复 S3QL 文件系统。与 fsck 命令类似,待检查的文件系统必须首先被卸载。
+
+ $ fsck.s3ql s3://[bucket-name]
+
+### S3QL 使用案例:Rsync 备份 ###
+
+让我用一个流行的使用案例来结束这篇教程:本地文件系统备份。为此,我推荐使用 rsync 增量备份工具,特别是因为 S3QL 提供了一个 rsync 的封装脚本(/usr/lib/s3ql/pcp.py)。这个脚本允许你使用多个 rsync 进程递归地复制目录树到 S3QL 目标。
+
+ $ /usr/lib/s3ql/pcp.py -h
+
+
+
+下面这个命令将会使用 4 个并发的 rsync 连接来备份 ~/Documents 里的所有内容到一个 S3QL 文件系统。
+
+ $ /usr/lib/s3ql/pcp.py -a --quiet --processes=4 ~/Documents ~/mnt_s3ql
+
+这些文件将首先被复制到本地文件缓存中,然后在后台再逐步地同步到后端服务器。
+
+若想了解与 S3QL 有关的更多信息,如自动挂载、快照、不可变树,我强烈推荐阅读 [官方用户指南][7]。欢迎告诉我你对 S3QL 怎么看,以及你对任何其他工具的使用经验。
+
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/create-cloud-based-encrypted-file-system-linux.html
+
+作者:[Dan Nanni][a]
+译者:[felixonmars](https://github.com/felixonmars)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://aws.amazon.com/s3
+[2]:http://code.google.com/apis/storage/
+[3]:https://bitbucket.org/nikratio/s3ql/
+[4]:http://aws.amazon.com/
+[5]:http://ask.xmodulo.com/create-amazon-aws-access-key.html
+[6]:https://aur.archlinux.org/packages/s3ql/
+[7]:http://www.rath.org/s3ql-docs/
diff --git a/published/201412/20140910 Why Do Some Old Programming Languages Never Die.md b/published/201412/20140910 Why Do Some Old Programming Languages Never Die.md
new file mode 100644
index 0000000000..09c30aa5f7
--- /dev/null
+++ b/published/201412/20140910 Why Do Some Old Programming Languages Never Die.md
@@ -0,0 +1,85 @@
+为什么一些古老的编程语言不会消亡?
+================================================================================
+> 我们钟爱我们已知的。
+
+
+
+当今许多知名的编程语言已经都非常古老了。PHP 语言20年、Python 语言23年、HTML 语言21年、Ruby 语言和 JavaScript 语言已经19年,C 语言更是高达42年之久。
+
+这是没人能预料得到的,即使是计算机科学家 [Brian Kernighan][1] 也一样。他是写著第一本关于 C 语言的作者之一,直到今天这本书还在印刷着。(C 语言本身的发明者 [Dennis Ritchie][2] 是 Kernighan 的合著者,他于 2011 年已辞世。)
+
+“我依稀记得早期跟编辑们的谈话,告诉他们我们已经卖出了5000册左右的量,”最近采访 Kernighan 时他告诉我说。“我们设法做的更好。我没有想到的是在2014年的教科书里学生仍然在使用第一个版本的书。”
+
+关于 C 语言的持久性特别显著的就是 Google 开发出了新的语言 Go,解决同一问题比用 C 语言更有效率。不过,我仍然很难想象 Go 能彻底杀死 C,无论它有多么好。
+
+“大多数语言并不会消失或者至少很大一部分用户承认它们不会消失,”他说。“C 语言仍然在一定的领域独领风骚,所以它很接地气。”
+
+### 编写所熟悉的 ###
+
+为什么某些计算机编程语言要比其它的更流行?因为开发者都选择使用它们。逻辑上来说,这解释已经足够,但还想深入了解为什么开发人员会选择使用它们呢,这就有点棘手了。
+
+分别来自普林斯顿大学和加州大学伯克利分校的研究者 Ari Rabkin 和 Leo Meyerovich 花费了两年时间来研究解决上面的问题。他们的研究报告,[《编程语言使用情况实例分析》][3],记录了对超过 200,000 个 Sourceforge 项目和超过 13,000 个程序员投票结果的分析。
+
+他们主要的发现是什么呢?大多数时候程序员选择的编程语言都是他们所熟悉的。
+
+“这些我们使用的语言还继续存在是因为我们经常使用他们,” Rabkin 告诉我。“例如:天文学家就经常使用 IDL [交互式数据语言]来开发他们的计算机程序,并不是因为它具有什么特殊的亮点功能或其它特点,而是因为用它形成习惯了。他们已经用些语言构建出很优秀的程序了,并且想保持原状。”
+
+换句话说,它部分要归功于这些语言所创立的知名度仍保持较高。当然,这并不意味着流行的语言不会变化。Rabkin 指出我们今天在使用的 C 语言就跟 Kernighan 第一次创建时的一点都不同,那时的 C 编译器跟现代的也不是完全兼容。
+
+“有一个古老的,关于工程师的笑话。工程师被问到哪一种编程语言人们会使用30年,他说,‘我不知道,但它总会被叫做 Fortran’,” Rabkin 说到。“长期存活的语言跟他们在70年代和80年代刚设计出来的时候不太一样了。人们通常都是在上面增加功能,而不会删除功能,因为要保持向后兼容,但有些功能会被修正。”
+
+向后兼容意思就是当语言升级后,程序员不仅可以使用升级语言的新特性,也不用回去重写已经实现的老代码块。老的“遗留代码”的语法规则已经不用了,但舍弃是要花成本的。只要它们存在,我们就有理由相信相关的语言也会存在。
+
+### PHP: 存活长久语言的一个案例学习 ###
+
+遗留代码指的是用过时的源代码编写的程序或部分程序。想想看,一个企业或工程项目的关键程序功能部分是用没人维护的编程语言写出来的。因为它们仍起着作用,用现代的源代码重写非常困难或着代价太高,所以它们不得不保留下来,即使其它部分的代码都变动了,程序员也必须不断折腾以保证它们能正常工作。
+
+任何编程语言,存在了超过几十年时间都具有某种形式的遗留代码问题, PHP 也不例外。PHP 是一个很有趣的例子,因为它的遗留代码跟现在的代码明显不同,支持者或评论家都承认这是一个巨大的进步。
+
+Andi Gutmans 是已经成为 PHP4 的标准编译器的 Zend Engine 的发明者之一。Gutmans 说他和搭档本来是想改进完善 PHP3 的,他们的工作如此成功,以至于 PHP 的原发明者 Rasmus Lerdorf 也加入他们的项目。结果就成为了 PHP4 和他的后续者 PHP5 的编译器。
+
+因此,当今的 PHP 与它的祖先——即最开始的 PHP 是完全不同的。然而,在 Gutmans 看来,在用古老的 PHP 语言版本写的遗留代码的地方一直存在着偏见以至于上升到整个语言的高度。比如 PHP 充满着安全漏洞或没有“集群”功能来支持大规模的计算任务等概念。
+
+“批评 PHP 的人们通常批评的是在 1998 年时候的 PHP 版本,”他说。“这些人都没有与时俱进。当今的 PHP 已经有了很成熟的生态系统了。”
+
+如今,Gutmans 说,他作为一个管理者最重要的事情就是鼓励人们升级到最新版本。“PHP有个很大的社区,足以支持您的遗留代码的问题,”他说。“但总的来说,我们的社区大部分都在 PHP5.3 及以上的。”
+
+问题是,任何语言用户都不会全部升级到最新版本。这就是为什么 Python 用户仍在使用 2000 年发布的 Python 2,而不是使用 2008 年发布的 Python 3 的原因。甚至在六年后,大多数像 Google 这样的用户仍没有升级。这种情况是多种原因造成的,但它使得很多开发者在承担风险。
+
+“任何东西都不会消亡的,”Rabkin 说。“任何语言的遗留代码都会一直存在。重写的代价是非常高昂的,如果它们不出问题就不要去改动。”
+
+### 开发者是稀缺的资源 ###
+
+当然,开发者是不会选择那些仅仅只是为了维护老旧代码的的程序语言的。当谈论到对语言选择的偏好时,Rabkin 和 Meyerovich 发现年龄仅仅只代表个数字。Rabkin 告诉我说:
+
+> 有一件事使我们被深深震撼到了。这事最重要的就是我们给人们按年龄分组,然后询问他们知道多少编程语言。我们主观的认为随着年龄的增长知道的会越来越多,但实际上却不是,25岁年龄组和45岁年龄组知道的语言数目是一样的。几个反复询问的问题这里持续不变的。您知道一种语言的几率并不与您的年龄挂钩。
+
+换句话说,不仅仅年长的开发者坚持传统,年轻的程序员也会认可并采用古老的编程语言作为他们的第一们语言。这可能是因为这些语言具有很有趣的开发库及功能特点,也可能是因为在社区里开发者都是喜爱这种开发语言的一伙人。
+
+“在全球程序员关注的语言的数量是有定数的,” Rabkin 说。“如果一们语言表现出足够独特的价值,人们将会学习和使用它。如果是和您交流代码和知识的的某个人分享一门编程语言,您将会学习它。因此,例如,只要那些 Python 库存在、 社区也对 Python 语言很有经验的话,那么 Python 仍将会大行其道。”
+
+研究人员发现关于语言实现的功能,社区是一个巨大的因素。虽然像 Python 和 Ruby 这样的高级语言并没有太大的差别,但,程序员总是容易觉得一种比另一种优越。
+
+“Rails 不一定要用 Ruby 语言编写,但它用了,这就是社区因素在起作用,” Rabkin 说。“例如,复活 Objective-C 语言这件事就是苹果的工程师团队说‘让我们使用它吧,’ 他们就没得选择了。”
+
+通观社会的影响及老旧代码这些问题,我们发现最古老的和最新的计算机语言都有巨大的惰性。Go 语言怎么样才能超越 C 语言呢?如果有合适的人或公司说它超越它就超越。
+
+“它归结为谁传播的更好谁就好,” Rabkin 说。
+
+开始的图片来自 [Blake Patterson][4]
+
+--------------------------------------------------------------------------------
+
+via: http://readwrite.com/2014/09/02/programming-language-coding-lifetime
+
+作者:[Lauren Orsini][a]
+译者:[runningwater](https://github.com/runningwater)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://readwrite.com/author/lauren-orsini
+[1]:http://en.wikipedia.org/wiki/Brian_Kernighan
+[2]:http://en.wikipedia.org/wiki/Dennis_Ritchie
+[3]:http://asrabkin.bitbucket.org/papers/oopsla13.pdf
+[4]:https://www.flickr.com/photos/blakespot/2444037775/
\ No newline at end of file
diff --git a/published/201412/20140915 Make Downloading Files Effortless.md b/published/201412/20140915 Make Downloading Files Effortless.md
new file mode 100644
index 0000000000..e4d46564cd
--- /dev/null
+++ b/published/201412/20140915 Make Downloading Files Effortless.md
@@ -0,0 +1,192 @@
+让下载更方便
+================================================================================
+下载管理器是一个电脑程序,专门处理下载文件,优化带宽占用,以及让下载更有条理等任务。有些网页浏览器,例如Firefox,也集成了一个下载管理器作为功能,但是它们的使用方式还是没有专门的下载管理器(或者浏览器插件)那么专业,没有最佳地使用带宽,也没有好用的文件管理功能。
+
+对于那些经常下载的人,使用一个好的下载管理器会更有帮助。它能够最大化下载速度(加速下载),断点续传以及制定下载计划,让下载更安全也更有价值。下载管理器已经没有之前流行了,但是最好的下载管理器还是很实用,包括和浏览器的紧密结合,支持类似YouTube的主流网站,以及更多。
+
+有好几个能在Linux下工作都非常优秀的开源下载管理器,以至于让人无从选择。我整理了一个摘要,是我喜欢的下载管理器,以及Firefox里的一个非常好用的下载插件。这里列出的每一个程序都是开源许可发布的。
+
+
+###uGet
+
+
+
+uGet是一个轻量级,容易使用,功能完备的开源下载管理器。uGet允许用户从不同的源并行下载来加快速度,添加文件到下载序列,暂停或继续下载,提供高级分类管理,和浏览器集成,监控剪贴板,批量下载,支持26种语言,以及其他许多功能。
+
+uGet是一个成熟的软件;持续开发超过了11年。在这段时间里,它发展成一个非常多功能的下载管理器,拥有一套很高价值的功能集,还保持了易用性。
+
+uGet是用C语言开发的,使用了cURL作为底层支持,以及应用库libcurl。uGet有非常好的平台兼容性。它一开始是Linux系统下的项目,但是被移植到在Mac OS X,FreeBSD,Android和Windows平台运行。
+
+#### 功能点: ####
+
+- 容易使用
+- 下载队列可以让下载任务按任意数量或你希望的数量同时进行。
+- 断点续传
+- 默认分类
+- 完美实现的剪贴板监控功能
+- 批量下载
+- 支持从HTML文件导入下载任务
+- 支持通过HTTP,HTTPS,FTP,BitTorrent和Metalink下载
+- 多线程下载(也被称为分块下载):每个下载任务支持最多20个线程同时连接,支持自适应的分块管理,意味着如果某个下载块中断了,那么会其他连接会把它捡起来,以时刻保证最佳的下载速度。
+- 多镜像下载
+- FTP登录和匿名FTP
+- 强大的计划任务
+- 通过FlashGot和FireFox集成
+- Aria2插件
+- 多变的主题
+- 安静模式
+- 键盘快捷键
+- 支持命令行/终端控制
+- 自动创建目录
+- 下载历史管理
+- 支持GnuTLS
+- 支持26种语言,包括:阿拉伯语,白俄罗斯语,简体中文,繁体中文,捷克语,丹麦语,英语(默认),法语,格鲁吉亚语,德语,匈牙利语,印尼语,意大利语,波兰语,葡萄牙语(巴西),俄语,西班牙语,土耳其语,乌克兰语,以及越南语。
+
+---
+
+- 网站:[ugetdm.com][1]
+- 开发人员:C.H. Huang and contributors
+- 许可:GNU LGPL 2.1
+- 版本:1.10.5
+
+
+###DownThemAll!
+
+
+
+DownThemAll!是一个小巧可靠的、易用的开源下载管理器/加速器,是Firefox的一个组件。它可以让用户下载一个页面上所有链接和图片,还有更多功能。它可以让用户完全控制下载任务,随时分配下载速度以及同时下载的任务数量。通过使用Metalinks或者手动添加镜像的方式,可以同时从不同的服务器下载同一个文件。
+
+DownThemAll会根据你要下载的文件大小,切割成不同的部分,然后并行下载。
+
+#### 功能点: ####
+
+- 和Firefox的完全集成
+- 分块下载,允许用户下载不同的文件块,完成之后再拼接成完整的文件;这样的话当连接到一个缓慢的服务器的时候可以加快下载速度。
+- 支持Metalink,允许发送下载文件的多个URL以及它的校验值和其他信息到DTA
+- 支持爬虫方式通过一个单独的链接遍历整个网页
+- 下载过滤
+- 高级重命名选项
+- 暂停和继续下载任务
+
+---
+
+- 网站:[addons.mozilla.org/en-US/firefox/addon/downthemall][2]
+- 开发人员:Federico Parodi, Stefano Verna, Nils Maier
+- 许可:GNU GPL v2
+- 版本:2.0.17
+
+----------
+
+###JDownloader
+
+
+
+JDownloader是一个免费,开源的下载管理工具,拥有一个大型社区的开发者支持,让下载更简单和快捷。用户可以开始,停止或暂停下载,设置带宽限制,自动解压缩包,以及更多功能。它提供了一个容易扩展的框架。
+
+JDownloader简化了从一键下载网站下载文件。它还支持从不同并行资源下载、手势识别、自动文件解压缩以及更多功能。另外,还支持许多“加密链接”网站-所以你只需要复制粘贴“加密的”链接,然后JDownloader会处理剩下的事情。JDownloader还能导入CCF,RSDF和DLC文件。
+
+#### 功能点: ####
+
+- 一次下载多个文件
+- 从多个连接同时下载
+- JD有一个自己实现的强大的OCR模块
+- 自动解压(包括密码搜索)(RAR压缩包)
+- 支持主题
+- 支持多国语言
+- 大约110个站点以及超过300个解密插件
+- 通过JDLiveHeaderScripts重连:(支持1400路由)
+- 网页更新
+- 集成包管理器支持额外模块(例如,Webinterface,Shutdown)
+
+---
+
+- 网站:[jdownloader.org][3]
+- 开发人员:AppWork UG
+- 许可:GNU GPL v3
+- 版本:0.9.581
+
+----------
+
+###FreeRapid Downloader
+
+
+
+FreeRapid Downloader是一个易用的开源下载程序,支持从Rapidshare,Youtube,Facebook,Picasa和其他文件分享网站下载。他的下载引擎基于一些插件,所以可以从那些特别的站点下载。
+
+对于需要针对特定文件分享网站的下载管理器用户来说,FreeRapid Downloader是理想的选择。
+
+FreeRapid Downloader使用Java语言编写。需要至少Sun Java 7.0版本才可以运行。
+
+#### 功能点: ####
+
+- 容易使用
+- 支持从不同服务站点并行下载
+- 支持断点续传
+- 支持通过代理列表下载
+- 支持流视频或图片
+- 下载历史
+- 聪明的剪贴板监控
+- 自动检查服务器文件后缀
+- 自动关机选项
+- 插件自动更新
+- 简单验证码识别
+- 支持跨平台
+- 支持多国语言:英语,保加利亚语,捷克语,芬兰语,葡萄牙语,斯洛伐克语,匈牙利语,简体中文,以及其他
+- 支持超过700个站点
+
+---
+
+- 网站:[wordrider.net/freerapid/][4]
+- 开发人员:Vity and contributors
+- 许可:GNU GPL v2
+- 版本:0.9u4
+
+----------
+
+###FlashGot
+
+
+
+FlashGot是一个Firefox和Thunderbird的免费组件,旨在通过外置下载管理器来处理单个和大规模(“所有”和“已选”)下载。
+
+FlashGot把所支持的所有下载管理器统一成Firefox中的一个下载管理器。
+
+#### 功能点: ####
+
+- Linux下支持:Aria, Axel Download Accelerator, cURL, Downloader 4 X, FatRat, GNOME Gwget, FatRat, JDownloader, KDE KGet, pyLoad, SteadyFlow, uGet, wxDFast 和 wxDownload Fast
+- 支持图库功能,可以帮助把原来分散在不同页面的系列资源,整合到一个所有媒体库页面中,然后可以轻松迅速地“下载所有”
+- FlashGot Link会使用默认下载管理器下载当前鼠标选中的链接
+- FlashGot Selection
+- FlashGot All
+- FlashGot Tabs
+- FlashGot Media
+- 抓取页面里所有链接
+- 抓取所有标签栏的所有链接
+- 链接过滤(例如只下载指定类型文件)
+- 在网页上抓取点击所产生的所有链接
+- 支持从大多数链接保护和文件托管服务器直接和批量下载
+- 隐私选项
+- 支持国际化
+
+---
+
+- 网站:[flashgot.net][5]
+- 开发人员:Giorgio Maone
+- 许可:GNU GPL v2
+- 版本:1.5.6.5
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/20140913062041384/DownloadManagers.html
+
+作者:Frazer Kline
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ugetdm.com/
+[2]:https://addons.mozilla.org/en-US/firefox/addon/downthemall/
+[3]:http://jdownloader.org/
+[4]:http://wordrider.net/freerapid/
+[5]:http://flashgot.net/
diff --git a/published/201412/20141004 Practical Lessons in Peer Code Review.md b/published/201412/20141004 Practical Lessons in Peer Code Review.md
new file mode 100644
index 0000000000..62aed439ef
--- /dev/null
+++ b/published/201412/20141004 Practical Lessons in Peer Code Review.md
@@ -0,0 +1,97 @@
+# 同等代码审查(Peer Code Review)实战经验 #
+
+我有时候会听到我们的团队成员这样议论:
+
+"项目的Code review 只是浪费时间。"
+
+"我没有时间做Code review。"
+
+"我的发布时间延迟了,因为我的同事还没有完成我代码的Code review。"
+
+"你相信我的同事居然要求我对我的代码做修改吗?请跟他们说代码中的一些联系会被打断——如果在我原来代码的基础之上做修改的话。"
+
+(LCTT 译注:Code Review中文可以翻译成代码复查,一般由开发待review的代码的成员以外的团队成员来进行这样的工作。由于是专业术语,没有将Code review用中文代替。)
+
+### 为什么要做Code review? ###
+
+每个专业软件开发者都有一个重要的目标:持续的提高他们的工作质量。即使你团队中都是一些优秀的程序员,但是你依然不能将你自己与一个有能力的自由职业者区分开来,除非你从团队的角度来工作。Code review是团队工作的一个重要的方面。尤其是:
+
+代码复查者(reviewer)能从他们的角度来发现问题并且提出更好的解决方案。
+
+确保至少你团队的另一个其他成员熟悉你的代码,通过给新员工看有经验的开发者的代码能够某种程度上提高他们的水平。
+
+公开reviewer和被复查者的想法和经验能够促进团队间的知识的分享。
+
+能够鼓励开发者将他们的工作进行的更彻底,因为他们知道他们的代码将被其他的人阅读。
+
+### 在review的过程中的注意点 ###
+
+但是,由于Code review的时间有限,上面所说的目标未必能全部达到。就算只是想要打一个补丁,都要确保意图是正确的。如果只是将变量名改成骆驼拼写法(camelCase),那不算是code review。在开发过程中进行结对编程是有益处的,它能够使两个人得到公平的锻炼。你能够在code review上花许多时间,并且仍然能够比在结对编程中使用更少的时间。
+
+我的感受是,在项目开发的过程中,25%的时间应该花费在code review上。也就是说,如果开发者用两天的时间来开发一个东西,那么复查者应该使用至少四个小时来审查。
+
+当然,只要你的review结果准确的话,具体花了多少时间就显得不是那么的重要。重要的是,你能够理解你看的那些代码。这里的理解并不是指你看懂了这些代码书写的语法,而是你要知道这段代码在整个庞大的应用程序、组件或者库中起着什么样的作用。如果你不理解每一行代码的作用,那么换句话说,你的code review就是没有价值的。这就是为什么好的code review不能很快完成的原因。需要时间来探讨各种各样的代码路径,让它们触发一个特定的函数,来确保第三方的API得到了正确的使用(包括一些边缘测试)。
+
+为了查阅你所审查的代码的缺陷或者是其他问题,你应该确保:
+
+- 所有必要的测试都已经被包含进去。
+
+- 合理的设计文档已经被编写。
+
+再熟练的开发者也不是每次都会记得在他们对代码改动的时候把测试程序和文档更新上去。来自reviewer的一个提醒能够使得测试用例和开发文档不会一直忘了更新。
+
+### 避免code review负担太大 ###
+
+如果你的团队没有强制性的code review,当你的code review记录停留在无法管理的节点上时会很危险。如果你已经两周没有进行code review了,你可以花几天的时间来跟上项目的进度。这意味着你自己的开发工作会被阻断,当你想要处理之前遗留下来的code review的时候。这也会使得你很难再确保code review的质量,因为合理的code review需要长期认真的努力,最终会很难持续几天都保持这样的状态。
+
+由于这个原因,开发者应当每天都完成他们的review任务。一种好办法就是将code review作为你每天的第一件事。在你开始自己的开发工作之前完成所有的code review工作,能够使你从头到尾都集中注意力。有些人可能更喜欢在午休前或午休后或者在傍晚下班前做review。无论你在哪个时间做,都要将code review看作你的工作之一并且不能分心,你要避免:
+
+- 没有足够的时间来处理你的review任务。
+
+- 由于你的code review工作没有做完导致版本的推迟发布。
+
+- 提交不再相关的review,由于代码在你review期间已经改动太大。
+
+- 因为你要在最后一分钟完成他们,以至于review质量太差。
+
+### 书写易于review的代码 ###
+
+有时候review没有按时完成并不都是因为reviewer。如果我的同事使用一周时间在一个大工程中添加了一些乱七八糟的代码,且他们提交的补丁实在是太难以阅读。在一段代码中有太多的东西要浏览。这样会让人难以理解它的作用,自然会拖慢review的进度。
+
+为什么将你的工作划分成一些易于管理的片段很重要有很多原因。我们使用scrum方法论(一种软件开发过程方法),因此对我们来说一个合理的单元就是一个story。通过努力将我们的工作使用story组织起来,并且只是将review提交到我们正在工作的story上,这样,我们写的代码就会更加易于review。你们也可以使用其他的软件开发方法,但是目的是一样的。
+
+书写易于review的代码还有其他先决条件。如果要做一些复杂的架构决策,应该让reviewer事先知道并参与讨论。这会让他们之后review你们的代码更加容易,因为他们知道你们正在试图实现什么功能并且知道你们打算如何来实现。这也避免了开发者需要在reviewer提了一个不同的或者更好的解决方案后大片的重写代码。
+
+项目需要应当在设计文档中详细的描述。这对于一个项目新成员想要快速上手并且理解现有的代码来说非常重要。这从长远角度对于一个reviewer来说也非常有好处。单元测试也有助于reviewer知道一些组件是怎么使用的。
+
+如果你在你的补丁中包含的第三方的代码,记得单独的提交它。当jQuery的9000行代码被插入到了项目代码的中间,毫无疑问会造成难以阅读。
+
+创建易读的review代码的另一个非常重要的措施是添加相应的注释代码。这就要求你事先自己做一下review并且在一些你认为会帮助reviewer进行review的地方加上相应的注释。我发现加上注释相对于你来说往往只需要很短的时间(通常是几分钟),但是对于review来说会节约很多的时间。当然,代码注释还有其他相似的好处,应该在合理的地方使用,但往往对code review来说更重要。事实上,有研究表明,开发者在重读并注释他们代码的过程中,通常会发现很多问题。
+
+### 代码大范围重构的情况 ###
+
+有时候,有必要重构一段代码使其能够作用于多个其他组件。若是一个大型的应用要这样做,会花费几天甚至是更多的时间,结果是生成一个诺大的补丁包。在这种情况下,进行一个标准的code review可能是不切实际的。
+
+最好的方法是增量重构你的代码。找出合理范围内的一部分改变,以此为基础来重构。一旦修改和review完成,进入第二个增量。以此类推,直到整个重构完成。这种方法可能不是在所有的情况下都可行,但是尽管如此,也能避免在重构时出现大量的单片补丁。开发者使用这种方式重构可能会花去更多的时间,但这也使得代码质量更高并且之后的review会更简单。
+
+如果实在是没有条件去通过增量方式重构代码(有人可能会说之前的代码书写并组织的是多么的好),一种解决方案是在重构时进行结对编程来代替code review。
+
+### 解决团队成员之间的纠纷 ###
+
+你的团队中都是一些有能力的专家,在一些案例中,完全有可能因为对一个具体编码问题的意见的不同而产生争论。作为一个开发者,应该保持一个开发的头脑并且时刻准备着妥协,当你的reviewer更想要另一种解决方法时。不要对你的代码持有专有的态度,也不要自己持有审查的意见。因为有人会觉得你应该将一些重复的代码写入一个能够复用的函数中去,这并不意味着这是你的问题。
+
+作为一个reviewer,要灵活。在提出修改建议之前,考虑你的建议是否真的更好或者只是无关紧要。如果你把力气和注意力花在那些原来的代码会明确需要改进的地方会更加成功。你应该说"它或许值得考虑..."或者"一些人建议..."而不是”我的宠物都能写一个比这个更加有效的排序方法"。
+
+如果你真的决定不了,那就询问另一个你及你所审查的人都尊敬的开发者来听一下你意见并给出建议。
+
+--------------------------------------------------------------------------------
+
+via: http://blog.salsitasoft.com/practical-lessons-in-peer-code-review/
+
+作者:Matt
+译者:[john](https://github.com/johnhoow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+
diff --git a/published/201412/20141008 How To Use Steam Music Player on Ubuntu Desktop.md b/published/201412/20141008 How To Use Steam Music Player on Ubuntu Desktop.md
new file mode 100644
index 0000000000..bf066178a4
--- /dev/null
+++ b/published/201412/20141008 How To Use Steam Music Player on Ubuntu Desktop.md
@@ -0,0 +1,79 @@
+如何在Ubuntu桌面上使用Steam Music音乐播放器
+================================================================================
+
+
+**‘音乐让人们走到一起’ 麦当娜曾这样唱道。但是Steam的新音乐播放器特性能否很好的混搭小资与叛逆?**
+
+如果你曾与世隔绝,充耳不闻,你就会错过与Steam Music的相识。它的特性并不是全新的。从今年的早些时候开始,它就已经以这样或那样的形式进行了测试。
+
+但Steam客户端最近一次在Windows、Mac和Linux上的定期更新中,所有的客户端都能使用它了。你会问为什么一个游戏客户端会添加一个音乐播放器呢?当然是为了让你能一边玩游戏一边一边听你最喜欢的音乐了。
+
+别担心:在游戏的音乐声中再加上你自己的音乐,听起来并不会像你想象的那么糟(哈哈)。Steam会帮你减少或消除游戏的背景音乐,但在混音器中保持效果音的高音量,以便于你能和平时一样听到那些叮,嘭和各种爆炸声。
+
+### 使用Steam Music音乐播放器 ###
+
+
+
+*大图模式*
+
+任何使用最新版客户端的人都能使用Steam Music音乐播放器。它是个相当简单的附加程序:它让你能从你的电脑中添加、浏览并播放音乐。
+
+播放器可以以两种方式进入:桌面和(超棒的)Steam大图模式。在两种方式下,控制播放都超级简单。
+
+作为一个Rhythmbox的对手或是Spotify的继承者,把**为玩游戏时放音乐而设计**作为特点一点也不吸引人。事实上,他没有任何可购买音乐的商店,也没有整合Rdio,Grooveshark这类在线服务或是桌面服务。没错,你的多媒体键在Linux的播放器上完全不能用。
+
+Valve说他们“*……计划增加更多的功能以便用户能以新的方式体验Steam Music。我们才刚刚开始。*”
+
+#### Steam Music的重要特性:####
+
+- 只能播放MP3文件
+- 与游戏中的音乐相融
+- 在游戏中可以控制音乐
+- 播放器可以在桌面上或在大图模式下运行
+- 基于播放列表的播放方式
+
+**它没有整合到Ubuntu的声音菜单里,而且目前也不支持键盘上的多媒体键。**
+
+### 在Ubuntu上使用Steam Music播放器 ###
+
+显然,添加音乐是你播放音乐前的第一件事。在Ubuntu上,默认设置下,Steam会自动添加两个文件夹:Home下的标准Music目录和它自带的Steam Music文件夹。任何可下载的音轨都保存在其中。
+
+注意:目前**Steam Music只能播放MP3文件**。如果你的大部分音乐都是其他文件格式(比如.acc、.m4a等等),这些文件不会被添加也不能被播放。
+
+若想添加其他的文件夹或重新扫描:
+
+- 到**View > Settings > Music**。
+- 点击‘**Add**‘将其他位置的文件夹添加到已列出两个文件夹的列表下。
+- 点击‘**Start Scanning**’
+
+
+
+你还可以在这个对话框中调整其他设置,包括‘scan at start’。如果你经常添加新音乐而且很容易忘记手动启动扫描,请标记此项。你还可以选择当路径变化时是否显示提示,设置默认的音量,还能调整当你打开一个应用软件或语音聊天时的播放状态的改变。
+
+一旦你的音乐源成功的被添加并扫描后,你就可以通过主客户端的**Library > Music**区域浏览你的音乐了。
+
+
+
+Steam Music会默认的将音乐按照专辑进行分组。若想按照乐队名进行浏览,你需要点击‘Albums’然后从下拉菜单中选择‘Artists’。
+
+
+
+Steam Music是一个以‘队列’方式工作的系统。你可以通过双击浏览器里的音乐或右键单击并选择‘Add to Queue’来把音乐添加到播放队列里。
+
+
+
+若想**启动桌面播放器**请点击右上角的音符图标或通过**View > Music Player**菜单。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/10/use-steam-music-player-linux
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[H-mudcup](https://github.com/H-mudcup)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
diff --git a/published/201412/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md b/published/201412/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md
new file mode 100644
index 0000000000..44dc70eca7
--- /dev/null
+++ b/published/201412/20141009 How to set up RAID 10 for high performance and fault tolerant disk I or O on Linux.md
@@ -0,0 +1,140 @@
+如何在Linux上构建 RAID 10阵列
+================================================================================
+
+RAID 10阵列(又名RAID 1+0 或先镜像后分区)通过结合RAID 0 (读写操作在多个磁盘上同时并行执行)和RAID 1(数据被完全相同地写入到两个或更多的磁盘)两者的特点实现高性能和高容错性的磁盘I/O。
+
+这篇文章会指导你如何使用五块相同的8GB磁盘来组成一个软件RAID 10阵列。因为组成一个RAID 10阵列至少需要4块磁盘(比如,两个镜像各有一对分区组合),而且需要添加一块额外的备用磁盘以防某块主要的磁盘出错。本文也会分享一些工具,在稍后用来分析RAID阵列的性能。
+
+注意RAID 10的优缺点和其它分区方法(在不同大小的磁盘和文件系统上)的内容不在本文讨论范围内。
+
+### Raid 10 阵列如何工作? ###
+
+如果你需要实现一种支持I/O密集操作(比如数据库、电子邮件或web服务器)的存储解决方案,RAID 10就是你需要的。来看看为什么这么说,请看下图。
+
+
+
+上图中的文件由A、B、C、D、E和F六种块组成,每一个RAID 1镜像对(如镜像1和2)在两个磁盘上复制相同的块。在这样的配置下,写操作性能会因为每个块需要写入两次而下降,每个磁盘各一次;而读操作与从单块磁盘中读取相比并未发生改变。不过这种配置的好处是除非一个镜像中有超过一块的磁盘故障,否则都能保持冗余以维持正常的磁盘I/O操作。
+
+RAID 0的分区通过将数据划分到不同的块,然后执行同时将块A写入镜像1、将块B写入镜像2(以此类推)的并行操作以提高整体的读写性能。在另一方面,没有任何一个镜像包含构成主存的数据片的全部信息。这就意味着如果其中一个镜像故障,那么整个RAID 0组件将无法正常工作,数据将遭受不可恢复的损失。
+
+### 建立RAID 10阵列 ###
+
+有两种建立RAID 10阵列的可行方案:复杂法(一步完成)和嵌套法(先创建两个或更多的RAID 1阵列,然后使用它们组成RAID 0)。本文会讲述复杂法创建RAID 10阵列的过程,因为这种方法能够使用偶数或奇数个磁盘去创建阵列,而且能以单个RAID设备的形式被管理,而嵌套法则恰恰相反(只允许偶数个磁盘,必须以嵌套设备的形式被管理,即分开管理RAID 1和RAID 0)。
+
+假设你的机器已经安装mdadm,并运行着相应的守护进程,细节参见[这篇文章][1]。也假设每个磁盘上已经划分出一个主分区sd[bcdef]1 (LCTT 译注:共计五块磁盘,这里是从sdb - sdf)。使用命令:
+
+ ls -l /dev | grep sd[bcdef]
+
+查看到的输出应该如下所示:
+
+
+
+然后使用下面的命令创建一个RAID 10阵列(LCTT 译注:使用了四块磁盘 bcde 创建):
+
+ # mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde]1 --spare-devices=1 /dev/sdf1
+
+
+
+当阵列创建完毕后(最多花费几分钟),执行命令
+
+ # mdadm --detail /dev/md0
+
+的输出应如下所示:
+
+
+
+在更进一步之前需要注意以下事项。
+
+1. **Used Dev Space**表示阵列所使用的每一块磁盘的容量。
+
+2. **Array Size**表示阵列的整体大小。RAID 10阵列的大小通过(N\*C)/M计算,其中N是活跃磁盘的数目,C是每个活跃磁盘的容量,M是每一个镜像中磁盘的数目。在本文的情形下,这个值等于(4*8GiB)/2 = 16GiB。
+
+3. **Layout**是整个数据布局的详细信息。可能的布局数值如下所示。
+
+----------
+
+- **n**(默认选项):代表就近(near)拷贝。一个数据块的多个拷贝在不同磁盘里有相同的偏移量。这种布局提供和RAID 0阵列相似的读写性能。
+
+
+
+- **o**代表偏移量(offset)拷贝。块并不是在条带里面复制的,而是整个条带一起复制,但是循环会打乱,所以同一个分区中复制的块会出现在不同的磁盘。因此,一个块的后续拷贝会出现在下一个磁盘中,一个块接着一个块。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加--layout=o2选项。
+
+
+
+- **f**代表远端(far)拷贝(多个拷贝在不同的磁盘中具有不同的偏移量)。这种布局提供更好的读性能但带来更差的写性能。因此,对于读远远多于写的系统来说是最好的选择。为了在RAID 10阵列中使用这种布局,在创建阵列的命令中添加--layout=f2。
+
+
+
+跟在布局选项**n**、**f**和**o**后面的数字代表所需的每一个数据块的副本数目。默认值是2,但可以是2到阵列中磁盘数目之间的某个值。提供足够的副本数目可以最小化单个磁盘上的I/O影响。
+
+4. **Chunk Size**,参考[Linux RAID wiki][2]的说明,是写入磁盘的最小数据单元。最佳的chunk大小取决于I/O操作的速率和相关的文件大小。对于大量的写操作,通过设置相对较大的chunk可以得到更低的开销,但对于主要存储小文件的阵列来说更小的chunk性能更好。为了给RAID 10指定一个chunk大小,在创建阵列的命令中添加**--chunk=desired_chunk_size**。
+
+不幸的是,并没有设置一个大小就能适合全局的策略来提高性能,但可以参考下面的一些方案。
+
+- 文件系统:就整体而言,[XFS][3]据说是最好的,当然EXT4也是不错的选择。
+- 最佳布局:远端布局能提高读性能,但会降低写性能。
+- 副本数目:更多的副本能最小化I/O影响,但更多的磁盘需要更大的花费。
+- 硬件:在相同的环境下,SSD比传统(机械旋转)磁盘更能带来出性能提升
+
+### 使用DD进行RAID性能测试 ###
+
+下面的基准测试用于检测RAID 10阵列(/dev/md0)的性能。
+
+#### 1. 写操作 ####
+
+往磁盘中写入大小为256MB的单个文件:
+
+ # dd if=/dev/zero of=/dev/md0 bs=256M count=1 oflag=dsync
+
+写入1000次512字节:
+
+ # dd if=/dev/zero of=/dev/md0 bs=512 count=1000 oflag=dsync
+
+使用dsync标记,dd可以绕过文件系统缓存,在RAID阵列上执行同步写。这个选项用于减少RAID性能测试中缓存的影响。
+
+#### 2. 读操作 ####
+
+从阵列中拷贝256KiB*15000(3.9 GB)大小内容到/dev/null:
+
+ # dd if=/dev/md0 of=/dev/null bs=256K count=15000
+
+### 使用Iozone进行RAID性能测试 ###
+
+[Iozone][4]是一款文件系统基准测试工具,用来测试各种磁盘I/O操作,包括随机读写、顺序读写和重读重写。它支持将结果导出为微软的Excel或LibreOffice的Calc文件。
+
+#### 在CentOS/RHEL 7上安装Iozone ####
+
+先保证[Repoforge][5]可用,然后输入:
+
+ # yum install iozone
+
+#### 在Debian 7上安装Iozone ####
+
+ # aptitude install iozone3
+
+下面的iozone命令会在RAID-10阵列中执行所有测试:
+
+ # iozone -Ra /dev/md0 -b /tmp/md0.xls
+
+- **-R**:往标准输出生成兼容Excel的报告
+- **-a**:以全自动模式运行所有的测试,并测试各种记录/文件大小。记录大小范围:4K-16M,文件大小范围:64K-512M。
+- **-b /tmp/md0.xls**: 把测试结果存储到一个指定的文件中
+
+希望这篇文章对你有所帮助,如果想到任何想法或建议可能会提升RAID 10的性能,请讲出来。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/setup-raid10-linux.html
+
+作者:[Gabriel Cánepa][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[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/create-software-raid1-array-mdadm-linux.html
+[2]:https://raid.wiki.kernel.org/
+[3]:http://ask.xmodulo.com/create-mount-xfs-file-system-linux.html
+[4]:http://www.iozone.org/
+[5]:http://xmodulo.com/how-to-set-up-rpmforge-repoforge-repository-on-centos.html
\ No newline at end of file
diff --git a/published/201412/20141013 Manage Multiple Logical Volume Management Disks using Striping I O--Part V.md b/published/201412/20141013 Manage Multiple Logical Volume Management Disks using Striping I O--Part V.md
new file mode 100644
index 0000000000..7c6b41c7f0
--- /dev/null
+++ b/published/201412/20141013 Manage Multiple Logical Volume Management Disks using Striping I O--Part V.md
@@ -0,0 +1,162 @@
+使用条块化I/O管理多个LVM磁盘(第五部分)
+================================================================================
+在本文中,我们将了解逻辑卷是如何通过条块化I/O来写入数据到磁盘的。逻辑卷管理的酷炫特性之一,就是它能通过条块化I/O跨多个磁盘写入数据。
+
+
+### LVM条块化是什么? ###
+
+**LVM条块化**是LVM功能之一,该技术会跨多个磁盘写入数据,而不是对单一物理卷持续写入。
+
+
+
+*使用条块化I/O管理LVM磁盘*
+
+
+#### 条块化特性 ####
+
+- 它会改善磁盘性能。
+- 避免对单一磁盘的不断的大量写入。
+- 使用对多个磁盘的条块化写入,可以减少磁盘填满的几率。
+
+在逻辑卷管理中,如果我们需要创建一个逻辑卷,扩展的卷会完全映射到卷组和物理卷。在此种情形中,如果其中一个**PV**(物理卷)被填满,我们需要从其它物理卷中添加更多扩展。这样,添加更多扩展到PV中后,我们可以指定逻辑卷使用特定的物理卷写入I/O。
+
+假设我们有**四个磁盘**驱动器,分别指向了四个物理卷,如果各个物理卷总计可以达到**100 I/O**,我们卷组就可以获得**400 I/O**。
+
+如果我们不使用**条块化方法**,文件系统将横跨基础物理卷写入。例如,写入一些数据到物理卷达到100 I/O,这些数据只会写入到第一个PV(**sdb1**)。如果我们在写入时使用条块化选项创建逻辑卷,它会分割100 I/O分别写入到四个驱动器中,这就是说每个驱动器中都会接收到25 I/O。
+
+这会在循环过程中完成。如果这些逻辑卷其中任何一个需要扩展,在这种情形下,我们不能添加1个或2个PV,必须添加所有4个pv来扩展逻辑卷大小。这是条块化特性的缺点之一,从中我们可以知道,在创建逻辑卷时,我们需要为所有逻辑卷分配相同的条块大小。
+
+逻辑卷管理有着这些特性,它使我们能够同时在多个pv中条块化数据。如果你对逻辑卷熟悉,你可以去设置逻辑卷条块化。反之,你则必须了解逻辑卷管理的基础知识了,请阅读更基础的文章来了解逻辑卷管理。
+
+#### 我的服务器设置 ####
+
+这里,我使用**CentOS6.5**用作练习。下面这些步骤也适用于RHEL、Oracle Linux以及大多数发行版。
+
+ 操作系统: CentOS 6.5
+ IP地址: 192.168.0.222
+ 主机名: tecmint.storage.com
+
+### 条块化I/O的逻辑卷管理 ###
+
+出于演示目的,我已经准备了4个硬盘驱动器,每个驱动器1GB大小。让我用下面的‘**fdisk**’命令来列给你看看吧。
+
+ # fdisk -l | grep sd
+
+
+
+*列出硬盘驱动器*
+
+现在,我们必须为这4个硬盘驱动器**sdb**,**sdc**,**sdd**和**sde**创建分区,我们将用‘**fdisk**’命令来完成该工作。要创建分区,请遵从本文**[第一部分][1]**中**步骤#4**的说明,并在创建分区时确保你已将类型修改为**LVM(8e)**。
+
+ # pvcreate /dev/sd[b-e]1 -v
+
+
+
+*在LVM中创建物理卷*
+
+PV创建完成后,你可以使用‘**pvs**’命令将它们列出来。
+
+ # pvs
+
+
+
+*验证物理卷*
+
+现在,我们需要使用这4个物理卷来定义卷组。这里,我定义了一个物理扩展大小(PE)为**16MB**,名为**vg_strip**的卷组。
+
+ # vgcreate -s 16M vg_strip /dev/sd[b-e]1 -v
+
+上面命令中选项的说明:
+
+- **[b-e]1** – 定义硬盘驱动器名称,如sdb1,sdc1,sdd1,sde1。
+- **-s** – 定义物理扩展大小。
+- **-v** – 详情。
+
+接下来,验证新创建的卷组:
+
+ # vgs vg_strip
+
+
+
+*验证卷组*
+
+要获取VG更详细的信息,可以在**vgdisplay**命令中使用‘-v’选项,它将给出**vg_strip**卷组中所使用的全部物理卷的详细情况。
+
+ # vgdisplay vg_strip -v
+
+
+
+*卷组信息*
+
+回到我们的话题,现在在创建逻辑卷时,我们需要定义条块化值,就是数据需要如何使用条块化方法来写入到我们的逻辑卷中。
+
+这里,我创建了一个名为**lv_tecmint-strp1**,大小为**900MB**的逻辑卷,它需要放到**vg_strip**卷组中。我定义了4个条块,就是说数据在写入到我的逻辑卷时,需要条块化分散到4个PV中。
+
+ # lvcreate -L 900M -n lv_tecmint_strp1 -i4 vg_strip
+
+- **-L** –逻辑卷大小
+- **-n** –逻辑卷名称
+- **-i** –条块化
+
+
+
+*创建逻辑卷*
+
+在上面的图片中,我们可以看到条块尺寸的默认大小为**64 KB**,如果我们需要自定义条块值,我们可以使用**-I**(大写I)。要确认逻辑卷已经是否已经创建,请使用以下命令。
+
+ # lvdisplay vg_strip/lv_tecmint_strp1
+
+
+
+*确认逻辑卷*
+
+现在,接下来的问题是,我们怎样才能知道条块被写入到了4个驱动器。这里,我们可以使用‘**lvdisplay**’和**-m**(显示逻辑卷映射)命令来验证。
+
+ # lvdisplay vg_strip/lv_tecmint_strp1 -m
+
+
+
+*检查逻辑卷*
+
+要创建自定义的条块尺寸,我们需要用我们自定义的条块大小**256KB**来创建一个**1GB**大小的逻辑卷。现在,我打算将条块分布到3个PV上。这里,我们可以定义我们想要哪些pv条块化。
+
+ # lvcreate -L 1G -i3 -I 256 -n lv_tecmint_strp2 vg_strip /dev/sdb1 /dev/sdc1 /dev/sdd1
+
+
+
+*定义条块大小*
+
+接下来,检查条块大小和条块化的卷。
+
+ # lvdisplay vg_strip/lv_tecmint_strp2 -m
+
+
+
+*检查条块大小*
+
+是时候使用设备映射了,我们使用‘**dmsetup**’命令来完成这项工作。它是一个低级别的逻辑卷管理工具,它用于管理使用了设备映射驱动的逻辑设备。
+
+ # dmsetup deps /dev/vg_strip/lv_tecmint_strp[1-2]
+
+
+
+*设备映射*
+
+这里,我们可以看到strp1依赖于4个驱动器,strp2依赖于3个设备。
+
+希望你已经明白,我们怎样能让逻辑卷条块化来写入数据。对于此项设置,必须掌握逻辑卷管理基础知识。
+
+在我的下一篇文章中,我将给大家展示怎样在逻辑卷管理中迁移数据。到那时,请静候更新。同时,别忘了对本文提出有价值的建议。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/manage-multiple-lvm-disks-using-striping-io/
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
+[1]:http://linux.cn/article-3965-1.html
diff --git a/published/201412/20141013 Migrating LVM Partitions to New Logical Volume (Drive)--Part VI.md b/published/201412/20141013 Migrating LVM Partitions to New Logical Volume (Drive)--Part VI.md
new file mode 100644
index 0000000000..c837633fa1
--- /dev/null
+++ b/published/201412/20141013 Migrating LVM Partitions to New Logical Volume (Drive)--Part VI.md
@@ -0,0 +1,212 @@
+迁移LVM分区到新的逻辑卷/驱动器(第六部分)
+================================================================================
+
+这是我们正在进行的LVM系列的第六部分。在本文中,我们将为大家展示怎样在线将现存的逻辑卷迁移到其它新的驱动器。在开始之前,我想要先来介绍一下LVM迁移及其特性。
+
+
+
+*LVM存储迁移*
+
+
+### 什么是LVM迁移? ###
+
+**LVM**迁移是LVM众多优秀特性之一,通过它,我们可以迁移逻辑卷到一个新的磁盘而不会丢失数据,也不用关机操作。该特性的功能是将数据从旧磁盘移动到新磁盘。通常,我们只是在一些磁盘发生错误时,才将数据从一个磁盘迁移到另外一个磁盘存储。
+
+### 迁移特性 ###
+
+- 将逻辑卷从一个磁盘移动到另一个磁盘。
+- 我们可以使用任何类型的磁盘,如SATA、SSD、SAS、SAN storage iSCSI或者FC。
+- 在线迁移磁盘,而且数据不会丢失。
+
+在LVM迁移中,我们将交换各个卷、文件系统以及位于已有的存储中的数据。例如,如果我们有一个单一逻辑卷,它已经映射到了物理卷,而该物理卷是一个物理硬盘驱动器。
+
+现在,如果我们需要升级服务器存储为SSD硬盘驱动器,我们首先需要考虑什么?重新格式化磁盘?不!我们不必重新格式化服务器,LVM可以选择将这些旧的SATA驱动器上的数据迁移到新的SSD驱动器上。在线迁移将会支持任何类型的磁盘,不管是本地驱动器,还是SAN或者光纤通道都可以。
+
+#### 我的服务器设置 ####
+
+ 操作系统: CentOS 6.5 Final
+ IP地址: 192.168.0.224
+ 系统主机名: lvmmig.tecmintlocal.com
+
+### 步骤1: 检查当前驱动器 ###
+
+**1.**假设我们已经有一个名为“**vdb**”的虚拟驱动器,它已经被映射到了其中一个逻辑卷“**tecmint_lv**”。现在,我们想要迁移“**vdb**”这个逻辑卷到其它某个新的存储设备中。在开始之前,首先在下面所示的**fdisk**和lvs命令的帮助下验证该虚拟驱动器。
+
+ # fdisk -l | grep vd
+ # lvs
+
+
+
+*检查逻辑卷磁盘*
+
+### 步骤2: 检查新添加的驱动器 ###
+
+**2.**在我们确认了现存驱动器后,现在是时候来将新的SSD驱动器连接到系统并在fdisk命令的帮助下验证新添加的驱动器了。
+
+ # fdisk -l | grep dev
+
+
+
+*检查新添加的驱动器*
+
+**注意**:你看到上面屏幕中的内容了吗?新的驱动器已经被成功添加了,其名称为“**/dev/sda**”。
+
+### 步骤3: 检查当前逻辑和物理卷 ###
+
+**3.**现在,让我们开始创建物理卷、卷组和逻辑卷以用于迁移。在创建卷时,确保检查**/mnt/lvm**挂载点下的当前逻辑卷的数据。用以下命令来列出挂载点并检查数据。
+
+ # df -h
+ # cd /mnt/lvm
+ # cat tecmint.txt
+
+
+
+*检查逻辑卷数据*
+
+**注意**:出于演示的目的,我们已经在**/mnt/lvm**挂载点下创建了两个文件,我们将在线将这些数据迁移到新的驱动器中。
+
+**4.**在迁移之前,确保对确认与物理卷相关的逻辑卷和卷组名称,并且确认哪个物理卷用于容纳该卷组和逻辑卷。
+
+ # lvs
+ # vgs -o+devices | grep tecmint_vg
+
+
+
+*确认逻辑卷名称*
+
+**注意**:看到上面屏幕中的内容了吗?“**vdb**”容纳了卷组**tecmint_vg**。
+
+### 步骤4: 创建新物理卷 ###
+
+**5.**在在我们新添加的SSD驱动器中创建物理卷之前,我们需要使用fdisk来定义分区。在创建分区时,别忘了修改分区类型为LVM(8e)。
+
+ # pvcreate /dev/sda1 -v
+ # pvs
+
+
+
+*创建物理卷*
+
+**6.**接下来,使用‘vgextend命令’来添加新创建的物理卷到现存卷组tecmint_vg。
+
+ # vgextend tecmint_vg /dev/sda1
+ # vgs
+
+
+
+*添加物理卷*
+
+**7.**要获得卷组的完整信息列表,请使用‘vgdisplay’命令。
+
+ # vgdisplay tecmint_vg -v
+
+
+
+*列出卷组信息*
+
+**注意**:在上面屏幕中,我们可以看到在输出结果的结束处,我们的PV已经添加到了卷组中。
+
+**8.**如果我们需要知道更多关于哪些设备被映射的信息,请使用‘**dmsetup**’依赖命令。
+
+ # lvs -o+devices
+ # dmsetup deps /dev/tecmint_vg/tecmint_lv
+
+在上面的结果中,有个**1个**依赖(PV)或(驱动器),而这里**17**被列出了。如果你想要检查设备,那些关联的有着主、次设备号的驱动器,以确认,使用下面的命令。
+
+ # ls -l /dev | grep vd
+
+
+
+*列出设备信息*
+
+**注意**:在上面的命令中,我们可以看到主设备号是**252**,次设备号是**17**,它连接到了**vdb1**。希望你理解了上面命令的输出。
+
+### 步骤5: LVM镜像法 ###
+
+**9.**现在,该使用镜像法来进行迁移了。使用‘**lvconvert**’命令来将数据从旧逻辑卷迁移到新驱动器。
+
+ # lvconvert -m 1 /dev/tecmint_vg/tecmint_lv /dev/sda1
+
+- **-m** = 镜像
+- **1** = 添加单个镜像
+
+
+
+*镜像法迁移*
+
+**注意**:上面的迁移过程根据卷的大小会花费一段时间。
+
+**10.**在迁移过程完成后,验证转换的镜像。
+
+ # lvs -o+devices
+
+
+
+*验证转换的镜像*
+
+**11.**当你确认转换的镜像没有任何问题后,你可以移除旧的虚拟磁盘**vdb1**。**-m**选项将移除镜像,先前我们使用**l**来添加镜像。
+
+ # lvconvert -m 0 /dev/tecmint_vg/tecmint_lv /dev/vdb1
+
+
+
+*移除虚拟磁盘*
+
+**12.**在旧虚拟磁盘移除后,你可以使用以下命令来再次检查逻辑卷设备。
+
+ # lvs -o+devices
+ # dmsetup deps /dev/tecmint_vg/tecmint_lv
+ # ls -l /dev | grep sd
+
+
+
+*检查新镜像的设备*
+
+在上面的图片中,你看到了吗?我们的逻辑卷现在依赖于**8,1**,名称为**sda1**。这说明我们的迁移过程已经完成了。
+
+**13.**现在验证我们从旧驱动器上迁移过来的文件。如果在新驱动器中的数据与原数据一样,那就说明我们每一步都完成得很完美。
+
+ # cd /mnt/lvm/
+ # cat tecmin.txt
+
+
+
+*检查镜像的数据*
+
+
+ # vgreduce /dev/tecmint_vg /dev/vdb1
+ # vgs -o+devices
+
+**14.**在所有的都被完美创建后,现在该从卷组中删除**vdb1**并进行再次确认,哪些设备依赖于我们的卷组。
+
+**15.**在从卷组**tecmint_vg**移除vdb1后,我们的逻辑卷还在那儿,因为我们已经将它从**vdb1**迁移到了**sda1**。
+
+ # lvs
+
+
+
+*删除虚拟磁盘*
+
+### 步骤6: LVM pvmove镜像法 ###
+
+**16.**我们可以使用带有‘**-n**’(逻辑卷名称)选项的‘**pvmove**’命令来取代‘**lvconvert**’镜像命令,在两个设备间进行数据镜像。
+
+ # pvmove -n /dev/tecmint_vg/tecmint_lv /dev/vdb1 /dev/sda1
+
+该命令是在两个设备间镜像数据的最简单的一个,但是在真实环境中,**镜像**比**pvmove**使用得更为频繁。
+
+### 结尾 ###
+
+在本文中,我们介绍了怎样将逻辑卷从一个驱动器迁移到另一个驱动器。希望你已经掌握了逻辑卷管理中这一新的技巧。对于该配置,必须建立在掌握逻辑卷管理基础技能的基础上。对于基础配置,请参阅本文顶部需求章节中提供的链接。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/lvm-storage-migration/#comment-331336
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
diff --git a/published/201412/20141017 How to check hard disk health on Linux using smartmontools.md b/published/201412/20141017 How to check hard disk health on Linux using smartmontools.md
new file mode 100644
index 0000000000..914f5f382c
--- /dev/null
+++ b/published/201412/20141017 How to check hard disk health on Linux using smartmontools.md
@@ -0,0 +1,150 @@
+使用 smartmontools 查看硬盘的健康状态
+================================================================================
+要说Linux用户最不愿意看到的事情,莫过于在毫无警告的情况下发现硬盘崩溃了。诸如[RAID][2]的[备份][1]和存储技术可以在任何时候帮用户恢复数据,但为预防硬件突然崩溃造成数据丢失所花费的代价却是相当可观的,特别是在用户从来没有提前考虑过在这些情况下的应对措施时。
+
+为了避免遇到这种困境,用户可以试用一款叫做[smartmontools][3]的软件包程序,它通过使用自我监控(Self-Monitoring)、分析(Analysis)和报告(Reporting)三种技术(缩写为S.M.A.R.T或SMART)来管理和监控存储硬件。如今大部分的ATA/SATA、SCSI/SAS和固态硬盘都搭载内置的SMART系统。SMART的目的是监控硬盘的可靠性、预测磁盘故障和执行各种类型的磁盘自检。smartmontools由smartctl和smartd两部分工具程序组成,它们一起为Linux平台提供对磁盘退化和故障的高级警告。
+
+这篇文章会描述Linux上smartmontools的安装和配置方法。
+
+### 安装Smartmontools ###
+
+由于smartmontools在大部分Linux发行版的基本软件库中都可用,所以安装很方便。
+
+#### Debian和其衍生版:####
+
+ # aptitude install smartmontools
+
+#### 基于Red Hat的发行版:####
+
+ # yum install smartmontools
+
+### 使用Smartctl检测硬盘的健康状况 ###
+
+首先,使用下面的命令列出和系统相连的硬盘:
+
+ # ls -l /dev | grep -E 'sd|hd'
+
+输出结果和下图类似:
+
+
+
+其中sdX代表分配给机器上对应硬盘上的设备名。
+
+如果想要显示出某个指定硬盘的信息(比如设备模式、S/N、固件版本、大小、ATA版本/修订号、SMART功能的可用性和状态),在运行smartctl命令时添加"--info"选项,并按如下所示指定硬盘的设备名。
+
+在本例中,选择/dev/sda。
+
+ # smartctl --info /dev/sda
+
+
+
+尽管最开始可能不会注意到ATA(译者注:硬盘接口技术)的版本信息,但当需要替换硬盘时它确实是最重要的因素之一。每一代ATA版本都保持向下兼容。例如,老的ATA-1或ATA-2设备可以正常工作在ATA-6和ATA-7接口上,但反过来就不行了。在设备版本和接口版本两者不匹配的情况下,它们会按照两者中版本较小的规范来运行。也就是说,在这种情况下,需要替换硬盘时,ATA-7硬盘是最安全的选择。
+
+可以通过这个命令来检测某个硬盘的健康状况:
+
+ # smartctl -s on -a /dev/sda
+
+在这个命令中,"-s on"标志开启指定设备上的SMART功能。如果/dev/sda上已开启SMART支持,那就省略它。
+
+硬盘的SMART信息包含很多部分。其中,"READ SMART DATA"部分显示出硬盘的整体健康状况。
+
+ === START OF READ SMART DATA SECTION ===
+ SMART overall-health self-assessment rest result: PASSED
+
+这个测试的结果是PASSED或FAILED。后者表示即将出现硬件故障,所以需要开始备份这块磁盘上的重要数据!
+
+下一个需要关注的地方是[SMART属性][4]表,如下所示。
+
+
+
+基本上,SMART属性表列出了制造商在硬盘中定义好的属性值,以及这些属性相关的故障阈值。这个表由驱动固件自动生成和更新。
+
+- **ID**:属性ID,通常是一个1到255之间的十进制或十六进制的数字。
+- **ATTRIBUTE_NAME**:硬盘制造商定义的属性名。
+- **FLAG**:属性操作标志(可以忽略)。
+- **VALUE**:这是表格中最重要的信息之一,代表给定属性的标准化值,在1到253之间。253意味着最好情况,1意味着最坏情况。取决于属性和制造商,初始化VALUE可以被设置成100或200.
+- **WORST**:所记录的最小VALUE。
+- **THRESH**:在报告硬盘FAILED状态前,WORST可以允许的最小值。
+- **TYPE**:属性的类型(Pre-fail或Old_age)。Pre-fail类型的属性可被看成一个关键属性,表示参与磁盘的整体SMART健康评估(PASSED/FAILED)。如果任何Pre-fail类型的属性故障,那么可视为磁盘将要发生故障。另一方面,Old_age类型的属性可被看成一个非关键的属性(如正常的磁盘磨损),表示不会使磁盘本身发生故障。
+- **UPDATED**:表示属性的更新频率。Offline代表磁盘上执行离线测试的时间。
+- **WHEN\_FAILED**:如果VALUE小于等于THRESH,会被设置成“FAILING\_NOW”;如果WORST小于等于THRESH会被设置成“In\_the\_past”;如果都不是,会被设置成“-”。在“FAILING\_NOW”情况下,需要尽快备份重要文件,特别是属性是Pre-fail类型时。“In\_the\_past”代表属性已经故障了,但在运行测试的时候没问题。“-”代表这个属性从没故障过。
+- **RAW\_VALUE**:制造商定义的原始值,从VALUE派生。
+
+这时候你可能会想,“是的,smartctl看起来是个不错的工具,但我更想知道如何避免手动运行的麻烦。”如果能够以指定的间隔运行,同时又能通知我测试结果,那不是更好吗?”
+
+好消息是,这个功能已经有了。是smartd发挥作用的时候了!
+
+### 配置Smartctl和Smartd实现实时监控 ###
+
+首先,编辑smartctl的配置文件(/etc/default/smartmontools)以便在系统启动时启动smartd,并以秒为单位指定间隔时间(如7200 = 2小时)。
+
+ start_smartd=yes
+ smartd_opts="--interval=7200"
+
+下一步,编辑smartd的配置文件(/etc/smartd.conf),添加以下行内容。
+
+ /dev/sda -m myemail@mydomain.com -M test
+
+- **-m **:指定发送测试报告到某个电子邮件地址。这里可以是系统用户比如root,或者如果服务器已经配置成发送电子邮件到系统外部,则是类似于myemail@mydomain.com的邮件地址。
+- **-M **:指定发送邮件报告的期望类型。
+ - **once**:为检测到的每种磁盘问题只发送一封警告邮件。
+ - **daily**:为检测到的每种磁盘问题每隔一天发送一封额外的警告提醒邮件。
+ - **diminishing**:为检测到的每种问题发送一封额外的警告提醒邮件,开始是每隔一天,然后每隔两天,每隔四天,以此类推。每个间隔是前一次间隔的2倍。
+ - **test**:只要smartd一启动,立即发送一封测试邮件。
+ - **exec PATH**:取代默认的邮件命令,运行PATH路径下的可执行文件。PATH必须指向一个可执行的二进制文件或脚本。当检测到一个问题时,可以指定执行一个期望的动作(闪烁控制台、关闭系统等等)。
+
+保存改动并重启smartd。
+
+smartd发送的邮件应该是这个样子。
+
+
+
+在上图中,没有检测到错误。如果实际上检测到了错误,那么错误会出现在“下列警告/错误由smartd守护进程写入日志”这一行的下面。
+
+最后,可以使用“-s”标志和形如“T/MM/DD/d/HH”的正则表达式按照想要的调度方案执行测试,其中:
+
+正则表达式中的T代表测试的类型:
+
+- L:长测试
+- S:短测试
+- C:传输测试(仅限ATA)
+- O:离线测试(仅限ATA)
+
+其它的字符代表测试执行的日期和时间:
+
+- MM是一年中的月份。
+- DD是一月中的天份。
+- HH是一天中的小时。
+- d是一个星期中的某天(从1=周一到7=周日)。
+- MM、DD和HH使用两位十进制数字表示。
+
+在上述表达中的小圆点表示所有可能的值。形如'(A|B|C)'在圆括号里的表达式表示三个可能值A、B和C中的任意一个。形如[1-5]在方括号中的表达式表示1到5的范围(包含5).
+
+例如,想要在每个工作日的下午一点为所有的磁盘执行一次长测试,在/etc/smartd.conf中添加如下行内容。确保编辑完重启smartd。
+
+ DEVICESCAN -s (L/../../[1-5]/13)
+
+### 总结 ###
+
+无论你想要快速查看磁盘的电子和机械性能,还是对整个磁盘执行一次长时间扫描测试,都不要让自己陷入日复一日地执行命令中而忘记了定期检测磁盘的健康状态。多关注磁盘的健康状况,你会受益的!
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/check-hard-disk-health-linux-smartmontools.html
+
+作者:[Gabriel Cánepa][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[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/how-to-create-secure-incremental-offsite-backup-in-linux.html
+[2]:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html
+[3]:http://www.smartmontools.org/
+[4]:http://en.wikipedia.org/wiki/S.M.A.R.T.
+
+
+
+
+
diff --git a/published/201412/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md b/published/201412/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md
new file mode 100644
index 0000000000..4fa81ee1ad
--- /dev/null
+++ b/published/201412/20141017 How to verify the authenticity and integrity of a downloaded file on Linux.md
@@ -0,0 +1,148 @@
+使用 GnuPG 加密签名来验证下载文件的可靠性和完整性
+================================================================================
+当你从网上下载一个文件后(比如:安装程序、ISO镜像或者一个压缩包),文件可能在不同的情况下发生了损坏,比如:由于线路传输错误、中断的下载、存储硬件错误、文件系统错误等等。除了这些错误,文件还可能在下载前或者下载中的攻击而被有意地篡改了。比如,一个攻破证书颁发机构的攻击者可以实施一个MITM攻击(中间人攻击),欺骗你从HTTPS网站上下载隐藏恶意软件的文件。
+
+要保护你自己免受这些问题的困扰,建议你去验证从网上下载的文件的可靠性和完整性。特别是你下载了一个非常敏感的文件的时候)(比如:操作系统镜像、二进制应用程序、可执行安装包等等),盲目地相信下载的文件不是一个好习惯。
+
+一个快速和简单地验证下载文件的完整性的方法是使用不同的校验工具(比如:md5sum、sha356sum、cksum)来计算和比较校验码(比如:MD5、SHA、CRC)。然而,然而校验容易受到[碰撞攻击][1],而且同样不能用于验证文件的可靠性(比如:拥有者)。
+
+
+如果你想要同时验证下载文件的可靠性(拥有者)和完整性(内容),你需要依赖于加密签名。本教程中,我会描述如何使用GnuPG(GNU Privacy Guard)来检查文件的可靠性和完整性。
+
+本例中我会验证一个从 https://onionshare.org 上下载的磁盘镜像。这个网站中,发行商会提供他们的公钥,还有它用于密钥验证的指纹。
+
+
+
+至于下载的文件,发行商也会提供它相关的PGP签名。
+
+
+
+### 安装 GnuPG 并且生成一个键对 ###
+
+让我们首先在你的Linux系统上安装GnuPG。
+
+在Debian、Ubuntu和其他Debian衍生版上:
+
+ $ sudo apt-get install gnupg
+
+在Fedora、CentOS或者RHEL上:
+
+ $ sudo yum install gnupg
+
+完成安装后,生成一个本篇中会使用到的键对。
+
+ $ gpg --gen-key
+
+
+
+在生成键对期间,你会被要求提供你的姓名和email,还有保护你私钥的密码。你同样也可以选择键对何时过期(默认不会过期)。依赖于你选择的key的大小(在1024和4096位之间),key生成会花上几分钟或者更多,同时它要求收集来自你桌面活动的大量的随机数据。(比如键盘输入、鼠标移动、磁盘访问等等,所以这个时候随便动动鼠标键盘什么的)。
+
+一旦key生成完毕后,公钥和私钥会存储在~/.gnupg目录。
+
+
+
+### 与某个文件和拥有者建立信任 ###
+
+验证下载文件的第一步是与任何提供文件下载的人建立信任。出于此,我们下载了这个文件的公钥,并且验证公钥的拥有者是否是他或者她自称的。
+
+在下载完文件拥有者的公钥后:
+
+ $ wget https://onionshare.org/signing-key.asc
+
+使用gpg命令导入公钥到你的keyring中
+
+ $ gpg --import signing-key.asc
+
+
+
+一旦拥有者的公钥导入后,他会像下面那样打印出一个key ID(比如:"EBA34B1C")。记住这个key ID。
+
+现在,运行下面的命令检查导入的公钥的指纹:
+
+ $ gpg --fingerprint EBA34B1C
+
+
+
+你会看到key的指纹字符串。把这个和网站上显示的指纹做对比。如果匹配,你可以选择信任这个文件拥有者的公钥。
+
+一旦你决定相信这个公钥,你可以通过编辑key来设置信任级别:
+
+ $ gpg --edit-key EBA34B1C
+
+这个命令会显示GPG提示符:
+
+
+
+在GPG提示符中输入“trust”,它会让你从1-5之间选择这个key的信任等级。
+
+
+
+本例中,我决定分配给它“4”,在这之后,输入“sign”用你自己的私钥签名,接着输入在GPG提示符中输入“save”来完成操作。
+
+
+
+要注意的是不需要这样明确地给一个公钥指派信任,通过key的导入隐式地信任往往就够了。
+
+给一个key隐式地分配给“完全”的信任就是任何其他由这个完全信任签名的key X都会被认为是对你有效的。通常上,key验证依赖于一个称之为“[信任网][2]”的复杂机制。
+
+回到教程,现在让我们检查导入的key列表。
+
+ $ gpg --list-keys
+
+
+
+你至少会看到两个key:一个带 depth 0和终极信任("1u"),这就是你自己的key,另外一个带depth 1和完全信任("1f"),这是你之前签名的key。
+
+### 验证文件的可靠性/完整性 ###
+
+一旦你建立了与文件拥有者和他的/她的公钥之间的信任关系,我们需要验证你从拥有者那边下载的文件的可靠性和完整性了。
+
+本例中,文件拥有者分别公布了一个文件和它相关的PGP签名(.asc)。签名所起的作用就是认证(文件)并且在其中加入一个时间戳。
+
+一个典型的签名(*.asc)看上去像这样。
+
+ -----BEGIN PGP SIGNATURE-----
+
+ iQIcBAABCgAGBQJUJGhsAAoJEP1yCtnro0sc1jUP/ixNY/lKdrcMIAUoqlWKNE8f
+ sj4SFiwREMew76w66GASDF03fa5zPX6EsS2kucgx8ZsfEiSmN5T0y2P/aSaXwZqF
+ kywZVEzirKtca5AJ4DBzu6qrt9GgSw6JBJVv1oBJCMNyO+eAj341paR3MudvnyQz
+ H/N5tc4Qcilzy6M184opGIzy4ipEmMXfLHsd7WJpAyn+tO/z3uhh9NkNuygZpaFr
+ olpSWPE8revdDJyfMfSmb3ZrFmhLn7FCEltOi+a7SluvrMclizfnbec9rgLJtjo0
+ CPDZY7tsWmmL0DA3VvpMVqGvkg/Dyhpn2IIDrNaLAlvGQ5aovf+4tjad5IHvyaWx
+ 4Gds93G6Hqvv5RwGx7OR3hgt2o0Y+qFsVDxVnPxerGhXeJXHzSDwLQMpdj9IoSU
+ Ae/53XXnxqSN6POZcwHiHvbsv0pdlg0Ea0dDAAN0ZeINNyZf1R0tLjWkcgpvGCtv
+ qkJuYFF9W9cWHraPY2ov5Hs/JZzPcG0eVpnDdzfOOH1gDKADq9A5D2X5QJCulsh9
+ WwU3X+E43OqIsoRzBucItD9HhZbEH7t8Q0xAqnAkgU3hriZp3dN4cnMfhM6I9hli
+ EmpSpLKCceMexu2o9QgzGXVm+AGZJe4QkuwAhRIccp5JDMVny61UlKTasjy6co8h
+ 5GBhhYybPEFM+G1BODMd
+ =c9wo
+ -----END PGP SIGNATURE-----
+
+现在让我们同时下载它的文件和签名:
+
+ $ wget https://onionshare.org/files/0.6/OnionShare.dmg
+ $ wget https://onionshare.org/files/0.6/OnionShare.dmg.asc
+
+现在验证下载文件的PGP签名。
+
+ $ gpg --verify OnionShare.dmg.asc OnionShare.dmg
+
+
+
+如果命令的输出包含了“Good signature from <文件所属者>”,那么下载的.dmg文件就被成功地认证和核实了。如果下载的文件的任何地方在签名后被篡改了,那么验证就会失败。
+
+这时你就可以放心地信任你下载的文件了。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/verify-authenticity-integrity-downloaded-file.html
+
+作者:[Dan Nanni][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://en.wikipedia.org/wiki/Collision_attack
+[2]:https://www.gnupg.org/gph/en/manual/x334.html
\ No newline at end of file
diff --git a/published/201412/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md b/published/201412/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md
new file mode 100644
index 0000000000..271e1595d3
--- /dev/null
+++ b/published/201412/20141017 Linux ss Tool to Identify Sockets or Network Connections with Examples.md
@@ -0,0 +1,66 @@
+在Linux中的使用 ss 命令检查套接字/网络连接
+================================================================================
+ss是iproute2包的一部分(控制TCP/IP网络和流量的工具)。iproute2的目标是替代先前用于配置网络接口、路由表和管理ARP表的标准Unix网络工具套装(通常称之为“net-tools”)。ss工具用于导出套接字统计,它可以显示与netstat类似的信息,且可以显示更多的TCP和状态信息。因为它直接从内核空间获取信息,所以会更快。ss的操作和netstat很像,所以这让它可以很容易就可以取代。
+
+### 使用和常见选项 ###
+
+ss和netstat很像,默认它会显示已经建立连接的开放的非监听TCP套接字列表。并且你可以用下面的选项过滤输出:
+
+- **-n** - 不要尝试解析服务名。
+- **-r** - 尝试解析数字的地址/端口。
+- **-a** - 显示所有套接字。
+- **-l** - 显示监听套接字。
+- **-p** - 显示使用该套接字的进程。
+- **-s** - 打印统计数据
+- **-t** - 只显示TCP套接字。
+- **-u** - 只显示UDP套接字。
+- **-d** - 只显示DCCP套接字
+- **-w** - 只显示RAW套接字。
+- **-x** - 只显示Unix域套接字
+- **-f FAMILY** - 显示FAMILY套接字的类型。目前支持下面这些族:unix、inet、inet6、link、netlink。
+- **-A QUERY** - 指定要列出的套接字列表,通过逗号分隔。可以识别下面的标识符:all、inet、tcp、udp、raw、unix、packet、netlink、unix_dgram、unix_stream、packet_raw、packet_dgram。
+- **-o STATUS** - 列出指定状态的套接字
+
+### ss 命令示例 ###
+
+**1.** 显示所有的的TCP端口和使用它们的进程:
+
+ # ss -tnap
+
+
+
+**2.** 你可以使用-4 标志来显示IPv4链接,-6标志来显示IPv6链接,比如:
+
+ # ss -tnap6
+
+
+
+**3.** 跟上面的行为一样,你只需用u代替t就会显示所有开放的UDP端口。
+
+ # ss -unap
+
+
+
+**4.** 你可以使用-s标志来打印各种有用的统计数据:
+
+ # ss -s
+
+
+
+**5.** 你可以使用-o标志来检查所有不同状态下的链接,比如显示所有已经建立的连接。
+
+ # ss -tn -o state established -p
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/linux-command/ss-sockets-network-connection/
+
+作者:[Adrian Dinu][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/adriand/
\ No newline at end of file
diff --git a/published/201412/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md b/published/201412/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md
new file mode 100644
index 0000000000..51e988fb3c
--- /dev/null
+++ b/published/201412/20141017 UbuTricks--Script to install the latest versions of several games and applications in Ubuntu.md
@@ -0,0 +1,94 @@
+使用 UbuTricks 在ubuntu上安装最新游戏和应用
+===
+UbuTricks是一个可以帮助你在ubuntu上安装几个最新版本的游戏和应用的程序。
+
+UbuTricks是一个有简单界面,基于Zenity的图形脚本。虽然早期开发中,它的目标是通过简单的界面操作来安装Ubuntu14.04 及以后发行版上应用程序的更新。
+
+应用程序会自动下载安装。一些更新可能会需要ppa,其它的将会通过编译源代码安装。编译过程可能会需要一些时间,当从ppa或者deb文件安装应该会快一点,取决于你的下载速度。
+
+###一共有以下几种安装方式:
+
+- PPA - 程序将会从PPA下载安装
+- DEB - 程序将会从DEB文件进行安装
+- Source - 程序会进行编译安装 (可能需要一点时间)
+- Script - 程序会通过开发者提供的脚本进行安装
+- Archive - 程序会通过压缩文件安装
+- Repository - 程序从仓库安装 (不是PPA)
+
+###你可以安装的应用程序列表
+
+通过UbuTricks可以安装下面应用的最新版本:
+
+###游戏
+
+- 0 A.D.
+- Battle for Wesnoth (Dev)
+- VCMI (Heroes III Engine)
+
+###文件管理
+
+- PCManFM
+
+###互联网应用
+
+- Geary
+- HexChat
+- QupZilla
+- QuiteRSS
+
+###多媒体
+
+- SMPlayer
+- Transmageddon
+- Kdenlive
+- Fotoxx
+- jAlbum
+- GIMP
+- Shutter
+- Qmmp
+- XBMC
+
+###办公/电子书/文档
+
+- Calibre
+- LibreOffice
+
+###工具
+
+- Ubuntu Tweak
+
+###桌面环境
+
+- Cinnamon
+
+###其他
+
+- Google Earth
+- Wine
+
+###下载,安装Ubuntutricks
+
+你可以从[这里][1]下载ubuntutricks,让它可执行然后双击脚本或者从终端里运行它。
+
+###截图
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/ubutricks-script-to-install-the-latest-versions-of-several-games-and-applications-in-ubuntu.html
+
+作者:[ruchi][a]
+译者:[DoubleShit](https://github.com/DoubleShit)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.ubuntugeek.com/author/ubuntufix
+[1]:http://www.tuxarena.com/intro/files/ubutricks.sh
diff --git a/published/201412/20141021 Configuring layer-two peer-to-peer VPN using n2n.md b/published/201412/20141021 Configuring layer-two peer-to-peer VPN using n2n.md
new file mode 100644
index 0000000000..692f83fc15
--- /dev/null
+++ b/published/201412/20141021 Configuring layer-two peer-to-peer VPN using n2n.md
@@ -0,0 +1,84 @@
+使用n2n配置二层点对点VPN
+================================================================================
+n2n是一个二层点对点虚拟专用网(VPN),它允许用户在网络层面而非应用层面开发典型的P2P应用功能。这就意味着,用户可以获得本地IP可见性(如,属于同一个n2n网络的两台PC可以互相ping通),以及不管他们现在身处哪个网络,只要有相同的网络IP地址就可以访问到。简言之,就像OpenVPN将SSL从应用(如,用于部署https协议)搬到了网络协议一样,n2n将P2P从应用搬到了网络层面。
+
+### n2n主要功能 ###
+
+n2n是一个基于P2P协议的加密的二层专用网。
+
+加密使用开放协议部署在边缘节点,它使用用户定义的加密钥匙:你自己控制安全,而不用授权给公司,而Skype或Hamachi却是要的。
+
+各个n2n用户可以同时属于多个网络(或者社区)。
+
+它拥有在反向通信方向(如,从外部到内部)穿越NAT和防火墙的能力,因此可以到达n2n节点,即使运行在一个专用网中。防火墙不再是IP层面掌控通信的障碍。
+
+n2n网络并不意味着它是独立的,它可以在n2n和非n2n网络间路由通信。
+
+### n2n架构基于两个组件 ###
+
+**超级节点**:它在启动时用于边缘节点或用于达到对称防火墙后面的节点。对于这些节点,该应用主要是一个目录暂存器和包路由器,而不是直接通信。
+
+**边缘节点**:安装在用户PC的应用程序,它允许构建n2n网络。实际上,各个边缘节点创建一个tun/tap设备,该设备是n2n网络的进入点。
+
+### 安装n2n到Ubuntu ###
+
+打开终端并运行以下命令
+
+ $ sudo apt-get install subversion build-essential libssl-dev
+ $ svn co https://svn.ntop.org/svn/ntop/trunk/n2n
+ $ cd n2n/n2n_v2
+ $ make
+ $ sudo make install
+
+### 使用n2n配置P2P VPN ###
+
+首先,我们需要配置一个超级节点和任意数量的边缘节点。
+
+决定将超级节点放在哪个地方。假设你将它放到了主机a.b.c.d的xyw端口上。
+
+决定使用何种密码加密来保证数据安全。假设你使用密码encryptme。
+
+决定你想要使用的网络名称。假设你将它命名为mynetwork。注意,你可以使用超级节点/边缘节点来处理多个网络,不仅仅只有一个哦。
+
+决定在边缘节点上使用什么IP地址。假设你使用10.1.2.0/24。
+
+启动应用:
+
+### 配置超级节点 ###
+
+ supernode -l xyw
+
+### 配置边缘节点 ###
+
+在各个边缘节点,使用以下命令来连接到P2P VPN。
+
+ sudo edge -a 10.1.2.1 -c mynetwork -k encryptme -l a.b.c.d:xyw
+
+ sudo edge -a 10.1.2.2 -c mynetwork -k encryptme -l a.b.c.d:xyw
+
+### 现在来测试你的n2n网络 ###
+
+ edge node1> ping 10.1.2.2
+
+ edge node2> ping 10.1.2.1
+
+Windows n2n VPN客户端(N2N边缘图形界面)
+
+你可以从[这里][1]下载N2N边缘图形界面。
+
+N2N边缘图形界面是一个基本的安装器和用于点对点‘n2n VPN解决方案’的GUI配置界面。
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/configuring-layer-two-peer-to-peer-vpn-using-n2n.html
+
+作者:[ruchi][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.ubuntugeek.com/author/ubuntufix
+[1]:http://sourceforge.net/projects/n2nedgegui/
diff --git a/published/201412/20141021 How to create and use Python CGI scripts.md b/published/201412/20141021 How to create and use Python CGI scripts.md
new file mode 100644
index 0000000000..e3d36ea9c4
--- /dev/null
+++ b/published/201412/20141021 How to create and use Python CGI scripts.md
@@ -0,0 +1,158 @@
+如何创建和使用Python CGI脚本
+===
+
+你是否想使用Python语言创建一个网页,或者处理用户从web表单输入的数据?这些任务可以通过Python CGI(公用网关接口)脚本以及一个Apache web服务器实现。当用户请求一个指定URL或者和网页交互(比如点击""提交"按钮)的时候,CGI脚本就会被web服务器启用。CGI脚本调用执行完毕后,它的输出结果就会被web服务器用来创建显示给用户的网页。
+
+### 配置Apache web服务器,让其能运行CGI脚本 ###
+
+在这个教程里,我们假设Apache web服务器已经安装好,并已运行。这篇教程使用的Apache web服务器(版本2.2.15,用于CentOS发行版6.5)运行在本地主机(127.0.0.1),并且监听80端口,如下面的Apache指令指定一样:
+
+ ServerName 127.0.0.1:80
+ Listen 80
+
+下面举例中的HTML文件存放在web服务器上的/var/www/html目录下,并通过DocumentRoot指令指定(指定网页文件所在目录):
+
+ DocumentRoot "/var/www/html"
+
+现在尝试请求URL:http://localhost/page1.html
+
+这将返回web服务器中下面文件的内容:
+
+ /var/www/html/page1.html
+
+为了启用CGI脚本,我们必须指定CGI脚本在web服务器上的位置,需要用到ScriptAlias指令:
+
+ ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
+
+以上指令表明CGI脚本保存在web服务器的/var/www/cgi-bin目录,请求URL里包含/cgi-bin/的将会搜索这个目录下的CGI脚本。
+
+我们必须还要明确CGI脚本在/var/www/cgi-bin目录下有执行权限,还要指定CGI脚本的文件扩展名。使用下面的指令:
+
+
+ Options +ExecCGI
+ AddHandler cgi-script .py
+
+
+下面访问URL:http://localhost/cgi-bin/myscript-1.py
+
+这将会调用web服务器中下面所示脚本:
+
+ /var/www/cgi-bin/myscript-1.py
+
+### 创建一个CGI脚本 ###
+
+在创建一个Python CGI脚本之前,你需要确认你已经安装了Python(这通常是默认安装的,但是安装版本可能会有所不同)。本篇教程使用的脚本是使用Python版本2.6.6编写的。你可以通过下面任意一命令(-V和--version参数将显示所安装Python的版本号)检查Python的版本。
+
+ $ python -V
+ $ python --version
+
+如果你的Python CGI脚本要用来处理用户输入的数据(从一个web输入表单),那么你将需要导入Python cgi模块。这个模块可以处理用户通过web输入表单输入的数据。你可以在你的脚本中通过下面的语句导入该脚本:
+
+ import cgi
+
+你也必须修改Python CGI脚本的执行权限,以防止web服务器不能调用。可以通过下面的命令增加执行权限:
+
+ # chmod o+x myscript-1.py
+
+### Python CGI例子 ###
+
+涉及到Python CGI脚本的两个方案将会在下面讲述:
+
+- 使用Python脚本创建一个网页
+- 读取并显示用户输入的数据,并且在网页上显示结果
+
+注意:Python cgi模块在方案2中是必需的,因为这涉及到用户从web表单输入数据。
+
+### 例子1 :使用Python脚本创建一个网页 ###
+
+对于这个方案,我们将通过创建包含一个单一提交按钮的网页/var/www/html/page1.html开始。
+
+
+ Test Page 1
+
+
+
+当"提交"按钮被点击,/var/www/cgi-bin/myscript-1.py脚本将被调用(通过action参数指定)。通过设置方法参数为"get"来指定一个"GET"请求,服务器将会返回指定的网页。/var/www/html/page1.html在浏览器中的显示情况如下:
+
+
+
+/var/www/cgi-bin/myscript-1.py的内容如下:
+
+ #!/usr/bin/python
+ print "Content-Type: text/html"
+ print ""
+ print ""
+ print "CGI Script Output "
+ print "This page was generated by a Python CGI script.
"
+ print ""
+
+第一行声明表示这是使用 /usr/bin/python命令运行的Python脚本。"Content-Type: text/html"打印语句是必需的,这是为了让web服务器知道接受自CGI脚本的输出类型。其余的语句用来输出HTML格式的其余网页内容。
+
+当"Submit"按钮点击,下面的网页将返回:
+
+
+
+这个例子的要点是你可以决定哪些信息可以被CGI脚本返回。这可能包括日志文件的内容,当前登陆用户的列表,或者今天的日期。在你处理时拥有所有python库的可能性是无穷无尽的。
+
+### 例子2:读取并显示用户输入的数据,并将结果显示在网页上 ###
+
+对于这个方案,我们将通过创建一个含有三个输入域和一个提交按钮的网页/var/www/html/page2.html开始。
+
+
+ Test Page 2
+
+
+
+当"Submit"按钮点击,/var/www/cgi-bin/myscript-2.py脚本将被执行(通过action参数指定)。/var/www//html/page2.html显示在web浏览器中的图片如下所示(注意,三个输入域已经被填写好了):
+
+
+
+/var/www/cgi-bin/myscript-2.py的内容如下:
+
+ #!/usr/bin/python
+ import cgi
+ form = cgi.FieldStorage()
+ print "Content-Type: text/html"
+ print ""
+ print ""
+ print "CGI Script Output "
+ print ""
+ print "The user entered data are: "
+ print "First Name: " + form["firstName"].value + " "
+ print "Last Name: " + form["lastName"].value + " "
+ print "Position: " + form["position"].value + " "
+ print "
"
+ print ""
+
+正如前面提到,import cgi语句用来确保能够处理用户通过web输入表单输入的数据。web输入表单被封装在一个表单对象中,叫做cgi.FieldStorage对象。一旦开始输出,"Content-Type: text/html"是必需的,因为web服务器需要知道接受自CGI脚本的输出格式。用户输入的数据在包含form["firstName"].value,form["lastName"].value,和 form["position"].value的语句中可以得到。那些中括号中的名称和**/var/www/html/page2.html**文本输入域中定义的名称参数一致。
+
+当网页上的"Submit"按钮被点击,下面的网页将被返回。
+
+
+
+这个例子的要点就是你可以很容易地读取并显示用户在web表单上输入的数据。除了以字符串的方式处理数据,你也可以用Python将用户输入的数据转化为可用于数值计算的数字。
+
+### 结论 ###
+
+本教程演示了如何使用Python CGI脚本创建网页并处理用户在网页表单输入的数据。查阅更多关于Apache CGI脚本的信息,点击[这里][1]。查阅更多关于Python cgi模块的信息,点击[这里][2]。
+
+---
+
+via: http://xmodulo.com/create-use-python-cgi-scripts.html
+
+作者:[Joshua Reed][a]
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/joshua
+[1]:http://httpd.apache.org/docs/2.2/howto/cgi.html
+[2]:https://docs.python.org/2/library/cgi.html#module-cgi
diff --git a/published/201412/20141021 How to monitor a log file on Linux with logwatch.md b/published/201412/20141021 How to monitor a log file on Linux with logwatch.md
new file mode 100644
index 0000000000..0951bd5156
--- /dev/null
+++ b/published/201412/20141021 How to monitor a log file on Linux with logwatch.md
@@ -0,0 +1,132 @@
+Linux 系统中使用 logwatch 监控日志文件
+================================================================================
+Linux 操作系统和许多应用程序会创建特殊的文件来记录它们的运行事件,这些文件通常被称作“日志”。当要了解操作系统或第三方应用程序的行为或进行故障排查时,这些系统日志或特定的应用程序日志文件是必不可少的的工具。但是,日志文件并没有您们所谓的“清晰”或“容易”这种程度的可读性。手工分析原始的日志文件简直是浪费时间,并且单调乏味。出于这个原因,对于系统管理员来说,发现任何一款能把原始的日志文件转换成更人性化的记录摘要的工具,将会受益无穷。
+
+[logwatch][1] 是一款用 Perl 语言编写的开源日志解析分析器。它能对原始的日志文件进行解析并转换成结构化格式的文档,也能根据您的使用情况和需求来定制报告。logwatch 的主要目的是生成更易于使用的日志摘要,并不是用来对日志进行实时的处理和监控的。正因为如此,logwatch 通常被设定好时间和频率的自动定时任务来调度运行或者是有需要日志处理的时候从命令行里手动运行。一旦日志报告生成,logwatch 可以通过电子邮件把这报告发送给您,您可以把它保存成文件或者直接显示在屏幕上。
+
+Logwatch 报告的详细程度和报告覆盖范围是完全可定制化的。Logwatch 的日志处理引擎也是可扩展的,从某种意义上来说,如果您想在一个新的应用程序中使用 logwatch 功能的话,只需要为这个应用程序的日志文件编写一个日志处理脚本(使用 Perl 语言),然后挂接到 logwatch 上就行。
+
+logwatch 有一点不好的就是,在它生成的报告中没有详细的时间戳信息,而原来的日志文件中是存在的。您只能知道被记录下来的一段时间之内的特定事件,如果想要知道精确的时间点的信息,就不得不去查看原日志文件了。
+
+### 安装 Logwatch ###
+
+在 Debian 系统或其派生的系统上:
+
+ # aptitude install logwatch
+
+在基于 Red Hat 的发布系统上:
+
+ # yum install logwatch
+
+### 配置 Logwatch ###
+
+安装时,主要的配置文件(logwatch.conf)被放到 **/etc/logwatch/conf** 目录中。此文件(默认是空的)定义的设置选项会覆盖掉定义在 /usr/share/logwatch/default.conf/logwatch.conf 文件中的系统级设置。
+
+在命令行中,启动 logwatch, 如果不带参数的话,将会使用 /etc/logwatch/conf/logwatch.conf 文件中定义的选项。但,只要一指定参数,它们就会覆盖 /etc/logwatch/conf/logwatch.conf 文件中的任意默认/自定义设置。
+
+这篇文章里,我们会编辑 /etc/logwatch/conf/logwatch.conf 文件来对一些默认的设置项做些个性化设置。
+
+ Detail =
+
+“Detail” 配置指令控制着 logwatch 报告的详细程度。它可以是个正整数,也可以是分别代表着10、5和0数字的 High、Med、Low 几个选项。
+
+ MailTo = youremailaddress@yourdomain.com
+
+如果您让把一份 logwatch 的报告邮件给您,就要使用 “MailTo” 这个配置指令。要把一份报告发送给多个用户,只需要把他们的邮件地址用空格格开,然后配置上去。但是,您需要在 logwatch 运行的服务器上配置好本地邮件传输代理(MTA)如,sendmail、 Postfix 等,这个配置指令项才能起作用。
+
+ Range =
+
+"Range" 配置指令定义了生成 logwatch 报告的时间段信息。这个指令通常可选的值是 Yesterday、Today、All。当作用了“Rang = All”时,“Archive = yes” 这个指令项也必须配置上,那么所有的已存档的日志文件 (比如,/var/log/maillog、/var/log/maillog.X 或 /var/log/maillog.X.gz 文件)都会被处理到。
+
+除了这些通用的 range 值,您也可以使用复杂点的选择值,如下所示:
+
+- Range = "2 hours ago for that hour"
+- Range = "-5 days"
+- Range = "between -7 days and -3 days"
+- Range = "since September 15, 2014"
+- Range = "first Friday in October"
+- Range = "2014/10/15 12:50:15 for that second"
+
+要使用上面例子中自由形式的 range,您需要从 CPAN(注:Comprehensive Perl Archive Network) 上下载安装 Perl 的 Date::Manip 模块。关于 CPAN 模块的安装说明,请请参阅[此帖][2] 。
+
+ Service =
+ Service =
+ . . .
+
+“Service” 选项指定想要监控的一个或多个服务。在 /usr/share/logwatch/scripts/services 目录下列出的服务都能被监控,它们已经涵盖了重要的系统服务(例如:pam,secure,iptables,syslogd 等),也涵盖了一些像 sudo、sshd、http、fail2ban、samba等主流的应用服务。如果您想添加新的服务到列表中,得编写一个相应的日志处理 Perl 脚本,并把它放在这个目录中。
+
+如果这个选项要用来选择特定的服务话,您需要把 /usr/share/logwatch/default.conf/logwatch.conf 文件中的 "Service = All " 这一行注释掉。
+
+
+
+ Format =
+
+“Format” 配置指令定义了一份 logwatch 报告的格式(比如 text 或者 HTML)。
+
+ Output =