This commit is contained in:
bazz2 2015-12-04 09:10:01 +08:00
commit af0138fd64
205 changed files with 20133 additions and 3917 deletions

4
LCTT翻译规范.md Normal file
View File

@ -0,0 +1,4 @@
# Linux中国翻译规范
1. 翻译中出现的专有名词可参见Dict.md中的翻译。
2. 英文人名,如无中文对应译名,一般不译。
2. 缩写词,一般不须翻译,可考虑旁注中文全名。

188
README.md
View File

@ -51,113 +51,117 @@ LCTT的组成
* 2014/12/25 提升runningwater为Core Translators成员。
* 2015/04/19 发起 LFS-BOOK-7.7-systemd 项目。
* 2015/06/09 提升ictlyh和dongfengweixiao为Core Translators成员。
* 2015/11/10 提升strugglingyouth、FSSlc、Vic020、alim0x为Core Translators成员。
活跃成员
-------------------------------
目前 TP 活跃成员有:
- CORE @wxy,
- CORE @carolinewuyan,
- CORE @DeadFire,
- CORE @geekpi,
- CORE @GOLinux,
- CORE @reinoir,
- CORE @bazz2,
- CORE @zpl1025,
- CORE @ictlyh,
- CORE @dongfengweixiao
- CORE @carolinewuyan,
- CORE @strugglingyouth,
- CORE @FSSlc
- CORE @zpl1025,
- CORE @runningwater,
- CORE @bazz2,
- CORE @Vic020,
- CORE @dongfengweixiao,
- CORE @alim0x,
- Senior @reinoir,
- Senior @tinyeyeser,
- Senior @vito-L,
- Senior @jasminepeng,
- Senior @willqian,
- Senior @vizv,
- @ZTinoZ,
- @Vic020,
- @runningwater,
- @KayGuoWhu,
- @luoxcat,
- @alim0x,
- @2q1w2007,
- @theo-l,
- @FSSlc,
- @su-kaiyao,
- @blueabysm,
- @flsf,
- @martin2011qi,
- @SPccman,
- @wi-cuckoo,
- @Linchenguang,
- @linuhap,
- @crowner,
- @Linux-pdz,
- @H-mudcup,
- @yechunxiao19,
- @woodboow,
- @Stevearzh,
- @disylee,
- @cvsher,
- @wwy-hust,
- @johnhoow,
- @felixonmars,
- @TxmszLou,
- @shipsw,
- @scusjs,
- @wangjiezhe,
- @hyaocuk,
- @MikeCoder,
- @ZhouJ-sh,
- @boredivan,
- @goreliu,
- @l3b2w1,
- @JonathanKang,
- @NearTan,
- @jiajia9linuxer,
- @Love-xuan,
- @coloka,
- @owen-carter,
- @luoyutiantang,
- @JeffDing,
- @icybreaker,
- @tenght,
- @liuaiping,
- @mtunique,
- @rogetfan,
- @nd0104,
- @mr-ping,
- @szrlee,
- @lfzark,
- @CNprober,
- @DongShuaike,
- @ggaaooppeenngg,
- @haimingfg,
- @213edu,
- @Tanete,
- @guodongxiaren,
- @zzlyzq,
- @FineFan,
- @yujianxuechuan,
- @Medusar,
- @shaohaolin,
- @ailurus1991,
- @liaoishere,
- @CHINAANSHE,
- @stduolc,
- @yupmoon,
- @tomatoKiller,
- @zhangboyue,
- @kingname,
- @KevinSJ,
- @zsJacky,
- @willqian,
- @Hao-Ding,
- @JygjHappy,
- @Maclauring,
- @small-Wood,
- @cereuz,
- @fbigun,
- @lijhg,
- @soooogreen,
- ZTinoZ,
- theo-l,
- luoxcat,
- disylee,
- wi-cuckoo,
- haimingfg,
- KayGuoWhu,
- wwy-hust,
- martin2011qi,
- cvsher,
- su-kaiyao,
- flsf,
- SPccman,
- Stevearzh
- Linchenguang,
- oska874
- Linux-pdz,
- 2q1w2007,
- felixonmars,
- wyangsun,
- MikeCoder,
- mr-ping,
- xiqingongzi
- H-mudcup,
- zhangboyue,
- goreliu,
- DongShuaike,
- TxmszLou,
- ZhouJ-sh,
- wangjiezhe,
- NearTan,
- icybreaker,
- shipsw,
- johnhoow,
- linuhap,
- boredivan,
- blueabysm,
- liaoishere,
- yechunxiao19,
- l3b2w1,
- XLCYun,
- KevinSJ,
- tenght,
- coloka,
- luoyutiantang,
- yupmoon,
- jiajia9linuxer,
- scusjs,
- tnuoccalanosrep,
- woodboow,
- 1w2b3l,
- crowner,
- mtunique,
- dingdongnigetou,
- CNprober,
- JonathanKang,
- Medusar,
- hyaocuk,
- szrlee,
- Xuanwo,
- nd0104,
- xiaoyu33,
- guodongxiaren,
- zzlyzq,
- yujianxuechuan,
- ailurus1991,
- ggaaooppeenngg,
- Ricky-Gong,
- lfzark,
- 213edu,
- Tanete,
- liuaiping,
- jerryling315,
- tomatoKiller,
- stduolc,
- shaohaolin,
- Timeszoro,
- rogetfan,
- FineFan,
- kingname,
- jasminepeng,
- JeffDing,
- CHINAANSHE,
(按提交行数排名前百)
LFS 项目活跃成员有:
@ -169,7 +173,7 @@ LFS 项目活跃成员有:
- @KevinSJ
- @Yuking-net
更新于2015/06/09以Github contributors列表排名
更新于2015/11/29
谢谢大家的支持!

View File

@ -1,6 +1,6 @@
如何使用 Quagga BGP边界网关协议路由器来过滤 BGP 路由
================================================================================
在[之前的文章][1]中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置。在本教程中,我们将重点放在如何使用**前缀列表**和**路由映射**来分别控制数据注入和数据输出。
在[之前的文章][1]中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置。在本教程中,我们将重点放在如何使用**前缀列表prefix-list**和**路由映射route-map**来分别控制数据注入和数据输出。
之前的文章已经说过BGP 的路由判定是基于前缀的收取和前缀的广播。为避免错误的路由,你需要使用一些过滤机制来控制这些前缀的收发。举个例子,如果你的一个 BGP 邻居开始广播一个本不属于它们的前缀,而你也将错就错地接收了这些不正常前缀,并且也将它转发到网络上,这个转发过程会不断进行下去,永不停止(所谓的“黑洞”就这样产生了)。所以确保这样的前缀不会被收到,或者不会转发到任何网络,要达到这个目的,你可以使用前缀列表和路由映射。前者是基于前缀的过滤机制,后者是更为常用的基于前缀的策略,可用于精调过滤机制。
@ -36,15 +36,15 @@
上面的命令创建了名为“DEMO-FRFX”的前缀列表只允许存在 192.168.0.0/23 这个前缀。
前缀列表的另一个牛X功能是支持子网掩码区间,请看下面的例子:
前缀列表的另一个强大功能是支持子网掩码区间,请看下面的例子:
ip prefix-list DEMO-PRFX permit 192.168.0.0/23 le 24
这个命令创建的前缀列表包含在 192.168.0.0/23 和 /24 之间的前缀,分别是 192.168.0.0/23, 192.168.0.0/24 and 192.168.1.0/24。运算符“le”表示小于等于你也可以使用“ge”表示大于等于。
这个命令创建的前缀列表包含在 192.168.0.0/23 和 /24 之间的前缀,分别是 192.168.0.0/23, 192.168.0.0/24 192.168.1.0/24。运算符“le”表示小于等于你也可以使用“ge”表示大于等于。
一个前缀列表语句可以有多个允许或拒绝操作。每个语句都自动或手动地分配有一个序列号。
如果存在多个前缀列表语句,则这些语句会按序列号顺序被依次执行。在配置前缀列表的时候,我们需要注意在所有前缀列表语句后面的**隐性拒绝**属性,就是说凡是不被明显允许的,都会被拒绝。
如果存在多个前缀列表语句,则这些语句会按序列号顺序被依次执行。在配置前缀列表的时候,我们需要注意在所有前缀列表语句之后是**隐性拒绝**语句,就是说凡是不被明显允许的,都会被拒绝。
如果要设置成允许所有前缀,前缀列表语句设置如下:
@ -81,7 +81,7 @@
probability Match portion of routes defined by percentage value
tag Match tag of route
如你所见,路由映射可以匹配很多属性,本教程需要匹配一个前缀。
如你所见,路由映射可以匹配很多属性,在本教程中匹配的是前缀。
route-map DEMO-RMAP permit 10
match ip address prefix-list DEMO-PRFX
@ -163,7 +163,7 @@
可以看到router-A 有4条路由前缀到达 router-B而 router-B 只接收3条。查看一下范围我们就能知道只有被路由映射允许的前缀才能在 router-B 上显示出来,其他的前缀一概丢弃。
**小提示**:如果接收前缀内容没有刷新,试试重置下 BGP 会话使用这个命令clear ip bgp neighbor-IP。本教程中命令如下
**小提示**:如果接收前缀内容没有刷新,试试重置下 BGP 会话,使用这个命令:`clear ip bgp neighbor-IP`。本教程中命令如下:
clear ip bgp 192.168.1.1
@ -193,9 +193,9 @@ via: http://xmodulo.com/filter-bgp-routes-quagga-bgp-router.html
作者:[Sarmed Rahman][a]
译者:[bazz2](https://github.com/bazz2)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/sarmed
[1]:http://xmodulo.com/centos-bgp-router-quagga.html
[1]:https://linux.cn/article-4609-1.html

View File

@ -0,0 +1,132 @@
Larry Wall 专访——语言学、Perl 6 的设计和发布
================================================================================
> 经历了15年的打造Perl 6 终将在年底与大家见面。我们预先采访了它的作者了解一下新特性。
Larry Wall 是个相当有趣的人。他是编程语言 Perl 的创造者这种语言被广泛的誉为将互联网粘在一起的胶水也由于大量地在各种地方使用非字母的符号被嘲笑为只写语言——以难以阅读著称。Larry 本人具有语言学背景,以其介绍 Perl 未来发展的演讲“[洋葱的状态][1]State of the Onion”而闻名。LCTT 译注:“洋葱的状态”是 Larry Wall 的年度演讲的主题,洋葱也是 Perl 基金会的标志。)
在2015年布鲁塞尔的 FOSDEM 上,我们赶上了 Larry问了问他为什么 Perl 6 花了如此长的时间Perl 5 的发布时间是1994年了解当项目中的每个人都各执己见时是多么的难以管理以及他的语言学背景自始至终究竟给 Perl 带来了怎样的影响。做好准备,让我们来领略其中的奥妙……
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall1.jpg)
**Linux Voice你曾经有过计划去寻找世界上某个地方的某种不见经传的语言然后为它创造书写的文字但你从未有机会去实现它。如果你能回到过去你会去做么**
Larry Wall你首先得是个年轻人才能搞得定做这些事需要投入很大的努力和人力以至于已经不适合那些上了年纪的人了。健康、活力是其中的一部分同样也因为人们在年轻的时候更容易学习一门新的语言只有在你学会了语言之后你才能写呀。
我自学了日语十年,由于我的音系学和语音学的训练我能说的比较流利——但要理解别人的意思对我来说还十分困难。所以到了日本我会问路,但我听不懂他们的回答!
通常需要一门语言学习得足够好才能开发一个文字体系,并可以使用这种语言进行少量的交流。在你能够实际推广它和用本土人自己的文化教育他们前,那还需要一些年。最后才可以教授本土人如何以他们的文明书写。
当然如果在语言方面你有帮手 —— 经过别人的提醒我们不再使用“语言线人”来称呼他们了,那样显得我们像是在 CIA 工作的一样!—— 你可以通过他们的帮助来学习外语。他们不是老师,但他们会以另一种方式来启发你学习 —— 当然他们也能教你如何说。他们会拿着一根棍子,指着它说“这是一根棍子”,然后丢掉同时说“棒子掉下去了”。然后,你就可以记下一些东西并将其系统化。
大多数让人们有这样做的动力是翻译圣经。但是这只是其中的一方面;另一方面也是为了文化保护。传教士在这方面臭名昭著,因为人类学家认为人们应该基于自己的文明来做这件事。但有些人注定会改变他们的文化——他们可能是军队、或是商业侵入,如可口可乐或者缝纫机,或传教士。在这三者之间,传教士相对来讲伤害最小的了,如果他们恪守本职的话。
**LV许多文字系统有本可依相较而言你的发明就像是格林兰语…**
印第安人照搬字母就发明了他们自己的语言而且没有在这些字母上施加太多我们给这些字母赋予的涵义这种做法相当随性。它们只要能够表达出人们的所思所想使交流顺畅就行。经常是有些声调语言Tonal language使用的是西方文字拼写并尽可能的使用拉丁文的字符变化然后用重音符或数字标注出音调。
在你开始学习如何使用语音和语调表示之后,你也开始变得迷糊——或者你的书写就不如从前准确。或者你对话的时候像在讲英文,但发音开始无法匹配拼写。
**LV当你在开发 Perl 的时候,你的语言学背景会不会使你认为:“这对程序设计语言真的非常重要”?**
LW我在人们是如何使用语言上想了很多。在现实的语言中你有一套名词、动词和形容词的体系并且你知道这些单词的词性。在现实的自然语言中你时常将一个单词放到不同的位置。我所学的语言学理论也被称为法位学phoenetic它解释了这些在自然语言中工作的原理 —— 也就是有些你当做名词的东西,有时候你可以将它用作动词,并且人们总是这样做。
你能很好的将任何单词放在任何位置而进行沟通。我比较喜欢的例子是将一个整句用作为一个形容词。这句话会是这样的:“我不喜欢你的[我可以用任何东西来取代这个形容词的]态度”!
所以自然语言非常灵活,因为聆听者非常聪明 —— 至少,相对于电脑而言 —— 你相信他们会理解你最想表达的意思,即使存在歧义。当然对电脑而言,你必须保证歧义不大。
> “在 Perl 6 中,我们试图让电脑更准确的了解我们。”
可以说在 Perl 1到5上我们针对歧义方面处理做得还不够。有时电脑会在不应该的时候迷惑。在 Perl 6上我们找了许多方法使得电脑对你所说的话能更准确的理解就算用户并不清楚这底是字符串还是数字电脑也能准确的知道它的类型。我们找到了内部以强类型存储而仍然可以无视类型的“以此即彼”的方法。
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall2.jpg)
**LVPerl 被视作互联网上的“胶水glue”语言已久能将点点滴滴组合在一起。在你看来 Perl 6 的发布是否符合当前用户的需要,或者旨在招揽更多新用户,能使它重获新生吗?**
LW最初的设想是为 Perl 程序员带来更好的 Perl。但在看到了 Perl 5 上的不足后,很明显改掉这些不足会使 Perl 6更易用就像我在讨论中提到过 —— 类似于 [托尔金J. R. R. Tolkien 在《指环王》前言中谈到的适用性一样][2]。
重点是“简单的东西应该简单,而困难的东西应该可以实现”。让我们回顾一下,在 Perl 2和3之间的那段时间。在 Perl 2上我们不能处理二进制数据或嵌入的 null 值 —— 只支持 C 语言风格的字符串。我曾说过“Perl 只是文本处理语言 —— 在文本处理语言里你并不需要这些功能”。
但当时发生了一大堆的问题,因为大多数的文本中会包含少量的二进制数据 —— 如网络地址network addresses及类似的东西。你使用二进制数据打开套接字然后处理文本。所以通过支持二进制数据语言的适用性applicability翻了一倍。
这让我们开始探讨在语言中什么应该简单。现在的 Perl 中有一条原则是我们偷师了哈夫曼编码Huffman coding的做法它在位编码系统中为字符采取了不同的尺寸常用的字符占用的位数较少不常用的字符占用的位数更多。
我们偷师了这种想法并将它作为 Perl 的一般原则,针对常用的或者说常输入的 —— 这些常用的东西必须简单或简洁。不过另一方面也显得更加的不规则irregular。在自然语言中也是这样的最常用的动词实际上往往是最不规则的。
所以在这样的情况下需要更多的差异存在。我很喜欢一本书是 Umberto Eco 写的的《探寻完美的语言The Search for the Perfect Language说的并不是计算机语言而是哲学语言大体的意思是古代的语言也许是完美的我们应该将它们带回来。
所有的这类语言错误的认为类似的事物其编码也应该总是类似的。但这并不是我们沟通的方式。如果你的农场中有许多动物,他们都有相近的名字,当你想杀一只鸡的时候说“走,去把 Blerfoo 宰了”,你的真实想法是宰了 Blerfee但有可能最后死的是一头牛LCTT 译注:这是杀鸡用牛刀的意思吗?哈哈)。
所以在这种时候我们其实更需要好好的将单词区分开使沟通信道的冗余增加。常用的单词应该有更多的差异。为了达到更有效的通讯还有一种自足LCTT 译注self-clocking ,自同步,[概念][3]来自电信和电子行业,此处译为“自足”更能体现涵义)编码。如果你在一个货物上看到过 UPC 标签(条形码),它就是一个自足编码,每对“条”和“空”总是以七个列宽为单位,据此你就知道“条”的宽度加起来总是这么宽。这就是自足。
在电子产品中还有另一种自足编码。在老式的串行传输协议中有停止和启动位来保持同步。自然语言中也会包含这些。比如说在写日语时不用使用空格。由于书写方式的原因他们会在每个词组的开头使用中文中的汉字字符然后用音节表syllabary中的字符来结尾。
**LV是平假名对吗**
LW: 是的平假名。所以在这一系统每个词组的开头就自然就很重要了。同样的在古希腊大多数的动词都是搭配好的declined 或 conjugated所以它们的标准结尾是一种自足机制。在他们的书写体系中空格也是可有可无的 —— 引入空格是更近代的发明。
所以在计算机语言上也要如此,有的值也可以自足编码。在 Perl 上我们重度依赖这种方法,而且在 Perl 6 上相较于前几代这种依赖更重。当你使用表达式时你要么得到的是一个词要么得到的是插值infix操作符。当你想要得到一个词你有可能得到的是一个前缀操作符它也在相同的位置同样当你想要得到一个插值操作符你也可能得到的是前一个词的后缀。
但是反过来。如果编译器准确的知道它想要什么你可以稍微重载overload它们其它的让 Perl 来完成。所以在斜线“/”后面是单词时它会当成正则表达式,而斜线“/”在字串中时视作除法。而我们并不会重载所有东西,因为那只会使你失去自足冗余。
多数情况下我们提示的比较好的语法错误消息,是出于发现了一行中出现了两个关键词,然后我们尝试找出为什么一行会出现两个关键字 —— “哦,你一定漏掉了上一行的分号”,所以我们相较于很多其他的按步照班的解析器可以生成更好的错误消息。
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall3.jpg)
**LV为什么 Perl 6 花了15年当每个人对事物有不同看法时一定十分难于管理而且正确和错误并不是绝对的。**
LW这必须要非常小心地平衡。刚开始会有许多的好的想法 —— 好吧我并不是说那些全是好的想法。也有很多令人烦恼的地方就像有361条 RFC [功能建议文件]而我也许只想要20条。我们需要坐下来将它们全部看完并忽略其中的解决方案因为它们通常流于表象、视野狭隘。几乎每一条只针对一样事物如若我们将它们全部拼凑起来那简直是一堆垃圾。
> “掌握平衡时需要格外小心。毕竟在刚开始的时候总会有许多的好主意。”
所以我们必须基于人们在使用 Perl 5 时的真实感受重新整理,寻找统一、深层的解决方案。这些 RFC 文档许多都提到了一个事实,就是类型系统的不足。通过引入更条理分明的类型系统,我们可以解决很多问题并且即聪明又紧凑。
同时我们开始关注其他方面如何统一特征集并开始重用不同领域的想法这并不需要它们在下层相同。我们有一种标准的书写配对pair的方式——好吧在 Perl 里面有两种但使用冒号书写配对的方法同样可以用于基数计数法或是任何进制的文本编号。同样也可以用于其他形式的引用quoting。在 Perl 里我们称它为“奇妙的一致”。
> “做了 Perl 6 的早期实现的朋友们,握着我的手说:“我们真的很需要一位语言的设计者。””
同样的想法涌现出来,你说“我已经熟悉了语法如何运作,但是我看见它也被用在别处”,所以说视角相同才能找出这种一致。那些提出各种想法和做了 Perl 6 的早期实现的人们回来看我,握着我的手说:“我们真的需要一位语言的设计者。您能作为我们的[仁慈独裁者][4]benevolent dictatorLCTT 译注Benevolent Dictator For Life或 BDFL指开源领袖通常指对社区争议拥有最终裁决权的领袖典故来自 Python 创始人 Guido van Rossum 具体参考维基条目[解释][4]
所以我是语言的设计者但总是听到“不要管具体实现implementation我们目睹了你对 Perl 5 做的那些,我们不想历史重演!”真是让我忍俊不禁,因为他们作为起步的核心和原先 Perl 5 的内部结构上几乎别无二致,也许这就是为什么一些早期的实现做的并不好的原因。
因为我们仍然在摸索我们的整个设计,其实现在做了许多 VM (虚拟机)该做什么和不该做什么的假设,所以最终这个东西就像面向对象的汇编语言一样。类似的问题在伊始阶段无处不在。然后 Pugs 这家伙走过来说:“用用看 Haskell 吧它能让你们清醒的认识自己正在干什么让我们用它来弄清楚下层的语义模型semantic model。”
因此我们明确了其中的一些语义模型但更重要的是我们开始建立符合那些语义模型的测试套件。在这之后Parrot VM 继续进行开发,并且出现了另一个实现 Niecza ,它基于 .Net是由一个年轻的家伙搞出来的。他很聪明实现了 Perl 6 的一个很大的子集。不过他还是一个人干,并没有找到什么好方法让别人介入他的项目。
同时 Parrot 项目变得过于庞大,以至于任何人都不能真正的深入掌控它,并且很难重构。同时,开发 Rakudo 的人们觉得我们可能需要在更多平台上运行它,而不只是在 Parrot VM 上。 于是他们发明了所谓的可移植层 NQP ,即 “Not Quite Perl”。他们一开始将它移植到 JVMJava虚拟机上运行与此同时他们还秘密的开发了一个叫做 MoarVM 的 VM ,它去年才刚刚为人知晓。
无论 MoarVM 还是 JVM 在回归测试regression test中表现得十分接近 —— 在许多方面 Parrot 算是尾随其后。这样不挑剔 VM 真的很棒,我们也能开始考虑将 NQP 发扬光大。谷歌夏季编码大赛Google Summer of Code project的目标就是针对 JavaScript 的 NQP这应该靠谱因为 MoarVM 也同样使用 Node.js 作为日常处理。
我们可能要将今年余下的时光投在 MoarVM 上,直到 6.0 发布,方可休息片刻。
**LV去年英国政府开展编程年活动Year of Code来激发年轻人对编程的兴趣。针对活动的建议五花八门——类似为了让人们准确的认识到内存的使用你是否应该从低阶语言开始讲授或是一门高阶语言。你对此作何看法**
LW到现在为止Python 社区在低阶方面的教学工作做得比我们要好。我们也很想在这一方面做点什么,这也是我们有蝴蝶 logo 的部分原因,以此来吸引七岁大小的女孩子!
![Perl 6 : Camelia](https://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Camelia.svg/640px-Camelia.svg.png)
> “到现在为止Python 社区在低阶方面的教学工作做得比我们要好。”
我们认为将 Perl 6 作为第一门语言来学习是可行的。一大堆的将 Perl 5 作为第一门语言学习的人让我们吃惊。你知道,在 Perl 5 中有许多相当大的概念,如闭包,词法范围,和一些你通常在函数式编程中见到的特性。甚至在 Perl 6 中更是如此。
Perl 6 花了这么长时间的部分原因是我们尝试去坚持将近 50 种互不相同的原则,在设计语言的最后对于“哪点是最重要的规则”这个问题还是悬而未决。有太多的问题需要讨论。有时我们做出了决定,并已经工作了一段时间,才发现这个决定并不很正确。
之前我们并未针对并发程序设计或指定很多东西,直到 Jonathan Worthington 的出现,他非常巧妙的权衡了各个方面。他结合了一些其他语言诸如 Go 和 C# 的想法将并发原语写的非常好。可组合性Composability是一个语言至关重要的一部分。
有很多的程序设计系统的并发和并行写的并不好 —— 比如线程和锁,不良的操作方式有很多。所以在我看来,额外花点时间看一下 Go 或者 C# 这种高阶原语的开发是很值得的 —— 那是一种关键字上的矛盾 —— 写的相当棒。
--------------------------------------------------------------------------------
via: http://www.linuxvoice.com/interview-larry-wall/
作者:[Mike Saunders][a]
译者:[martin2011qi](https://github.com/martin2011qi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.linuxvoice.com/author/mike/
[1]:https://en.wikipedia.org/wiki/Perl#State_of_the_Onion
[2]:http://tinyurl.com/nhpr8g2
[3]:http://en.wikipedia.org/wiki/Self-clocking_signal
[4]:https://en.wikipedia.org/wiki/Benevolent_dictator_for_life

View File

@ -0,0 +1,28 @@
Linux 4.3 内核增加了 MOST 驱动子系统
================================================================================
当 4.2 内核还没有正式发布的时候Greg Kroah-Hartman 就为他维护的各种子系统模块打开了4.3 的合并窗口。
之前 Greg KH 发起的拉取请求pull request里包含了 linux 4.3 的合并窗口更新内容涉及驱动核心、TTY/串口、USB 驱动、字符/杂项以及暂存区内容。这些拉取申请没有提供任何震撼性的改变,大部分都是改进/附加/修改bug。暂存区内容又是大量的修正和清理但是还是有一个新的驱动子系统。
Greg 提到了[4.3 的暂存区改变][2],“这里的很多东西,几乎全部都是细小的修改和改变。通常的 IIO 更新和新驱动,以及我们已经添加了的 MOST 驱动子系统已经在源码树里整理了。ozwpan 驱动最终还是被删掉,因为它很明显被废弃了而且也没有人关心它。”
MOST 驱动子系统是面向媒体的系统传输Media Oriented Systems Transport的简称。在 linux 4.3 新增的文档里面解释道“MOST 驱动支持 LInux 应用程序访问 MOST 网络汽车信息骨干网Automotive Information Backbone高速汽车多媒体网络的事实上的标准。MOST 定义了必要的协议、硬件和软件层提供高效且低消耗的传输控制实时的数据包传输而只需要使用一个媒介物理层。目前使用的媒介是光线、非屏蔽双绞线UTP和同轴电缆。MOST 也支持多种传输速度最高支持150Mbps。”如文档解释的MOST 主要是关于 Linux 在汽车上的应用。
当 Greg KH 发出了他为 Linux 4.3 多个子系统做出的更新,但是他还没有打算提交 [KDBUS][5] 的内核代码。他之前已经放出了 [linux 4.3 的 KDBUS] 的开发计划所以我们将需要等待官方的4.3 合并窗口,看看会发生什么。
--------------------------------------------------------------------------------
via: http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.3-Staging-Pull
作者:[Michael Larabel][a]
译者:[oska874](https://github.com/oska874)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.michaellarabel.com/
[1]:http://www.phoronix.com/scan.php?page=search&q=Linux+4.2
[2]:http://lkml.iu.edu/hypermail/linux/kernel/1508.2/02604.html
[3]:http://www.phoronix.com/scan.php?page=news_item&px=KDBUS-Not-In-Linux-4.2
[4]:http://www.phoronix.com/scan.php?page=news_item&px=Linux-4.2-rc7-Released
[5]:http://www.phoronix.com/scan.php?page=search&q=KDBUS

View File

@ -0,0 +1,92 @@
如何使用 GRUB 2 直接从硬盘运行 ISO 文件
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/07/rundirectiso-featured.png)
大多数 Linux 发行版都会提供一个可以从 USB 启动的 live 环境,以便用户无需安装即可测试系统。我们可以用它来评测这个发行版或仅仅是当成一个一次性系统,并且很容易将这些文件复制到一个 U 盘上,在某些情况下,我们可能需要经常运行同一个或不同的 ISO 镜像。GRUB 2 可以配置成直接从启动菜单运行一个 live 环境,而不需要烧录这些 ISO 到硬盘或 USB 设备。
### 获取和检查可启动的 ISO 镜像 ###
为了获取 ISO 镜像,我们通常应该访问所需的发行版的网站下载与我们架构兼容的镜像文件。如果这个镜像可以从 U 盘启动,那它也应该可以从 GRUB 菜单启动。
当镜像下载完后,我们应该通过 MD5 校验检查它的完整性。这会输出一大串数字与字母合成的序列。
![](https://www.maketecheasier.com/assets/uploads/2015/07/rundirectiso-md5.png)
将这个序列与下载页提供的 MD5 校验码进行比较,两者应该完全相同。
### 配置 GRUB 2 ###
ISO 镜像文件包含了整个系统。我们要做的仅仅是告诉 GRUB 2 哪里可以找到 kernel 和 initramdisk 或 initram 文件系统(这取决于我们所使用的发行版)。
在下面的例子中,一个 Kubuntu 15.04 live 环境将被配置到 Ubuntu 14.04 机器的 Grub 启动菜单项。这应该能在大多数新的以 Ubuntu 为基础的系统上运行。如果你是其它系统并且想实现一些其它的东西,你可以从[这些文件][1]了解更多细节,但这会要求你拥有一点 GRUB 使用经验。
这个例子的文件 `kubuntu-15.04-desktop-amd64.iso` 放在位于 `/dev/sda1``/home/maketecheasier/TempISOs/` 上。
为了使 GRUB 2 能正确找到它,我们应该编辑
/etc/grub.d40-custom
![](https://www.maketecheasier.com/assets/uploads/2015/07/rundirectiso-40-custom-empty.png)
menuentry "Kubuntu 15.04 ISO" {
set isofile="/home/maketecheasier/TempISOs/kubuntu-15.04-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
echo "Starting $isofile..."
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}
![](https://www.maketecheasier.com/assets/uploads/2015/07/rundirectiso-40-custom-new.png)
### 分析上述代码 ###
首先设置了一个变量名 `$menuentry` ,这是 ISO 文件的所在位置 。如果你想换一个 ISO ,你应该修改 `isofile="/path/to/file/name-of-iso-file-.iso"`.
下一行是指定回环设备,且必须给出正确的分区号码。
loopback loop (hd0,1)$isofile
注意 hd0,1 这里非常重要,它的意思是第一硬盘,第一分区 (`/dev/sda1`)。
GRUB 的命名在这里稍微有点困惑,对于硬盘来说,它从 “0” 开始计数,第一块硬盘为 #0 ,第二块为 #1 ,第三块为 #2 ,依此类推。但是对于分区来说,它从 “1” 开始计数,第一个分区为 #1 ,第二个分区为 #2 ,依此类推。也许这里有一个很好的原因,但肯定不是明智的(明显用户体验很糟糕)..
在 Linux 中第一块硬盘,第一个分区是 `/dev/sda1` ,但在 GRUB2 中则是 `hd0,1` 。第二块硬盘,第三个分区则是 `hd1,3`, 依此类推.
下一个重要的行是:
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
这会载入内核镜像,在新的 Ubuntu Live CD 中,内核被存放在 `/casper` 目录,并且命名为 `vmlinuz.efi` 。如果你使用的是其它系统,可能会没有 `.efi` 扩展名或内核被存放在其它地方 (可以使用归档管理器打开 ISO 文件在 `/casper` 中查找确认)。最后一个选项, `quiet splash` ,是一个常规的 GRUB 选项,改不改无所谓。
最后
initrd (loop)/casper/initrd.lz
这会载入 `initrd` ,它负责载入 RAMDisk 到内存用于启动。
### 启动 live 系统 ###
做完上面所有的步骤后,需要更新 GRUB2
sudo update-grub
![](https://www.maketecheasier.com/assets/uploads/2015/07/rundirectiso-updare-grub.png)
当重启系统后,应该可以看见一个新的、并且允许我们启动刚刚配置的 ISO 镜像的 GRUB 条目:
![](https://www.maketecheasier.com/assets/uploads/2015/07/rundirectiso-grub-menu.png)
选择这个新条目就允许我们像从 DVD 或 U 盘中启动一个 live 环境一样。
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/run-iso-files-hdd-grub2/
作者:[Attila Orosz][a]
译者:[Locez](https://github.com/locez)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/attilaorosz/
[1]:http://git.marmotte.net/git/glim/tree/grub2

View File

@ -0,0 +1,72 @@
Linux 有问必答:如何在 Linux 命令行下浏览天气预报
================================================================================
> **Q**: 我经常在 Linux 桌面查看天气预报。然而,是否有一种在终端环境下,不通过桌面小插件或者浏览器查询天气预报的方法?
对于 Linux 桌面用户来说,有很多办法获取天气预报,比如使用专门的天气应用、桌面小插件,或者面板小程序。但是如果你的工作环境是基于终端的,这里也有一些在命令行下获取天气的手段。
其中有一个就是 [wego][1]**一个终端下的小巧程序**。使用基于 ncurses 的接口,这个命令行程序允许你查看当前的天气情况和之后的预报。它也会通过一个天气预报的 API 收集接下来 5 天的天气预报。
### 在 Linux 下安装 wego ###
安装 wego 相当简单。wego 是用 Go 编写的,引起第一个步骤就是安装 [Go 语言][2]。然后再安装 wego。
$ go get github.com/schachmat/wego
wego 会被安装到 $GOPATH/bin所以要将 $GOPATH/bin 添加到 $PATH 环境变量。
$ echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bashrc
$ source ~/.bashrc
现在就可与直接从命令行启动 wego 了。
$ wego
第一次运行 weg 会生成一个配置文件(`~/.wegorc`),你需要指定一个天气 API key。
你可以从 [worldweatheronline.com][3] 获取一个免费的 API key。免费注册和使用。你只需要提供一个有效的邮箱地址。
![](https://farm6.staticflickr.com/5781/21317466341_5a368b0d26_c.jpg)
你的 .wegorc 配置文件看起来会这样:
![](https://farm6.staticflickr.com/5620/21121418558_df0d27cd0a_b.jpg)
除了 API key你还可以把你想要查询天气的地方、使用的城市/国家名称、语言配置在 `~/.wegorc` 中。
注意,这个天气 API 的使用有限制:每秒最多 5 次查询,每天最多 250 次查询。
当你重新执行 wego 命令,你将会看到最新的天气预报(当然是你的指定地方),如下显示。
![](https://farm6.staticflickr.com/5776/21121218110_dd51e03ff4_c.jpg)
显示出来的天气信息包括:(1)温度,(2)风速和风向,(3)可视距离,(4)降水量和降水概率
默认情况下会显示3 天的天气预报。如果要进行修改可以通过参数改变天气范围最多5天比如要查看 5 天的天气预报:
$ wego 5
如果你想检查另一个地方的天气,只需要提供城市名即可:
$ wego Seattle
### 问题解决 ###
1. 可能会遇到下面的错误:
user: Current not implemented on linux/amd64
当你在一个不支持原生 Go 编译器的环境下运行 wego 时就会出现这个错误。在这种情况下你只需要使用 gccgo ——一个 Go 的编译器前端来编译程序即可。这一步可以通过下面的命令完成。
$ sudo yum install gcc-go
$ go get -compiler=gccgo github.com/schachmat/wego
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/weather-forecasts-command-line-linux.html
作者:[Dan Nanni][a]
译者:[oska874](https://github.com/oska874)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:https://github.com/schachmat/wego
[2]:http://ask.xmodulo.com/install-go-language-linux.html
[3]:https://developer.worldweatheronline.com/auth/register

View File

@ -1,27 +1,28 @@
在 Ubuntu 和 Linux Mint 上安装 Terminator 0.98
================================================================================
[Terminator][1]在一个窗口中有多个终端。该项目的目标之一是为管理终端提供一个有用的工具。它的灵感来自于类似 gnome-multi-termquankonsole 等程序,这些程序关注于在窗格中管理终端。 Terminator 0.98 带来了更完美的标签功能,更好的布局保存/恢复,改进了偏好用户界面和多 bug 修复。
[Terminator][1]它可以在一个窗口内打开多个终端。该项目的目标之一是为摆放终端提供一个有用的工具。它的灵感来自于类似 gnome-multi-termquankonsole 等程序,这些程序关注于按网格摆放终端。 Terminator 0.98 带来了更完美的标签功能,更好的布局保存/恢复,改进了偏好用户界面和多 bug 修复。
![](http://www.ewikitech.com/wp-content/uploads/2015/09/Screenshot-from-2015-09-17-094828.png)
###TERMINATOR 0.98 的更改和新特性
- 添加了一个布局启动器,允许在不用布局之间简单切换(用 Alt + L 打开一个新的布局切换器);
- 添加了一个新的手册(使用 F1 打开);
- 保存的时候,布局现在会记住:
- * 最大化和全屏状态
- * 窗口标题
- * 激活的标签
- * 激活的终端
- * 每个终端的工作目录
- 添加选项用于启用/停用非同标签和滚动箭头;
- 最大化和全屏状态
- 窗口标题
- 激活的标签
- 激活的终端
- 每个终端的工作目录
- 添加选项用于启用/停用非同non-homogenous标签和滚动箭头;
- 添加快捷键用于按行/半页/一页向上/下滚动;
- 添加使用 Ctrl+鼠标滚轮放大/缩小Shift+鼠标滚轮向上/下滚动页面;
- 为下一个/上一个 profile 添加快捷键
- 添加使用 Ctrl+鼠标滚轮放大/缩小Shift+鼠标滚轮向上/下滚动页面;
- 为下一个/上一个配置文件profile添加快捷键
- 改进自定义命令菜单的一致性
- 新增快捷方式/代码来切换所有/标签分组;
- 改进监视插件
- 增加搜索栏切换;
- 清理和重新组织窗口偏好,包括一个完整的全局便签更新
- 清理和重新组织偏好preferences窗口,包括一个完整的全局便签更新
- 添加选项用于设置 ActivityWatcher 插件静默时间
- 其它一些改进和 bug 修复
- [点击此处查看完整更新日志][2]
@ -37,10 +38,6 @@ Terminator 0.98 有可用的 PPA首先我们需要在 Ubuntu/Linux Mint 上
如果你想要移除 Terminator只需要在终端中运行下面的命令可选
$ sudo apt-get remove terminator
--------------------------------------------------------------------------------
@ -48,7 +45,7 @@ via: http://www.ewikitech.com/articles/linux/terminator-install-ubuntu-linux-min
作者:[admin][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,28 +1,29 @@
在 Ubuntu 15.04 上安装 Justniffer
================================================================================
### 简介 ###
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/monitoring1.jpg)
[Justniffer][1] 是一个可用于替 Snort 的网络协议分析器。它非常流行,可交互式地跟踪/探测一个网络连接。它能从实时环境中抓取流量,支持 “lipcap” 和 “tcpdump” 文件格式。它可以帮助用户分析一个用 wireshark 难以抓包的复杂网络。尤其是它可以有效的帮助分析应用层流量能提取类似图像、脚本、HTML 等 http 内容。Justniffer 有助于理解不同组件之间是如何通信的。
[Justniffer][1] 是一个可用于替 Snort 的网络协议分析器。它非常流行,可交互式地跟踪/探测一个网络连接。它能从实时环境中抓取流量,支持 “lipcap” 和 “tcpdump” 文件格式。它可以帮助用户分析一个用 wireshark 难以抓包的复杂网络。尤其是它可以有效的帮助分析应用层流量能提取类似图像、脚本、HTML 等 http 内容。Justniffer 有助于理解不同组件之间是如何通信的。
### 功能 ###
Justniffer 收集一个复杂网络的所有流量而不影响系统性能,这是 Justniffer 的一个优势它还可以保存日志用于之后的分析Justniffer 其它一些重要功能包括:
Justniffer 可以收集一个复杂网络的所有流量而不影响系统性能,这是 Justniffer 的一个优势它还可以保存日志用于之后的分析Justniffer 其它一些重要功能包括:
#### 1. 可靠的 TCP 流重建 ####
1. 可靠的 TCP 流重建
它可以使用主机 Linux 内核的一部分用于记录并重现 TCP 片段和 IP 片段。
它可以使用主机 Linux 内核的一部分用于记录并重现 TCP 片段和 IP 片段。
#### 2. 日志 ####
2. 日志
保存日志用于之后的分析,并能自定义保存内容和时间。
保存日志用于之后的分析,并能自定义保存内容和时间。
#### 3. 可扩展 ####
3. 可扩展
可以通过外部 python、 perl 和 bash 脚本扩展来从分析报告中获取一些额外的结果。
可以通过外部 python、 perl 和 bash 脚本扩展来从分析报告中获取一些额外的结果。
#### 4. 性能管理 ####
4. 性能管理
基于连接时间、关闭时间、响应时间或请求时间等提取信息。
基于连接时间、关闭时间、响应时间或请求时间等提取信息。
### 安装 ###
@ -44,41 +45,41 @@ make 的时候失败了,然后我运行下面的命令并尝试重新安装服
$ sudo apt-get -f install
### 例 ###
### 例 ###
首先用 -v 选项验证安装的 Justniffer 版本,你需要用超级用户权限来使用这个工具。
$ sudo justniffer -V
例输出:
例输出:
![j](http://www.unixmen.com/wp-content/uploads/2015/09/j.png)
**1. 为 eth1 接口导出 apache 中的流量到终端**
**1、 以类似 apache 的格式导出 eth1 接口流量,显示到终端**
$ sudo justniffer -i eth1
例输出:
例输出:
![Selection_001](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0013.png)
**2. 可以永恒下面的选项跟踪正在运行的 tcp 流**
**2、 可以用下面的选项跟踪正在运行的 tcp 流**
$ sudo justniffer -i eth1 -r
例输出:
例输出:
![Selection_002](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0023.png)
**3. 获取 web 服务器的响应时间**
**3、 获取 web 服务器的响应时长**
$ sudo justniffer -i eth1 -a " %response.time"
例输出:
例输出:
![Selection_003](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0033.png)
**4. 使用 Justniffer 读取一个 tcpdump 抓取的文件**
**4 使用 Justniffer 读取一个 tcpdump 抓取的文件**
首先,用 tcpdump 抓取流量。
@ -88,33 +89,33 @@ make 的时候失败了,然后我运行下面的命令并尝试重新安装服
$ justniffer -f file.cap
例输出:
例输出:
![Selection_005](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0056.png)
**5. 只抓取 http 数据**
**5 只抓取 http 数据**
$ sudo justniffer -i eth1 -r -p "port 80 or port 8080"
例输出:
例输出:
![Selection_006](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0064.png)
**6. 从一个指定主机获取 http 数据**
**6、 获取一个指定主机 http 数据**
$ justniffer -i eth1 -r -p "host 192.168.1.250 and tcp port 80"
例输出:
例输出:
![Selection_007](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0074.png)
**7. 以更精确的格式抓取数据**
**7 以更精确的格式抓取数据**
当你输入 **justniffer -h** 的时候你可以看到很多用于以更精确的方式获取数据的格式关键字
$ justniffer -h
例输出:
例输出:
![Selection_008](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0083.png)
@ -122,15 +123,15 @@ make 的时候失败了,然后我运行下面的命令并尝试重新安装服
$ justniffer -i eth1 -l "%request.timestamp %request.header.host %request.url %response.time"
例输出:
例输出:
![Selection_009](http://www.unixmen.com/wp-content/uploads/2015/09/Selection_0094.png)
其中还有很多你可以探索的选项
其中还有很多你可以探索的选项
### 总结 ###
Justniffer 是用于网络测试一个很好的工具。在我看来对于那些用 Snort 来进行网络探测的用户来说Justniffer 是一个更简单的工具。它提供了很多 **格式关键字** 用于按照你的需要精确地提取数据。你可以用 .cap 文件格式记录网络信息,之后用于分析监视网络服务性能。
Justniffer 是一个很好的用于网络测试的工具。在我看来对于那些用 Snort 来进行网络探测的用户来说Justniffer 是一个更简单的工具。它提供了很多 **格式关键字** 用于按照你的需要精确地提取数据。你可以用 .cap 文件格式记录网络信息,之后用于分析监视网络服务性能。
**参考资料:**
@ -142,7 +143,7 @@ via: http://www.unixmen.com/install-justniffer-ubuntu-15-04/
作者:[Rajneesh Upadhyay][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,10 +1,10 @@
如何在Ubuntu 14.04 / 15.04中设置IonCube Loaders
================================================================================
IonCube Loaders是PHP中用于辅助加速页面的加解密工具。它保护你的PHP代码不会被在未授权的计算机上查看。使用ionCube编码并加密PHP需要一个叫ionCube Loader的文件安装在web服务器上并提供给需要大量访问的PHP用。它在运行时处理并执行编码。PHP只需在php.ini中添加一行就可以使用这个loader。
IonCube Loaders是一个PHP中用于加解密的工具并带有加速页面运行的功能。它也可以保护你的PHP代码不会查看和运行在未授权的计算机上。要使用ionCube编码、加密的PHP文件需要在web服务器上安装一个叫ionCube Loader的文件并需要让 PHP 可以访问到,很多 PHP 应用都在用它。它可以在运行时读取并执行编码过后的代码。PHP只需在php.ini中添加一行就可以使用这个loader。
### 前提条件 ###
在这篇文章中我们将在Ubuntu14.04/15.04安装Ioncube Loader 以便它可以在所有PHP模式中使用。本教程的唯一要求就是你系统安装了LEMP并有“php.ini”文件。
在这篇文章中我们将在Ubuntu14.04/15.04安装Ioncube Loader 以便它可以在所有PHP模式中使用。本教程的唯一要求就是你系统安装了LEMP并有“php.ini”文件。
### 下载 IonCube Loader ###
@ -14,15 +14,15 @@ IonCube Loaders是PHP中用于辅助加速页面的加解密工具。它保护
![download ioncube](http://blog.linoxide.com/wp-content/uploads/2015/09/download1.png)
下载完成后用下面的命令解压到"/usr/local/src/"。
下载完成后用下面的命令解压到/usr/local/src/"。
# tar -zxvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local/src/
![extracting archive](http://blog.linoxide.com/wp-content/uploads/2015/09/2-extract.png)
解压完成后我们就可以看到所有的存在的模块。但是我们只需要我们安装的PHP版本的相关模块。
解压完成后我们就可以看到所有提供的模块。但是我们只需要我们所安装的PHP版本的对应模块。
要检查PHP版本你可以运行下面的命令来找出相的模块。
要检查PHP版本你可以运行下面的命令来找出相的模块。
# php -v
@ -30,14 +30,14 @@ IonCube Loaders是PHP中用于辅助加速页面的加解密工具。它保护
根据上面的命令我们知道我们安装的是PHP 5.6.4因此我们需要拷贝合适的模块到PHP模块目录下。
首先我们在“/usr/local/”创建一个叫“ioncube”的目录并复制需的ioncube loader到这里。
首先我们在“/usr/local/”创建一个叫“ioncube”的目录并复制需的ioncube loader到这里。
root@ubuntu-15:/usr/local/src/ioncube# mkdir /usr/local/ioncube
root@ubuntu-15:/usr/local/src/ioncube# cp ioncube_loader_lin_5.6.so ioncube_loader_lin_5.6_ts.so /usr/local/ioncube/
### PHP 配置 ###
我们要在位于"/etc/php5/cli/"文件夹下的"php.ini"中加入下的配置行并重启web服务和php模块。
我们要在位于"/etc/php5/cli/"文件夹下的"php.ini"中加入下的配置行并重启web服务和php模块。
# vim /etc/php5/cli/php.ini
@ -54,7 +54,6 @@ IonCube Loaders是PHP中用于辅助加速页面的加解密工具。它保护
要为我们的网站测试ioncube loader。用下面的内容创建一个"info.php"文件并放在网站的web目录下。
# vim /usr/share/nginx/html/info.php
加入phpinfo的脚本后重启web服务后用域名或者ip地址访问“info.php”。
@ -63,7 +62,6 @@ IonCube Loaders是PHP中用于辅助加速页面的加解密工具。它保护
![php info](http://blog.linoxide.com/wp-content/uploads/2015/09/php-info.png)
From the terminal issue the following command to verify the php version that shows the ionCube PHP Loader is Enabled.
在终端中运行下面的命令来验证php版本并显示PHP Loader已经启用了。
# php -v
@ -74,7 +72,7 @@ From the terminal issue the following command to verify the php version that sho
### 总结 ###
教程的最后你已经了解了在安装有nginx的Ubuntu中安装和配置ionCube Loader如果你正在使用其他的web服务这与其他服务没有明显的差别。因此做完这些安装Loader是很简单的并且在大多数服务器上的安装都不会有问题。然而并没有一个所谓的“标准PHP安装”服务可以通过许多方式安装并启用或者禁用功能。
教程的最后你已经了解了如何在安装有nginx的Ubuntu中安装和配置ionCube Loader如果你正在使用其他的web服务这与其他服务没有明显的差别。因此安装Loader是很简单的并且在大多数服务器上的安装都不会有问题。然而并没有一个所谓的“标准PHP安装”服务可以通过许多方式安装并启用或者禁用功能。
如果你是在共享服务器上那么确保运行了ioncube-loader-helper.php脚本并点击链接来测试运行时安装。如果安装时你仍然遇到了问题欢迎联系我们及给我们留下评论。
@ -84,7 +82,7 @@ via: http://linoxide.com/ubuntu-how-to/setup-ioncube-loaders-ubuntu-14-04-15-04/
作者:[Kashif Siddique][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,41 @@
红帽 CEO 对 OpenStack 收益表示乐观
================================================================================
得益于围绕 Linux 和云不断发展的平台与基础设施技术,红帽正在持续快速发展。红帽宣布在九月二十一日完成了 2016 财年第二季度的财务业绩,再次超过预期。
![](http://www.serverwatch.com/imagesvr_ce/1212/icon-redhatcloud-r.jpg)
这一季度,红帽的收入为 5 亿 4 百万美元,和去年同比增长 13%。净收入为 5 千 1 百万美元,超过了 2015 财年第二季度的 4 千 7 百万美元。
展望未来,红帽为下一季度和全年提供了积极的目标。对于第三季度,红帽希望指导收益能在 5亿1千9百万美元和5亿2千3百万美元之间和去年同期相比增长 15%。
对于 2016 财年,红帽的全年指导目标是 20亿4千4百万美元和去年相比增长 14%。
红帽 CFO Frank Calderoni 在电话会议上指出,红帽最高的 30 个订单差不多甚至超过了 1 百万美元。其中有 4 个订单超过 5 百万美元,还有一个超过 1 千万美元。
从近几年的经验来看,红帽产品的交叉销售非常成功,全部订单中有超过 65% 的订单包括了一个或多个红帽应用和新兴技术产品组件。
Calderoni 说 “我们希望这些技术例如中间件、RHEL OpenStack 平台、OpenShift、云管理和存储能持续推动收益增长。”
### OpenStack ###
在电话会议中,红帽 CEO Jim Whitehurst 多次问到 OpenStack 的预期收入。Whitehurst 说得益于安装程序的改进,最近发布的 Red Hat OpenStack Platform 7.0 向前垮了一大步。
Whitehurst 提到:“在识别硬件和使用方面它做的很好,当然,这也意味着在硬件识别并正确使用它们方便还有很多工作要做。”
Whitehurst 说他已经开始注意到很多的生产应用程序开始迁移到 OpenStack 云上来。他也警告说在产业化方面迁移到 OpenStack 大部分只是尝鲜,还并没有成为主流。
对于竞争对手, Whitehurst 尤其提到了微软、惠普和 Mirantis。在他看来很多组织仍然会使用多种操作系统如果他们部分使用了微软产品会更倾向于开源方案作为替代选项。Whitehurst 说在云方面他还没有看到太多和惠普面对面的竞争,但和 Mirantis 则确实如此。
Whitehurst 说 “我们也有几次胜利,客户从 Mirantis 转到了 RHEL。”
--------------------------------------------------------------------------------
via: http://www.serverwatch.com/server-news/red-hat-ceo-optimistic-on-openstack-revenue-opportunity.html
作者:[Sean Michael Kerner][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.serverwatch.com/author/Sean-Michael-Kerner-101580.htm

View File

@ -1,12 +1,8 @@
如何将 Oracle 11g 升级到 Orcale 12c
================================================================================
大家好。
大家好。今天我们来学习一下如何将 Oracle 11g 升级到 Oracle 12c。开始吧。
今天我们来学习一下如何将 Oracle 11g 升级到 Oracle 12c。开始吧。
在此,我使用的是 CentOS 7 64 位 Linux 发行版。
我假设你已经在你的系统上安装了 Oracle 11g。这里我会展示一下安装 Oracle 11g 时我的操作步骤。
在此,我使用的是 CentOS 7 64 位 Linux 发行版。我假设你已经在你的系统上安装了 Oracle 11g。这里我会展示一下安装 Oracle 11g 时我的操作步骤。
我在 Oracle 11g 上选择 “Create and configure a database”如下图所示。
@ -16,7 +12,7 @@
![](http://www.unixmen.com/wp-content/uploads/2015/09/11g212cimage2.png)
然后你输入安装 Oracle 11g 的所有路径以及密码。下面是我自己的 Oracle 11g 安装配置。确保你正确输入了 Oracle 的密码。
然后你输入安装 Oracle 11g 的各种路径以及密码。下面是我自己的 Oracle 11g 安装配置。确保你正确输入了 Oracle 的密码。
![](http://www.unixmen.com/wp-content/uploads/2015/09/11g212cimage3.png)
@ -30,7 +26,7 @@
你需要从该[链接][1]上下载两个 zip 文件。下载并解压两个文件到相同目录。文件名为 **linuxamd64_12c_database_1of2.zip** & **linuxamd64_12c_database_2of2.zip**。提取或解压完后,它会创建一个名为 database 的文件夹。
注意:升级到 12c 之前,请确保在你的 CentOS 上已经安装了所有必须的软件包并且 path 环境变量也已经正确配置,还有其它前提条件也已经满足。
注意:升级到 12c 之前,请确保在你的 CentOS 上已经安装了所有必须的软件包,并且所有的路径变量也已经正确配置,还有其它前提条件也已经满足。
下面是必须使用正确版本安装的一些软件包
@ -47,13 +43,11 @@
在因特网上搜索正确的 rpm 版本。
你也可以用一个查询处理多个软件包,然后在输出中查找正确版本。例如:
在终端中输入下面的命令
你也可以用一个查询处理多个软件包,然后在输出中查找正确版本。例如,在终端中输入下面的命令:
rpm -q binutils compat-libstdc++ gcc glibc libaio libgcc libstdc++ make sysstat unixodbc
你的系统中必须安装了以下软件包(版本可能较新会旧)
你的系统中必须安装了以下软件包(版本可能或新或旧)
- binutils-2.23.52.0.1-12.el7.x86_64
- compat-libcap1-1.10-3.el7.x86_64
@ -83,11 +77,7 @@
你也需要 unixODBC-2.3.1 或更新版本的驱动。
我希望你安装 Oracle 11g 的时候已经在你的 CentOS 7 上创建了名为 oracle 的用户。
让我们以用户 oracle 登录 CentOS。
以用户 oracle 登录到 CentOS 之后,在你的 CentOS上打开一个终端。
我希望你安装 Oracle 11g 的时候已经在你的 CentOS 7 上创建了名为 oracle 的用户。让我们以用户 oracle 登录 CentOS。以用户 oracle 登录到 CentOS 之后,在你的 CentOS上打开一个终端。
使用终端更改工作目录并导航到你解压两个 zip 文件的目录。在终端中输入以下命令开始安装 12c。
@ -119,15 +109,15 @@
![](http://www.unixmen.com/wp-content/uploads/2015/09/11g212cimage11.png)
第七步,像下面这样使用默认的选择继续下一步。
对于第七步,像下面这样使用默认的选择继续下一步。
![](http://www.unixmen.com/wp-content/uploads/2015/09/11g212cimage12.png)
在第九步,你会看到一个类似下面这样的总结报告。
在第九步,你会看到一个类似下面这样的总结报告。
![](http://www.unixmen.com/wp-content/uploads/2015/09/11g212cimage13.png)
如果一切正常,你可以点击步骤九中的 install 开始安装,进入步骤十
如果一切正常,你可以点击第九步中的 install 开始安装,进入第十步
![](http://www.unixmen.com/wp-content/uploads/2015/09/11g212cimage14.png)
@ -135,7 +125,7 @@
要有耐心,一步一步走下来最后它会告诉你成功了。否则,在谷歌上搜索做必要的操作解决问题。再一次说明,由于你可能会遇到的错误有很多,我无法在这里提供所有详细介绍。
现在,只需要按照下面屏幕指令配置监听器
现在,只需要按照下面屏幕指令配置监听器
配置完监听器之后它会启动数据库升级助手Database Upgrade Assistant。选择 Upgrade Oracle Database。
@ -157,7 +147,7 @@ via: http://www.unixmen.com/upgrade-from-oracle-11g-to-oracle-12c/
作者:[Mohammad Forhad Iftekher][a]
译者:[ictlyh](http://www.mutouxiaogui.cn/blog/)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,12 +1,12 @@
Xenlism WildFire: 一个精美的 Linux 桌面版主题
Xenlism WildFire: Linux 桌面的极简风格图标主题
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Xenlism-icon-theme-linux-3.png)
有那么一段时间,我一直使用一个主题,没有更换过。可能是在最近的一段时间都没有一款主题能满足我的需求。有那么一些我认为是[Ubuntu 上最好的图标主题][1],比如 Numix 和 Moka并且我一直也对 Numix 比较满意
有那么一段时间我没更换主题了,可能最近的一段时间没有一款主题能让我眼前一亮了。我考虑过更换 [Ubuntu 上最好的图标主题][1],但是它们和 Numix 和 Moka 差不多,而且我觉得 Numix 也不错
但是,一段时间后,我使用了[Xenslim WildFire][2]并且我必须承认他看起来太好了。Minimail 是当前比较流行的设计趋势。并且 Xenlism 完美的表现了它。平滑和美观。Xenlism 收到了诺基亚的 Meego 和苹果图标的影响。
但是前几天我试了试 [Xenslim WildFire][2],我必须承认,它看起来太棒了。极简风格是设计界当前的流行趋势,而 Xenlism 完美的表现了这种风格。平滑而美观Xenlism 显然受到了诺基亚的 Meego 和苹果图标的影响。
让我们来看一下的几个不同应用的图标:
让我们来看一下的几个不同应用的图标:
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Xenlism-icons.png)
@ -14,15 +14,15 @@ Xenlism WildFire: 一个精美的 Linux 桌面版主题
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Xenlism-icons-1.png)
主题开发者[Nattapong Pullkhow][3], 说,这个图标主题最适合 GNOME但是在 Unity 和 KDE,Mate 上也表现良好。
主题开发者 [Nattapong Pullkhow][3] 说,这个图标主题最适合 GNOME但是在 Unity 和 KDEMate 上也表现良好。
### 安装 Xenlism Wildfire ###
Xenlism Theme 大约有 230 MB, 对于一个主题来说确实很大,但是考虑到它支持的庞大的软件数量,这个大小,确实也不是那么令人吃惊。
Xenlism Theme 大约有 230 MB, 对于一个主题来说确实很大,但是考虑到它支持的庞大的软件数量,这个大小,确实也不是那么令人吃惊。
#### 在 Ubuntu/Debian 上安装 Xenlism ####
在 Ubuntu 的变种中安装前,用以下的命令添加 GPG 秘钥:
在 Ubuntu 系列中安装之前,用以下的命令添加 GPG 秘钥:
sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 90127F5B
@ -42,7 +42,7 @@ Xenlism Theme 大约有 230 MB, 对于一个主题来说确实很大,但是考
sudo nano /etc/pacman.conf
添加如下的代码块,在配置文件中:
添加如下的代码块,在配置文件中:
[xenlism-arch]
SigLevel = Never
@ -55,17 +55,17 @@ Xenlism Theme 大约有 230 MB, 对于一个主题来说确实很大,但是考
#### 使用 Xenlism 主题 ####
在 Ubuntu Unity, [可以使用 Unity Tweak Tool 来改变主题][4]. In GNOME, [使用 Gnome Tweak Tool 改变主题][5]. 我确信你会接下来的步骤,如果你不会,请来信通知我,我会继续完善这篇文章。
在 Ubuntu Unity, [可以使用 Unity Tweak Tool 来改变主题][4]。 在 GNOME 中,[使用 Gnome Tweak Tool 改变主题][5]。 我确信你会接下来的步骤,如果你不会,请来信通知我,我会继续完善这篇文章。
这就是 Xenlism 在 Ubuntu 15.04 Unity 中的截图。同时也使用了 Xenlism 桌面背景。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Xenlism-icons-2.png)
这看来真棒,不是吗?如果你试用了,并且喜欢他,你可以感谢他的开发者:
这看来真棒,不是吗?如果你试用了,并且喜欢它,你可以感谢它的开发者:
> [Xenlism is a stunning minimal icon theme for Linux. Thanks @xenatt for this beautiful theme.][6]
> [Xenlism 是一个用于 Linux 的、令人兴奋的极简风格的图标主题,感谢 @xenatt 做出这么漂亮的主题。][6]
我希望你喜欢。同时也希望你分享你对这个主题的看法或者你喜欢的主题。Xenlism 真的很棒,可能会替换掉你最喜欢的主题。
我希望你喜欢。同时也希望你分享你对这个主题的看法或者你喜欢的主题。Xenlism 真的很棒,可能会替换掉你最喜欢的主题。
--------------------------------------------------------------------------------
@ -73,7 +73,7 @@ via: http://itsfoss.com/xenlism-wildfire-theme/
作者:[Abhishek][a]
译者:[MikeCoder](https://github.com/MikeCoder)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,65 @@
Debian 拋弃 Linux 标准规范LSB
=======================
Linux 标准规范LSB是一个意图定义 Linux 发行版为第三方程序所提供的服务和应用层 ABIApplication Binary Interfaces程序二进制界面 的[规范][1]。但 Debian 项目内的某些人正在质疑是否值得维持兼容 LSB他们认为该项工作的工作量巨大但好处有限。
LSB 于2001年首次公布其模型建立在 [POSIX][2] 和[单一 UNIX 规范Single UNIX Specification][3]的基础之上。目前LSB 由 Linux 基金会的一个[工作小组][4]维护。最新的版本是于2015年6月发布的 [LSB 5.0][5]。它定义了五个 LSB 模块(核芯(core)、桌面、语言、成像imaging和试用
每个模块都包含了一系列所需的库及其强制性版本,外加对每个库的公共函数和数据定义的描述。这些模块还包括命名和组织规范,如[文件系统层次标准FHSFilesystem Hierarchy Standard][6]中的文件系统布局或象 Freedesktop 的[XDG 基础目录XDG Base Directory][7]规范这样的目录规范。
似乎只是一个巧合,就在 LSB 5.0 发布的同一周Debian 项目内部针对其是否值得保持兼容 LSB 进行了一次讨论。在另一个贴子中,在提及兼容 LSB 后Didier Raboud 顺势[提议][8]将 Debian 的兼容工作维持在最低水平。他说目前的情况是Debian 的“lsb-*” 元包( meta-packages试图规定该标准中提及的库的正确版本但事实上却没有人去检查所有的符号和数据定义是否满足要求。
另外LSB 还不断在膨胀;他说, LSB 4.1 版(接近 Debian “jessie” 发布时的最新版本)包含“*1493个组件、1672个库、38491条命令、30176个类和716202个接口*”。似乎没有人有兴趣检查 Debian 包中的这些细节,他解释道,又补充说,“*去年在 DebConf 上我举行过一次 LSB BoF后来又与很多人讨论过 src:lsb我收回自己的几乎没有人在意的说法*”。但重要的是Debian 似乎并不仅局限于兴趣的缺乏:
我认为,这个问题的关键在于是否值得去玩这整个游戏:我还没听说有哪个软件通过 LSB 包来发行。LSB 认证的应用清单上只有 6个公司的_8_个应用其中仅有一个是针对不低于 LSB 4 的。
Raboud 提议 Debian 摈弃除了 [lsb-base][9] 包(目前包括一个用于启动系统所需的小的 shell 函数集合)和 [lsb-release][10] 包(提供一个简单工具,用户可用它查询发行版的身份以及该发行版宣称的与哪个 LSB 级别兼容)之外的所有内容。
[后来][11],他又称,将 LSB 基本上改变为“*Debian 和 FLOSS 世界中的所有的其它人所_实际_做的任何事*”可能会使得该标准(以及在 Debian 为支持它所做的工作)更有价值。但此时他再次质疑是否有人会对推动这个目标有兴趣。
如果说他最初称 LSB 中缺乏兴趣没有足够的证据,随后整整三个月之内没有任何人对维持 LSB 兼容的包提供支持并进行了两次拋弃它们的投票。最后9月17日Raboud [宣布][12]他已经抽掉 `src:lsb` 包(如前所述,保留了`lsb-base` 和 `lsb-release`),将将其上载到 “unstable” 归档中。这个最小的工具集可以让感兴趣的用户在启动了下一个 Debian 版本后查询它是否兼容 LSB结果将为“否”。
Raboud 补充说,即便摈弃了兼容 LSBDebian 仍计划继续兼容 FHS
但 Debian 并没有放弃所有的 LSB我们仍将严格遵守 FHS直到 Debian Policy 版本 2.3虽然今年8月已经发布了3.0),而且我们的 SysV 启动脚本几乎全部遵循 VIII.22.{2-8}。但请不要误解,此次 src:lsb 上载明确说明我们将离开 LSB。
在该宣告之后Nikolaus Rath [回应][13]称某些私有应用依赖`/lib`和`/lib64`中的符号链接`ld-lsb.so*`,而这些符号链接由`lsb-*`包提供。Raboud 则[建议][14]应改由`libc6`包提供该包维护人员Aurelien Jarno [称][15],如果提供这样一个补丁,他将会接受它。
似乎唯一的遗留问题只是某些打印机驱动包会依赖 LSB 兼容。Raboud 称,在其首个贴子中已经说明,据他所知,实际发布的唯一一个依赖 LSB 兼容的包为 [OpenPrinting][16] 驱动程序。Michael Biebl [称][17]主归档中有这样一个驱动包Raboud 则[回应][18]说,他认为这个有问题的包应该被移到非自由仓库,因其包括了一个二进制驱动。
于是,这个问题看上去已经尘埃落定,至于对于目前的 Debian 开发周期来说是如此的状况。很自然的是,未来让人更感觉兴趣的是,如果该决定存在一些影响的话,那么人们将会看到它对更广泛的 LSB 接受度有何影响。正如 Raboud 所说的那样,被认证为 LSB 兼容的发行版数量很[少][19]。人们很难不会注意到这些发行版很大程度上是“企业”的变种。
也许对某些商业领域来说LSB 仍很重要,但很难知道有多少那些企业发行版的客户真正关心 LSB 认证标签。然而,如果 Debian 的经验靠得住的话,对这种认证的一般兴趣可能会急剧下降。
----
viahttps://lwn.net/Articles/658809/
作者Nathan Willis
译者:[Yuking](https://github.com/Yuking-net)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,
[Linux中国](https://linux.cn/) 荣誉推出
[1]:http://refspecs.linuxfoundation.org/lsb.shtml
[2]:https://en.wikipedia.org/wiki/POSIX
[3]:https://en.wikipedia.org/wiki/Single_UNIX_Specification
[4]:http://www.linuxfoundation.org/collaborate/workgroups/lsb
[5]:http://www.linuxfoundation.org/collaborate/workgroups/lsb/lsb-50
[6]:http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs
[7]:http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html
[8]:https://lwn.net/Articles/658838/
[9]:https://packages.debian.org/sid/lsb-base
[10]:https://packages.debian.org/sid/lsb-release
[11]:https://lwn.net/Articles/658842/
[12]:https://lwn.net/Articles/658843/
[13]:https://lwn.net/Articles/658846/
[14]:https://lwn.net/Articles/658847/
[15]:https://lwn.net/Articles/658848/
[16]:http://www.linuxfoundation.org/collaborate/workgroups/openprinting/
[17]:https://lwn.net/Articles/658844/
[18]:https://lwn.net/Articles/658845/
[19]:https://www.linuxbase.org/lsb-cert/productdir.php?by_lsb

View File

@ -0,0 +1,42 @@
pyinfo():一个像 phpinfo 一样的 Python 脚本
================================================================================
作为一个热衷于 php 的家伙,我已经习惯了使用 `phpinfo()` 函数来让我轻松访问 php.ini 里的配置和加载的模块等信息。当然我也想要使用一个不存在的 `pyinfo()` 函数,但没有成功。按下 CTRL-Egoogle 一下是否有人实现了它?
是的,有人已经实现了。但是,对我来说它非常难看。荒谬!因为我无法忍受丑陋的布局,*咳咳*我不得不亲自动手来改改。我用找到的代码并重新进行布局使之更好看点。Python 官方网站的布局看起来不错,那么何不借用他们的颜色和背景图片呢?是的,这听起来像一个计划。
- [Gist 代码地址][1]
- [下载地址][2]
- [例子][3]
提醒你下,我仅仅在 Python 2.6.4 上运行过它,所以在别的版本上可能有风险(将它移植到任何其他版本它应该是没有问题的)。要使用它,只需要导入该文件, 并调用`pyinfo()`函数得到它的返回值打印到屏幕上。好嘞!
如果你在使用 [mod_wsgi][4] 时没有得到正确的返回结果,你可以如下运行它(当然得替换路径):
```
def application(environ, start_response):
import sys
path = 'YOUR_WWW_ROOT_DIRECTORY'
if path not in sys.path:
sys.path.append(path)
from pyinfo import pyinfo
output = pyinfo()
start_response('200 OK', [('Content-type', 'text/html')])
return [output]
```
---
viahttp://bran.name/articles/pyinfo-a-good-looking-phpinfo-like-python-script/
作者:[Bran van der Meer][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,
[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://bran.name/resume/
[1]:https://gist.github.com/951825#file_pyinfo.py
[2]:http://bran.name/dump/pyinfo.zip
[3]:http://bran.name/dump/pyinfo/index.py
[4]:http://code.google.com/p/modwsgi/

View File

@ -0,0 +1,93 @@
如何在 Linux 中使用 youtube-dl 下载视频
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Download-YouTube-Videos.jpeg)
我知道你已经看过[如何下载 YouTube 视频][1]。但那些工具大部分都采用图形用户界面的方式。我会向你展示如何通过终端使用 youtube-dl 下载 YouTube 视频。
### youtube-dl ###
[youtube-dl][2] 是基于 Python 的命令行小工具,允许你从 YouTube.com、Dailymotion、Google Video、Photobucket、Facebook、Yahoo、Metacafe、Depositfiles 以及其它一些类似网站中下载视频。它是用 pygtk 编写的,需要 Python 解析器来运行,对平台要求并不严格。它能够在 Unix、Windows 或者 Mac OS X 系统上运行。
youtube-dl 支持断点续传。如果在下载的过程中 youtube-dl 被杀死了(例如通过 Ctrl-C 或者丢失网络连接),你只需要使用相同的 YouTube 视频 URL 再次运行它。只要当前目录中有下载的部分文件,它就会自动恢复没有完成的下载,也就是说,你不需要[下载管理器][3]来恢复下载。
#### 安装 youtube-dl ####
如果你运行的是基于 Ubuntu 的 Linux 发行版,你可以使用下面的命令安装:
sudo apt-get install youtube-dl
对于任何 Linux 发行版,你都可以通过下面的命令行在你的系统上快速安装 youtube-dl
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O/usr/local/bin/youtube-dl
获取到该文件后,为了能正常执行你需要给脚本设置可执行权限。
sudo chmod a+rx /usr/local/bin/youtube-dl
#### 使用 youtube-dl 下载视频: ####
要下载一个视频文件,只需要运行下面的命令。其中 “VIDEO_URL” 是你想要下载视频的 url。
youtube-dl VIDEO_URL
#### 以多种格式下载 YouTube 视频: ####
现在 YouTube 视频有不同的分辨率,首先你需要检查指定的 YouTube 视频可用的视频格式。可以使用 “-F” 选项运行 youtube-dl。它会向你显示出可用的格式。
youtube-dl -F http://www.youtube.com/watch?v=BlXaGWbFVKY
它的输出类似于:
Setting language
BlXaGWbFVKY: Downloading video webpage
BlXaGWbFVKY: Downloading video info webpage
BlXaGWbFVKY: Extracting video information
Available formats:
37 : mp4 [1080×1920]
46 : webm [1080×1920]
22 : mp4 [720×1280]
45 : webm [720×1280]
35 : flv [480×854]
44 : webm [480×854]
34 : flv [360×640]
18 : mp4 [360×640]
43 : webm [360×640]
5 : flv [240×400]
17 : mp4 [144×176]
在可用的视频格式中,选择你需要的一种。例如,如果你想下载 MP4 格式的,你可以:
youtube-dl -f 17 http://www.youtube.com/watch?v=BlXaGWbFVKY
#### 使用 youtube-dl 下载视频字幕 ####
首先检查是否有可用的视频字幕。使用下面的命令列出视频所有可用的字幕:
youtube-dl --list-subs https://www.youtube.com/watch?v=Ye8mB6VsUHw
下载所有字幕,但不包括视频:
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw
#### 下载整个播放列表 ####
运行下面的命令下载整个播放列表。其中 “playlist_url” 是你希望下载的播放列表的 url。
youtube-dl -cit playlist_url
youtube-dl 是一个多功能的命令行工具,它提供了很多功能。难怪这个命令行工具这么流行。
--------------------------------------------------------------------------------
via: http://itsfoss.com/download-youtube-linux/
作者:[alimiracle][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog/)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/ali/
[1]:http://itsfoss.com/download-youtube-videos-ubuntu/
[2]:https://rg3.github.io/youtube-dl/
[3]:https://linux.cn/article-6209-1.html

View File

@ -0,0 +1,57 @@
开源媒体播放器 MPlayer 1.2 发布
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/MPlayer-1.2.jpg)
在 [MPlayer][1] 1.1 发布将近3年后新版 MPlayer 终于在上周发布了。在新版本 MPlayer 1.2 中带来了对许多新编码的解码支持。
MPlayer 是一款跨平台的开源媒体播放器。它的名字是“Movie Player”的缩写。MPlayer 是 Linux 上最老牌的媒体播放器之一在过去的15年里它还带动出现了许多其他媒体播放器。著名的基于 MPlayer 的媒体播放器有:
- [MPV][2]
- SMPlayer
- KPlayer
- GNOME MPlayer
- Deepin Player深度影音
#### MPlayer 1.2 更新了些什么? ####
- 兼容 FFmpeg 2.8
- 对 H.265/HEVC 的 VDPAU 硬件加速
- 通过 FFmpeg 支持一些新的编码解码
- 改善电视与数字视频广播支持
- 界面优化
- libdvdcss/libdvdnav 包外部依赖
#### 在 Linux 安装 MPlayer 1.2 ####
大多数 Linux 发行版仓库中还是 MPlayer 1.1 版本。如果你想使用新的 MPlayer 1.2 版本,你需要从源码手动编译,这对新手来说可能有点棘手。
我是在 Ubuntu 15.04 上安装的 MPlayer 1.2。除了需要安装 yasm 的地方以外,对所有 Linux 发行版来说安装说明都是一样的。
打开一个终端,运行下列命令:
wget http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.2.tar.xz
tar xvf MPlayer-1.1.1.tar.xz
cd MPlayer-1.2
sudo apt-get install yasm
./configure
在你运行 make 的时候,在你的终端屏幕上会显示一些东西,并且你需要一些时间来编译它。保持耐心。
make
sudo make install
如果你觉得从源码编译不大习惯的话,我建议你等待 MPlayer 1.2 提交到你的 Linux 发行版仓库中,或者用其它的播放器替代,比如 MPV。
--------------------------------------------------------------------------------
via: http://itsfoss.com/mplayer-1-2-released/
作者:[Abhishek][a]
译者:[alim0x](https://github.com/alim0x)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:https://www.mplayerhq.hu/
[2]:http://mpv.io/

View File

@ -1,4 +1,4 @@
Linux产能工具及其使用技巧
Linux 产能工具及其使用技巧
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Productivity-Tips-Linux.jpg)
@ -6,7 +6,7 @@ Linux产能工具及其使用技巧
### Linux产能工具及其使用技巧 ###
再次说明我在写下本文时正在使用的是Ubuntu。但是我将要在这里展示给大家产能工具及其使用技巧却适用于外面的大多数Linux发行版。
再次说明我在写下本文时正在使用的是Ubuntu。但是我将要在这里展示给大家产能工具及其使用技巧却适用于市面上的大多数Linux发行版。
#### 外界的音乐 ####
@ -36,14 +36,14 @@ Ctrl+ C和Ctrl+V是我们日常计算机生活中不可缺少的一部分
如果你正忙着处理其它事情,而此时一个桌面通知闪了出来又逐渐消失了,你会怎么做?你会想要看看通知都说了什么,不是吗?最近通知指示器就是用于处理此项工作,它会保留一个最近所有通知的历史记录。这样,你就永远不会错过桌面通知了。
你可以阅读[最近通知指示器这里][13]。
你可以在此阅读[最近通知指示器][13]。
#### 终端技巧 ####
我不打算给你们展示所有那些Linux命令技巧和快捷方法那会写满整个博客了。我打算给你们展示一些终端黑技巧你可以用它们来提高你的生产力。
- **修改**sudo**密码超时**默认情况下sudo命令要求你在15分钟后再次输入密码这真是让人讨厌。实际上你可以修改默认的sudo密码超时。[此教程][14]会给你展示如何来实现。
- **获取命令完成的桌面通知**这是IT朋友们之间的一个常见的玩笑,开发者们花费大量时间来等待程序编译完成,而这不完全是正确的。但是,它确实影响到了生产力,因为在你等待程序编译完成时,你可以做其它事情,并忘了你在终端中运行的命令。一个更好的途径,就是在一个命令完成时,让它显示桌面通知。这样,你就不会长时间被打断,并且可以回到之前想要做的事情上。请阅读[如何获取命令完成的桌面通知][15]。
- **获取命令完成的桌面通知**这是IT朋友们之间的一个常见的玩笑——开发者们花费大量时间来等待程序编译完成——然而这不完全是正确的。但是,它确实影响到了生产力,因为在你等待程序编译完成时,你可以做其它事情,并忘了你在终端中运行的命令。一个更好的途径,就是在一个命令完成时,让它显示桌面通知。这样,你就不会长时间被打断,并且可以回到之前想要做的事情上。请阅读[如何获取命令完成的桌面通知][15]。
我知道,这不是一篇全面涵盖了**提升生产力**的文章。但是,这些小应用和小技巧可以在实际生活中帮助你在你宝贵的时间中做得更多。
@ -55,20 +55,20 @@ via: http://itsfoss.com/productivity-tips-ubuntu/
作者:[Abhishek][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:http://www.helpscout.net/blog/music-productivity/
[2]:http://itsfoss.com/ambient-noise-music-player-ubuntu/
[2]:https://linux.cn/article-5233-1.html
[3]:http://www.noisli.com/
[4]:https://en.wikipedia.org/wiki/Pomodoro_Technique
[5]:http://manuel-kehl.de/projects/go-for-it/
[6]:http://todotxt.com/
[7]:http://itsfoss.com/go-for-it-to-do-app-in-linux/
[7]:https://linux.cn/article-5337-1.html
[8]:http://itsfoss.com/indicator-stickynotes-windows-like-sticky-note-app-for-ubuntu/
[9]:http://itsfoss.com/install-google-keep-ubuntu-1310/
[9]:https://linux.cn/article-2634-1.html
[10]:https://evernote.com/
[11]:http://itsfoss.com/5-evernote-alternatives-linux/
[12]:https://esite.ch/tag/diodon/

View File

@ -0,0 +1,263 @@
10 个给 Linux 用户的有用工具
================================================================================
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2014/09/linux-656x445.png)
### 引言 ###
在本教程中我已经收集了10个给 Linux 用户的有用工具,其中包括各种网络监控,系统审计和一些其它实用的命令,它可以帮助用户提高工作效率。我希望你会喜欢他们。
#### 1. w ####
显示谁登录了系统并执行了哪些程序。
$w
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_023.png)
不显示头部信息LCTT译注原文此处有误
$w -h
显示指定用户的信息
$w <username>
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_024.png)
#### 2. nmon ####
Nmonnigels monitor 的简写)是一个显示系统性能信息的工具。
$ sudo apt-get install nmon
----------
$ nmon
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_001.png)
nmon 可以显示与 netwrokcpu, memory 和磁盘使用情况的信息。
**nmon 显示 cpu 信息 (按 c)**
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_002.png)
**nmon 显示 network 信息 (按 n)**
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_003.png)
**nman 显示 disk 信息 (按 d)**
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_004.png)
#### 3. ncdu ####
是一个支持光标的`du`程序,这个命令是用来分析各种目录占用的磁盘空间。
$apt-get install ncdu
----------
$ncdu /
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_006.png)
最终的输出:
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_007.png)
按 n 则通过文件名来排序,按 s 则按文件大小来排序(默认的)。
#### 4. slurm ####
一个基于网络接口的带宽监控命令行程序,它会用字符来显示文本图形。
$ apt-get install slurm
例如:
$ slurm -i <interface>
----------
$ slurm -i eth1
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0091.png)
**选项**
- 按 **l** 显示 lx/tx 指示灯.
- 按 **c** 切换到经典模式.
- 按 **r** 刷新屏幕.
- 按 **q** 退出.
#### 5.findmnt ####
Findmnt 命令用于查找挂载的文件系统。它用来列出安装设备,当需要时也可以挂载或卸载设备,它是 util-linux 软件包的一部分。
例子:
$findmnt
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0101.png)
以列表格式输出。
$ findmnt -l
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0111.png)
列出在 fstab 中挂载的文件系统。
$ findmnt -s
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0122.png)
按文件类型列出已挂载的文件系统。
$ findmnt -t ext4
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0131.png)
#### 6. dstat ####
一种灵活的组合工具,它可用于监控内存,进程,网络和磁盘性能,它可以用来取代 ifstat, iostat, dmstat 等。
$apt-get install dstat
例如:
查看有关 cpu硬盘和网络的详细信息。
$ dstat
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0141.png)
**-c** cpu
$ dstat -c
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0151.png)
**-d** 磁盘
$ dstat -d
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0161.png)
显示 cpu、磁盘等的详细信息。
$ dstat -cdl -D sda1
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_017.png)
#### 7. saidar ####
另一种基于命令行的系统统计数据监控工具,提供了有关磁盘使用,网络,内存,交换分区等信息。
$ sudo apt-get install saidar
例如:
$ saidar
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0181.png)
启用彩色输出
$ saider -c
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0191.png)
#### 8. ss ####
sssocket statistics是一个很好的替代 netstat 的选择,它从内核空间收集信息,比 netstat 的性能更好。
例如:
列出所有的连接
$ ss |less
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0201.png)
列出 tcp 流量
$ ss -A tcp
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0211.png)
列出进程名和 pid
$ ss -ltp
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0221.png)
#### 9. ccze ####
一个美化日志显示的工具 :).
$ apt-get install ccze
例如:
$ tailf /var/log/syslog | ccze
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0231.png)
列出 ccze 模块:
$ ccze -l
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_0241.png)
将日志保存为 html 文件。
tailf /var/log/syslog | ccze -h > /home/tux/Desktop/rajneesh.html
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_025.png)
#### 10. ranwhen.py ####
一种基于 Python 的终端工具,它可以用来以图形方式显示系统活动状态。详细信息以一个丰富多彩的柱状图来展示。
安装 pythonLCTT 译注:一般来说,你应该已经有了 python不需要此步
$ sudo apt-add-repository ppa:fkrull/deadsnakes
更新系统:
$ sudo apt-get update
下载 python:
$ sudo apt-get install python3.2
[点此下载 ranwhen.py][1]
$ unzip ranwhen-master.zip && cd ranwhen-master
运行工具。
$ python3.2 ranwhen.py
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/10/Selection_026.png)
### 结论 ###
这都是些不常见但重要的 Linux 管理工具。他们可以在日常生活中帮助用户。在我们即将发表的文章中,我们会尽量多带来些管理员/用户工具。
玩得愉快!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/10-useful-utilities-linux-users/
作者:[Rajneesh Upadhyay][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/rajneesh/
[1]:https://github.com/p-e-w/ranwhen/archive/master.zip

View File

@ -0,0 +1,53 @@
Linux 有问必答:如何在 Linux 中永久修改 USB 设备权限
================================================================================
> **提问**:当我尝试在 Linux 中运行 USB GPS 接收器时我遇到了下面来自 gpsd 的错误。
>
> gpsd[377]: gpsd:ERROR: read-only device open failed: Permission denied
> gpsd[377]: gpsd:ERROR: /dev/ttyUSB0: device activation failed.
> gpsd[377]: gpsd:ERROR: device open failed: Permission denied - retrying read-only
>
> 看上去 gpsd 没有权限访问 USB 设备(/dev/ttyUSB0。我该如何永久修改它在Linux上的权限
当你在运行一个会读取或者写入USB设备的进程时进程的用户/组必须有权限这么做才行。当然你可以手动用`chmod`命令改变 USB 设备的权限但是手动的权限改变只是暂时的。USB 设备会在下次重启时恢复它的默认权限。
![](https://farm6.staticflickr.com/5741/20848677843_202ff53303_c.jpg)
作为一个永久的方式,你可以创建一个基于 udev 的 USB 权限规则,它可以根据你的选择分配任何权限模式。下面是该如何做。
首先,你需要找出 USB 设备的 vendorID 和 productID。使用`lsusb`命令。
$ lsusb -vvv
![](https://farm1.staticflickr.com/731/20848677743_39f76eb403_c.jpg)
上面`lsusb`的输出中,找出你的 USB 设备,并找出"idVendor"和"idProduct"字段。本例中,我们的结果是`idVendor (0x067b)`和 `idProduct (0x2303)`
下面创建一个新的udev规则。
$ sudo vi /etc/udev/rules.d/50-myusb.rules
----------
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"
用你自己的"idVendor"和"idProduct"来替换。**MODE="0666"**表示USB设备的权限。
现在重启电脑并重新加载 udev 规则:
$ sudo udevadm control --reload
接着验证下 USB 设备的权限。
![](https://farm1.staticflickr.com/744/21282872179_9a4a05d768_b.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/change-usb-device-permission-linux.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni

View File

@ -0,0 +1,54 @@
Linux有问必答如何强制在下次登录Linux时更换密码
================================================================================
> **提问**我管理着一台多人共享的Linux服务器。我刚使用默认密码创建了一个新用户但是我想用户在第一次登录时更换密码。有没有什么方法可以让他/她在下次登录时修改密码呢?
在多用户Linux环境中标准实践是使用一个默认的随机密码创建一个用户账户。成功登录后新用户自己改变默认密码。出于安全考虑经常建议“强制”用户在第一次登录时修改密码来确保这个一次性使用的密码不会再被使用。
下面是**如何强制用户在下次登录时修改他/她的密码**。
每个Linux用户都关联这不同的密码相关配置和信息。比如记录着上次密码更改的日期、最小/最大的修改密码的天数、密码何时过期等等。
一个叫chage的命令行工具可以访问并调整密码过期相关配置。你可以使用这个工具来强制用户在下次登录修改密码、
要查看特定用户的过期信息比如alice运行下面的命令。注意的是除了你自己之外查看其他任何用户的密码信息都需要root权限。
$ sudo chage -l alice
![](https://c1.staticflickr.com/1/727/21955581605_5471e61ee0_c.jpg)
### 强制用户修改密码 ###
如果你想要强制用户去修改他/她的密码,使用下面的命令。
$ sudo chage -d0 <user-name>
原本“-d <N>”参数是用来设置密码的“年龄”也就是上次修改密码起到1970/1/1起的天数。因此“-d0”的意思是上次密码修改的时间是1970/1/1这就让当前的密码过期了也就强制让他在下次登录的时候修改密码了。
另外一个过期当前密码的方式是用passwd命令。
$ sudo passwd -e <user-name>
上面的命令和“chage -d0”作用一样让当前用户的密码立即过期。
现在检查用户的信息,你会发现:
![](https://c2.staticflickr.com/6/5770/21767501480_ba88f00d80_c.jpg)
当你再次登录时候,你会被要求修改密码。你会在修改前被要求再验证一次当前密码。
![](https://c2.staticflickr.com/6/5835/21929638636_eed4d69cb9_c.jpg)
要设置更全面的密码策略如密码复杂性防止重复使用则可以使用PAM。参见[这篇文章][1]了解更多详情。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/force-password-change-next-login-linux.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:http://xmodulo.com/set-password-policy-linux.html

View File

@ -0,0 +1,55 @@
Mytodo为 DIY 爱好者准备的待办事项管理软件
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Mytodo-Linux.jpg)
通常我关注的软件都是那些不用折腾并且易用的(对图形界面而言)。这就是我把 [Go For It][1] 待办事项程序归到 [Linux 产能工具][2] 列表的原因。今天,我要向你们展示另一款待办事项列表应用,和其它的待办事项软件有点不一样。
[Mytodo][3] 是个开源的待办事项列表程序让你能够掌管一切。与其它类似的程序不同的是Mytodo 更加面向 DIY 爱好者,因为它允许你配置服务器(如果你想在多台电脑上使用的话),除了主要的功能外还提供一个命令行界面。
它是用 Python 编写的,因此可以在所有 Linux 发行版以及其它操作系统,比如 Windows 上使用。
Mytodo 的一些主要特性:
- 同时拥有图形界面和命令行界面
- 配置你自己的服务器
- 添加用户/密码
- Python 编写
- 可根据标签搜索
- 待办事项可以在 [Conky][4] 显示
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Mytodo-list.jpeg)
*图形界面*
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Mytodo-list-cli.jpeg)
*命令行*
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Mytodo-list-conky.jpeg)
*Conky 显示着待办事项*
你可以在下面的 Github 链接里找到源码和配置介绍:
- [下载和配置 Mytodo ][5]
尽管有些人可能不大喜欢命令行和配置部分的内容,但它自然有它的乐趣所在。我建议你自己尝试一下,看看 Mytodo 是否符合我们的需求和口味。
图片致谢: https://pixabay.com/en/to-do-list-task-list-notes-written-734587
--------------------------------------------------------------------------------
via: http://itsfoss.com/mytodo-list-manager/
作者:[Abhishek][a]
译者:[alim0x](https://github.com/alim0x)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:http://itsfoss.com/go-for-it-to-do-app-in-linux/
[2]:https://linux.cn/article-6425-1.html
[3]:https://github.com/mohamed-aziz/mytodo
[4]:http://itsfoss.com/conky-gui-ubuntu-1304/
[5]:https://github.com/mohamed-aziz/mytodo

View File

@ -0,0 +1,78 @@
新的 RTL 协作组将加速实时 Linux 的发展
================================================================================
![](http://www.linux.com/images/stories/66866/Tux-150.png)
在本周的 Linux 大会活动LinuxCon上 Linux 基金会Linux Foundation[宣称][1]实时Linux操作系统项目RTLReal-Time Linux得到了新的资金支持并预期这将促进该项目使其自成立15年来第一次有机会在实时操作性上和其他的实时操作系统RTOSReal Time Operation System一较高下。Linux 基金会将 RTL 组重组为一个新的项目并命名为RTL协作组Real-Time Linux Collaborative Project该项目将获得更有力的资金支持更多的开发人员将投入其中并更加紧密地集成到 Linux 内核主线开发中。
根据 Linux 基金会的说法RTL 项目并入 Linux基金会旗下后“在研发方面将为业界节省数百万美元的费用。”同时此举也将“通过强有力的上游内核测试体系而改善本项目的代码质量”。
在过去的十几年中RTL 项目的开发管理和经费资助主要由[开源自动化开发实验室] [2]OSADLOpen Source Automation Development Lab承担OSADL 将继续作为新合作项目的金牌成员之一,但其原来承担的资金资助工作将会在一月份移交给 Linux 基金会。RTL 项目和 [OSADL][3] 长久以来一直负责维护[内核的实时抢占RT-Preempt 或 Preempt-RT][4]补丁,并定期将其更新到 Linux 内核的主线上。
据长期以来一直担任 OSADL 总经理的 Carsten Emde 博士介绍,支持内核实时特性的工作已经完成了将近 90。 “这就像盖房子,”他解释说。 “主要的部件如墙壁窗户和门都已经安装到位就实时内核来说类似的主要部件包括高精度定时器high-resolution timers中断线程化机制interrupt threads和优先级可继承的互斥量priority-inheritance mutexes等。然后所剩下的就是需要一些边边角角的工作就如同装修房子过程中还剩下铺设如地毯和墙纸等来完成最终的工程。”
以 Emde 观点来看,从技术的角度来说,实时 Linux 的性能已经可以媲美绝大多数其他的实时操作系统 - 但前提是你要不厌其烦地把所有的补丁都打上。 Emde 的原话如下“该项目LCTT 译注指RTL的唯一目标就是提供一个满足实时性要求的 Linux 系统,使其无论运行状况如何恶劣都可以保证在确定的、可以预先定义的时间期限内对外界处理做出响应。这个目标已经实现,但需要你手动地将 RTL 提供的补丁添加到 Linux 内核主线的版本代码上,但将来的不用打补丁的实时 Linux 内核也能实现这个目标。唯一的,当然也是最重要的区别就是相应的维护工作将少得多,因为我们再也不用一次又一次移植那些独立于内核主线的补丁代码了。”
新的 RTL 协作组将继续在 Thomas Gleixner 的指导下工作Thomas Gleixner 在过去的十多年里一直是 RTL 的核心维护人员。本周Gleixner 被任命为 Linux 基金会成员,并加入了一个特别的小组,小组成员包括 Linux 稳定内核维护者Greg Kroah-HartmanYocto 项目维护者 Richard Purdie 和 Linus Torvalds 本人。
据 Emde 介绍RTL 的第二维护人 Steven Rostedt 来自 Red Hat 公司,他负责“维护旧的,但尚保持维护的内核版本”,他将和同样来自 Red Hat 的 Ingo Molnàr 继续参与该项目Ingo 是 RTL 的关键开发人员但近年来更多地从事咨询方面的工作。有些令人惊讶的是Red Hat 竟然不是 RTL 协作组的成员之一。相反谷歌作为唯一的白金会员占据了头把交椅其他黄金会员包括国家仪器公司NINational InstrumentsOSADL 和德州仪器TI。银卡会员包括Altera 公司ARMIntel 和 IBM。
###走向实时内核的漫长道路###
当15年前 Linux 第一次出现在嵌入式设备上的时候它所面临的嵌入式计算市场已经被其他的实时操作系统譬如风河公司WindRiver的 VxWorks所牢牢占据。VxWorks 从那时起到现在,一直在为众多的工控设备、航空电子设备以及交通运输应用提供着工业级别的高确定性的,硬实时的内核。微软后来也提供了一个支持实时性的操作系统版本- Windows CE当时的 Linux 所面临的是来自潜在工业客户的公开嘲讽和层层阻力。他们认为那些从桌面系统改进来的 Linux 发行版本顶多适合要求不高的轻量级消费类电子产品,而不适合那些对硬实时要求更高的设备。
对于嵌入式 Linux 的先行者如 [MontaVista 公司][6]来说,其[早期的目标][5]很明确就是要改进 Linux 的实时能力。多年以来,对 Linux 的实时性能开发发展迅速,得到各种组织的支持,如[成立于2006年][7]的 OSADL以及实时 Linux 基金会RTLFReal-Time Linux Foundation。在2009年 [OSADL 与 RTLF 合并][8]OSADL 及其 RTL 组承担了所有的抢占式实时内核Preempt-RT补丁的维护工作和将补丁提交到上游内核主线的工作。除此之外 OSADL 还负责监管其他自动化相关的项目,例如[高可靠性 Linux][9](Safety Critical Linux译者注指研究如何在关键系统上可靠安全地运行Linux
OSADL 对 RTL 的支持经历了三个阶段拥护和推广测试和质量评估以及最后的资金支持。Emde 表示在早期OSADL 的角色仅限于写写推广的文章,制作专题报告,组织相关培训,以及“宣传” RTL 的优点。他说:“要让一个相当保守的工控行业接受象 Linux 之类的新技术及其基于社区的那种开发模式,首先就需要建立其对新事物的信任。从使用专有的实时操作系统转向改用 Linux 对公司意味着必须引入新的战略和流程,才能与社区进行互动。”
后来OSADL 改而提供技术性能数据,建立[质量评估和测试中心][10],并在和开源相关的法律事务问题和安全认证方面向行业成员提供帮助。
当 RTL 在实时性上变得愈加成熟的同时,相反地 Windows CE 却是江河日下,[其市场份额正在快速地被 RTL 所蚕食][11],一些与 RTL 竞争的实时 Linux 项目,主要是 [Xenomai][12] 也已开始集成 RTL。
“伴随 RTL 补丁的成功,以及明确的预期其最终会被完整集成到 Linux 内核主线代码中,导致 Xenomai 关注的重心发生了变化”Emde 说。 “Xenomai 3.0 可与 RT 补丁结合起来使用并提供了所谓的皮肤LCTT 译注:一个封装层),使我们可以复用为其他系统编写的代码。不过,它们还没有完全统一起来,因为 Xenomai 使用了双内核方法而RT 补丁只适用于单一的 Linux 内核。“
近些年来RTL 组的资助来源越来越少,所以最终 OSADL 接过了这个重任。Emde 说“当最近开发工作因缺少资金而陷入停滞时OSADL 对 RTL 的支持进入到第三个重大阶段:开始直接资助 Thomas Gleixner 的工作。”
正如 Emde 在其[10月5日的一篇博文][13]中所描述的那样,实时 Linux 的应用领域正在日益扩大由其原来主要服务的工业控制扩大到了汽车行业和电信业等领域这表明资助的来源也应该得到拓宽。Emde 原文写道:“仅仅靠来自工控行业的资金来支撑全部的工作是不合理的,因为电信等其他行业也在享用实时 Linux 内核。”
当 Linux 基金会表明有兴趣提供资金支持时OSADL 认为“单一的资助和控制渠道要有效得多”LCTT 译注指最终由Linux 基金会全盘接手了 RTL 项目Emde 如是说。不过他补充说作为黄金级成员OSADL 仍参与监管项目的工作,会继续从事其宣传和质量保证方面的活动。
###汽车行业期待 RTL 的崛起###
Emde 表示RTL 会继续在工业应用领域飞速发展并逐渐取代其他实时操作系统。而且他补充说RTL 在汽车行业发展也很迅猛,以后会扩大并应用到铁路和航空电子设备上。
的确Linux 在汽车行业将扮演越来越重要的角色,这也是 Linux 基金对 RTL 所寄予厚望的原因之所在。RTL 工作组可能会与 Linux 基金会旗下的[车载Linux][14](AGLAutomotive Grade Linux)工作组展开合作。Emde 猜测Google 高调参与的主要动因可能也是希望将 RTL 用于汽车控制。此外,德州仪器(TI)也非常期望将其 Jacinto 处理器应用于汽车行业。
面向车载 Linux 的项目比如AGL的目标是要扩大 Linux 在车载设备上的应用范围其应用不是仅限于车载信息娱乐IVIIn-Vehicle Infotainment而是要进入到譬如集群控制和车载通讯领域而这些领域目前主要使用的是 QNX 之类的实时操作系统。无人驾驶汽车在实时性上对操作系统也有很高的要求。
Emde 特别指出OSADL 的 [SIL2LinuxMP][15] 项目可能会在将 RTL 引入到汽车工业领域上扮演重要的角色。SIL2LinuxMP 并不是专门针对汽车工业的项目,但随着 BMW 公司参与其中,汽车行业成为其很重要的应用领域之一。该项目的目标在于验证 RTL 在采用单核或多核 CPU 的标准化商用COTSCommercial Off-The-Shelf板卡上运行所需的基本组件。它定义了引导程序、根文件系统、Linux 内核以及对应支持 RTL 的 C 库。
无人机和机器人使用实时 Linux 的时机也已成熟Xenomai 系统早已用在许多机器人以及一些无人机中。不过,在更广泛的嵌入式 Linux 世界包括了消费电子产品和物联网应用中RTL 可以扮演的角色很有限。主要的障碍在于,无线通信和互联网本身会带来延迟。
Emde 说:“目前实时 Linux 主要还是应用于系统内部控制以及系统与周边外设之间的控制,在远程控制机器上作用不大。企图通过互联网实现实时控制恐怕不是一件可行的事情。”
--------------------------------------------------------------------------------
via: http://www.linux.com/news/software/applications/858828-new-collaborative-group-to-speed-real-time-linux
作者:[Eric Brown][a]
译者:[unicornx](https://github.com/unicornx)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.linux.com/community/forums/person/42808
[1]:http://www.linuxfoundation.org/news-media/announcements/2015/10/linux-foundation-announces-project-advance-real-time-linux
[2]:http://archive.linuxgizmos.com/celebrating-the-open-source-automation-development-labs-first-birthday/
[3]:https://www.osadl.org/
[4]:http://linuxgizmos.com/adding-real-time-to-linux-with-preempt-rt/
[5]:http://archive.linuxgizmos.com/real-time-linux-what-is-it-why-do-you-want-it-how-do-you-do-it-a/
[6]:http://www.linux.com/news/embedded-mobile/mobile-linux/841651-embedded-linux-pioneer-montavista-spins-iot-linux-distribution
[7]:http://archive.linuxgizmos.com/industry-group-aims-linux-at-automation-apps/
[8]:http://archive.linuxgizmos.com/industrial-linux-groups-merge/
[9]:https://www.osadl.org/Safety-Critical-Linux.safety-critical-linux.0.html
[10]:http://www.osadl.org/QA-Farm-Realtime.qa-farm-about.0.html
[11]:http://www.linux.com/news/embedded-mobile/mobile-linux/818011-embedded-linux-keeps-growing-amid-iot-disruption-says-study
[12]:http://xenomai.org/
[13]:https://www.osadl.org/Single-View.111+M5dee6946dab.0.html
[14]:http://www.linux.com/news/embedded-mobile/mobile-linux/833358-first-open-automotive-grade-linux-spec-released
[15]:http://www.osadl.org/SIL2LinuxMP.sil2-linux-project.0.html

View File

@ -0,0 +1,149 @@
10 个 Linux 中的 passwd 命令示例
================================================================================
正如 **passwd** 命令的名称所示,其用于改变系统用户的密码。如果 passwd 命令由非 root 用户执行,那么它会询问当前用户的密码,然后设置调用该命令的用户的新密码。当此命令由超级用户 root 执行的话,就可以重新设置任何用户的密码,包括不知道当前密码的用户。
在这篇文章中,我们将用实例来介绍 passwd 命令。
#### 语法 : ####
# passwd {options} {user_name}
可以在 passwd 命令使用不同的选项,列表如下:
![](http://www.linuxtechi.com/wp-content/uploads/2015/09/passwd-command-options.jpg)
### 例1更改系统用户的密码 ###
当你使用非 root 用户登录时,比如我使用 linuxtechi 登录的情况下,运行 passwd 命令它会重置当前登录用户的密码。
[linuxtechi@linuxworld ~]$ passwd
Changing password for user linuxtechi.
Changing password for linuxtechi.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[linuxtechi@linuxworld ~]$
当你作为 root 用户登录后并运行 **passwd** 命令时,它默认情况下会重新设置 root 的密码,如果你在 passwd 命令后指定了用户名,它会重置该用户的密码。
[root@linuxworld ~]# passwd
[root@linuxworld ~]# passwd linuxtechi
![](http://www.linuxtechi.com/wp-content/uploads/2015/09/passwd-command.jpg)
**注意** : 系统用户的密码以加密的形式保存在 /etc/shadow 文件中。
### 例2显示密码状态信息 ###
要显示用户密码的状态信息,请在 passwd 命令后使用 **-S** 选项。
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
在上面的输出中,第一个字段显示的用户名,第二个字段显示密码状态(**PS = 密码设置LK = 密码锁定NP = 无密码**),第三个字段显示了上次修改密码的时间,后面四个字段分别显示了密码能更改的最小期限和最大期限,警告期限和没有使用该口令的时长。
### 例3显示所有账号的密码状态信息 ###
为了显示所有用户密码的状态信息需要使用 “**-aS**”选项在passwd 命令中,示例如下所示:
root@localhost:~# passwd -Sa
![](http://www.linuxtechi.com/wp-content/uploads/2015/09/passwd-sa.jpg)
LCTT译注不同发行版/passwd 的行为不同。CentOS6.6 没有测试成功,但 Ubuntu 可以。)
### 例4使用 -d 选项删除用户的密码 ###
用我做例子,删除 **linuxtechi** 用户的密码。
[root@linuxworld ~]# passwd -d linuxtechi
Removing password for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi NP 2015-09-20 0 99999 7 -1 (Empty password.)
[root@linuxworld ~]#
“**-d**” 选项将清空用户密码,并禁用用户登录。
### 例5设置密码立即过期 ###
在 passwd 命令中使用 '-e' 选项会立即使用户的密码过期,这将强制用户在下次登录时更改密码。
[root@linuxworld ~]# passwd -e linuxtechi
Expiring password for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 1970-01-01 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
现在尝试用 linuxtechi 用户 SSH 连接到主机。
![](http://www.linuxtechi.com/wp-content/uploads/2015/09/passwd-expiry.jpg)
### 例6锁定系统用户的密码 ###
在 passwd 命令中使用 **-l** 选项能锁定用户的密码,它会在密码的起始位置加上“!”。当他/她的密码被锁定时,用户将不能更改它的密码。
[root@linuxworld ~]# passwd -l linuxtechi
Locking password for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi LK 2015-09-20 0 99999 7 -1 (Password locked.)
[root@linuxworld ~]#
### 例7使用 -u 选项解锁用户密码 ###
[root@linuxworld ~]# passwd -u linuxtechi
Unlocking password for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
### 例8使用 -i 选项设置非活动时间 ###
在 passwd 命令中使用 -i 选项用于设系统用户的非活动时间。当用户我使用的是linuxtechi用户密码过期后用户再经过 **n** 天后在我的情况下是10天没有更改其密码用户将不能登录。
[root@linuxworld ~]# passwd -i 10 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]#
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 0 99999 7 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
### 例9使用 -n 选项设置密码更改的最短时间 ###
在下面的例子中linuxtechi用户必须在90天内更改密码。0表示用户可以在任何时候更改它的密码。
[root@linuxworld ~]# passwd -n 90 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 90 99999 7 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
### 例10使用 -w 选项设置密码过期前的警告期限 ###
**-w** 选项在 passwd 命令中用于设置用户的警告期限。这意味着n天之后他/她的密码将过期。
[root@linuxworld ~]# passwd -w 12 linuxtechi
Adjusting aging data for user linuxtechi.
passwd: Success
[root@linuxworld ~]# passwd -S linuxtechi
linuxtechi PS 2015-09-20 90 99999 12 10 (Password set, SHA512 crypt.)
[root@linuxworld ~]#
--------------------------------------------------------------------------------
via: http://www.linuxtechi.com/10-passwd-command-examples-in-linux/
作者:[Pradeep Kumar][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.linuxtechi.com/author/pradeep/

View File

@ -0,0 +1,259 @@
Linux 中 df 命令的11个例子
================================================================================
df 即“可用磁盘”disk free用于显示文件系统的磁盘使用情况。默认情况下 df 命令将以每块 1K 的单位进行显示所有当前已挂载的文件系统,如果你想以人类易读的格式显示 df 命令的输出像这样“df -h”使用 -h 选项。
在这篇文章中,我们将讨论 `df` 命令在 Linux 下11种不同的实例。
在 Linux 下 df 命令的基本格式为:
# df {options} {mount_point_of_filesystem}
在 df 命令中可用的选项有:
![](http://www.linuxtechi.com/wp-content/uploads/2015/10/df-command-options.jpg)
df 的样例输出 :
[root@linux-world ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg00-root 17003304 804668 15311852 5% /
devtmpfs 771876 0 771876 0% /dev
tmpfs 777928 0 777928 0% /dev/shm
tmpfs 777928 8532 769396 2% /run
tmpfs 777928 0 777928 0% /sys/fs/cgroup
/dev/mapper/vg00-home 14987616 41000 14162232 1% /home
/dev/sda1 487652 62593 395363 14% /boot
/dev/mapper/vg00-var 9948012 48692 9370936 1% /var
/dev/mapper/vg00-sap 14987656 37636 14165636 1% /sap
[root@linux-world ~]#
### 例1使用 -a 选项列出所有文件系统的磁盘使用量 ###
当我们在 df 命令中使用 `-a` 选项时,它会显示所有文件系统的磁盘使用情况。
[root@linux-world ~]# df -a
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 17003304 804668 15311852 5% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
devtmpfs 771876 0 771876 0% /dev
securityfs 0 0 0 - /sys/kernel/security
tmpfs 777928 0 777928 0% /dev/shm
devpts 0 0 0 - /dev/pts
tmpfs 777928 8532 769396 2% /run
tmpfs 777928 0 777928 0% /sys/fs/cgroup
cgroup 0 0 0 - /sys/fs/cgroup/systemd
pstore 0 0 0 - /sys/fs/pstore
cgroup 0 0 0 - /sys/fs/cgroup/cpuset
cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct
cgroup 0 0 0 - /sys/fs/cgroup/memory
cgroup 0 0 0 - /sys/fs/cgroup/devices
cgroup 0 0 0 - /sys/fs/cgroup/freezer
cgroup 0 0 0 - /sys/fs/cgroup/net_cls
cgroup 0 0 0 - /sys/fs/cgroup/blkio
cgroup 0 0 0 - /sys/fs/cgroup/perf_event
cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
configfs 0 0 0 - /sys/kernel/config
/dev/mapper/vg00-root 17003304 804668 15311852 5% /
selinuxfs 0 0 0 - /sys/fs/selinux
systemd-1 0 0 0 - /proc/sys/fs/binfmt_misc
debugfs 0 0 0 - /sys/kernel/debug
hugetlbfs 0 0 0 - /dev/hugepages
mqueue 0 0 0 - /dev/mqueue
/dev/mapper/vg00-home 14987616 41000 14162232 1% /home
/dev/sda1 487652 62593 395363 14% /boot
/dev/mapper/vg00-var 9948012 48692 9370936 1% /var
/dev/mapper/vg00-sap 14987656 37636 14165636 1% /sap
[root@linux-world ~]#
### 例2以人类易读的格式显示 df 命令的输出 ###
在 df 命令中使用`-h`选项以人类易读的格式输出例如5K500M 及 5G
[root@linux-world ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-root 17G 786M 15G 5% /
devtmpfs 754M 0 754M 0% /dev
tmpfs 760M 0 760M 0% /dev/shm
tmpfs 760M 8.4M 752M 2% /run
tmpfs 760M 0 760M 0% /sys/fs/cgroup
/dev/mapper/vg00-home 15G 41M 14G 1% /home
/dev/sda1 477M 62M 387M 14% /boot
/dev/mapper/vg00-var 9.5G 48M 9.0G 1% /var
/dev/mapper/vg00-sap 15G 37M 14G 1% /sap
[root@linux-world ~]#
### 例3显示特定文件系统已使用的空间 ###
假如我们想显示 /sap 文件系统空间的使用情况。
[root@linux-world ~]# df -h /sap/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-sap 15G 37M 14G 1% /sap
[root@linux-world ~]#
### 例4输出所有已挂载文件系统的类型 ###
`-T` 选项用在 df 命令中用来显示文件系统的类型。
[root@linux-world ~]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg00-root ext4 17003304 804668 15311852 5% /
devtmpfs devtmpfs 771876 0 771876 0% /dev
tmpfs tmpfs 777928 0 777928 0% /dev/shm
tmpfs tmpfs 777928 8532 769396 2% /run
tmpfs tmpfs 777928 0 777928 0% /sys/fs/cgroup
/dev/mapper/vg00-home ext4 14987616 41000 14162232 1% /home
/dev/sda1 ext3 487652 62593 395363 14% /boot
/dev/mapper/vg00-var ext3 9948012 48696 9370932 1% /var
/dev/mapper/vg00-sap ext3 14987656 37636 14165636 1% /sap
[root@linux-world ~]#
### 例5按块大小输出文件系统磁盘使用情况 ###
[root@linux-world ~]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg00-root 17003304 804668 15311852 5% /
devtmpfs 771876 0 771876 0% /dev
tmpfs 777928 0 777928 0% /dev/shm
tmpfs 777928 8532 769396 2% /run
tmpfs 777928 0 777928 0% /sys/fs/cgroup
/dev/mapper/vg00-home 14987616 41000 14162232 1% /home
/dev/sda1 487652 62593 395363 14% /boot
/dev/mapper/vg00-var 9948012 48696 9370932 1% /var
/dev/mapper/vg00-sap 14987656 37636 14165636 1% /sap
[root@linux-world ~]#
### 例6输出文件系统的 inode 信息 ###
`-i` 选项用在 df 命令用于显示文件系统的 inode 信息。
所有文件系统的 inode 信息:
[root@linux-world ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg00-root 1089536 22031 1067505 3% /
devtmpfs 192969 357 192612 1% /dev
tmpfs 194482 1 194481 1% /dev/shm
tmpfs 194482 420 194062 1% /run
tmpfs 194482 13 194469 1% /sys/fs/cgroup
/dev/mapper/vg00-home 960992 15 960977 1% /home
/dev/sda1 128016 337 127679 1% /boot
/dev/mapper/vg00-var 640848 1235 639613 1% /var
/dev/mapper/vg00-sap 960992 11 960981 1% /sap
[root@linux-world ~]#
特定文件系统的 inode 信息:
[root@linux-world ~]# df -i /sap/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg00-sap 960992 11 960981 1% /sap
[root@linux-world ~]#
### 例7输出所有文件系统使用情况汇总 ###
`-total` 选项在 df 命令中用于显示所有文件系统的磁盘使用情况汇总。
[root@linux-world ~]# df -h --total
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-root 17G 786M 15G 5% /
devtmpfs 754M 0 754M 0% /dev
tmpfs 760M 0 760M 0% /dev/shm
tmpfs 760M 8.4M 752M 2% /run
tmpfs 760M 0 760M 0% /sys/fs/cgroup
/dev/mapper/vg00-home 15G 41M 14G 1% /home
/dev/sda1 477M 62M 387M 14% /boot
/dev/mapper/vg00-var 9.5G 48M 9.0G 1% /var
/dev/mapper/vg00-sap 15G 37M 14G 1% /sap
total 58G 980M 54G 2% -
[root@linux-world ~]#
### 例8只打印本地文件系统磁盘的使用情况 ###
假设网络文件系统也挂载在 Linux 上,但我们只想显示本地文件系统的信息,这可以通过使用 df 命令的 `-l` 选项来实现。
![](http://www.linuxtechi.com/wp-content/uploads/2015/10/nfs4-fs-mount.jpg)
只打印本地文件系统:
[root@linux-world ~]# df -Thl
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg00-root ext4 17G 791M 15G 6% /
devtmpfs devtmpfs 754M 0 754M 0% /dev
tmpfs tmpfs 760M 0 760M 0% /dev/shm
tmpfs tmpfs 760M 8.4M 752M 2% /run
tmpfs tmpfs 760M 0 760M 0% /sys/fs/cgroup
/dev/mapper/vg00-home ext4 15G 41M 14G 1% /home
/dev/sda1 ext3 477M 62M 387M 14% /boot
/dev/mapper/vg00-var ext3 9.5G 105M 8.9G 2% /var
/dev/mapper/vg00-sap ext3 15G 37M 14G 1% /sap
[root@linux-world ~]#
### 例9打印特定文件系统类型的磁盘使用情况 ###
`-t` 选项在 df 命令中用来打印特定文件系统类型的信息,用 `-t` 指定文件系统的类型,如下所示:
对于 ext4 :
[root@linux-world ~]# df -t ext4
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg00-root 17003304 809492 15307028 6% /
/dev/mapper/vg00-home 14987616 41000 14162232 1% /home
[root@linux-world ~]#
对于 nfs4 :
[root@linux-world ~]# df -t nfs4
Filesystem 1K-blocks Used Available Use% Mounted on
192.168.1.5:/opensuse 301545472 266833920 19371008 94% /data
[root@linux-world ~]#
### 例10使用 -x 选项排除特定的文件系统类型 ###
`-x``exclude-type` 在 df 命令中用来在输出中排出某些文件系统类型。
假设我们想打印除 ext3 外所有的文件系统。
[root@linux-world ~]# df -x ext3
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg00-root 17003304 809492 15307028 6% /
devtmpfs 771876 0 771876 0% /dev
tmpfs 777928 0 777928 0% /dev/shm
tmpfs 777928 8540 769388 2% /run
tmpfs 777928 0 777928 0% /sys/fs/cgroup
/dev/mapper/vg00-home 14987616 41000 14162232 1% /home
192.168.1.5:/opensuse 301545472 266834944 19369984 94% /data
[root@linux-world ~]#
### 例11在 df 命令的输出中只打印特定的字段 ###
`-output={field_name1,field_name2...}` 选项用于显示 df 命令某些字段的输出。
可用的字段名有: `source`, `fstype`, `itotal`, `iused`, `iavail`, `ipcent`, `size`, `used`, `avail`, `pcent``target`
[root@linux-world ~]# df --output=fstype,size,iused
Type 1K-blocks IUsed
ext4 17003304 22275
devtmpfs 771876 357
tmpfs 777928 1
tmpfs 777928 423
tmpfs 777928 13
ext4 14987616 15
ext3 487652 337
ext3 9948012 1373
ext3 14987656 11
nfs4 301545472 451099
[root@linux-world ~]#
--------------------------------------------------------------------------------
via: http://www.linuxtechi.com/11-df-command-examples-in-linux/
作者:[Pradeep Kumar][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.linuxtechi.com/author/pradeep/

View File

@ -0,0 +1,39 @@
如何在 64 位 Ubuntu 15.10 中编译最新版 32 位 Wine
================================================================================
Wine 发布了最新的1.7.53版本。此版本带来的大量性能提升,包括**XAudio****Direct3D**代码清理,改善**OLE对象嵌入**技术,更好的** Web Services dll**的实现,还有其他大量更新。
![](http://www.tuxarena.com/wp-content/uploads/2015/10/wine1753a.jpg)
虽然有一个官方 [Wine][1] PPA但目前只提供1.7.44版本,所以安装最新版本可以从源码编译安装。
[下载源码包][2][直接下载地址在此][3])并解压 `tar -xf wine-1.7.53`。然后,安装如下依赖。
sudo apt-get install build-essential gcc-multilib libx11-dev:i386 libfreetype6-dev:i386 libxcursor-dev:i386 libxi-dev:i386 libxshmfence-dev:i386 libxxf86vm-dev:i386 libxrandr-dev:i386 libxinerama-dev:i386 libxcomposite-dev:i386 libglu1-mesa-dev:i386 libosmesa6-dev:i386 libpcap0.8-dev:i386 libdbus-1-dev:i386 libncurses5-dev:i386 libsane-dev:i386 libv4l-dev:i386 libgphoto2-dev:i386 liblcms2-dev:i386 gstreamer0.10-plugins-base:i386 libcapi20-dev:i386 libcups2-dev:i386 libfontconfig1-dev:i386 libgsm1-dev:i386 libtiff5-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libldap2-dev:i386 libgnutls-dev:i386 libjpeg-dev:i386
现在切换到 wine-1.7.53 解压后的文件夹,并输入:
./configure
make
sudo make install
同样地,你也可以给配置脚本指定 prefix 参数。以普通用户安装 wine
./configure --prefix=$HOME/usr/bin
make
make install
这种情况下Wine 将会安装在`$HOME/usr/bin/wine`,所以请检查`$HOME/usr/bin`在你的`PATH`变量中。
--------------------------------------------------------------------------------
via: http://www.tuxarena.com/2015/10/how-to-compile-latest-wine-32-bit-on-64-bit-ubuntu-15-10/
作者Craciun Dan
译者:[VicYu/Vic020](http://vicyu.net)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[1]:https://launchpad.net/~ubuntu-wine/+archive/ubuntu/ppa
[2]:https://www.winehq.org/announce/1.7.53
[3]:http://prdownloads.sourceforge.net/wine/wine-1.7.53.tar.bz2

View File

@ -0,0 +1,83 @@
LibreOffice 这五年2010-2015
================================================================================
youtube 视频
<iframe width="660" height="371" src="https://www.youtube.com/embed/plo8kP_ts-8?feature=oembed" frameborder="0" allowfullscreen></iframe>
[LibreOffice][1]来自文档基金会The Document Foundation一个自由开源的令人惊叹的办公套件。LO LibreOffice在2010年9月28日由 [OpenOffice.org][2] 分支出来;而 OOo OpenOffice.org则是早期的 [StarOffice][3] 开源版本。LibreOffice 支持文字处理,创建与编辑电子表格,幻灯片,图表和图形,数据库,数学公式的创建和编辑等。
### 核心应用: ###
- **Writer** 文字处理器
- **Calc** 电子表格应用程序,类似于 Excel
- **Impress** 应用演示,支持 Microsoft PowerPoint 的格式
- **Draw** 矢量图形编辑器
- **Math** 用于编写和​​编辑数学公式的特殊应用
- **Base** 数据库管理
![LibreOffice 3.3, 2011](https://github.com/paulcarroty/Articles/raw/master/LO_History/3.3/Help-License-Info.png)
*LibreOffice 3.3, 2011*
这是LibreOffice 的第一个版本 - 分支自 OpenOffice.org
![LibreOffice 3.4](https://github.com/paulcarroty/Articles/raw/master/LO_History/3.4/1cc80d1cada204a061402785b2048f7clibreoffice-3.4.3.png)
*LibreOffice 3.4*
![LibreOffice 3.5](https://raw.githubusercontent.com/paulcarroty/Articles/master/LO_History/3.5/libreoffice35-large_001.jpg)
*LibreOffice 3.5*
![LibreOffice 3.6](https://github.com/paulcarroty/Articles/raw/master/LO_History/3.6/libreoffice-3.6.0.png)
*LibreOffice 3.6*
![Libre Office 4.0](https://github.com/paulcarroty/Articles/raw/master/LO_History/4.0/libreoffice-writer.png)
*LibreOffice 4.0*
![Libre Office 4.1](https://github.com/paulcarroty/Articles/raw/master/LO_History/4.1/Writer1.png)
*LibreOffice 4.1*
![Libre Office 4.2](https://github.com/paulcarroty/Articles/raw/master/LO_History/4.2/libreoffice-4.2.png)
*Libre Office 4.2*
![LibreOffice 4.3](https://github.com/paulcarroty/Articles/raw/master/LO_History/4.3/libreoffice.jpg)
*LibreOffice 4.3*
![LibreOffice 4.4](https://github.com/paulcarroty/Articles/raw/master/LO_History/4.4/LibreOffice_Writer_4_4_2.png)
*LibreOffice 4.4*
![Libre Office 5.0](https://github.com/paulcarroty/Articles/raw/master/LO_History/5.0/LibreOffice_Writer_5.0.png)
*LibreOffice 5.0*
### Libre Office 的发展,出自 Wikipedia ###
![StarOffice major derivatives](https://commons.wikimedia.org/wiki/File%3AStarOffice_major_derivatives.svg)
### LibreOffice 5.0 预览 ###
youtube 视频
<iframe width="660" height="371" src="https://www.youtube.com/embed/BVdofVqarAc?feature=oembed" frameborder="0" allowfullscreen></iframe>
--------------------------------------------------------------------------------
via: https://tlhp.cf/libreoffice-5years-evolution/
作者:[Pavlo Rudyi][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://tlhp.cf/author/paul/
[1]:http://www.libreoffice.org/
[2]:https://www.openoffice.org/
[3]:http://www.staroffice.org/

View File

@ -0,0 +1,299 @@
Linux 的历史24 年,一步一个脚印
================================================================================
youtube 视频
<iframe width="660" height="371" src="https://www.youtube.com/embed/84cHeoEebJM?feature=oembed" frameborder="0" allowfullscreen></iframe>
### 史前 ###
没有 [C 编程语言][1] 和 [GNU 项目][2] 构成 Linux 环境,也就不可能有 Linux 的成功。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/00-1.jpg)
*Ken Thompson 和 Dennis Ritchie*
[Ken Thompson][1] 和 [Dennis Ritchie][2] 在 1969-1970 创造了 Unix 操作系统。之后发布了新的 [C 编程语言][3],它是一种高级的、可移植的编程语言。 Linux 内核用 C 和一些汇编代码写成。
![Richard Matthew Stallman](https://github.com/paulcarroty/Articles/raw/master/Linux_24/00-2.jpg)
*Richard Matthew Stallman*
[Richard Matthew Stallman][4] 在 1984 年启动了 [GNU 项目][5]。最大的一个目标 - 完全自由的类-Unix 操作系统。
### 1991 元年 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1991-1.jpg)
*Linus Torvalds, 1991*
[Linus Torvalds][5] 在芬兰赫尔辛基开始了 Linux 内核开发,他是为他的硬件 - Intel 30386 CPU 编写的程序。他也使用 Minix 和 GNU C 编译器。下面是 Linus Torvalds 给 Minix 新闻组的历史消息:
> From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
> Newsgroups: comp.os.minix
> Subject: What would you like to see most in minix?
> Summary: small poll for my new operating system
> Message-ID:
> Date: 25 Aug 91 20:57:08 GMT
> Organization: University of Helsinki
>
>
> Hello everybody out there using minix -
>
> I'm doing a (free) operating system (just a hobby, won't be big and
> professional like gnu) for 386(486) AT clones. This has been brewing
> since april, and is starting to get ready. I'd like any feedback on
> things people like/dislike in minix, as my OS resembles it somewhat
> (same physical layout of the file-system (due to practical reasons)
> among other things).
>
> I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
> This implies that I'll get something practical within a few months, and
> I'd like to know what features most people would want. Any suggestions
> are welcome, but I won't promise I'll implement them :-)
>
> Linus (torvalds@kruuna.helsinki.fi)
从此之后Linux 开始得到了世界范围志愿者和专业专家的支持。Linus 的同事 Ari Lemmke 把它命名为 “Linux” - 这其实是他们的大学 ftp 服务器上的项目目录名称。
### 1992 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1992-1.jpg)
在 GPLv2 协议下发布了 0.12 版 Linux 内核。
### 1993 ###
![Slackware 1.0 ](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1993-1.png)
Slackware 首次发布LCTT 译注Slackware Linux 是一个高度技术性的、干净的发行版,只有少量非常有限的个人设置) 最早的 Linux 发行版,其领导者 Patrick Volkerding 也是最早的。其时Linux 内核有 100 多个开发者。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1993-2.png)
*Debian*
Debian 最大的 Linux 社区之一也创立于 1991 年。
### 1994 ###
Linux 1.0 发布了,多亏了 XFree 86 项目,第一次有了 GUI。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1994-1.png)
*Red Hat Linux*
发布了 Red Hat Linux 1.0
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1994-2.png)
*S.u.S.E Linux*
和 [S.u.S.E. Linux][6] 1.0。
### 1995 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1995-1.png)
*Red Hat Inc.*
Bob Young 和 Marc Ewing 合并他们的本地业务为 [Red Hat Software][7]。Linux 移植到了很多硬件平台。
### 1996 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1996-1.png)
*Tux*
企鹅 Tux 是 Linux 官方吉祥物Linus Torvalds 参观了堪培拉国家动物园和水族馆之后有了这个想法。发布了 Linux 2.0,支持对称多处理器。开始开发 KDE。
### 1997 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1997-1.jpg)
*Miguel de Icaza*
Miguel de Icaza 和 Federico Mena 开始开发 GNOME - 自由桌面环境和应用程序。Linus Torvalds 赢得了 Linux 商标冲突官司Linux 成为了 Linus Torvalds 的注册商标。
### 1998 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1998-1.jpg)
*大教堂和集市*
Eric S. Raymond 出版了文章 [The Cathedral and the Bazaar大教堂和集市][8] - 高度推荐阅读。Linux 得到了大公司的支持: IBM、Oracle、康柏。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1998-2.png)
*Mandrake Linux*
Mandrake Linux 首次发布 - 基于红帽 Linux 的发行版,带有 KDE 桌面环境。
### 1999 ###
![](https://upload.wikimedia.org/wikipedia/commons/4/4f/KDE_1.1.jpg)
第一个主要的 KDE 版本。
### 2000 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2000-1.jpg)
Dell 支持 Linux - 这是第一个支持的大硬件供应商。
### 2001 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2001-1.jpg)
*Revolution OS*
纪录片 “Revolution OS操作系统革命” - GNU、Linux、开源、自由软件的 20 年历史,以及对 Linux 和开源界顶级黑客的采访。
### 2002 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2002-1.jpg)
*BitKeeper*
Linux 开始使用 BitKeeper这是一种商业版的分布式版本控制软件。
### 2003 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2003-1.png)
*SUSE*
Novell 用 2.1 亿美元购买了 SUSE Linux AG。同年 SCO 集团 也开始了同 IBM 以及 Linux 社区关于 Unix 版权的艰难的法律诉讼。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2003-2.png)
*Fedora*
红帽和 Linux 社区首次发布了 Fedora Linux。
### 2004 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2004-1.png)
*X.ORG 基金会*
XFree86 解散了并加入到 [X.Org 基金会][9] X 的开发更快了。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2004-2.jpg)
Ubuntu 4.10 Ubuntu 首次发布
### 2005 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2005-1.png)
*openSUSE*
[openSUSE][10] 开始了,这是企业版 Novells OS 的免费版本。OpenOffice.org 开始支持 OpenDocument 标准。
### 2006 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2006-1.png)
一个新的 Linux 发行版,基于红帽企业版 Linux 的 Oracle Linux。微软和 Novell 开始在 IT 和专利保护方面进行合作。
### 2007 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2007-1.jpg)
*Dell Linux 笔记本*
Dell 发布了第一个预装 Linux 的笔记本。
### 2008 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2008-1.jpg)
*KDE 4.0*
KDE 4 发布了,但是不稳定,很多用户开始迁移到 GNOME。
### 2009 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2009-1.jpg)
*Red Hat*
红帽 Linux 取得了成功 - 市值达 26亿2千万美元。
2009 年微软在 GPLv2 协议下向 Linux 内核提交了第一个补丁。
### 2010 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2010-1.png)
*Novell -> Attachmate*
Novell 已 22亿美元卖给了 Attachmate Group, Inc。SUSE 和 Novell 成为了新公司的两款独立的产品。
[systemd][11] 首次发布,开始了 Linux 系统的革命。
### 2011 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2011-1.png)
*Unity 桌面2011*
Ubuntu Unity 发布,遭到很多用户的批评。
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2011-2.png)
*GNOME 3.02011*
GNOME 3.0 发布, Linus Torvalds 评论为 “unholy mess” 有很多负面评论。Linux 内核 3.0 发布。
### 2012 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2012-1.png)
*1500 万行代码*
Linux 内核达到 1500 万行代码。微软成为主要贡献者之一。
### 2013 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2013-1.png)
Kali Linux 1.0 发布, 用于渗透测试和数字取证,基于 Debian 的 Linux 发行版。2014 年 CentOS 及其代码开发者加入到了红帽公司。
### 2014 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2014-1.jpg)
*Lennart Poettering 和 Kay Sievers*
systemd 成为 Ubuntu 和所有主流 Linux 发行版的默认初始化程序。Ubuntu 有 2200 万用户。安卓的大进步 - 占了所有移动设备的 75% 份额。
### 2015 ###
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2015-1.jpg)
发布了 Linux 4.0。Mandriva 公司清算,但还有很多分支,其中最流行的一个是 Mageia。
带着对 Linux 的热爱而执笔。
--------------------------------------------------------------------------------
via: https://tlhp.cf/linux-history/
作者:[Pavlo Rudyi][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://tlhp.cf/author/paul/
[1]:https://en.wikipedia.org/wiki/C_(programming_language)
[2]:https://en.wikipedia.org/wiki/GNU_Project
[3]:https://en.wikipedia.org/wiki/Ken_Thompson
[4]:https://en.wikipedia.org/wiki/Dennis_Ritchie
[5]:https://en.wikipedia.org/wiki/Linus_Torvalds
[6]:https://en.wikipedia.org/wiki/SUSE_Linux_distributions
[7]:https://en.wikipedia.org/wiki/Red_Hat
[8]:https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar
[9]:http://www.x.org/
[10]:https://en.opensuse.org/Main_Page
[11]:https://en.wikipedia.org/wiki/Systemd

View File

@ -0,0 +1,101 @@
UNIX 家族小史
================================================================================
![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/05/linux-712x445.png)
要记住,当一扇门在你面前关闭的时候,另一扇门就会打开。肯·汤普森([Ken Thompson][1] 和丹尼斯·里奇([Dennis Richie][2] 两个人就是这句名言很好的实例。他们俩是**20世纪**最优秀的信息技术专家之二,因为他们创造了最具影响力和创新性的软件之一: **UNIX**
### UNIX 系统诞生于贝尔实验室 ###
**UNIX** 最开始的名字是 **UNICS** (**UN**iplexed **I**nformation and **C**omputing **S**ervice)它有一个大家庭并不是从石头缝里蹦出来的。UNIX的祖父是 **CTSS** (**C**ompatible **T**ime **S**haring **S**ystem),它的父亲是 **Multics** (**MULT**iplexed **I**nformation and **C**omputing **S**ervice)这个系统能支持大量用户通过交互式分时timesharing的方式使用大型机。
UNIX 诞生于 **1969** 年,由**肯·汤普森**以及后来加入的**丹尼斯·里奇**共同完成。这两位优秀的研究员和科学家在一个**通用电器 GE**和**麻省理工学院**的合作项目里工作,项目目标是开发一个叫 Multics 的交互式分时系统。
Multics 的目标是整合分时技术以及当时其他先进技术,允许用户在远程终端通过电话(拨号)登录到主机,然后可以编辑文档,阅读电子邮件,运行计算器,等等。
在之后的五年里AT&T 公司为 Multics 项目投入了数百万美元。他们购买了 GE-645 大型机,聚集了贝尔实验室的顶级研究人员,例如肯·汤普森、 Stuart Feldman、丹尼斯·里奇、道格拉斯·麦克罗伊M. Douglas McIlroy、 Joseph F. Ossanna 以及 Robert Morris。但是项目目标太过激进进度严重滞后。最后AT&T 高层决定放弃这个项目。
贝尔实验室的管理层决定停止这个让许多研究人员无比纠结的操作系统上的所有遗留工作。不过要感谢汤普森,里奇和一些其他研究员,他们把老板的命令丢到一边,并继续在实验室里满怀热心地忘我工作,最终孵化出前无古人后无来者的 UNIX。
UNIX 的第一声啼哭是在一台 PDP-7 微型机上,它是汤普森测试自己在操作系统设计上的点子的机器,也是汤普森和 里奇一起玩 Space and Travel 游戏的模拟器。
> “我们想要的不仅是一个优秀的编程环境,而是能围绕这个系统形成团体。按我们自己的经验,通过远程访问和分时主机实现的公共计算,本质上不只是用终端输入程序代替打孔机而已,而是鼓励密切沟通。”丹尼斯·里奇说。
UNIX 是第一个靠近理想的系统,在这里程序员可以坐在机器前自由摆弄程序,探索各种可能性并随手测试。在 UNIX 整个生命周期里,它吸引了大量因其他操作系统限制而投身过来的高手做出无私贡献,因此它的功能模型一直保持上升趋势。
UNIX 在 1970 年因为 PDP-11/20 获得了首次资金注入,之后正式更名为 UNIX 并支持在 PDP-11/20 上运行。UNIX 带来的第一次用于实际场景中是在 1971 年,贝尔实验室的专利部门配备来做文字处理。
### UNIX 上的 C 语言革命 ###
丹尼斯·里奇在 1972 年发明了一种叫 “**C**” 的高级编程语言 ,之后他和肯·汤普森决定用 “C” 重写 UNIX 系统,来支持更好的移植性。他们在那一年里编写和调试了差不多 100,000 行代码。在迁移到 “C” 语言后,系统可移植性非常好,只需要修改一小部分机器相关的代码就可以将 UNIX 移植到其他计算机平台上。
UNIX 第一次公开露面是 1973 年丹尼斯·里奇和肯·汤普森在操作系统原理Operating Systems Principles上发表的一篇论文然后 AT&T 发布了 UNIX 系统第 5 版,并授权给教育机构使用,之后在 1975 年第一次以 **$20.000** 的价格授权企业使用 UNIX 第 6 版。应用最广泛的是 1980 年发布的 UNIX 第 7 版,任何人都可以购买授权,只是授权条款非常严格。授权内容包括源代码,以及用 PDP-11 汇编语言写的及其相关内核。反正,各种版本 UNIX 系统完全由它的用户手册确定。
### AIX 系统 ###
**1983** 年,**微软**计划开发 **Xenix** 作为 MS-DOS 的多用户版继任者,他们在那一年花了 $8,000 搭建了一台拥有 **512 KB** 内存以及 **10 MB**硬盘并运行 Xenix 的 Altos 586。而到 1984 年为止,全世界 UNIX System V 第二版的安装数量已经超过了 100,000 。在 1986 年发布了包含因特网域名服务的 4.3BSD,而且 **IBM** 宣布 **AIX 系统**的安装数已经超过 250,000。AIX 基于 Unix System V 开发,这套系统拥有 BSD 风格的根文件系统,是两者的结合。
AIX 第一次引入了 **日志文件系统 (JFS)** 以及集成逻辑卷管理器 (Logical Volume Manager LVM)。IBM 在 1989 年将 AIX 移植到自己的 RS/6000 平台。2001 年发布的 5L 版是一个突破性的版本,提供了 Linux 友好性以及支持 Power4 服务器的逻辑分区。
在 2004 年发布的 AIX 5.3 引入了支持高级电源虚拟化( Advanced Power VirtualizationAPV的虚拟化技术支持对称多线程、微分区以及共享处理器池。
在 2007 年IBM 同时发布 AIX 6.1 和 Power6 架构,开始加强自己的虚拟化产品。他们还将高级电源虚拟化重新包装成 PowerVM。
这次改进包括被称为 WPARs 的负载分区形式,类似于 Solaris 的 zones/Containers但是功能更强。
### HP-UX 系统 ###
**惠普 UNIX (Hewlett-Packards UNIXHP-UX)** 源于 System V 第 3 版。这套系统一开始只支持 PA-RISC HP 9000 平台。HP-UX 第 1 版发布于 1984 年。
HP-UX 第 9 版引入了 SAM一个基于字符的图形用户界面 (GUI),用户可以用来管理整个系统。在 1995 年发布的第 10 版,调整了系统文件分布以及目录结构,变得有点类似 AT&T SVR4。
第 11 版发布于 1997 年。这是 HP 第一个支持 64 位寻址的版本。不过在 2000 年重新发布成 11i因为 HP 为特定的信息技术用途引入了操作环境operating environments和分级应用layered applications的捆绑组bundled groups
在 2001 年发布的 11.20 版宣称支持安腾Itanium系统。HP-UX 是第一个使用 ACLs访问控制列表Access Control Lists管理文件权限的 UNIX 系统也是首先支持内建逻辑卷管理器Logical Volume Manager的系统之一。
如今HP-UX 因为 HP 和 Veritas 的合作关系使用了 Veritas 作为主文件系统。
HP-UX 目前的最新版本是 11iv3, update 4。
### Solaris 系统 ###
Sun 的 UNIX 版本是 **Solaris**,用来接替 1992 年创建的 **SunOS**。SunOS 一开始基于 BSD伯克利软件发行版Berkeley Software Distribution风格的 UNIX但是 SunOS 5.0 版以及之后的版本都是基于重新包装为 Solaris 的 Unix System V 第 4 版。
SunOS 1.0 版于 1983 年发布,用于支持 Sun-1 和 Sun-2 平台。随后在 1985 年发布了 2.0 版。在 1987 年Sun 和 AT&T 宣布合作一个项目以 SVR4 为基础将 System V 和 BSD 合并成一个版本。
Solaris 2.4 是 Sun 发布的第一个 Sparc/x86 版本。1994 年 11 月份发布的 SunOS 4.1.4 版是最后一个版本。Solaris 7 是首个 64 位 Ultra Sparc 版本,加入了对文件系统元数据记录的原生支持。
Solaris 9 发布于 2002 年,支持 Linux 特性以及 Solaris 卷管理器Solaris Volume Manager。之后2005 年发布了 Solaris 10带来许多创新比如支持 Solaris Containers新的 ZFS 文件系统以及逻辑域Logical Domains
目前 Solaris 最新的版本是 第 10 版,最后的更新发布于 2008 年。
### Linux ###
到了 1991 年用来替代商业操作系统的自由free操作系统的需求日渐高涨。因此**Linus Torvalds** 开始构建一个自由的操作系统,最终成为 **Linux**。Linux 最开始只有一些 “C” 文件并且使用了阻止商业发行的授权。Linux 是一个类 UNIX 系统但又不尽相同。
2015 年发布了基于 GNU Public License GPL授权的 3.18 版。IBM 声称有超过 1800 万行开源代码开源给开发者。
如今 GNU Public License 是应用最广泛的自由软件授权方式。根据开源软件原则,这份授权允许个人和企业自由分发、运行、通过拷贝共享、学习,以及修改软件源码。
### UNIX vs. Linux技术概要 ###
- Linux 鼓励多样性Linux 的开发人员来自各种背景,有更多不同经验和意见。
- Linux 比 UNIX 支持更多的平台和架构。
- UNIX 商业版本的开发人员针对特定目标平台以及用户设计他们的操作系统。
- **Linux 比 UNIX 有更好的安全性**更少受病毒或恶意软件攻击。截止到现在Linux 上大约有 60-100 种病毒但是没有任何一种还在传播。另一方面UNIX 上大约有 85-120 种病毒,但是其中有一些还在传播中。
- 由于 UNIX 命令、工具和元素很少改变,甚至很多接口和命令行参数在后续 UNIX 版本中一直沿用。
- 有些 Linux 开发项目以自愿为基础进行资助,比如 Debian。其他项目会维护一个和商业 Linux 的社区版,比如 SUSE 的 openSUSE 以及红帽的 Fedora。
- 传统 UNIX 是纵向扩展,而另一方面 Linux 是横向扩展。
--------------------------------------------------------------------------------
via: http://www.unixmen.com/brief-history-aix-hp-ux-solaris-bsd-linux/
作者:[M.el Khamlichi][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.unixmen.com/author/pirat9/
[1]:http://www.unixmen.com/ken-thompson-unix-systems-father/
[2]:http://www.unixmen.com/dennis-m-ritchie-father-c-programming-language/

View File

@ -1,41 +1,41 @@
学习数据结构与算法分析如何帮助您成为更优秀的开发人员?
学习数据结构与算法分析如何帮助您成为更优秀的开发人员
================================================================================
> "相较于其它方式我一直热衷于推崇围绕数据设计代码我想这也是Git能够如此成功的一大原因[…]在我看来,区别程序员优劣的一大标准就在于他是否认为自己设计的代码数据结构更为重要。"
> "相较于其它方式我一直热衷于推崇围绕数据设计代码我想这也是Git能够如此成功的一大原因[…]在我看来,区别程序员优劣的一大标准就在于他是否认为自己设计的代码还是数据结构更为重要。"
-- Linus Torvalds
---
> "优秀的数据结构与简陋的代码组合远比倒过来的组合方式更好。"
> "优秀的数据结构与简陋的代码组合远比反之的组合更好。"
-- Eric S. Raymond, The Cathedral and The Bazaar
学习数据结构与算法分析会让您成为一名出色的程序员。
**数据结构与算法分析是一种解决问题的思维模式** 在您的个人知识库中,数据结构与算法分析的相关知识储备越多,您将具备应对并解决越多各类繁杂问题的能力。掌握了这种思维模式,您还将有能力针对新问题提出更多以前想不到的漂亮的解决方案。
**数据结构与算法分析是一种解决问题的思维模式** 在您的个人知识库中,数据结构与算法分析的相关知识储备越多,您将越多具备应对并解决各类繁杂问题的能力。掌握了这种思维模式,您还将有能力针对新问题提出更多以前想不到的漂亮的解决方案。
您将***更深入地***了解,计算机如何完成各项操作。无论您是否是直接使用给定的算法它都影响着您作出的各种技术决定。从计算机操作系统的内存分配到RDBMS的内在工作机制以及网络堆栈如何实现将数据从地球的一个角落发送至另一个角落这些大大小小的工作的完成,都离不开基础的数据结构与算法,理解并掌握它将会让您更了解计算机的运作机理。
您将*更深入地*了解,计算机如何完成各项操作。无论您是否是直接使用给定的算法它都影响着您作出的各种技术决定。从计算机操作系统的内存分配到RDBMS的内在工作机制以及网络协议如何实现将数据从地球的一个角落发送至另一个角落这些大大小小的工作的完成,都离不开基础的数据结构与算法,理解并掌握它将会让您更了解计算机的运作机理。
对算法广泛深入的学习能为您应对大体系的问题储备解决方案。之前建模困难时遇到的问题如今通常都能融合进经典的数据结构中得到很好地解决。即使是最基础的数据结构,只要对它进行足够深入的钻研,您将会发现在每天的编程任务中都能经常用到这些知识。
对算法广泛深入的学习能为您储备解决方案来应对大体系的问题。之前建模困难时遇到的问题如今通常都能融合进经典的数据结构中得到很好地解决。即使是最基础的数据结构,只要对它进行足够深入的钻研,您将会发现在每天的编程任务中都能经常用到这些知识。
有了这种思维模式,在遇到磨棱两可的问题时,您会具备想出新的解决方案的能力。即使最初并没有打算用数据结构与算法解决相应问题的情况,当真正用它们解决这些问题时您会发现它们将非常有用。要意识到这一点,您至少要对数据结构与算法分析的基础知识有深入直观的认识。
有了这种思维模式,在遇到磨棱两可的问题时,您将能够想出新奇的解决方案。即使最初并没有打算用数据结构与算法解决相应问题的情况,当真正用它们解决这些问题时您会发现它们将非常有用。要意识到这一点,您至少要对数据结构与算法分析的基础知识有深入直观的认识。
理论认识就讲到这里,让我们一起看看下面几个例子。
###最短路径问题###
我们想要开发一个计算从一个国际机场出发到另一个国际机场的最短距离的软件。假设我们受限于以下路线:
我们想要开发一个软件来计算从一个国际机场出发到另一个国际机场的最短距离。假设我们受限于以下路线:
![](http://www.happybearsoftware.com/assets/posts/how-learning-data-structures-and-algorithms-makes-you-a-better-developer/airport-graph-d2e32b3344b708383e405d67a80c29ea.svg)
从这张画出机场各自之间的距离以及目的地的图中,我们如何才能找到最短距离,比方说从赫尔辛基到伦敦?**Dijkstra算法**是能让我们在最短的时间得到正确答案的适用算法。
从这张画出机场各自之间的距离以及目的地的图中,我们如何才能找到最短距离,比方说从赫尔辛基到伦敦?**[Dijkstra算法][3]**是能让我们在最短的时间得到正确答案的适用算法。
在所有可能的解法中如果您曾经遇到过这类问题知道可以用Dijkstra算法求解您大可不必从零开始实现它只需***知道***该算法能指向固定的代码库帮助您解决相关的实现问题。
在所有可能的解法中如果您曾经遇到过这类问题知道可以用Dijkstra算法求解您大可不必从零开始实现它只需***知道***该算法的代码库帮助您解决相关的实现问题。
实现了该算法您将深入理解一项著名的重要图论算法。您会发现实际上该算法太集成化因此名为A*的扩展包经常会代替该算法使用。这个算法应用广泛,从机器人指引的功能实现到TCP数据包路由以及GPS寻径问题都能应用到这个算法。
如果你深入到该算法的实现中,您将深入理解一项著名的重要图论算法。您会发现实际上该算法比较消耗资源,因此名为[A*][4]的扩展经常用于代替该算法。这个算法应用广泛,从机器人寻路的功能实现到TCP数据包路由以及GPS寻径问题都能应用到这个算法。
###先后排序问题###
您想要在开放式在线课程平台上(如Udemy或Khan学院)学习某课程,有些课程之间彼此依赖。例如,用户学习牛顿力学机制课程前必须先修微积分课程课程之间可以有多种依赖关系。用YAML表述举例如下
您想要在开放式在线课程MOOCMassive Open Online Courses平台上(如Udemy或Khan学院)学习某课程,有些课程之间彼此依赖。例如,用户学习牛顿力学Newtonian Mechanics课程前必须先修微积分Calculus课程课程之间可以有多种依赖关系。用YAML表述举例如下
# Mapping from course name to requirements
#
@ -54,16 +54,16 @@
astrophysics: [radioactivity, calculus]
quantumn_mechanics: [atomic_physics, radioactivity, calculus]
鉴于以上这些依赖关系,作为一名用户,我希望系统能帮我列出必修课列表,让我在之后可以选择任意一门课程学习。如果我选择了`微积分`课程,我希望系统能返回以下列表:
鉴于以上这些依赖关系,作为一名用户,我希望系统能帮我列出必修课列表,让我在之后可以选择任意一门课程学习。如果我选择了微积分calculus课程,我希望系统能返回以下列表:
arithmetic -> algebra -> trigonometry -> calculus
这里有两个潜在的重要约束条件:
- 返回的必修课列表中,每门课都与下一门课存在依赖关系
- 必修课列表中不能有重复项
- 我们不希望列表中有任何重复课程
这是解决数据间依赖关系的例子,解决该问题的排序算法称作拓扑排序算法(tsort)。它适用于解决上述我们用YAML列出的依赖关系图的情况以下是在图中显示的相关结果(其中箭头代表`需要先修的课程`):
这是解决数据间依赖关系的例子,解决该问题的排序算法称作拓扑排序算法(tsorttopological sort)。它适用于解决上述我们用YAML列出的依赖关系图的情况以下是在图中显示的相关结果(其中箭头代表`需要先修的课程`):
![](http://www.happybearsoftware.com/assets/posts/how-learning-data-structures-and-algorithms-makes-you-a-better-developer/course-graph-2f60f42bb0dc95319954ce34c02705a2.svg)
@ -79,16 +79,17 @@
这符合我们上面描述的需求,用户只需选出`radioactivity`,就能得到在此之前所有必修课程的有序列表。
在运用该排序算法之前,我们甚至不需要深入了解算法的实现细节。一般来说,选择不同的编程语言在其标准库中都会有相应的算法实现。即使最坏的情况Unix也会默认安装`tsort`程序,运行`tsort`程序,您就可以实现该算法
在运用该排序算法之前,我们甚至不需要深入了解算法的实现细节。一般来说,你可能选择的各种编程语言在其标准库中都会有相应的算法实现。即使最坏的情况Unix也会默认安装`tsort`程序,运行`man tsort` 来了解该程序。
###其它拓扑排序适用场合###
- **工具** 使用诸如`make`的工具您可以声明任务之间的依赖关系,这里拓扑排序算法将从底层实现具有依赖关系的任务顺序执行的功能。
- **有`require`指令的编程语言**,适用于要运行当前文件需先运行另一个文件的情况。这里拓扑排序用于识别文件运行顺序以保证每个文件只加载一次,且满足所有文件间的依赖关系要求。
- **包含甘特图的项目管理工具**.甘特图能直观列出给定任务的所有依赖关系,在这些依赖关系之上能提供给用户任务完成的预估时间。我不常用到甘特图,但这些绘制甘特图的工具很可能会用到拓扑排序算法。
- **类似`make`的工具** 可以让您声明任务之间的依赖关系,这里拓扑排序算法将从底层实现具有依赖关系的任务顺序执行的功能。
- **有`require`指令的编程语言**适用于要运行当前文件需先运行另一个文件的情况。这里拓扑排序用于识别文件运行顺序以保证每个文件只加载一次,且满足所有文件间的依赖关系要求。
- **带有甘特图的项目管理工具**。甘特图能直观列出给定任务的所有依赖关系,在这些依赖关系之上能提供给用户任务完成的预估时间。我不常用到甘特图,但这些绘制甘特图的工具很可能会用到拓扑排序算法。
###霍夫曼编码实现数据压缩###
[霍夫曼编码](http://en.wikipedia.org/wiki/Huffman_coding)是一种用于无损数据压缩的编码算法。它的工作原理是先分析要压缩的数据,再为每个字符创建一个二进制编码。字符出现的越频繁,编码赋值越小。因此在一个数据集中`e`可能会编码为`111`,而`x`会编码为`10010`。创建了这种编码模式,就可以串联无定界符,也能正确地进行解码。
[霍夫曼编码][5]Huffman coding是一种用于无损数据压缩的编码算法。它的工作原理是先分析要压缩的数据再为每个字符创建一个二进制编码。字符出现的越频繁编码赋值越小。因此在一个数据集中`e`可能会编码为`111`,而`x`会编码为`10010`。创建了这种编码模式,就可以串联无定界符,也能正确地进行解码。
在gzip中使用的DEFLATE算法就结合了霍夫曼编码与LZ77一同用于实现数据压缩功能。gzip应用领域很广特别适用于文件压缩(以`.gz`为扩展名的文件)以及用于数据传输中的http请求与应答。
@ -96,10 +97,11 @@
- 您会理解为什么较大的压缩文件会获得较好的整体压缩效果(如压缩的越多,压缩率也越高)。这也是SPDY协议得以推崇的原因之一在复杂的HTTP请求/响应过程数据有更好的压缩效果。
- 您会了解数据传输过程中如果想要压缩JavaScript/CSS文件运行压缩软件是完全没有意义的。PNG文件也是类似因为它们已经使用DEFLATE算法完成了压缩。
- 如果您试图强行破译加密的信息,您可能会发现重复数据压缩质量越好给定的密文单位bit的数据压缩将帮助您确定相关的[分组密码模式](http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation).
- 如果您试图强行破译加密的信息,您可能会发现由于重复数据压缩质量更好,密文给定位的数据压缩率将帮助您确定相关的[分组密码工作模式][6]block cipher mode of operation.)。
###下一步选择学习什么是困难的###
作为一名程序员应当做好持续学习的准备。为成为一名web开发人员您需要了解标记语言以及Ruby/Python正则表达式SQLJavaScript等高级编程语言还需要了解HTTP的工作原理如何运行UNIX终端以及面向对象的编程艺术。您很难有效地预览到未来的职业全景因此选择下一步要学习哪些知识是困难的。
作为一名程序员应当做好持续学习的准备。为了成为一名web开发人员您需要了解标记语言以及Ruby/Python、正则表达式、SQL、JavaScript等高级编程语言还需要了解HTTP的工作原理如何运行UNIX终端以及面向对象的编程艺术。您很难有效地预览到未来的职业全景因此选择下一步要学习哪些知识是困难的。
我没有快速学习的能力因此我不得不在时间花费上非常谨慎。我希望尽可能地学习到有持久生命力的技能即不会在几年内就过时的技术。这意味着我也会犹豫这周是要学习JavaScript框架还是那些新的编程语言。
@ -111,13 +113,14 @@ via: http://www.happybearsoftware.com/how-learning-data-structures-and-algorithm
作者:[Happy Bear][a]
译者:[icybreaker](https://github.com/icybreaker)
校对:[校对者ID](https://github.com/校对者ID)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.happybearsoftware.com/
[1]:http://en.wikipedia.org/wiki/Huffman_coding
[2]:http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
[3]:http://en.wikipedia.org/wiki/Dijkstra's_algorithm
[4]:http://en.wikipedia.org/wiki/A*_search_algorithm
[5]:http://en.wikipedia.org/wiki/Huffman_coding
[6]:http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

View File

@ -0,0 +1,88 @@
那些奇特的 Linux 发行版本
================================================================================
从大多数消费者所关注的诸如 UbuntuFedoraMint 或 elementary OS 到更加复杂、轻量级和企业级的诸如 SlackwareArch Linux 或 RHEL这些发行版本我都已经见识过了。除了这些难道没有其他别的了吗其实 Linux 的生态系统是非常多样化的,对每个人来说,总有一款适合你。下面就让我们讨论一些稀奇古怪的小众 Linux 发行版本吧,它们代表着开源平台真正的多样性。
### Puppy Linux
![strangest linux distros](http://2.bp.blogspot.com/--cSL2-6rIgA/VcwNc5hFebI/AAAAAAAAJzk/AgB55mVtJVQ/s1600/Puppy-Linux.png)
它是一个仅有一个普通 DVD 光盘容量十分之一大小的操作系统,这就是 Puppy Linux。整个操作系统仅有 100MB 大小!并且它还可以从内存中运行,这使得它运行极快,即便是在老式的 PC 机上。 在操作系统启动后,你甚至可以移除启动介质!还有什么比这个更好的吗? 系统所需的资源极小,大多数的硬件都会被自动检测到,并且它预装了能够满足你基本需求的软件。[在这里体验 Puppy Linux 吧][1].
### Suicide Linux(自杀 Linux)
![suicide linux](http://3.bp.blogspot.com/-dfeehRIQKpo/VdMgRVQqIJI/AAAAAAAAJz0/TmBs-n2K9J8/s1600/suicide-linux.jpg)
这个名字吓到你了吗?我想应该是。 ‘任何时候 -注意是任何时候-一旦你远程输入不正确的命令,解释器都会创造性地将它重定向为 `rm -rf /` 命令,然后擦除你的硬盘’。它就是这么简单。我真的很想知道谁自信到将[Suicide Linux][2] 安装到生产机上。 **警告:千万不要在生产机上尝试这个!** 假如你感兴趣的话,现在可以通过一个简洁的[DEB 包][3]来获取到它。
### PapyrOS
![top 10 strangest linux distros](http://3.bp.blogspot.com/-Q0hlEMCD9-o/VdMieAiXY1I/AAAAAAAAJ0M/iS_ZjVaZAk8/s1600/papyros.png)
它的 “奇怪”是好的方面。PapyrOS 正尝试着将 Android 的 material design 设计语言引入到新的 Linux 发行版本上。尽管这个项目还处于早期阶段,看起来它已经很有前景。该项目的网页上说该系统已经完成了 80%,随后人们可以期待它的第一个 Alpha 发行版本。在该项目被宣告提出时,我们做了 [PapyrOS][4] 的小幅报道,从它的外观上看,它甚至可能会引领潮流。假如你感兴趣的话,可在 [Google+][5] 上关注该项目并可通过 [BountySource][6] 来贡献出你的力量。
### Qubes OS
![10 most unique linux distros](http://3.bp.blogspot.com/-8aOtnTp3Yxk/VdMo_KWs4sI/AAAAAAAAJ0o/3NTqhaw60jM/s1600/qubes-linux.png)
Qubes 是一个开源的操作系统,其设计通过使用[安全分级Security by Compartmentalization][14]的方法,来提供强安全性。其前提假设是不存在完美的没有 bug 的桌面环境。并通过实现一个安全隔离Security by Isolation 的方法,[Qubes Linux][7]试图去解决这些问题。Qubes 基于 Xen、X 视窗系统和 Linux并可运行大多数的 Linux 应用,支持大多数的 Linux 驱动。Qubes 入选了 Access Innovation Prize 2014 for Endpoint Security Solution 决赛名单。
### Ubuntu Satanic Edition
![top10 linux distros](http://3.bp.blogspot.com/-2Sqvb_lilC0/VdMq_ceoXnI/AAAAAAAAJ00/kot20ugVJFk/s1600/ubuntu-satanic.jpg)
Ubuntu SE 是一个基于 Ubuntu 的发行版本。通过一个含有主题、壁纸甚至来源于某些天才新晋艺术家的重金属音乐的综合软件包,“它同时带来了最好的自由软件和免费的金属音乐” 。尽管这个项目看起来不再积极开发了, Ubuntu Satanic Edition 甚至在其名字上都显得奇异。 [Ubuntu SE (Slightly NSFW)][8]。
### Tiny Core Linux
![10 strange linux distros](http://2.bp.blogspot.com/-ZtIVjGMqdx0/VdMv136Pz1I/AAAAAAAAJ1E/-q34j-TXyUY/s1600/tiny-core-linux.png)
Puppy Linux 还不够小?试试这个吧。 Tiny Core Linux 是一个 12MB 大小的图形化 Linux 桌面!是的,你没有看错。一个主要的补充说明:它不是一个完整的桌面,也并不完全支持所有的硬件。它只含有能够启动进入一个非常小巧的 X 桌面,支持有线网络连接的核心部件。它甚至还有一个名为 Micro Core Linux 的没有 GUI 的版本,仅有 9MB 大小。[Tiny Core Linux][9]。
### NixOS
![top 10 unique and special linux distros](http://4.bp.blogspot.com/-idmCvIxtxeo/VdcqcggBk1I/AAAAAAAAJ1U/DTQCkiLqlLk/s1600/nixos.png)
它是一个资深用户所关注的 Linux 发行版本,有着独特的打包和配置管理方式。在其他的发行版本中,诸如升级的操作可能是非常危险的。升级一个软件包可能会引起其他包无法使用,而升级整个系统感觉还不如重新安装一个。在那些你不能安全地测试由一个配置的改变所带来的结果的更改之上,它们通常没有“重来”这个选项。在 NixOS 中,整个系统由 Nix 包管理器按照一个纯功能性的构建语言的描述来构建。这意味着构建一个新的配置并不会重写先前的配置。大多数其他的特色功能也遵循着这个模式。Nix 相互隔离地存储所有的软件包。有关 NixOS 的更多内容请看[这里][10]。
### GoboLinux
![strangest linux distros](http://4.bp.blogspot.com/-rOYfBXg-UiU/VddCF7w_xuI/AAAAAAAAJ1w/Nf11bOheOwM/s1600/gobolinux.jpg)
这是另一个非常奇特的 Linux 发行版本。它与其他系统如此不同的原因是它有着独特的重新整理的文件系统。它有着自己独特的子目录树其中存储着所有的文件和程序。GoboLinux 没有专门的包数据库,因为其文件系统就是它的数据库。在某些方面,这类重整有些类似于 OS X 上所看到的功能。
### Hannah Montana Linux
![strangest linux distros](http://1.bp.blogspot.com/-3P22pYfih6Y/VdcucPOv4LI/AAAAAAAAJ1g/PszZDbe83sQ/s1600/hannah-montana-linux.jpg)
它是一个基于 Kubuntu 的 Linux 发行版本,它有着汉娜·蒙塔娜( Hannah Montana 主题的开机启动界面、KDM(KDE Display Manager)、图标集、ksplash、plasma、颜色主题和壁纸(I'm so sorry)。[这是它的链接][12]。这个项目现在不再活跃了。
### RLSD Linux
它是一个极其精简、小巧、轻量和安全可靠的,基于 Linux 文本的操作系统。开发者称 “它是一个独特的发行版本,提供一系列的控制台应用和自带的安全特性,对黑客或许有吸引力。” [RLSD Linux][13].
我们还错过了某些更加奇特的发行版本吗?请让我们知晓吧。
--------------------------------------------------------------------------------
via: http://www.techdrivein.com/2015/08/the-strangest-most-unique-linux-distros.html
作者Manuel Jose
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[1]:http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm
[2]:http://qntm.org/suicide
[3]:http://sourceforge.net/projects/suicide-linux/files/
[4]:http://www.techdrivein.com/2015/02/papyros-material-design-linux-coming-soon.html
[5]:https://plus.google.com/communities/109966288908859324845/stream/3262a3d3-0797-4344-bbe0-56c3adaacb69
[6]:https://www.bountysource.com/teams/papyros
[7]:https://www.qubes-os.org/
[8]:http://ubuntusatanic.org/
[9]:http://tinycorelinux.net/
[10]:https://nixos.org/
[11]:http://www.gobolinux.org/
[12]:http://hannahmontana.sourceforge.net/
[13]:http://rlsd2.dimakrasner.com/
[14]:https://en.wikipedia.org/wiki/Compartmentalization_(information_security)

View File

@ -0,0 +1,165 @@
如何在 Linux 上从 NetworkManager 切换为 systemd-network
================================================================================
在 Linux 世界里,对 [systemd][1] 的采用一直是激烈争论的主题,它的支持者和反对者之间的战火仍然在燃烧。到了今天,大部分主流 Linux 发行版都已经采用了 systemd 作为默认的初始化init系统。
正如其作者所说,作为一个 “从未完成、从未完善、但一直追随技术进步” 的系统systemd 已经不只是一个初始化进程,它被设计为一个更广泛的系统以及服务管理平台,这个平台是一个包含了不断增长的核心系统进程、库和工具的生态系统。
**systemd** 的其中一部分是 **systemd-networkd**,它负责 systemd 生态中的网络配置。使用 systemd-networkd你可以为网络设备配置基础的 DHCP/静态 IP 网络。它还可以配置虚拟网络功能,例如网桥、隧道和 VLAN。systemd-networkd 目前还不能直接支持无线网络,但你可以使用 wpa_supplicant 服务配置无线适配器,然后把它和 **systemd-networkd** 联系起来。
在很多 Linux 发行版中NetworkManager 仍然作为默认的网络配置管理器。和 NetworkManager 相比,**systemd-networkd** 仍处于积极的开发状态,还缺少一些功能。例如,它还不能像 NetworkManager 那样能让你的计算机在任何时候通过多种接口保持连接。它还没有为更高层面的脚本编程提供 ifup/ifdown 钩子函数。但是systemd-networkd 和其它 systemd 组件(例如用于域名解析的 **resolved**、NTP 的**timesyncd**,用于命名的 udevd结合的非常好。随着时间增长**systemd-networkd**只会在 systemd 环境中扮演越来越重要的角色。
如果你对 **systemd-networkd** 的进步感到高兴,从 NetworkManager 切换到 systemd-networkd 是值得你考虑的一件事。如果你强烈反对 systemd对 NetworkManager 或[基础网络服务][2]感到很满意,那也很好。
但对于那些想尝试 systemd-networkd 的人,可以继续看下去,在这篇指南中学会在 Linux 中怎么从 NetworkManager 切换到 systemd-networkd。
### 需求 ###
systemd 210 及其更高版本提供了 systemd-networkd。因此诸如 Debian 8 "Jessie" (systemd 215)、 Fedora 21 (systemd 217)、 Ubuntu 15.04 (systemd 219) 或更高版本的 Linux 发行版和 systemd-networkd 兼容。
对于其它发行版,在开始下一步之前先检查一下你的 systemd 版本。
$ systemctl --version
### 从 NetworkManager 切换到 Systemd-networkd ###
从 NetworkManager 切换到 systemd-networkd 其实非常简答(反过来也一样)。
首先,按照下面这样先停用 NetworkManager 服务,然后启用 systemd-networkd。
$ sudo systemctl disable NetworkManager
$ sudo systemctl enable systemd-networkd
你还要启用 **systemd-resolved** 服务systemd-networkd用它来进行域名解析。该服务还实现了一个缓存式 DNS 服务器。
$ sudo systemctl enable systemd-resolved
$ sudo systemctl start systemd-resolved
当启动后,**systemd-resolved** 就会在 /run/systemd 目录下某个地方创建它自己的 resolv.conf。但是把 DNS 解析信息存放在 /etc/resolv.conf 是更普遍的做法,很多应用程序也会依赖于 /etc/resolv.conf。因此为了兼容性按照下面的方式创建一个到 /etc/resolv.conf 的符号链接。
$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
### 用 systemd-networkd 配置网络连接 ###
要用 systemd-networkd 配置网络服务,你必须指定带.network 扩展名的配置信息文本文件。这些网络配置文件保存到 /etc/systemd/network 并从这里加载。当有多个文件时systemd-networkd 会按照字母顺序一个个加载并处理。
首先创建 /etc/systemd/network 目录。
$ sudo mkdir /etc/systemd/network
#### DHCP 网络 ####
首先来配置 DHCP 网络。对于此,先要创建下面的配置文件。文件名可以任意,但记住文件是按照字母顺序处理的。
$ sudo vi /etc/systemd/network/20-dhcp.network
----------
[Match]
Name=enp3*
[Network]
DHCP=yes
正如你上面看到的,每个网络配置文件包括了一个或多个 “sections”每个 “section”都用 [XXX] 开头。每个 section 包括了一个或多个键值对。`[Match]` 部分决定这个配置文件配置哪个(些)网络设备。例如,这个文件匹配所有名称以 ens3 开头的网络设备(例如 enp3s0、 enp3s1、 enp3s2 等等)对于匹配的接口,然后启用 [Network] 部分指定的 DHCP 网络配置。
### 静态 IP 网络 ###
如果你想给网络设备分配一个静态 IP 地址,那就新建下面的配置文件。
$ sudo vi /etc/systemd/network/10-static-enp3s0.network
----------
[Match]
Name=enp3s0
[Network]
Address=192.168.10.50/24
Gateway=192.168.10.1
DNS=8.8.8.8
正如你猜测的, enp3s0 接口地址会被指定为 192.168.10.50/24默认网关是 192.168.10.1 DNS 服务器是 8.8.8.8。这里微妙的一点是,接口名 enp3s0 事实上也匹配了之前 DHCP 配置中定义的模式规则。但是,根据词汇顺序,文件 "10-static-enp3s0.network" 在 "20-dhcp.network" 之前被处理,对于 enp3s0 接口静态配置比 DHCP 配置有更高的优先级。
一旦你完成了创建配置文件,重启 systemd-networkd 服务或者重启机器。
$ sudo systemctl restart systemd-networkd
运行以下命令检查服务状态:
$ systemctl status systemd-networkd
$ systemctl status systemd-resolved
![](https://farm1.staticflickr.com/719/21010813392_76abe123ed_c.jpg)
### 用 systemd-networkd 配置虚拟网络设备 ###
**systemd-networkd** 同样允许你配置虚拟网络设备例如网桥、VLAN、隧道、VXLAN、绑定等。你必须在用 .netdev 作为扩展名的文件中配置这些虚拟设备。
这里我展示了如何配置一个桥接接口。
#### Linux 网桥 ####
如果你想创建一个 Linux 网桥(br0) 并把物理接口(eth1) 添加到网桥,你可以新建下面的配置。
$ sudo vi /etc/systemd/network/bridge-br0.netdev
----------
[NetDev]
Name=br0
Kind=bridge
然后按照下面这样用 .network 文件配置网桥接口 br0 和从接口 eth1。
$ sudo vi /etc/systemd/network/bridge-br0-slave.network
----------
[Match]
Name=eth1
[Network]
Bridge=br0
----------
$ sudo vi /etc/systemd/network/bridge-br0.network
----------
[Match]
Name=br0
[Network]
Address=192.168.10.100/24
Gateway=192.168.10.1
DNS=8.8.8.8
最后,重启 systemd-networkd。
$ sudo systemctl restart systemd-networkd
你可以用 [brctl 工具][3] 来验证是否创建好了网桥 br0。
### 总结 ###
当 systemd 誓言成为 Linux 的系统管理器时,有类似 systemd-networkd 的东西来管理网络配置也就不足为奇。但是在现阶段systemd-networkd 看起来更适合于网络配置相对稳定的服务器环境。对于桌面/笔记本环境,它们有多种临时有线/无线接口NetworkManager 仍然是比较好的选择。
对于想进一步了解 systemd-networkd 的人,可以参考官方[man 手册][4]了解完整的支持列表和关键点。
--------------------------------------------------------------------------------
via: http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html
作者:[Dan Nanni][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://xmodulo.com/use-systemd-system-administration-debian.html
[2]:http://xmodulo.com/disable-network-manager-linux.html
[3]:http://xmodulo.com/how-to-configure-linux-bridge-interface.html
[4]:http://www.freedesktop.org/software/systemd/man/systemd.network.html

View File

@ -0,0 +1,427 @@
超神们15 位健在的世界级程序员!
================================================================================
当开发人员说起世界顶级程序员时,他们的名字往往会被提及。
好像现在程序员有很多,其中不乏有许多优秀的程序员。但是哪些程序员更好呢?
虽然这很难客观评价不过在这个话题确实是开发者们津津乐道的。ITworld 深入程序员社区,避开四溅的争执口水,试图找出可能存在的所谓共识。事实证明,屈指可数的某些名字经常是讨论的焦点。
![](http://images.techhive.com/images/article/2015/09/superman-620x465-100611650-orig.jpg)
*图片来源: [tom_bullock CC BY 2.0][1]*
下面就让我们来看看这些世界顶级的程序员吧!
### 玛格丽特·汉密尔顿Margaret Hamilton ###
![](http://images.techhive.com/images/article/2015/09/margaret_hamilton-620x465-100611764-orig.jpg)
*图片来源: [NASA][2]*
**成就: 阿波罗飞行控制软件背后的大脑**
生平: 查尔斯·斯塔克·德雷珀实验室Charles Stark Draper Laboratory软件工程部的主任以她为首的团队负责设计和打造 NASA 的阿波罗的舰载飞行控制器软件和空间实验室Skylab的任务。基于阿波罗这段的工作经历她又后续开发了[通用系统语言Universal Systems Language][5]和[开发先于事实( Development Before the Fact][6]的范例。开创了[异步软件、优先调度和超可靠的软件设计][7]理念。被认为发明了“[软件工程( software engineering][8]”一词。1986年获[奥古斯塔·埃达·洛夫莱斯奖Augusta Ada Lovelace Award][9]2003年获 [NASA 杰出太空行动奖Exceptional Space Act Award][10]。
评论:
> “汉密尔顿发明了测试,使美国计算机工程规范了很多” —— [ford_beeblebrox][11]
> “我认为在她之前不敬地说包括高德纳Knuth在内的计算机编程是另一种形式上留存的数学分支。然而这个宇宙飞船的飞行控制系统明确地将编程带入了一个崭新的领域。” —— [Dan Allen][12]
> “... 她引入了‘软件工程’这个术语 — 并作出了最好的示范。” —— [David Hamilton][13]
> “真是个坏家伙” [Drukered][14]
### 唐纳德·克努斯Donald Knuth即 高德纳 ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_donald_knuth-620x465-100502872-orig.jpg)
*图片来源: [vonguard CC BY-SA 2.0][15]*
**成就: 《计算机程序设计艺术The Art of Computer ProgrammingTAOCP》 作者**
生平: 撰写了[编程理论的权威书籍][16]。发明了数字排版系统 Tex。1971年[ACM美国计算机协会葛丽丝·穆雷·霍普奖Grace Murray Hopper Award][17] 的首位获奖者。1974年获 ACM [图灵奖A. M. Turing][18]1979年获[美国国家科学奖章National Medal of Science][19]1995年获IEEE[约翰·冯·诺依曼奖章John von Neumann Medal][20]。1998年入选[计算机历史博物馆Computer History Museum名人录Hall of Fellows][21]。
评论:
> “... 写的计算机编程艺术The Art of Computer ProgrammingTAOCP可能是有史以来计算机编程方面最大的贡献。”—— [佚名][22]
> “唐·克努斯的 TeX 是我所用过的计算机程序中唯一一个几乎没有 bug 的。真是让人印象深刻!”—— [Jaap Weel][23]
> “如果你要问我的话,我只能说太棒了!” —— [Mitch Rees-Jones][24]
### 肯·汤普逊Ken Thompson ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_ken-thompson-620x465-100502874-orig.jpg)
*图片来源: [Association for Computing Machinery][25]*
**成就: Unix 之父**
生平:与[丹尼斯·里奇Dennis Ritchie][26]共同创造了 Unix。创造了 [B 语言][27]、[UTF-8 字符编码方案][28]、[ed 文本编辑器][29],同时也是 Go 语言的共同开发者。和里奇共同获得1983年的[图灵奖A.M. Turing Award ][30]1994年获 [IEEE 计算机先驱奖( IEEE Computer Pioneer Award][31]1998年获颁[美国国家科技奖章( National Medal of Technology ][32]。在1997年入选[计算机历史博物馆Computer History Museum名人录Hall of Fellows][33]。
评论:
> “... 可能是有史以来最能成事的程序员了。Unix 内核Unix 工具,国际象棋程序世界冠军 BellePlan 9Go 语言。” —— [Pete Prokopowicz][34]
> “肯所做出的贡献,据我所知无人能及,是如此的根本、实用、经得住时间的考验,时至今日仍在使用。” —— [Jan Jannink][35]
### 理查德·斯托曼Richard Stallman ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_richard_stallman-620x465-100502868-orig.jpg)
*图片来源: [Jiel Beaumadier CC BY-SA 3.0][135]*
**成就: Emacs 和 GCC 缔造者**
生平: 成立了 [GNU 工程GNU Project] [36],并创造了它的许多核心工具,如 [Emacs、GCC、GDB][37] 和 [GNU Make][38]。还创办了[自由软件基金会Free Software Foundation] [39]。1990年荣获 ACM 的[葛丽丝·穆雷·霍普奖( Grace Murray Hopper Award][40]1998年获 [EFF 先驱奖Pioneer Award][41].
评论:
> “... 在 Symbolics 对阵 LMI 的战斗中,独自一人与一众 Lisp 黑客好手对码。” —— [Srinivasan Krishnan][42]
> “通过他在编程上的精湛造诣与强大信念,开辟了一整套编程与计算机的亚文化。” —— [Dan Dunay][43]
> “我可以不赞同这位伟人的很多方面,不必盖棺论定,他不可否认都已经是一位伟大的程序员了。” —— [Marko Poutiainen][44]
> “试想 Linux 如果没有 GNU 工程的前期工作会怎么样。(多亏了)斯托曼的炸弹!” —— [John Burnette][45]
### 安德斯·海尔斯伯格Anders Hejlsberg ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_anders_hejlsberg-620x465-100502873-orig.jpg)
*图片来源: [D.Begley CC BY 2.0][46]*
**成就: 创造了Turbo Pascal**
生平: [Turbo Pascal 的原作者][47],是最流行的 Pascal 编译器和第一个集成开发环境。而后,[领导了 Turbo Pascal 的继任者 Delphi][48] 的构建。[C# 的主要设计师和架构师][49]。2001年荣获[ Dr. Dobb 的杰出编程奖Dr. Dobb's Excellence in Programming Award ][50]。
评论:
> “他用汇编语言为当时两个主流的 PC 操作系统DOS 和 CPM编写了 [Pascal] 编译器。用它来编译、链接并运行仅需几秒钟而不是几分钟。” —— [Steve Wood][51]
> “我佩服他 - 他创造了我最喜欢的开发工具,陪伴着我度过了三个关键的时期直至我成为一位专业的软件工程师。” —— [Stefan Kiryazov][52]
### Doug Cutting ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_doug_cutting-620x465-100502871-orig.jpg)
图片来源: [vonguard CC BY-SA 2.0][53]
**成就: 创造了 Lucene**
生平: [开发了 Lucene 搜索引擎以及 Web 爬虫 Nutch][54] 和用于大型数据集的分布式处理套件 [Hadoop][55]。一位强有力的开源支持者Lucene、Nutch 以及 Hadoop 都是开源的)。前 [Apache 软件基金Apache Software Foundation的理事][56]。
评论:
> “...他就是那个既写出了优秀搜索框架lucene/solr又为世界开启大数据之门hadoop的男人。” —— [Rajesh Rao][57]
> “他在 Lucene 和 Hadoop及其它工程的创造/工作中为世界创造了巨大的财富和就业...” —— [Amit Nithianandan][58]
### Sanjay Ghemawat ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_sanjay_ghemawat-620x465-100502876-orig.jpg)
*图片来源: [Association for Computing Machinery][59]*
**成就: 谷歌核心架构师**
生平: [协助设计和实现了一些谷歌大型分布式系统的功能][60],包括 MapReduce、BigTable、Spanner 和谷歌文件系统Google File System。[创造了 Unix 的 ical ][61]日历系统。2009年入选[美国国家工程院National Academy of Engineering][62]。2012年荣获 [ACM-Infosys 基金计算机科学奖( ACM-Infosys Foundation Award in the Computing Sciences][63]。
评论:
> “Jeff Dean的僚机。” —— [Ahmet Alp Balkan][64]
### Jeff Dean ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_jeff_dean-620x465-100502866-orig.jpg)
*图片来源: [Google][65]*
**成就: 谷歌搜索索引背后的大脑**
生平:协助设计和实现了[许多谷歌大型分布式系统的功能][66]包括网页爬虫索引搜索AdSenseMapReduceBigTable 和 Spanner。2009年入选[美国国家工程院( National Academy of Engineering][67]。2012年荣获ACM 的[SIGOPS 马克·维瑟奖( SIGOPS Mark Weiser Award][68]及[ACM-Infosys基金计算机科学奖 ACM-Infosys Foundation Award in the Computing Sciences][69]。
评论:
> “... 带来了在数据挖掘GFS、MapReduce、BigTable上的突破。” —— [Natu Lauchande][70]
> “... 设计、构建并部署 MapReduce 和 BigTable和以及数不清的其它东西” —— [Erik Goldman][71]
### 林纳斯·托瓦兹Linus Torvalds ###
![](http://images.techhive.com/images/article/2015/09/linus_torvalds-620x465-100611765-orig.jpg)
*图片来源: [Krd CC BY-SA 4.0][72]*
**成就: Linux缔造者**
生平:创造了 [Linux 内核][73]与[开源的版本控制系统 Git][74]。收获了许多奖项和荣誉包括有1998年的 [EFF 先驱奖EFF Pioneer Award][75]2000年荣获[英国电脑学会British Computer Society授予的洛夫莱斯勋章Lovelace Medal][76]2012年荣获[千禧技术奖Millenium Technology Prize][77]还有2014年[IEEE计算机学会 IEEE Computer Society授予的计算机先驱奖Computer Pioneer Award][78]。同样入选了2008年的[计算机历史博物馆( Computer History Museum名人录Hall of Fellows][79]与2012年的[互联网名人堂Internet Hall of Fame ][80]。
评论:
> “他只用了几年的时间就写出了 Linux 内核,而 GNU HurdGNU 开发的内核历经25年的开发却丝毫没有准备发布的意思。他的成就就是带来了希望。” —— [Erich Ficker][81]
> “托沃兹可能是程序员的程序员。” —— [Dan Allen][82]
> “他真的很棒。” —— [Alok Tripathy][83]
### 约翰·卡马克John Carmack ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_john_carmack-620x465-100502867-orig.jpg)
*图片来源: [QuakeCon CC BY 2.0][84]*
**成就: 毁灭战士的缔造者**
生平: ID 社联合创始人打造了德军总部3DWolfenstein 3D、毁灭战士Doom和雷神之锤Quake等所谓的即时 FPS 游戏。引领了[切片适配刷新adaptive tile refresh][86] [二叉空间分割binary space partitioning][87]表面缓存surface caching等开创性的计算机图像技术。2001年入选[互动艺术与科学学会名人堂Academy of Interactive Arts and Sciences Hall of Fame][88]2007年和2008年荣获工程技术类[艾美奖Emmy awards][89]并于2010年由[游戏开发者甄选奖( Game Developers Choice Awards][90]授予终生成就奖。
评论:
> “他在写第一个渲染引擎的时候不到20岁。这家伙这是个天才。我若有他四分之一的天赋便心满意足了。” —— [Alex Dolinsky][91]
> “... 德军总部3DWolfenstein 3D、毁灭战士Doom还有雷神之锤Quake在那时都是革命性的影响了一代游戏设计师。” —— [dniblock][92]
> “一个周末他几乎可以写出任何东西....” —— [Greg Naughton][93]
> “他是编程界的莫扎特... ” —— [Chris Morris][94]
### 法布里斯·贝拉Fabrice Bellard ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_fabrice_bellard-620x465-100502870-orig.jpg)
*图片来源: [Duff][95]*
**成就: 创造了 QEMU**
生平: 创造了[一系列耳熟能详的开源软件][96],其中包括硬件模拟和虚拟化的平台 QEMU用于处理多媒体数据的 FFmpeg微型C编译器Tiny C Compiler和 一个可执行文件压缩软件 LZEXE。2000年和2001年[C语言混乱代码大赛Obfuscated C Code Contest的获胜者][97]并在2011年荣获[Google-O'Reilly 开源奖Google-O'Reilly Open Source Award ][98]。[计算 Pi 最多位数][99]的前世界纪录保持着。
评论:
> “我觉得法布里斯·贝拉做的每一件事都是那么显著而又震撼。” —— [raphinou][100]
> “法布里斯·贝拉是世界上最高产的程序员...” —— [Pavan Yara][101]
> “他就像软件工程界的尼古拉·特斯拉Nikola Tesla。” —— [Michael Valladolid][102]
> “自80年代以来他一直高产出一系列的成功作品。” —— [Michael Biggins][103]
### Jon Skeet ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_jon_skeet-620x465-100502863-orig.jpg)
*图片来源: [Craig Murphy CC BY 2.0][104]*
**成就: Stack Overflow 的传说级贡献者**
生平: Google 工程师,[深入解析C#C# in Depth][105]的作者。保持着[有史以来在 Stack Overflow 上最高的声誉][106]平均每月解答390个问题。
评论:
> “他根本不需要调试器,只要他盯一下代码,错误之处自会原形毕露。” —— [Steven A. Lowe][107]
> “如果他的代码没有通过编译,那编译器应该道歉。” —— [Dan Dyer][108]
> “他根本不需要什么编程规范,他的代码就是编程规范。” —— [佚名][109]
### 亚当·安捷罗Adam D'Angelo ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_image_adam_dangelo-620x465-100502875-orig.jpg)
*图片来源: [Philip Neustrom CC BY 2.0][110]*
**成就: Quora 的创办人之一**
生平: 还是 Facebook 工程师时,[为其搭建了 news feed 功能的基础][111]。直至其离开并联合创始了 Quora已经成为了 Facebook 的CTO和工程 VP。2001年以高中生的身份在[美国计算机奥林匹克USA Computing Olympiad上第八位完成比赛][112]。2004年ACM国际大学生编程大赛International Collegiate Programming Contest[获得银牌的团队 - 加利福尼亚技术研究所( California Institute of Technology][113]的成员。2005年入围 Topcoder 大学生[算法编程挑战赛Algorithm Coding Competition][114]。
评论:
> “一位程序设计全才。” —— [佚名][115]
> "我做的每个好东西,他都已有了六个。" —— [马克.扎克伯格Mark Zuckerberg][116]
### Petr Mitrechev ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_petr_mitrichev-620x465-100502869-orig.jpg)
*图片来源: [Facebook][117]*
**成就: 有史以来最具竞技能力的程序员之一**
生平: 在国际信息学奥林匹克International Olympiad in Informatics中[两次获得金牌][118]20002002。在2006[赢得 Google Code Jam][119] 同时也是[TopCoder Open 算法大赛冠军][120]。也同样,两次赢得 Facebook黑客杯Facebook Hacker Cup[2011][121][2013][122])。写这篇文章的时候,[TopCoder 榜中排第二][123] Petr、在 [Codeforces 榜同样排第二][124]。
评论:
> “他是竞技程序员的偶像,即使在印度也是如此...” —— [Kavish Dwivedi][125]
### Gennady Korotkevich ###
![](http://images.techhive.com/images/idge/imported/imageapi/2014/10/08/17/slide_gennady_korot-620x465-100502864-orig.jpg)
*图片来源: [Ishandutta2007 CC BY-SA 3.0][126]*
**成就: 竞技编程小神童**
生平: 国际信息学奥林匹克International Olympiad in Informatics中最小参赛者11岁[6次获得金牌][127] (2007-2012)。2013年 ACM 国际大学生编程大赛International Collegiate Programming Contest[获胜队伍][128]成员及[2014 Facebook 黑客杯Facebook Hacker Cup][129]获胜者。写这篇文章的时候,[Codeforces 榜排名第一][130] Tourist、[TopCoder榜第一][131]。
评论:
> “一个编程神童!” —— [Prateek Joshi][132]
> “Gennady 真是棒,也是为什么我在白俄罗斯拥有一个强大开发团队的例证。” —— [Chris Howard][133]
> “Tourist 真是天才” —— [Nuka Shrinivas Rao][134]
--------------------------------------------------------------------------------
via: http://www.itworld.com/article/2823547/enterprise-software/158256-superclass-14-of-the-world-s-best-living-programmers.html#slide1
作者:[Phil Johnson][a]
译者:[martin2011qi](https://github.com/martin2011qi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.itworld.com/author/Phil-Johnson/
[1]:https://www.flickr.com/photos/tombullock/15713223772
[2]:https://commons.wikimedia.org/wiki/File:Margaret_Hamilton_in_action.jpg
[3]:http://klabs.org/home_page/hamilton.htm
[4]:https://www.youtube.com/watch?v=DWcITjqZtpU&feature=youtu.be&t=3m12s
[5]:http://www.htius.com/Articles/r12ham.pdf
[6]:http://www.htius.com/Articles/Inside_DBTF.htm
[7]:http://www.nasa.gov/home/hqnews/2003/sep/HQ_03281_Hamilton_Honor.html
[8]:http://www.nasa.gov/50th/50th_magazine/scientists.html
[9]:https://books.google.com/books?id=JcmV0wfQEoYC&pg=PA321&lpg=PA321&dq=ada+lovelace+award+1986&source=bl&ots=qGdBKsUa3G&sig=bkTftPAhM1vZ_3VgPcv-38ggSNo&hl=en&sa=X&ved=0CDkQ6AEwBGoVChMI3paoxJHWxwIVA3I-Ch1whwPn#v=onepage&q=ada%20lovelace%20award%201986&f=false
[10]:http://history.nasa.gov/alsj/a11/a11Hamilton.html
[11]:https://www.reddit.com/r/pics/comments/2oyd1y/margaret_hamilton_with_her_code_lead_software/cmrswof
[12]:http://qr.ae/RFEZLk
[13]:http://qr.ae/RFEZUn
[14]:https://www.reddit.com/r/pics/comments/2oyd1y/margaret_hamilton_with_her_code_lead_software/cmrv9u9
[15]:https://www.flickr.com/photos/44451574@N00/5347112697
[16]:http://cs.stanford.edu/~uno/taocp.html
[17]:http://awards.acm.org/award_winners/knuth_1013846.cfm
[18]:http://amturing.acm.org/award_winners/knuth_1013846.cfm
[19]:http://www.nsf.gov/od/nms/recip_details.jsp?recip_id=198
[20]:http://www.ieee.org/documents/von_neumann_rl.pdf
[21]:http://www.computerhistory.org/fellowawards/hall/bios/Donald,Knuth/
[22]:http://www.quora.com/Who-are-the-best-programmers-in-Silicon-Valley-and-why/answers/3063
[23]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Jaap-Weel
[24]:http://qr.ae/RFE94x
[25]:http://amturing.acm.org/photo/thompson_4588371.cfm
[26]:https://www.youtube.com/watch?v=JoVQTPbD6UY
[27]:https://www.bell-labs.com/usr/dmr/www/bintro.html
[28]:http://doc.cat-v.org/bell_labs/utf-8_history
[29]:http://c2.com/cgi/wiki?EdIsTheStandardTextEditor
[30]:http://amturing.acm.org/award_winners/thompson_4588371.cfm
[31]:http://www.computer.org/portal/web/awards/cp-thompson
[32]:http://www.uspto.gov/about/nmti/recipients/1998.jsp
[33]:http://www.computerhistory.org/fellowawards/hall/bios/Ken,Thompson/
[34]:http://www.quora.com/Computer-Programming/Who-is-the-best-programmer-in-the-world-right-now/answer/Pete-Prokopowicz-1
[35]:http://qr.ae/RFEWBY
[36]:https://groups.google.com/forum/#!msg/net.unix-wizards/8twfRPM79u0/1xlglzrWrU0J
[37]:http://www.emacswiki.org/emacs/RichardStallman
[38]:https://www.gnu.org/gnu/thegnuproject.html
[39]:http://www.emacswiki.org/emacs/FreeSoftwareFoundation
[40]:http://awards.acm.org/award_winners/stallman_9380313.cfm
[41]:https://w2.eff.org/awards/pioneer/1998.php
[42]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Greg-Naughton/comment/4146397
[43]:http://qr.ae/RFEaib
[44]:http://www.quora.com/Software-Engineering/Who-are-some-of-the-greatest-currently-active-software-architects-in-the-world/answer/Marko-Poutiainen
[45]:http://qr.ae/RFEUqp
[46]:https://www.flickr.com/photos/begley/2979906130
[47]:http://www.taoyue.com/tutorials/pascal/history.html
[48]:http://c2.com/cgi/wiki?AndersHejlsberg
[49]:http://www.microsoft.com/about/technicalrecognition/anders-hejlsberg.aspx
[50]:http://www.drdobbs.com/windows/dr-dobbs-excellence-in-programming-award/184404602
[51]:http://qr.ae/RFEZrv
[52]:http://www.quora.com/Software-Engineering/Who-are-some-of-the-greatest-currently-active-software-architects-in-the-world/answer/Stefan-Kiryazov
[53]:https://www.flickr.com/photos/vonguard/4076389963/
[54]:http://www.wizards-of-os.org/archiv/sprecher/a_c/doug_cutting.html
[55]:http://hadoop.apache.org/
[56]:https://www.linkedin.com/in/cutting
[57]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Shalin-Shekhar-Mangar/comment/2293071
[58]:http://www.quora.com/Who-are-the-best-programmers-in-Silicon-Valley-and-why/answer/Amit-Nithianandan
[59]:http://awards.acm.org/award_winners/ghemawat_1482280.cfm
[60]:http://research.google.com/pubs/SanjayGhemawat.html
[61]:http://www.quora.com/Google/Who-is-Sanjay-Ghemawat
[62]:http://www8.nationalacademies.org/onpinews/newsitem.aspx?RecordID=02062009
[63]:http://awards.acm.org/award_winners/ghemawat_1482280.cfm
[64]:http://www.quora.com/Google/Who-is-Sanjay-Ghemawat/answer/Ahmet-Alp-Balkan
[65]:http://research.google.com/people/jeff/index.html
[66]:http://research.google.com/people/jeff/index.html
[67]:http://www8.nationalacademies.org/onpinews/newsitem.aspx?RecordID=02062009
[68]:http://news.cs.washington.edu/2012/10/10/uw-cse-ph-d-alum-jeff-dean-wins-2012-sigops-mark-weiser-award/
[69]:http://awards.acm.org/award_winners/dean_2879385.cfm
[70]:http://www.quora.com/Computer-Programming/Who-is-the-best-programmer-in-the-world-right-now/answer/Natu-Lauchande
[71]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Cosmin-Negruseri/comment/28399
[72]:https://commons.wikimedia.org/wiki/File:LinuxCon_Europe_Linus_Torvalds_05.jpg
[73]:http://www.linuxfoundation.org/about/staff#torvalds
[74]:http://git-scm.com/book/en/Getting-Started-A-Short-History-of-Git
[75]:https://w2.eff.org/awards/pioneer/1998.php
[76]:http://www.bcs.org/content/ConWebDoc/14769
[77]:http://www.zdnet.com/blog/open-source/linus-torvalds-wins-the-tech-equivalent-of-a-nobel-prize-the-millennium-technology-prize/10789
[78]:http://www.computer.org/portal/web/pressroom/Linus-Torvalds-Named-Recipient-of-the-2014-IEEE-Computer-Society-Computer-Pioneer-Award
[79]:http://www.computerhistory.org/fellowawards/hall/bios/Linus,Torvalds/
[80]:http://www.internethalloffame.org/inductees/linus-torvalds
[81]:http://qr.ae/RFEeeo
[82]:http://qr.ae/RFEZLk
[83]:http://www.quora.com/Software-Engineering/Who-are-some-of-the-greatest-currently-active-software-architects-in-the-world/answer/Alok-Tripathy-1
[84]:https://www.flickr.com/photos/quakecon/9434713998
[85]:http://doom.wikia.com/wiki/John_Carmack
[86]:http://thegamershub.net/2012/04/gaming-gods-john-carmack/
[87]:http://www.shamusyoung.com/twentysidedtale/?p=4759
[88]:http://www.interactive.org/special_awards/details.asp?idSpecialAwards=6
[89]:http://www.itworld.com/article/2951105/it-management/a-fly-named-for-bill-gates-and-9-other-unusual-honors-for-tech-s-elite.html#slide8
[90]:http://www.gamechoiceawards.com/archive/lifetime.html
[91]:http://qr.ae/RFEEgr
[92]:http://www.itworld.com/answers/topic/software/question/whos-best-living-programmer#comment-424562
[93]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Greg-Naughton
[94]:http://money.cnn.com/2003/08/21/commentary/game_over/column_gaming/
[95]:http://dufoli.wordpress.com/2007/06/23/ammmmaaaazing-night/
[96]:http://bellard.org/
[97]:http://www.ioccc.org/winners.html#B
[98]:http://www.oscon.com/oscon2011/public/schedule/detail/21161
[99]:http://bellard.org/pi/pi2700e9/
[100]:https://news.ycombinator.com/item?id=7850797
[101]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Erik-Frey/comment/1718701
[102]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Erik-Frey/comment/2454450
[103]:http://qr.ae/RFEjhZ
[104]:https://www.flickr.com/photos/craigmurphy/4325516497
[105]:http://www.amazon.co.uk/gp/product/1935182471?ie=UTF8&tag=developetutor-21&linkCode=as2&camp=1634&creative=19450&creativeASIN=1935182471
[106]:http://stackexchange.com/leagues/1/alltime/stackoverflow
[107]:http://meta.stackexchange.com/a/9156
[108]:http://meta.stackexchange.com/a/9138
[109]:http://meta.stackexchange.com/a/9182
[110]:https://www.flickr.com/photos/philipn/5326344032
[111]:http://www.crunchbase.com/person/adam-d-angelo
[112]:http://www.exeter.edu/documents/Exeter_Bulletin/fall_01/oncampus.html
[113]:http://icpc.baylor.edu/community/results-2004
[114]:https://www.topcoder.com/tc?module=Static&d1=pressroom&d2=pr_022205
[115]:http://qr.ae/RFfOfe
[116]:http://www.businessinsider.com/in-new-alleged-ims-mark-zuckerberg-talks-about-adam-dangelo-2012-9#ixzz369FcQoLB
[117]:https://www.facebook.com/hackercup/photos/a.329665040399024.91563.133954286636768/553381194694073/?type=1
[118]:http://stats.ioinformatics.org/people/1849
[119]:http://googlepress.blogspot.com/2006/10/google-announces-winner-of-global-code_27.html
[120]:http://community.topcoder.com/tc?module=SimpleStats&c=coder_achievements&d1=statistics&d2=coderAchievements&cr=10574855
[121]:https://www.facebook.com/notes/facebook-hacker-cup/facebook-hacker-cup-finals/208549245827651
[122]:https://www.facebook.com/hackercup/photos/a.329665040399024.91563.133954286636768/553381194694073/?type=1
[123]:http://community.topcoder.com/tc?module=AlgoRank
[124]:http://codeforces.com/ratings
[125]:http://www.quora.com/Respected-Software-Engineers/Who-are-some-of-the-best-programmers-in-the-world/answer/Venkateswaran-Vicky/comment/1960855
[126]:http://commons.wikimedia.org/wiki/File:Gennady_Korot.jpg
[127]:http://stats.ioinformatics.org/people/804
[128]:http://icpc.baylor.edu/regionals/finder/world-finals-2013/standings
[129]:https://www.facebook.com/hackercup/posts/10152022955628845
[130]:http://codeforces.com/ratings
[131]:http://community.topcoder.com/tc?module=AlgoRank
[132]:http://www.quora.com/Computer-Programming/Who-is-the-best-programmer-in-the-world-right-now/answer/Prateek-Joshi
[133]:http://www.quora.com/Computer-Programming/Who-is-the-best-programmer-in-the-world-right-now/answer/Prateek-Joshi/comment/4720779
[134]:http://www.quora.com/Computer-Programming/Who-is-the-best-programmer-in-the-world-right-now/answer/Prateek-Joshi/comment/4880549
[135]:http://commons.wikimedia.org/wiki/File:Jielbeaumadier_richard_stallman_2010.jpg

View File

@ -1,88 +1,88 @@
Display Awesome Linux Logo With Basic Hardware Info Using screenfetch and linux_logo Tools
用 screenfetch 和 linux_logo 显示带有酷炫 Linux 标志的基本硬件信息
================================================================================
Do you want to display a super cool logo of your Linux distribution along with basic hardware information? Look no further try awesome screenfetch and linux_logo utilities.
想在屏幕上显示出你的 Linux 发行版的酷炫标志和基本硬件信息吗?不用找了,来试试超赞的 screenfetch 和 linux_logo 工具。
### Say hello to screenfetch ###
### 来看看 screenfetch 吧 ###
screenFetch is a CLI bash script to show system/theme info in screenshots. It runs on a Linux, OS X, FreeBSD and many other Unix-like system. From the man page:
screenFetch 是一个能够在截屏中显示系统/主题信息的命令行脚本。它可以在 LinuxOS XFreeBSD 以及其它的许多类Unix系统上使用。来自 man 手册的说明:
> This handy Bash script can be used to generate one of those nifty terminal theme information + ASCII distribution logos you see in everyone's screenshots nowadays. It will auto-detect your distribution and display an ASCII version of that distribution's logo and some valuable information to the right.
> 这个方便的 Bash 脚本可以用来生成那些漂亮的终端主题信息和用 ASCII 构成的发行版标志,就像如今你在别人的截屏里看到的那样。它会自动检测你的发行版并显示 ASCII 版的发行版标志,并且在右边显示一些有价值的信息。
#### Installing screenfetch on Linux ####
#### 在 Linux 上安装 screenfetch ####
Open the Terminal application. Simply type the following [apt-get command][1] on a Debian or Ubuntu or Mint Linux based system:
打开终端应用。在基于 Debian 或 Ubuntu 或 Mint 的系统上只需要输入下列 [apt-get 命令][1]
$ sudo apt-get install screenfetch
![](http://s0.cyberciti.org/uploads/cms/2015/09/ubuntu-debian-linux-apt-get-install-screenfetch.jpg)
Fig.01: Installing screenfetch using apt-get
*图一:用 apt-get 安装 screenfetch*
#### Installing screenfetch Mac OS X ####
#### 在 Mac OS X 上安装 screenfetch ####
Type the following command:
输入下列命令:
$ brew install screenfetch
![](http://s0.cyberciti.org/uploads/cms/2015/09/apple-mac-osx-install-screenfetch.jpg)
Fig.02: Installing screenfetch using brew command
*图二:用 brew 命令安装 screenfetch*
#### Installing screenfetch on FreeBSD ####
#### 在 FreeBSD 上安装 screenfetch ####
Type the following pkg command:
输入下列 pkg 命令:
$ sudo pkg install sysutils/screenfetch
![](http://s0.cyberciti.org/uploads/cms/2015/09/freebsd-install-pkg-screenfetch.jpg)
Fig.03: FreeBSD install screenfetch using pkg
*图三:在 FreeBSD 用 pkg 安装 screenfetch*
#### Installing screenfetch on Fedora Linux ####
#### 在 Fedora 上安装 screenfetch ####
Type the following dnf command:
输入下列 dnf 命令:
$ sudo dnf install screenfetch
![](http://s0.cyberciti.org/uploads/cms/2015/09/fedora-dnf-install-screenfetch.jpg)
Fig.04: Fedora Linux 22 install screenfetch using dnf
*图四:在 Fedora 22 用 dnf 安装 screenfetch*
#### How do I use screefetch utility? ####
#### 我该怎么使用 screefetch 工具? ####
Simply type the following command:
只需输入以下命令:
$ screenfetch
Here is the output from various operating system:
这是不同系统的输出:
![](http://s0.cyberciti.org/uploads/cms/2015/09/fedora-screenfetch-300x193.jpg)
![](http://s0.cyberciti.org/uploads/cms/2015/09/fedora-screenfetch.jpg)
Screenfetch on Fedora
*Fedora 上的 Screenfetch*
![](http://s0.cyberciti.org/uploads/cms/2015/09/screenfetch-osx-300x213.jpg)
![](http://s0.cyberciti.org/uploads/cms/2015/09/screenfetch-osx.jpg)
Screenfetch on OS X
*OS X 上的 Screenfetch*
![](http://s0.cyberciti.org/uploads/cms/2015/09/screenfetch-freebsd-300x143.jpg)
![](http://s0.cyberciti.org/uploads/cms/2015/09/screenfetch-freebsd.jpg)
Screenfetch on FreeBSD
*FreeBSD 上的 Screenfetch*
![](http://s0.cyberciti.org/uploads/cms/2015/09/debian-ubutnu-screenfetch-outputs-300x279.jpg)
![](http://s0.cyberciti.org/uploads/cms/2015/09/debian-ubutnu-screenfetch-outputs.jpg)
Screenfetch on Debian Linux
*Debian 上的 Screenfetch*
#### Take screenshot ####
#### 获取截屏 ####
To take a screenshot and to save a file, enter:
要获取截屏并保存成文件,输入:
$ screenfetch -s
You will see a screenshot file at ~/Desktop/screenFetch-*.jpg. To take a screenshot and upload to imgur directly, enter:
你会看到一个文件 ~/Desktop/screenFetch-*.jpg。获取截屏并直接上传到 imgur输入
$ screenfetch -su imgur
$ screenfetch -su imgur
**Sample outputs:**
**输出示例:**
-/+:. veryv@Viveks-MacBook-Pro
:++++. OS: 64bit Mac OS X 10.10.5 14F27
@ -100,49 +100,49 @@ You will see a screenshot file at ~/Desktop/screenFetch-*.jpg. To take a screens
`ossssssssssssssssssssss/ RAM: 6405MB / 8192MB
:ooooooooooooooooooo+.
`:+oo+/:-..-:/+o+/-
Taking shot in 3.. 2.. 1.. 0.
==> Uploading your screenshot now...your screenshot can be viewed at http://imgur.com/HKIUznn
You can visit [http://imgur.com/HKIUznn][2] to see uploaded screenshot.
你可以访问 [http://imgur.com/HKIUznn][2] 来查看上传的截屏。
### Say hello to linux_logo ###
### 再来看看 linux_logo ###
The linux_logo program generates a color ANSI picture of a penguin which includes some system information obtained from the /proc filesystem.
linux_logo 程序生成一个彩色的 ANSI 版企鹅图片,还包含一些来自 /proc 的系统信息。
#### Installation ####
#### 安装 ####
Simply type the following command as per your Linux distro.
只需按照你的 Linux 发行版输入对应的命令:
#### Debian/Ubutnu/Mint ####
# apt-get install linux_logo
#### CentOS/RHEL/Older Fedora ####
#### CentOS/RHEL/旧版 Fedora ####
# yum install linux_logo
#### Fedora Linux v22+ or newer ####
#### Fedora Linux v22+ 或更新版本 ####
# dnf install linux_logo
#### Run it ####
#### 运行它 ####
Simply type the following command:
只需输入下列命令:
$ linux_logo
$ linux_logo
![](http://s0.cyberciti.org/uploads/cms/2015/09/debian-linux_logo.jpg)
linux_logo in action
*运行 linux_logo*
#### But wait, there's more! ####
#### 等等,还有更多! ####
You can see a list of compiled in logos using:
你可以用这个命令查看内置的标志列表:
$ linux_logo -f -L list
**Sample outputs:**
**输出示例:**
Available Built-in Logos:
Num Type Ascii Name Description
@ -176,47 +176,47 @@ You can see a list of compiled in logos using:
28 Banner Yes sourcemage Source Mage GNU/Linux large
29 Banner Yes suse SUSE Logo
30 Banner Yes ubuntu Ubuntu Logo
Do "linux_logo -L num" where num is from above to get the appropriate logo.
Remember to also use -a to get ascii version.
To see aix logo, enter:
查看 aix 的标志,输入:
$ linux_logo -f -L aix
To see openbsd logo:
查看 openbsd 的标志:
$ linux_logo -f -L openbsd
Or just see some random Linux logo:
或者只是随机看看一些 Linux 标志:
$ linux_logo -f -L random_xy
You [can combine bash for loop as follows to display various logos][3], enter:
你[可以像下面那样结合 bash 的循环来显示不同的标志][3],输入:
![](http://s0.cyberciti.org/uploads/cms/2015/09/linux-logo-fun.gif)
Gif 01: linux_logo and bash for loop for fun and profie
*动图1 linux_logo 和 bash 循环,既有趣又能发朋友圈耍酷*
### Getting help ###
### 获取帮助 ###
Simply type the following command:
输入下列命令:
$ screefetch -h
$ linux_logo -h
**References**
**参考**
- [screenFetch home page][4]
- [linux_logo home page][5]
- [screenFetch 主页][4]
- [linux_logo 主页][5]
--------------------------------------------------------------------------------
via: http://www.cyberciti.biz/hardware/howto-display-linux-logo-in-bash-terminal-using-screenfetch-linux_logo/
作者Vivek Gite
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
译者:[alim0x](https://github.com/alim0x)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -224,4 +224,4 @@ via: http://www.cyberciti.biz/hardware/howto-display-linux-logo-in-bash-terminal
[2]:http://imgur.com/HKIUznn
[3]:http://www.cyberciti.biz/faq/bash-for-loop/
[4]:https://github.com/KittyKatt/screenFetch
[5]:https://github.com/deater/linux_logo
[5]:https://github.com/deater/linux_logo

View File

@ -1,9 +1,9 @@
在 Ubuntu 14.04 中配置 PXE 服务器
在 Ubuntu 14.04 中配置 PXE 服务器
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/09/pxe-featured.jpg)
PXEPreboot Execution Environment--预启动执行环境)服务器允许用户从网络中启动 Linux 发行版并且可以同时在数百台 PC 中安装而不需要 Linux ISO 镜像。如果你客户端的计算机没有 CD/DVD 或USB 引导盘,或者如果你想在大型企业中同时安装多台计算机,那么 PXE 服务器可以帮你节省时间和金钱。
PXEPreboot Execution Environment--预启动执行环境)服务器允许用户从网络中启动 Linux 发行版并且可以不需要 Linux ISO 镜像就能同时在数百台 PC 中安装。如果你客户端的计算机没有 CD/DVD 或USB 引导盘,或者如果你想在大型企业中同时安装多台计算机,那么 PXE 服务器可以帮你节省时间和金钱。
在这篇文章中,我们将告诉你如何在 Ubuntu 14.04 配置 PXE 服务器。
@ -11,11 +11,11 @@ PXEPreboot Execution Environment--预启动执行环境)服务器允许用
开始前,你需要先设置 PXE 服务器使用静态 IP。在你的系统中要使用静态 IP 地址,需要编辑 “/etc/network/interfaces” 文件。
1. 打开 “/etc/network/interfaces” 文件.
打开 “/etc/network/interfaces” 文件.
sudo nano /etc/network/interfaces
作如下修改:
作如下修改:
# 回环网络接口
auto lo
@ -43,23 +43,23 @@ DHCPTFTP 和 NFS 是 PXE 服务器的重要组成部分。首先,需要更
### 配置 DHCP 服务: ###
DHCP 代表动态主机配置协议Dynamic Host Configuration Protocol并且它主要用于动态分配网络配置参数,如用于接口和服务的 IP 地址。在 PXE 环境中DHCP 服务器允许客户端请求并自动获得一个 IP 地址来访问网络。
DHCP 代表动态主机配置协议Dynamic Host Configuration Protocol它主要用于动态分配网络配置参数如用于接口和服务的 IP 地址。在 PXE 环境中DHCP 服务器允许客户端请求并自动获得一个 IP 地址来访问网络。
1. 编辑 “/etc/default/dhcp3-server” 文件.
1编辑 “/etc/default/dhcp3-server” 文件.
sudo nano /etc/default/dhcp3-server
作如下修改:
作如下修改:
INTERFACES="eth0"
保存 (Ctrl + o) 并退出 (Ctrl + x) 文件.
2. 编辑 “/etc/dhcp3/dhcpd.conf” 文件:
2编辑 “/etc/dhcp3/dhcpd.conf” 文件:
sudo nano /etc/dhcp/dhcpd.conf
作如下修改:
作如下修改:
default-lease-time 600;
max-lease-time 7200;
@ -74,29 +74,29 @@ DHCP 代表动态主机配置协议Dynamic Host Configuration Protocol
保存文件并退出。
3. 启动 DHCP 服务.
3启动 DHCP 服务.
sudo /etc/init.d/isc-dhcp-server start
### 配置 TFTP 服务器: ###
TFTP 是一种文件传输协议,类似于 FTP它不用进行用户认证也不能列出目录。TFTP 服务器总是监听网络上的 PXE 客户端。当它检测到网络中有 PXE 客户端请求 PXE 服务时,它将提供包含引导菜单的网络数据包。
TFTP 是一种文件传输协议,类似于 FTP,但它不用进行用户认证也不能列出目录。TFTP 服务器总是监听网络上的 PXE 客户端的请求。当它检测到网络中有 PXE 客户端请求 PXE 服务时,它将提供包含引导菜单的网络数据包。
1. 配置 TFTP 时,需要编辑 “/etc/inetd.conf” 文件.
1配置 TFTP 时,需要编辑 “/etc/inetd.conf” 文件.
sudo nano /etc/inetd.conf
作如下修改:
作如下修改:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
保存文件并退出。
保存文件并退出。
2. 编辑 “/etc/default/tftpd-hpa” 文件。
2编辑 “/etc/default/tftpd-hpa” 文件。
sudo nano /etc/default/tftpd-hpa
作如下修改:
作如下修改:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
@ -105,14 +105,14 @@ TFTP 是一种文件传输协议,类似于 FTP。它不用进行用户认证
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
保存文件并退出。
保存文件并退出。
3. 使用 `xinetd` 让 boot 服务在每次系统开机时自动启动并启动tftpd服务。
3 使用 `xinetd` 让 boot 服务在每次系统开机时自动启动并启动tftpd服务。
sudo update-inetd --enable BOOT
sudo service tftpd-hpa start
4. 检查状态。
4检查状态。
sudo netstat -lu
@ -123,7 +123,7 @@ TFTP 是一种文件传输协议,类似于 FTP。它不用进行用户认证
### 配置 PXE 启动文件 ###
现在,你需要将 PXE 引导文件 “pxelinux.0” 放在 TFTP 根目录下。为 TFTP 创建一个目录,并复制 syslinux 在 “/usr/lib/syslinux/” 下提供的所有引导程序文件到 “/var/lib/tftpboot/” 下,操作如下:
现在,你需要将 PXE 引导文件 “pxelinux.0” 放在 TFTP 根目录下。为 TFTP 创建目录结构,并从 “/usr/lib/syslinux/” 复制 syslinux 提供的所有引导程序文件到 “/var/lib/tftpboot/” 下,操作如下:
sudo mkdir /var/lib/tftpboot
sudo mkdir /var/lib/tftpboot/pxelinux.cfg
@ -135,13 +135,13 @@ TFTP 是一种文件传输协议,类似于 FTP。它不用进行用户认证
PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导并与 TFTP 服务器关联。默认情况下,当一个 PXE 客户端启动时,它会使用自己的 MAC 地址指定要读取的配置文件,所以我们需要创建一个包含可引导内核列表的默认文件。
编辑 PXE 服务器配置文件使用可用的安装选项。.
编辑 PXE 服务器配置文件,使用有效的安装选项。
编辑 “/var/lib/tftpboot/pxelinux.cfg/default,
编辑 “/var/lib/tftpboot/pxelinux.cfg/default”
sudo nano /var/lib/tftpboot/pxelinux.cfg/default
作如下修改:
作如下修改:
DEFAULT vesamenu.c32
TIMEOUT 100
@ -183,12 +183,12 @@ PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导
### 为 PXE 服务器添加 Ubuntu 14.04 桌面启动镜像 ###
对于这一步Ubuntu 内核和 initrd 文件是必需的。要获得这些文件,你需要 Ubuntu 14.04 桌面 ISO 镜像。你可以通过以下命令下载 Ubuntu 14.04 ISO 镜像到 /mnt 目录:
对于这一步需要 Ubuntu 内核和 initrd 文件。要获得这些文件,你需要 Ubuntu 14.04 桌面 ISO 镜像。你可以通过以下命令下载 Ubuntu 14.04 ISO 镜像到 /mnt 目录:
sudo cd /mnt
sudo wget http://releases.ubuntu.com/14.04/ubuntu-14.04.3-desktop-amd64.iso
**注意**: 下载用的 URL 可能会改变,因为 ISO 镜像会进行更新。如果上面的网址无法访问,看看这个网站,了解最新的下载链接。
**注意**: 下载用的 URL 可能会改变,因为 ISO 镜像会进行更新。如果上面的网址无法访问,看看[这个网站][4],了解最新的下载链接。
挂载 ISO 文件,使用以下命令将所有文件复制到 TFTP文件夹中
@ -199,9 +199,9 @@ PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导
### 将导出的 ISO 目录配置到 NFS 服务器上 ###
现在,你需要通过 NFS 协议安装源镜像。你还可以使用 HTTP 和 FTP 来安装源镜像。在这里,我已经使用 NFS 出 ISO 内容。
现在,你需要通过 NFS 协议来设置“安装源镜像 Installation Source Mirrors。你还可以使用 HTTP 和 FTP 来安装源镜像。在这里,我已经使用 NFS 出 ISO 内容。
要配置 NFS 服务器,你需要编辑 “etc/exports” 文件。
要配置 NFS 服务器,你需要编辑 “/etc/exports” 文件。
sudo nano /etc/exports
@ -209,7 +209,7 @@ PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导
/var/lib/tftpboot/Ubuntu/14.04/amd64 *(ro,async,no_root_squash,no_subtree_check)
保存文件并退出。为使更改生效,启动 NFS 服务。
保存文件并退出。为使更改生效,输出并启动 NFS 服务。
sudo exportfs -a
sudo /etc/init.d/nfs-kernel-server start
@ -218,9 +218,9 @@ PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导
### 配置网络引导 PXE 客户端 ###
PXE 客户端可以被任何具备 PXE 网络引导的系统来启用。现在,你的客户端可以启动并安装 Ubuntu 14.04 桌面,需要在系统的 BIOS 中设置 “Boot From Network” 选项
PXE 客户端可以是任何支持 PXE 网络引导的计算机系统。现在,你的客户端只需要在系统的 BIOS 中设置 “从网络引导Boot From Network” 选项就可以启动并安装 Ubuntu 14.04 桌面
现在你可以去做 - 用网络引导启动你的 PXE 客户端计算机,你现在应该看到一个子菜单,显示了我们创建的 Ubuntu 14.04 桌面。
现在准备出发吧 - 用网络引导启动你的 PXE 客户端计算机,你现在应该看到一个子菜单,显示了我们创建的 Ubuntu 14.04 桌面的菜单项
![pxe](https://www.maketecheasier.com/assets/uploads/2015/09/pxe.png)
@ -241,7 +241,7 @@ via: https://www.maketecheasier.com/configure-pxe-server-ubuntu/
作者:[Hitesh Jethva][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -249,3 +249,4 @@ via: https://www.maketecheasier.com/configure-pxe-server-ubuntu/
[1]:https://en.wikipedia.org/wiki/Preboot_Execution_Environment
[2]:https://help.ubuntu.com/community/PXEInstallServer
[3]:https://www.flickr.com/photos/jhcalderon/3681926417/
[4]:http://releases.ubuntu.com/14.04/

View File

@ -0,0 +1,128 @@
一位开发者的 Linux 容器之旅
================================================================================
![](https://deis.com/images/blog-images/dev_journey_0.jpg)
我告诉你一个秘密:使得我的应用程序进入到全世界的 DevOps 云计算之类的东西对我来说仍然有一点神秘。但随着时间流逝,我意识到理解大规模的机器增减和应用程序部署的来龙去脉对一个开发者来说是非常重要的知识。这类似于成为一个专业的音乐家,当然你肯定需要知道如何使用你的乐器,但是,如果你不知道一个录音棚是如何工作的,或者如何适应一个交响乐团,那么你在这样的环境中工作会变得非常困难。
在软件开发的世界里使你的代码进入我们的更大的世界如同把它编写出来一样重要。DevOps 重要,而且是很重要。
因此为了弥合开发Dev和部署Ops之间的空隙我会从头开始介绍容器技术。为什么是容器因为有强力的证据表明容器是机器抽象的下一步使计算机成为场所而不再是一个东西。理解容器是我们共同的旅程。
在这篇文章中我会介绍容器化containerization背后的概念。包括容器和虚拟机的区别以及容器构建背后的逻辑以及它是如何适应应用程序架构的。我会探讨轻量级的 Linux 操作系统是如何适应容器生态系统。我还会讨论使用镜像创建可重用的容器。最后我会介绍容器集群如何使你的应用程序可以快速扩展。
在后面的文章中,我会一步一步向你介绍容器化一个示例应用程序的过程,以及如何为你的应用程序容器创建一个托管集群。同时,我会向你展示如何使用 Deis 将你的示例应用程序部署到你本地系统以及多种云供应商的虚拟机上。
让我们开始吧。
### 虚拟机的好处 ###
为了理解容器如何适应事物发展,你首先要了解容器的前任:虚拟机。
[虚拟机][1] virtual machine (VM))是运行在物理宿主机上的软件抽象。配置一个虚拟机就像是购买一台计算机:你需要定义你想要的 CPU 数目、RAM 和磁盘存储容量。配置好了机器后,你为它加载操作系统,以及你想让虚拟机支持的任何服务器或者应用程序。
虚拟机允许你在一台硬件主机上运行多个模拟计算机。这是一个简单的示意图:
![](https://deis.com/images/blog-images/dev_journey_1.png)
虚拟机可以让你能充分利用你的硬件资源。你可以购买一台巨大的、轰隆作响的机器,然后在上面运行多个虚拟机。你可以有一个数据库虚拟机以及很多运行相同版本的定制应用程序的虚拟机所构成的集群。你可以在有限的硬件资源获得很多的扩展能力。如果你觉得你需要更多的虚拟机而且你的宿主硬件还有容量,你可以添加任何你需要的虚拟机。或者,如果你不再需要一个虚拟机,你可以关闭该虚拟机并删除虚拟机镜像。
### 虚拟机的局限 ###
但是,虚拟机确实有局限。
如上面所示,假如你在一个主机上创建了三个虚拟机。主机有 12 个 CPU48 GB 内存和 3TB 的存储空间。每个虚拟机配置为有 4 个 CPU16 GB 内存和 1TB 存储空间。到现在为止,一切都还好。主机有这个容量。
但这里有个缺陷。所有分配给一个虚拟机的资源,无论是什么,都是专有的。每台机器都分配了 16 GB 的内存。但是,如果第一个虚拟机永不会使用超过 1GB 分配的内存,剩余的 15 GB 就会被浪费在那里。如果第三个虚拟机只使用分配的 1TB 存储空间中的 100GB其余的 900GB 就成为浪费空间。
这里没有资源的流动。每台虚拟机拥有分配给它的所有资源。因此,在某种方式上我们又回到了虚拟机之前,把大部分金钱花费在未使用的资源上。
虚拟机还有*另一个*缺陷。让它们跑起来需要很长时间。如果你处于基础设施需要快速增长的情形,即使增加虚拟机是自动的,你仍然会发现你的很多时间都浪费在等待机器上线。
### 来到:容器 ###
概念上来说,容器是一个 Linux 进程Linux 认为它只是一个运行中的进程。该进程只知道它被告知的东西。另外,在容器化方面,该容器进程也分配了它自己的 IP 地址。这点很重要,重要的事情讲三遍,这是第二遍。**在容器化方面,容器进程有它自己的 IP 地址。**一旦给予了一个 IP 地址,该进程就是宿主网络中可识别的资源。然后,你可以在容器管理器上运行命令,使容器 IP 映射到主机中能访问公网的 IP 地址。建立了该映射,无论出于什么意图和目的,容器就是网络上一个可访问的独立机器,从概念上类似于虚拟机。
这是第三遍,容器是拥有不同 IP 地址从而使其成为网络上可识别的独立 Linux 进程。下面是一个示意图:
![](https://deis.com/images/blog-images/dev_journey_2.png)
容器/进程以动态、合作的方式共享主机上的资源。如果容器只需要 1GB 内存,它就只会使用 1GB。如果它需要 4GB就会使用 4GB。CPU 和存储空间利用也是如此。CPU、内存和存储空间的分配是动态的和典型虚拟机的静态方式不同。所有这些资源的共享都由容器管理器来管理。
最后,容器能非常快速地启动。
因此,容器的好处是:**你获得了虚拟机独立和封装的好处,而抛弃了静态资源专有的缺陷**。另外,由于容器能快速加载到内存,在扩展到多个容器时你能获得更好的性能。
### 容器托管、配置和管理 ###
托管容器的计算机运行着被剥离的只剩下主要部分的某个 Linux 版本。现在,宿主计算机流行的底层操作系统是之前提到的 [CoreOS][2]。当然还有其它,例如 [Red Hat Atomic Host][3] 和 [Ubuntu Snappy][4]。
该 Linux 操作系统被所有容器所共享,减少了容器足迹的重复和冗余。每个容器只包括该容器特有的部分。下面是一个示意图:
![](https://deis.com/images/blog-images/dev_journey_3.png)
你可以用它所需的组件来配置容器。一个容器组件被称为**层layer**。层是一个容器镜像,(你会在后面的部分看到更多关于容器镜像的介绍)。你从一个基本层开始,这通常是你想在容器中使用的操作系统。(容器管理器只提供你所要的操作系统在宿主操作系统中不存在的部分。)当你构建你的容器配置时,你需要添加层,例如你想要添加网络服务器时这个层就是 Apache如果容器要运行脚本则需要添加 PHP 或 Python 运行时环境。
分层非常灵活。如果应用程序或者服务容器需要 PHP 5.2 版本,你相应地配置该容器即可。如果你有另一个应用程序或者服务需要 PHP 5.6 版本,没问题,你可以使用 PHP 5.6 配置该容器。不像虚拟机,更改一个版本的运行时依赖时你需要经过大量的配置和安装过程;对于容器你只需要在容器配置文件中重新定义层。
所有上面描述的容器的各种功能都由一个称为容器管理器container manager的软件控制。现在最流行的容器管理器是 [Docker][5] 和 [Rocket][6]。上面的示意图展示了容器管理器是 Docker宿主操作系统是 CentOS 的主机情景。
### 容器由镜像构成 ###
当你需要将我们的应用程序构建到容器时你就要编译镜像。镜像代表了你的容器需要完成其工作的容器模板。容器里可以在容器里面如下图。镜像存储在注册库registry注册库通过网络访问。
从概念上讲,注册库类似于一个使用 Java 的人眼中的 [Maven][7] 仓库、使用 .NET 的人眼中的 [NuGet][8] 服务器。你会创建一个列出了你应用程序所需镜像的容器配置文件。然后你使用容器管理器创建一个包括了你的应用程序代码以及从容器注册库中下载的部分资源。例如,如果你的应用程序包括了一些 PHP 文件,你的容器配置文件会声明你会从注册库中获取 PHP 运行时环境。另外,你还要使用容器配置文件声明需要复制到容器文件系统中的 .php 文件。容器管理器会封装你应用程序的所有东西为一个独立容器,该容器将会在容器管理器的管理下运行在宿主计算机上。
这是一个容器创建背后概念的示意图:
![](https://deis.com/images/blog-images/dev_journey_4.png)
让我们仔细看看这个示意图。
1代表一个定义了你容器所需东西以及你容器如何构建的容器配置文件。当你在主机上运行容器时容器管理器会读取该配置文件从云上的注册库中获取你需要的容器镜像2将镜像作为层添加到你的容器中。
另外如果组成镜像需要其它镜像容器管理器也会获取这些镜像并把它们作为层添加进来。3容器管理器会将需要的文件复制到容器中。
如果你使用了配置provisioning服务例如 [Deis][9]你刚刚创建的应用程序容器做成镜像4配置服务会将它部署到你选择的云供应商上比如类似 AWS 和 Rackspace 云供应商。
### 集群中的容器 ###
好了。这里有一个很好的例子说明了容器比虚拟机提供了更好的配置灵活性和资源利用率。但是,这并不是全部。
容器真正的灵活是在集群中。记住,每个容器有一个独立的 IP 地址。因此,能把它放到负载均衡器后面。将容器放到负载均衡器后面,这就上升了一个层面。
你可以在一个负载均衡容器后运行容器集群以获得更高的性能和高可用计算。这是一个例子:
![](https://deis.com/images/blog-images/dev_journey_5.png)
假如你开发了一个资源密集型的应用程序,例如图片处理。使用类似 [Deis][9] 的容器配置技术,你可以创建一个包括了你图片处理程序以及你图片处理程序需要的所有资源的容器镜像。然后,你可以部署一个或多个容器镜像到主机上的负载均衡器下。一旦创建了容器镜像,你可以随时使用它。当系统繁忙时可以添加更多的容器实例来满足手中的工作。
这里还有更多好消息。每次添加实例到环境中时,你不需要手动配置负载均衡器以便接受你的容器镜像。你可以使用服务发现技术让容器告知均衡器它可用。然后,一旦获知,均衡器就会将流量分发到新的结点。
### 全部放在一起 ###
容器技术完善了虚拟机缺失的部分。类似 CoreOS、RHEL Atomic、和 Ubuntu 的 Snappy 宿主操作系统,和类似 Docker 和 Rocket 的容器管理技术结合起来,使得容器变得日益流行。
尽管容器变得更加越来越普遍,掌握它们还是需要一段时间。但是,一旦你懂得了它们的窍门,你可以使用类似 [Deis][9] 这样的配置技术使容器创建和部署变得更加简单。
从概念上理解容器和进一步实际使用它们完成工作一样重要。但我认为不实际动手把想法付诸实践,概念也难以理解。因此,我们该系列的下一阶段就是:创建一些容器。
--------------------------------------------------------------------------------
via: https://deis.com/blog/2015/developer-journey-linux-containers
作者:[Bob Reselman][a]
译者:[ictlyh](http://www.mutouxiaogui.cn/blog/)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://deis.com/blog
[1]:https://en.wikipedia.org/wiki/Virtual_machine
[2]:https://coreos.com/using-coreos/
[3]:http://www.projectatomic.io/
[4]:https://developer.ubuntu.com/en/snappy/
[5]:https://www.docker.com/
[6]:https://coreos.com/blog/rocket/
[7]:https://en.wikipedia.org/wiki/Apache_Maven
[8]:https://www.nuget.org/
[9]:http://deis.com/learn

View File

@ -0,0 +1,39 @@
修复 Shell 脚本在 Ubuntu 中的默认打开方式
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Run-Shell-Script-on-Double-Click.jpg)
当你双击一个脚本(.sh文件的时候你想要做的是什么通常的想法是执行它。但是在Ubuntu下面却不是这样或者我应该更确切地说是在FilesNautilus中。你可能会疯狂地大叫“运行文件运行文件”但是文件没有运行而是用Gedit打开了。
我知道你也许会说文件有可执行权限么?我会说是的。脚本有可执行权限但是当我双击它的时候,它还是用文本编辑器打开了。我不希望这样,如果你遇到了同样的问题,我想你也许也想要这样。
我知道你或许已经被建议在终端下面执行我知道这个可行但是这不是一个在GUI下不能运行的借口是么
这篇教程中,我们会看到**如何在双击后运行shell脚本。**
#### 修复在Ubuntu中shell脚本用文本编辑器打开的方式 ####
shell脚本用文件编辑器打开的原因是FilesUbuntu中的文件管理器中的默认行为设置。在更早的版本中它或许会询问你是否运行文件或者用编辑器打开。默认的行为在新的版本中被修改了。
要修复这个,进入文件管理器,并在菜单中点击**选项**
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/execute-shell-program-ubuntu-1.png)
接下来在**文件选项Files Preferences**中进入**行为Behavior**标签中,你会看到**可执行的文本文件Executable Text Files**选项。
默认情况下它被设置成“在打开时显示文本文件View executable text files when they are opend”。我建议你把它改成“每次询问Ask each time这样你可以选择是执行还是编辑了当然了你也可以选择“在打开时云可执行文本文件Run executable text files when they are opend”。你可以自行选择。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/execute-shell-program-ubuntu-2.png)
我希望这个贴士可以帮你修复这个小“问题”。欢迎提出问题和建议。
--------------------------------------------------------------------------------
via: http://itsfoss.com/shell-script-opens-text-editor/
作者:[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/

View File

@ -0,0 +1,44 @@
好奇 Linux试试云端的 Linux 桌面
================================================================================
Linux 在桌面操作系统市场上只占据了非常小的份额从目前的调查结果来看估计只有2%的市场份额;对比来看,丰富多变的 Windows 系统占据了接近90%的市场份额。对于 Linux 来说,要挑战 Windows 在桌面操作系统市场的垄断,需要有一个让用户学习不同的操作系统的简单方式。如果你相信传统的 Windows 用户会再买一台机器来使用 Linux那你就太天真了。我们只能去试想用户重新分区设置引导程序来使用双系统或者跳过所有步骤回到一个最简单的方法。
![](http://www.linuxlinks.com/portal/content/reviews/Cloud/CloudComputing.png)
我们实验过一系列让用户试操作 Linux 的无风险的使用方法,不涉及任何分区管理,包括 CD/DVD 光盘、USB 存储棒和桌面虚拟化软件等等。通过实验,我强烈推荐使用 VMware 的 VMware Player 或者 Oracle VirtualBox 虚拟机,对于桌面操作系统或者便携式电脑的用户,这是一种安装运行多操作系统的相对简单而且免费的的方法。每一台虚拟机和其他虚拟机相隔离,但是共享 CPU、内存、网络接口等等。虚拟机仍需要一定的资源来安装运行 Linux也需要一台相当强劲的主机。但对于一个好奇心不大的人这样做实在是太麻烦了。
要打破用户传统的使用观念是非常困难的。很多 Windows 用户可以尝试使用 Linux 提供的自由软件,但也有太多要学习的 Linux 系统知识。这会花掉他们相当一部分时间才能习惯 Linux 的工作方式。
当然了,对于一个第一次在 Linux 上操作的新手,有没有一个更高效的方法呢?答案是肯定的,接着往下看看云实验平台。
### LabxNow ###
![LabxNow](http://www.linuxlinks.com/portal/content/reviews/Cloud/Screenshot-LabxNow.png)
LabxNow 提供了一个免费服务,方便广大用户通过浏览器来访问远程 Linux 桌面。开发者将其加强为一个用户个人远程实验室(用户可以在系统里运行、开发任何程序),用户可以在任何地方通过互联网登入远程实验室。
这项服务现在可以为个人用户提供2核处理器4GB RAM和10GB的固态硬盘运行在128G RAM的4 AMD 6272处理器上。
#### 配置参数: ####
- 系统镜像:基于 Ubuntu 14.04 的 Xface 4.10RHEL 6.5CentOS(Gnome桌面)Oracle
- 硬件: CPU - 1核或者2核内存: 512MB, 1GB, 2GB or 4GB
- 超快的网络数据传输
- 可以运行在所有流行的浏览器上
- 可以安装任意程序,可以运行任何程序 这是一个非常棒的方法,可以随意做实验学习你想学的任何知识,没有 一点风险
- 添加、删除、管理、制定虚拟机非常方便
- 支持虚拟机共享,远程桌面
你所需要的只是一台有稳定网络的设备。不用担心虚拟专用系统VPS、域名、或者硬件带来的高费用。LabxNow提供了一个在 Ubuntu、RHEL 和 CentOS 上实验的非常好的方法。它给 Windows 用户提供一个极好的环境,让他们探索美妙的 Linux 世界。说得深入一点,它可以让用户随时随地在里面工作,而没有了要在每台设备上安装 Linux 的压力。点击下面这个链接进入 [www.labxnow.org/labxweb/][1]。
另外还有一些其它服务(大部分是收费服务)可以让用户使用 Linux包括 Cloudsigma 环境的7天使用权和Icebergs.io 通过HTML5实现root权限。但是现在我推荐 LabxNow。
--------------------------------------------------------------------------------
来自: http://www.linuxlinks.com/article/20151003095334682/LinuxCloud.html
译者:[sevenot](https://github.com/sevenot)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[1]:https://www.labxnow.org/labxweb/

View File

@ -0,0 +1,81 @@
如何在 Antergos Linux 中使用 iPhone
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/iPhone-Antergos-Arch-Linux.jpg)
在Arch Linux中使用iPhone遇到麻烦了么iPhone和Linux从来都没有很好地集成。本教程中我会向你展示如何在Antergos Linux中使用iPhone对于同样基于Arch的的Linux发行版如Manjaro也应该同样管用。
我最近购买了一台全新的iPhone 6S当我连接到Antergos Linux中要拷贝一些照片时它完全没有检测到它。我看见iPhone正在被充电并且我已经允许了iPhone“信任这台电脑”但是还是完全没有检测到。我尝试运行`dmseg`但是没有关于iPhone或者Apple的信息。有趣的是我当我安装好了[libimobiledevice][1],这个就可以解决[iPhone在Ubuntu中的挂载问题][2]。
我会向你展示如何在Antergos中使用运行iOS 9的iPhone 6S。这会有更多的命令行但是我假设你用的是ArchLinux并不惧怕使用终端也不应该惧怕
### 在Arch Linux中挂载iPhone ###
**第一步**如果已经插入请拔下你的iPhone。
**第二步**:现在,打开终端输入下面的命令来安装必要的包。如果它们已经安装过了也没有关系。
sudo pacman -Sy ifuse usbmuxd libplist libimobiledevice
**第三步** 这些库和程序安装完成后,重启系统。
sudo reboot
**第四步**创建一个iPhone的挂载目录我建议在家目录中创建一个iPhone目录。
mkdir ~/iPhone
**第五步**:解锁你的手机并插入,如果询问是否信任该计算机,请允许信任。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/iPhone-mount-Antergos-Linux-2.jpeg)
**第六步** 看看这时iPhone是否已经被机器识别了。
dmesg | grep -i iphone
这时就该显示iPhone和Apple的结果了。就像这样
[ 31.003392] ipheth 2-1:4.2: Apple iPhone USB Ethernet device attached
[ 40.950883] ipheth 2-1:4.2: Apple iPhone USB Ethernet now disconnected
[ 47.471897] ipheth 2-1:4.2: Apple iPhone USB Ethernet device attached
[ 82.967116] ipheth 2-1:4.2: Apple iPhone USB Ethernet now disconnected
[ 106.735932] ipheth 2-1:4.2: Apple iPhone USB Ethernet device attached
这意味着这时iPhone已经被Antergos/Arch成功地识别了。
**第七步**: 设置完成后是时候挂载iPhone了使用下面的命令
ifuse ~/iPhone
由于我们在家目录中创建了挂载目录你不需要root权限就可以在家目录中看见。如果命令成功了你就不会看见任何输出。
回到Files看下iPhone是否已经识别。对于我而言在Antergos中看上去这样
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/iPhone-mount-Antergos-Linux.jpeg)
你可以在这个目录中访问文件。从这里复制文件或者复制到里面。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/iPhone-mount-Antergos-Linux-1.jpeg)
**第八步** 当你想要卸载的时候,使用这个命令:
sudo umount ~/iPhone
### 对你有用么? ###
我知道这并不是非常方便和理想iPhone应该像其他USB设备那样工作但是事情并不总是像人们想的那样。好的是一点小的DIY就能解决这个问题带来了一点成就感至少对我而言。我必须要说的是Antergos应该修复这个问题让iPhone可以默认挂载。
这个技巧对你有用么?如果你有任何问题或者建议,欢迎留下评论。
--------------------------------------------------------------------------------
via: http://itsfoss.com/iphone-antergos-linux/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:http://www.libimobiledevice.org/
[2]:http://itsfoss.com/mount-iphone-ipad-ios-7-ubuntu-13-10/

View File

@ -0,0 +1,92 @@
命令行下使用 Mop 监视股票价格
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-featured-new.jpg)
有一份隐性收入通常很不错,特别是当你可以轻松的协调业余和全职工作。如果你的日常工作使用了联网的电脑,交易股票就是一个获取额外收入的很流行的选项。
但是目前只有很少的股票监视软件可以运行在 linux 上,其中大多数还是基于图形界面的。如果你是一个 Linux 专家并且大量的工作时间是在没有图形界面的电脑上呢你是不是就没办法了还是有一些命令行下的股票追踪工具包括Mop也就是本文要聊一聊的工具。
### Mop ###
Mop如上所述是一个命令行下连续显示和更新美股和独立股票信息的工具。使用 GO 语言实现的,是 Michael Dvorkin 的智慧结晶。
### 下载安装 ###
因为这个项目使用 GO 实现的,所以你要做的第一步是在你的计算机上安装这种编程语言,下面就是在 Debian 系的系统,比如 Ubuntu 上安装 GO 的步骤:
sudo apt-get install golang
mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc
GO 安装好后的下一步是安装 Mop 工具和配置环境,你要做的是运行下面的命令:
sudo apt-get install git
go get github.com/michaeldv/mop
cd $GOPATH/src/github.com/michaeldv/mop
make install
export PATH="$PATH:$GOPATH/bin"
完成之后就可以运行下面的命令执行 Mop
cmd
### 特性 ###
当你第一次运行 Mop 时,你会看到类似下面的输出信息:
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-first-run.jpg)
如你所见,这些输出信息—— 周期性自动刷新 ——包含了主要几个交易所和个股的信息。
### 添加删除股票 ###
Mop 允许你轻松的从输出列表上添加/删除个股信息。要添加,你全部要做的是按“+”和输入股票名称。举个例子,下图就是添加 Facebook (FB) 到列表里。
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-add-stock.png)
我按下了“+”键就出现了包含文本“Add tickers”的一列提示我添加股票名称—— 我添加了 FB 然后按下回车。输出列表更新了,我添加的新股票也出现在列表了:
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-stock-added.png)
类似的,你可以使用“-”键和提供股票名称删除一个股票。
#### 根据价格分组 ####
还有一个把股票分组的办法依据他们的股价升跌你所要做的就是按下“g”键。接下来股票会分组显示升的在一起使用绿色字体显示而下跌的股票会黑色字体显示。
如下所示:
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-group-stocks-profit-loss.png)
#### 列排序 ####
Mop 同时也允许你根据不同的列类型改变排序规则。这种用法需要你按下“o”这个命令默认使用第一列的值来排序然后使用左右键来选择你要排序的列。完成之后按下回车对内容重新排序。
举个例子,下面的截图就是根据输出内容的第一列、按照字母表排序之后的结果。
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-change-order.png)
**注意**: 为了更好的理解,和前面的截屏对比一下。
#### 其他选项 ####
其它的可用选项包括“p”暂停市场和股票信息更新“q”或者“esc” 来退出命令行程序,“?”显示帮助页。
![](https://www.maketecheasier.com/assets/uploads/2015/09/mop-help.png)
### 结论 ###
Mop 是一个基础的股票监控工具,并没有提供太多的特性,只提供了它所声称的功能。很明显,这个工具并不是为专业股票交易者提供的,而仅仅为你在只有命令行的机器上得体的提供了一个跟踪股票信息的选择。
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/monitor-stock-prices-ubuntu-command-line/
作者:[Himanshu Arora][a]
译者:[oska874](https://github.com/oska874)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/himanshu/

View File

@ -0,0 +1,113 @@
用浏览器管理 Docker
================================================================================
Docker 越来越流行了。在一个容器里面而不是虚拟机里运行一个完整的操作系统是一种非常棒的技术和想法。docker 已经通过节省工作时间来拯救了成千上万的系统管理员和开发人员。这是一个开源技术,提供一个平台来把应用程序当作容器来打包、分发、共享和运行,而不用关注主机上运行的操作系统是什么。它没有开发语言、框架或打包系统的限制,并且可以在任何时间、任何地点运行,从小型计算机到高端服务器都可以。运行 docker 容器和管理它们可能会花费一点点努力和时间,所以现在有一款基于 web 的应用程序DockerUI可以让管理和运行容器变得很简单。DockerUI 是一个对那些不熟悉 Linux 命令行但又很想运行容器化程序的人很有帮助的工具。DockerUI 是一个开源的基于 web 的应用程序,它最值得称道的是它华丽的设计和用来运行和管理 docker 的简洁的操作界面。
下面会介绍如何在 Linux 上安装配置 DockerUI。
### 1. 安装 docker ###
首先,我们需要安装 docker。我们得感谢 docker 的开发者,让我们可以简单的在主流 linux 发行版上安装 docker。为了安装 docker我们得在对应的发行版上使用下面的命令。
#### Ubuntu/Fedora/CentOS/RHEL/Debian ####
docker 维护者已经写了一个非常棒的脚本,用它可以在 Ubuntu 15.04/14.10/14.04、 CentOS 6.x/7、 Fedora 22、 RHEL 7 和 Debian 8.x 这几个 linux 发行版上安装 docker。这个脚本可以识别出我们的机器上运行的 linux 的发行版本,然后将需要的源库添加到文件系统、并更新本地的安装源目录,最后安装 docker 及其依赖库。要使用这个脚本安装docker我们需要在 root 用户或者 sudo 权限下运行如下的命令,
# curl -sSL https://get.docker.com/ | sh
#### OpenSuse/SUSE Linux 企业版 ####
要在运行了 OpenSuse 13.1/13.2 或者 SUSE Linux Enterprise Server 12 的机器上安装 docker我们只需要简单的执行zypper 命令。运行下面的命令就可以安装最新版本的docker
# zypper in docker
#### ArchLinux ####
docker 在 ArchLinux 的官方源和社区维护的 AUR 库中可以找到。所以在 ArchLinux 上我们有两种方式来安装 docker。使用官方源安装需要执行下面的 pacman 命令:
# pacman -S docker
如果要从社区源 AUR 安装 docker需要执行下面的命令
# yaourt -S docker-git
### 2. 启动 ###
安装好 docker 之后,我们需要运行 docker 守护进程,然后才能运行并管理 docker 容器。我们需要使用下列命令来确认 docker 守护进程已经安装并运行了。
#### 在 SysVinit 上####
# service docker start
#### 在Systemd 上####
# systemctl start docker
### 3. 安装 DockerUI ###
安装 DockerUI 比安装 docker 要简单很多。我们仅仅需要从 docker 注册库上拉取 dockerui ,然后在容器里面运行。要完成这些,我们只需要简单的执行下面的命令:
# docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui
![Starting DockerUI Container](http://blog.linoxide.com/wp-content/uploads/2015/09/starting-dockerui-container.png)
在上面的命令里dockerui 使用的默认端口是9000我们需要使用`-p` 命令映射默认端口。使用`-v` 标志我们可以指定docker 的 socket。如果主机使用了 SELinux 那么就得使用`--privileged` 标志。
执行完上面的命令后,我们要检查 DockerUI 容器是否运行了,或者使用下面的命令检查:
# docker ps
![Running Docker Containers](http://blog.linoxide.com/wp-content/uploads/2015/09/running-docker-containers.png)
### 4. 拉取 docker 镜像 ###
现在我们还不能直接使用 DockerUI 拉取镜像,所以我们需要在命令行下拉取 docker 镜像。要完成这些我们需要执行下面的命令。
# docker pull ubuntu
![Docker Image Pull](http://blog.linoxide.com/wp-content/uploads/2015/10/docker-image-pull.png)
上面的命令将会从 docker 官方源 [Docker Hub][1]拉取一个标志为 ubuntu 的镜像。类似的我们可以从 Hub 拉取需要的其它镜像。
### 4. 管理 ###
启动了 DockerUI 容器之后,我们可以用它来执行启动、暂停、终止、删除以及 DockerUI 提供的其它操作 docker 容器的命令。
首先,我们需要在 web 浏览器里面打开 dockerui在浏览器里面输入 http://ip-address:9000 或者 http://mydomain.com:9000具体要根据你的系统配置。默认情况下登录不需要认证但是可以配置我们的 web 服务器来要求登录认证。要启动一个容器,我们需要有包含我们要运行的程序的镜像。
#### 创建 ####
创建容器我们需要在 Images 页面里,点击我们想创建的容器的镜像 id。然后点击 `Create` 按钮,接下来我们就会被要求输入创建容器所需要的属性。这些都完成之后,我们需要点击按钮`Create` 完成最终的创建。
![Creating Docker Container](http://blog.linoxide.com/wp-content/uploads/2015/10/creating-docker-container.png)
#### 停止 ####
要停止一个容器,我们只需要跳转到`Containers` 页面,然后选取要停止的容器。然后在 Action 的子菜单里面按下 Stop 就行了。
![Managing Container](http://blog.linoxide.com/wp-content/uploads/2015/10/managing-container.png)
#### 暂停与恢复 ####
要暂停一个容器,只需要简单的选取目标容器,然后点击 Pause 就行了。恢复一个容器只需要在 Actions 的子菜单里面点击 Unpause 就行了。
#### 删除 ####
类似于我们上面完成的任务,杀掉或者删除一个容器或镜像也是很简单的。只需要检查、选择容器或镜像,然后点击 Kill 或者 Remove 就行了。
### 结论 ###
DockerUI 使用了 docker 远程 API 提供了一个很棒的管理 docker 容器的 web 界面。它的开发者们完全使用 HTML 和 JS 设计、开发了这个应用。目前这个程序还处于开发中,并且还有大量的工作要完成,所以我们并不推荐将它应用在生产环境。它可以帮助用户简单的完成管理容器和镜像,而且只需要一点点工作。如果想要为 DockerUI 做贡献,可以访问它们的 [Github 仓库][2]。如果有问题、建议、反馈,请写在下面的评论框,这样我们就可以修改或者更新我们的内容。谢谢。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/setup-dockerui-web-interface-docker/
作者:[Arun Pyasi][a]
译者:[oska874](https://github.com/oska874)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/
[1]:https://hub.docker.com/
[2]:https://github.com/crosbymichael/dockerui/

View File

@ -0,0 +1,251 @@
如何在 CentOS 7.0 上配置 Ceph 存储
================================================================================
Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台。当你计划构建一个云时,你首先需要决定如何实现你的存储。开源的 Ceph 是红帽原生技术之一,它基于称为 RADOS 的对象存储系统,用一组网关 API 表示块、文件、和对象模式中的数据。由于它自身开源的特性这种便携存储平台能在公有云和私有云上安装和使用。Ceph 集群的拓扑结构是按照备份和信息分布设计的,这种内在设计能提供数据完整性。它的设计目标就是容错、通过正确配置能运行于商业硬件和一些更高级的系统。
Ceph 能在任何 Linux 发行版上安装,但为了能正确运行,它需要最近的内核以及其它最新的库。在这篇指南中,我们会使用最小化安装的 CentOS-7.0。
### 系统资源 ###
**CEPH-STORAGE**
OS: CentOS Linux 7 (Core)
RAM:1 GB
CPU:1 CPU
DISK: 20
Network: 45.79.136.163
FQDN: ceph-storage.linoxide.com
**CEPH-NODE**
OS: CentOS Linux 7 (Core)
RAM:1 GB
CPU:1 CPU
DISK: 20
Network: 45.79.171.138
FQDN: ceph-node.linoxide.com
### 安装前的配置 ###
在安装 Ceph 存储之前,我们要在每个节点上完成一些步骤。第一件事情就是确保每个节点的网络已经配置好并且能相互访问。
**配置 Hosts**
要在每个节点上配置 hosts 条目,要像下面这样打开默认的 hosts 配置文件LCTT 译注:或者做相应的 DNS 解析)。
# vi /etc/hosts
----------
45.79.136.163 ceph-storage ceph-storage.linoxide.com
45.79.171.138 ceph-node ceph-node.linoxide.com
**安装 VMware 工具**
工作环境是 VMWare 虚拟环境时,推荐你安装它的 open VM 工具。你可以使用下面的命令安装。
#yum install -y open-vm-tools
**配置防火墙**
如果你正在使用启用了防火墙的限制性环境,确保在你的 Ceph 存储管理节点和客户端节点中开放了以下的端口。
你必须在你的 Admin Calamari 节点开放 80、2003、以及4505-4506 端口,并且允许通过 80 号端口到 CEPH 或 Calamari 管理节点,以便你网络中的客户端能访问 Calamari web 用户界面。
你可以使用下面的命令在 CentOS 7 中启动并启用防火墙。
#systemctl start firewalld
#systemctl enable firewalld
运行以下命令使 Admin Calamari 节点开放上面提到的端口。
#firewall-cmd --zone=public --add-port=80/tcp --permanent
#firewall-cmd --zone=public --add-port=2003/tcp --permanent
#firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
#firewall-cmd --reload
在 Ceph Monitor 节点,你要在防火墙中允许通过以下端口。
#firewall-cmd --zone=public --add-port=6789/tcp --permanent
然后允许以下默认端口列表,以便能和客户端以及监控节点交互,并发送数据到其它 OSD。
#firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
如果你工作在非生产环境,建议你停用防火墙以及 SELinux 设置,在我们的测试环境中我们会停用防火墙以及 SELinux。
#systemctl stop firewalld
#systemctl disable firewalld
**系统升级**
现在升级你的系统并重启使所需更改生效。
#yum update
#shutdown -r 0
### 设置 Ceph 用户 ###
现在我们会新建一个单独的 sudo 用户用于在每个节点安装 ceph-deploy工具并允许该用户无密码访问每个节点因为它需要在 Ceph 节点上安装软件和配置文件而不会有输入密码提示。
运行下面的命令在 ceph-storage 主机上新建有独立 home 目录的新用户。
[root@ceph-storage ~]# useradd -d /home/ceph -m ceph
[root@ceph-storage ~]# passwd ceph
节点中新建的每个用户都要有 sudo 权限,你可以使用下面展示的命令赋予 sudo 权限。
[root@ceph-storage ~]# echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
ceph ALL = (root) NOPASSWD:ALL
[root@ceph-storage ~]# sudo chmod 0440 /etc/sudoers.d/ceph
### 设置 SSH 密钥 ###
现在我们会在 Ceph 管理节点生成 SSH 密钥并把密钥复制到每个 Ceph 集群节点。
在 ceph-node 运行下面的命令复制它的 ssh 密钥到 ceph-storage。
[root@ceph-node ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node
The key's randomart image is:
+--[ RSA 2048]----+
----------
[root@ceph-node ~]# ssh-copy-id ceph@ceph-storage
![SSH key](http://blog.linoxide.com/wp-content/uploads/2015/10/k3.png)
### 配置 PID 数目 ###
要配置 PID 数目的值,我们会使用下面的命令检查默认的内核值。默认情况下,是一个小的最大线程数 32768。
如下图所示通过编辑系统配置文件配置该值为一个更大的数。
![更改 PID 值](http://blog.linoxide.com/wp-content/uploads/2015/10/3-PID-value.png)
### 配置管理节点服务器 ###
配置并验证了所有网络后,我们现在使用 ceph 用户安装 ceph-deploy。通过打开文件检查 hosts 条目。
#vim /etc/hosts
ceph-storage 45.79.136.163
ceph-node 45.79.171.138
运行下面的命令添加它的库。
#rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm
![添加 Ceph 仓仓库](http://blog.linoxide.com/wp-content/uploads/2015/10/k1.png)
或者创建一个新文件并更新 Ceph 库参数,别忘了替换你当前的 Release 和版本号。
[root@ceph-storage ~]# vi /etc/yum.repos.d/ceph.repo
----------
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
之后更新你的系统并安装 ceph-deploy 软件包。
### 安装 ceph-deploy 软件包 ###
我们运行下面的命令以及 ceph-deploy 安装命令来更新系统以及最新的 ceph 库和其它软件包。
#yum update -y && yum install ceph-deploy -y
### 配置集群 ###
使用下面的命令在 ceph 管理节点新建一个目录并进入新目录,用于收集所有输出文件和日志。
#mkdir ~/ceph-cluster
#cd ~/ceph-cluster
----------
#ceph-deploy new storage
![设置 ceph 集群](http://blog.linoxide.com/wp-content/uploads/2015/10/k4.png)
如果成功执行了上面的命令,你会看到它新建了配置文件。
现在配置 Ceph 默认的配置文件,用任意编辑器打开它并在会影响你公共网络的 global 参数下面添加以下两行。
#vim ceph.conf
osd pool default size = 1
public network = 45.79.0.0/16
### 安装 Ceph ###
现在我们准备在和 Ceph 集群相关的每个节点上安装 Ceph。我们使用下面的命令在 ceph-storage 和 ceph-node 上安装 Ceph。
#ceph-deploy install ceph-node ceph-storage
![安装 ceph](http://blog.linoxide.com/wp-content/uploads/2015/10/k5.png)
处理所有所需仓库和安装所需软件包会需要一些时间。
当两个节点上的 ceph 安装过程都完成后,我们下一步会通过在相同节点上运行以下命令创建监视器并收集密钥。
#ceph-deploy mon create-initial
![Ceph 初始化监视器](http://blog.linoxide.com/wp-content/uploads/2015/10/k6.png)
### 设置 OSDs 和 OSD 守护进程 ###
现在我们会设置磁盘存储,首先运行下面的命令列出你所有可用的磁盘。
#ceph-deploy disk list ceph-storage
结果中会列出你存储节点中使用的磁盘,你会用它们来创建 OSD。让我们运行以下包括你磁盘名称的命令。
#ceph-deploy disk zap storage:sda
#ceph-deploy disk zap storage:sdb
为了最后完成 OSD 配置,运行下面的命令配置日志磁盘以及数据磁盘。
#ceph-deploy osd prepare storage:sdb:/dev/sda
#ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1
你需要在所有节点上运行相同的命令,它会清除你磁盘上的所有东西。之后为了集群能运转起来,我们需要使用以下命令从 ceph 管理节点复制不同的密钥和配置文件到所有相关节点。
#ceph-deploy admin ceph-node ceph-storage
### 测试 Ceph ###
我们快完成了 Ceph 集群设置,让我们在 ceph 管理节点上运行下面的命令检查正在运行的 ceph 状态。
#ceph status
#ceph health
HEALTH_OK
如果你在 ceph status 中没有看到任何错误信息,就意味着你成功地在 CentOS 7 上安装了 ceph 存储集群。
### 总结 ###
在这篇详细的文章中我们学习了如何使用两台安装了 CentOS 7 的虚拟机设置 Ceph 存储集群,这能用于备份或者作为用于处理其它虚拟机的本地存储。我们希望这篇文章能对你有所帮助。当你试着安装的时候记得分享你的经验。
--------------------------------------------------------------------------------
via: http://linoxide.com/storage/setup-red-hat-ceph-storage-centos-7-0/
作者:[Kashif Siddique][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog/)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/kashifs/

View File

@ -0,0 +1,53 @@
Linux有问必答如何找出Linux中内置模块的信息
================================================================================
> **提问**我想要知道Linux系统中内核内置的模块以及每个模块有哪些参数。有什么方法可以得到内置模块和设备驱动的列表以及它们的详细信息呢
现代Linux内核正在随着时间变化而迅速增长以支持大量的硬件、文件系统和网络功能。在此期间“可加载模块loadable kernel modules[LKM])”的引入防止内核变得越来越臃肿,以及在不同的环境中灵活地扩展功能及硬件支持,而不必重新构建内核。
最新的Linux发行版的内核只带了相对较小的“内置模块built-in modules其余的特定硬件驱动或者自定义功能作为“可加载模块”来让你选择地加载或卸载。
内置模块被静态地编译进了内核。不像可加载内核模块可以动态地使用`modprobe`、`insmod`、`rmmod`、`modinfo`或者`lsmod`等命令地加载、卸载、查询模块,内置的模块总是在启动时就加载进了内核,不会被这些命令管理。
### 找出内置模块列表 ###
要得到内置模块列表,运行下面的命令。
$ cat /lib/modules/$(uname -r)/modules.builtin
![](https://farm1.staticflickr.com/697/21481933835_ef6b9c71e1_c.jpg)
你也可以用下面的命令来查看有哪些内置模块:
![](https://farm6.staticflickr.com/5643/21295025949_57f5849c36_c.jpg)
### 找出内置模块参数 ###
每个内核模块无论是内置的还是可加载的都有一系列的参数。对于可加载模块,`modinfo`命令可以显示它们的参数信息。然而这个命令对内置模块没有用。你会得到下面的错误。
modinfo: ERROR: Module XXXXXX not found.
如果你想要查看内置模块的参数,以及它们的值,你可以在 **/sys/module** 下检查它们的内容。
在 /sys/module目录下你可以找到内核模块包含内置和可加载的命名的子目录。进入每个模块目录这里有个“parameters”目录列出了这个模块所有的参数。
比如你要找出tcp_cubic内核默认的TCP实现模块的参数。你可以这么做
$ ls /sys/module/tcp_cubic/parameters
接着阅读这个文件查看每个参数的值。
$ cat /sys/module/tcp_cubic/parameters/tcp_friendliness
![](https://farm6.staticflickr.com/5639/21293886250_a199b9c8f7_c.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/find-information-builtin-kernel-modules-linux.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni

View File

@ -0,0 +1,62 @@
Linux 上好用的 R 语言 IDE
================================================================================
前一段时间,我已经介绍过 [Linux 上针对 C/C++ 语言的最好 IDE][1]。很显然 C 或 C++ 并不是现存的唯一的编程语言,是时间讨论某些更加特别的语言了。
假如你做过一些统计工作,很可能你已经见识过 [R 语言][2] 了。假如你还没有,我真的非常推荐这门专为统计和数据挖掘而生的开源编程语言。若你拥有编程背景,它的语法可能会使你感到有些不适应,但希望它的向量化操作所带来的快速能够吸引到你。简而言之,请尝试使用一下这门语言。而要做到这一点,使用一个好的 IDE 来入门或许会更好。R 作为一门跨平台的语言,有着一大把好用的 IDE它们使得用 R 语言进行数据分析变得更惬意。假如你非常钟意一个特定的编辑器,这里也有一些好用的插件来将它转变为一个成熟的 R 语言的 IDE。
下面就让我们见识一下 Linux 环境下 5 个针对 R 语言的好用 IDE吧。
### 1. RStudio ###
![](https://c1.staticflickr.com/1/603/22093054381_431383ab60_c.jpg)
就让我们以或许是最为人们喜爱的 R IDE —— [RStudio][3] 来开始我们的介绍吧。除了一般 IDE 所提供的诸如语法高亮、代码补全等功能RStudio 还因其集成了 R 语言帮助文档、强大的调试器、多视图系统而突出。如果你准备入门 R 语言,我只建议你将 RStudio 作为你的 R 语言控制台,一方面用它来实时测试代码是很完美的,另外对象浏览器可以帮助你理解你正在处理的是哪类数据。最后,真正征服我的是它集成了图形显示器,使得你能够更轻松地将图形输出为图片文件。至于它不好的方面, RStudio 缺乏快捷键和高级设置来使得它成为一个完美的 IDE。然而它有一个以 AGPL 协议发布的免费版本, Linux 用户没有借口不去试试这个 IDE。
### 2. 带有 ESS 插件的 Emacs ###
![](https://c2.staticflickr.com/6/5824/22056857776_a14a4e7e1b_c.jpg)
在我的前一个有关 IDE 的文章中,很多朋友对我所给出的清单中没有 Emacs 而感到失望。对于这个,我的主要理由是 Emacs 可以说是 IDE 里面的“通配符”:你可以将它放到任意语言的 IDE 清单中。但对于 [带有 ESS 插件的 R][4] 来说事情就变得有些不同了。Emacs Speaks Statistics (ESS) 是一个令人惊异的插件,它将完全改变你使用 Emacs 编辑器的方式,真的非常适合 R 编程者的需求。与 RStudio 类似,带有 ESS 的 Emacs 拥有多视图,它有两个面板:一个显示代码,另一个则是一个 R 控制台,使得实时地测试代码和探索数据对象变得更加容易。但 ESS 真正的长处是可以和你已安装的其他 Emacs 插件无缝集成,以及它的高级配置选项。简而言之,如果你喜欢你的 Emacs 快捷键,你将能够在 R 语言开发环境下使用它们。然而,当你在 ESS 中处理大量数据时,我已经听闻并经历了一些效率低下的问题。尽管这个问题不是很重大,但足以让我更偏好 RStudio。
### 3. Vim 及 Vim-R-plugin ###
![](https://c1.staticflickr.com/1/680/22056923916_abe3531bb4_b.jpg)
在谈论完 Emacs 后,因为我不想去讨论 Emacs 和 Vim 的优劣,所以我尽力给予 Vim 同样的待遇,下面介绍 [Vim R 插件][5]。使用名为 tmux 的终端工具,这个工具使得在开启一个 R 控制台的同时,又书写 R 代码成为可能。但最为重要的是,它还为 Vim 带来了 R 语言的语法高亮和自动补全。你还可以轻易地获取 R 帮助文档和浏览数据对象。但再次强调,这些强大的功能来源于它大量的自定义选项和 Vim 的速度。假如你被这些功能所诱惑,我希望你能够通读有关介绍如何安装这个插件并设置相关环境的[文档][6]。
### 4. 带有 RGedit 的 Gedit ###
![](https://c1.staticflickr.com/1/761/22056923956_1413f60b42_c.jpg)
若 Emacs 和 Vim 都不是你的菜,而你恰好喜欢默认的 Gnome 编辑器,则 [RGedit][7] 就是专门为你而生的:它是 Gedit 的一个专门编辑 R 代码的插件。Gedit 比你以为的更强大,配上大量的插件,就有可能用它来做许许多多的事情。而 RGedit 恰好就是你编辑 R 代码所需要的那款插件。它支持传统的语法高亮并在屏幕下方集成了 R 控制台,但它还有一大类独特的功能,例如多文件编辑、代码折叠、文件查看器,甚至还有一个 GUI 的向导用来从 snippets 产生代码。尽管我对 Gedit 并不感冒,但我必须承认这些功能比一般插件的功能更好,并且在你花费很长时间去分析数据时它会有很大的帮助。唯一的不足是它的最后一次更新是 2013 年。我真的希望这个项目能够被重新焕发新生。
### 5. RKWard ###
![](https://c2.staticflickr.com/6/5643/21896132829_2ea8f3a320_c.jpg)
最后的并不意味着最不重要,作为这个清单的最后,[RKWard][8] 是一个 KDE 环境下的 R 语言 IDE。我最喜爱它的一点是它的名称。但说老实话它的包管理系统和类似电子表格的数据编辑器排在我最喜欢它的理由的第二位。除了这些它还包含一个简单的用来画图和导入数据的系统另外它还可以使用插件来扩展功能。假如你不是一个 KDE 迷,或许你有点不喜欢这个,但若你是,我真的建议你考虑使用它。
总的来说,无论你是否刚入门 R 语言,这些 IDE 对你或许都有些帮助。假如你更偏好某个软件它自身所代表的东西或者是偏好针对你喜爱的编辑器的插件,这些都没有什么问题,我确信你将感激这些软件所提供的某些功能。同时我还确信我遗漏了很多好的针对 R 语言的 IDE或许它们值得罗列在这个清单上。鉴于你们在上一篇针对 C/C++ 的最好 IDE 这个话题中陈述了很多非常有用的评论,我也邀请你们在这里做出同样精彩的评论并分享出你的知识。
关于 Linux 下针对 R 语言的好用编辑器,你有什么看法呢?请在下面的评论中让我们知晓。
--------------------------------------------------------------------------------
via: http://xmodulo.com/good-ide-for-r-on-linux.html
作者:[Adrien Brochard][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/adrien
[1]:http://xmodulo.com/good-ide-for-c-cpp-linux.html
[2]:https://www.r-project.org/
[3]:https://www.rstudio.com/
[4]:http://ess.r-project.org/
[5]:http://www.vim.org/scripts/script.php?script_id=2628
[6]:http://www.lepem.ufc.br/jaa/r-plugin.html
[7]:http://rgedit.sourceforge.net/
[8]:https://rkward.kde.org/

View File

@ -0,0 +1,61 @@
Linux有问必答 当使用代理服务器连接互联网时如何安装 Ubuntu 桌面版
================================================================================
> **提问:** 我的电脑连接到的公司网络是使用HTTP代理连上互联网的。当我想使用CD-ROM安装Ubuntu时安装在尝试获取文件时被停滞了可能是由于代理的原因。然而问题是Ubuntu的安装程序从来没有在安装过程中提示我配置代理。我该怎样通过代理服务器安装Ubuntu桌面版
不像Ubuntu服务器版Ubuntu桌面版的安装非常自动化没有留下太多的自定义空间就像自定义磁盘分区手动网络设置包选择等等。虽然这种简单的一键安装被认为是用户友好的但却是那些寻找“高级安装模式”来定制自己的Ubuntu桌面安装的用户不希望的。
除此之外默认的Ubuntu桌面版安装器的一个大问题是缺少代理设置。如果你电脑在代理后面你会看到Ubuntu在准备下载文件的时候停滞了。
![](https://c2.staticflickr.com/6/5683/22195372232_cea81a5e45_c.jpg)
这篇文章描述了如何解除Ubuntu安装限制以及**如何通过代理服务器安装Ubuntu桌面**。
基本的想法是这样的。首先启动到live Ubuntu桌面中而不是直接启动Ubuntu安装器配置代理设置并且手动在live Ubuntu中启动Ubuntu安装器。下面是步骤。
从Ubuntu桌面版CD/DVD或者USB启动后在欢迎页面点击“Try Ubuntu”。
![](https://c1.staticflickr.com/1/586/22195371892_3816ba09c3_c.jpg)
当你进入live Ubuntu后点击左边的设置图标。
![](https://c1.staticflickr.com/1/723/22020327738_058610c19d_c.jpg)
进入网络菜单。
![](https://c2.staticflickr.com/6/5675/22021212239_ba3901c8bf_c.jpg)
手动配置代理。
![](https://c1.staticflickr.com/1/735/22020025040_59415e0b9a_c.jpg)
接下来,打开终端。
![](https://c2.staticflickr.com/6/5642/21587084823_357b5c48cb_c.jpg)
输入下面的命令进入root会话。
$ sudo su
最后以root权限输入下面的命令。
# ubiquity gtk_ui
它会启动基于GUI的Ubuntu安装器。
![](https://c1.staticflickr.com/1/723/22020025090_cc64848b6c_c.jpg)
接着完成剩余的安装。
![](https://c1.staticflickr.com/1/628/21585344214_447020e9d6_c.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/install-ubuntu-desktop-behind-proxy.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni

View File

@ -0,0 +1,38 @@
Nautilus 的文件搜索将迎来巨大提升
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/10/nautilus-new-search-filters.jpg)
*在Nautilus中搜索零散文件和文件夹将会将会变得相当简单。*
[GNOME文件管理器][1]中正在开发一个新的**搜索过滤器**。它大量使用 GNOME 漂亮的弹出式菜单,以通过简单的方法来缩小搜索结果并精确地找到你所需要的。
开发者Georges Stavracas正致力于开发新的UI他[说][2]这个新的界面“更干净、更合理、更直观”。
根据他[上传到Youtube][3]的视频来展示的新方式-他还没有嵌入它-他没有错。
> 他在他的博客中写到:“ Nautilus 有非常复杂但是强大的内部组成,它允许我们做很多事情。事实上在代码上存在各种可能。那么,为何它曾经看上去这么糟糕?”
这个问题的部分原因比较令人吃惊:新的搜索过滤器界面向用户展示了“强大的内部组成”。搜索结果可以根据类型、名字或者日期范围来进行过滤。
对于像 Nautilus 这类 app 的任何修改有可能让一些用户不安因此像这样帮助性的、直接的新UI会带来一些争议。
虽然对于不满的担心貌似会影响进度(毫无疑问,虽然像[移除输入优先搜索][4]的争议自2014年以来一直在争论。GNOME 3.18 在[上个月发布了][5],给 Nautilus 引入了新的文件进度对话框,以及远程共享的更好整合,包括 Google Drive。
Stavracas 的搜索过滤器还没被合并进 Files 的 trunk 中,但是复刻的搜索 UI 已经初步计划在明年春天的 GNOME 3.20 中实现。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2015/10/new-nautilus-search-filter-ui
作者:[Joey-Elijah Sneddon][a]
译者:[geekpi](https://github.com/geekpi)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:https://wiki.gnome.org/Apps/Nautilus
[2]:http://feaneron.com/2015/10/12/the-new-search-for-gnome-files-aka-nautilus/
[3]:https://www.youtube.com/watch?v=X2sPRXDzmUw
[4]:http://www.omgubuntu.co.uk/2014/01/ubuntu-14-04-nautilus-type-ahead-patch
[5]:http://www.omgubuntu.co.uk/2015/09/gnome-3-18-release-new-features

View File

@ -0,0 +1,74 @@
Linux 下如何安装 Retro Terminal
================================================================================
![Retro Terminal in Linux](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Retro-Terminal-Linux.jpeg)
你有怀旧情节?那就试试 **安装复古终端应用** [cool-retro-term][1] 来一瞥过去的时光吧。顾名思义,`cool-retro-term` 是一个兼具酷炫和怀旧的终端。
你还记得那段遍地都是 CRT 显示器、终端屏幕闪烁不停的时光吗?现在你并不需要穿越到过去来见证那段时光。假如你观看背景设置在上世纪 90 年代的电影,你就可以看到大量带有绿色或黑底白字的显像管显示器。这种极客光环让它们看起来非常酷!
若你已经厌倦了你机器中终端的外表,正寻找某些炫酷且‘新奇’的东西,则 `cool-retro-term` 将会带给你一个复古的终端外表,使你可以重温过去。你也可以改变它的颜色、动画类型并添加一些额外的特效。
下面是不同外观下 `cool-retro-term` 的一些截图:
![Retro Terminal](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Retro-Terminal-Linux-1.jpeg)
![Retro Terminal Linux](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Retro-Terminal-Linux-2.jpeg)
![Vintage Terminal](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Retro-Terminal-Linux-3.jpeg)
### 在基于 Ubuntu 的 Linux 发行版本下安装 cool-retro-term ###
如果想在基于 Ubuntu 的 Linux 发行版本下安装 cool-retro-term例如 Linux Mintelementary OS, Linux Lite 等,可以使用下面的 PPA
sudo add-apt-repository ppa:noobslab/apps
sudo apt-get update
sudo apt-get install cool-retro-term
### 在基于 Arch 的 Linux 发行版本下安装 cool-retro-term ###
若你想在诸如 [Antergos][2] 和 [Manjaro][3] 等基于 Arch 的 Linux 发行版本下安装 cool-retro-term ,则可以使用下面的命令:
sudo pacman -S cool-retro-term
### 从源代码安装 cool-retro-term ###
如果你想从源代码安装这个应用,那么首先你需要安装一些依赖。在基于 Ubuntu 的发行版本中,已知的依赖有:
sudo apt-get install git build-essential qmlscene qt5-qmake qt5-default qtdeclarative5-dev qtdeclarative5-controls-plugin qtdeclarative5-qtquick2-plugin libqt5qml-graphicaleffects qtdeclarative5-dialogs-plugin qtdeclarative5-localstorage-plugin qtdeclarative5-window-plugin
对于其他发行版本,已知的依赖可以在 [cool-retro-term 的 github 页面][4] 中找到。
现在使用下面的命令来编译这个程序吧:
git clone https://github.com/Swordfish90/cool-retro-term.git
cd cool-retro-term
qmake && make
一旦程序编译成功,你就可以使用下面的命令来运行它了:
./cool-retro-term
假如你想把这个应用放在程序菜单中以便快速找到,这样你就不用再每次手动地用命令来启动它,则你可以使用下面的命令:
sudo cp cool-retro-term.desktop /usr/share/applications
在这里你可以学到更多的终端技巧。在 Linux 中享受这个复古的终端吧
稿件来自: [Abhishek Prakash][5]
--------------------------------------------------------------------------------
via: http://itsfoss.com/cool-retro-term/
作者:[Abhishek Prakash][a]
译者:[FSSlc](https://github.com/FSSlc)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:https://github.com/Swordfish90/cool-retro-term
[2]:http://itsfoss.com/tag/antergos/
[3]:https://manjaro.github.io/
[4]:https://github.com/Swordfish90/cool-retro-term
[5]:http://itsfoss.com/author/abhishek/

View File

@ -0,0 +1,64 @@
如何在 GNOME 3 中显示桌面
================================================================================
![How to show desktop in GNOME 3](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Show-Desktop-in-GNOME-3.jpg)
你**如何在 GNOME 3 中显示桌面**GNOME是一个很棒的桌面环境但是它更加专注于在程序间切换。如果你想关闭所有运行中的窗口仅仅显示桌面呢
在Windows中你可以按下Windows+D。在Ubuntu Unity中可以用Ctrl+Super+D快捷键。不过由于一些原因GNOME禁用了显示桌面的快捷键。
当你按下Super+D或者Ctrl+Super+D什么都不会发生。如果你想要看到桌面你得一个个最小化窗口。如果你有好几个打开的窗口那么这会非常不方便。
在本教程中,我将会向你展示在[GNOME 3][1]中添加显示桌面的快捷键。
### 在GNOME 3 中添加显示桌面的快捷键 ###
我在本教程的使用的是带有GNOME 3.18的[Antergos Linux][2]但是这些步骤对于任何GNOME 3版本的Linux发行版都适用。同时Antergos也使用了[Numix主题][3]作为默认主题。因此你也许不会看到平常的GNOME图标。但是我相信步骤是一目了然的很容易就能理解。
#### 第一步 ####
进入系统设置。点击右上角,在下拉列表中,点击系统设置图标。
![System Settings in GNOME Antergos Linux](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Show-Desktop-GNOME-1.png)
#### 第二步 ####
当你在系统设置中时寻找Keyboard设置。
![Keyboard settings in GNOME 3](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Show-Desktop-GNOME-2.png)
#### 第三步 ####
在这里,选择**Shortcuts**标签并在左边拦选择**Navigation**。向下滚动一点查找**Hide all normal windows**。你会看见它已经被禁用了。
![Shortcut keys in GNOME 3](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Show-Desktop-GNOME-3.jpeg)
#### 第四步 ####
在“Hide all normla windows”上面点击一下。你会看到它变成了**New accelerator**。现在无论你按下哪个键,它都会被指定为显示桌面的快捷键。
如果你不小心按下了错误的组合键,只要按下退格它就会被禁用。再次点击并使用需要的组合键。
![Shortcut key edit in GNOME 3](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Show-Desktop-GNOME-4.jpeg)
#### 第五步 ####
一旦设置了组合键只要关闭系统设置。不用保存设置因为更改是立即生效的。在本例中我使用Ctrl+Super+D来与我在Ubuntu Unity中的使用习惯保持一致。
![Keyboard shortcut edit in GNOME](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Show-Desktop-GNOME-5.jpeg)
就是这样。享受GNOME 3中的显示桌面快捷键吧。我希望这篇教程对你们有用。有任何问题、建议或者留言都欢迎:)
--------------------------------------------------------------------------------
via: http://itsfoss.com/show-desktop-gnome-3/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:https://www.gnome.org/gnome-3/
[2]:http://itsfoss.com/tag/antergos/
[3]:https://linux.cn/article-3281-1.html

View File

@ -0,0 +1,72 @@
如何在 Linux 上使用 SSHfs 挂载一个远程文件系统
================================================================================
你曾经想过用安全 shell 挂载一个远程文件系统到本地吗如果有的话SSHfs 也许就是你所需要的。它通过使用 SSH 和 FuseLCTT 译注Filesystem in Userspace用户态文件系统是 Linux 中用于挂载某些网络空间,如 SSH到本地文件系统的模块 允许你挂载远程计算机(或者服务器)到本地。
**注意** 这篇文章假设你明白[SSH 如何工作并在你的系统中配置 SSH][1]。
### 准备 ###
在使用 SSHfs 挂载之前,需要进行一些设置 - 在你的系统上安装 SSHfs 以及 fuse 软件包。你还需要为 fuse 创建一个组,添加用户到组,并创建远程文件系统将会驻留的目录。
要在 Ubuntu Linux 上安装两个软件包,只需要在终端窗口输入以下命令:
sudo apt-get install sshfs fuse
![ubuntu 安装 sshfs-fuse](https://www.maketecheasier.com/assets/uploads/2015/10/sshfs-install-fuse-ubuntu.jpg)
如果你使用的不是 Ubuntu那就在你的发行版软件包管理器中搜索软件包名称。最好搜索和 fuse 或 SSHfs 相关的关键字,因为取决于你运行的系统,软件包名称可能稍微有些不同。
在你的系统上安装完软件包之后,就该创建好 fuse 组了。在你安装 fuse 的时候,应该会在你的系统上创建一个组。如果没有的话,在终端窗口中输入以下命令以便在你的 Linux 系统中创建组:
sudo groupadd fuse
添加了组之后,把你的用户添加到这个组。
sudo gpasswd -a "$USER" fuse
![sshfs 添加用户到组 fuse](https://www.maketecheasier.com/assets/uploads/2015/10/sshfs-add-user-to-fuse-group.png)
别担心上面命令的 `$USER`。shell 会自动用你自己的用户名替换。处理了和组相关的工作之后,就是时候创建要挂载远程文件的目录了。
mkdir ~/remote_folder
在你的系统上创建了本地目录之后,就可以通过 SSHfs 挂载远程文件系统了。
### 挂载远程文件系统 ###
要在你的机器上挂载远程文件系统,你需要在终端窗口中输入一段较长的命令。
sshfs -o idmap=user username@ip.address:/remote/file/system/ ~/remote
![sshfs 挂载文件系统到本地目录1](https://www.maketecheasier.com/assets/uploads/2015/10/sshfs-mount-file-system-to-local-folder.png)
**注意** 也可以通过 SSH 密钥文件挂载 SSHfs 文件系统。只需要在上面的命中用 `sshfs -o IdentityFile=~/.ssh/keyfile`, 替换 `sshfs -o idmap=user` 部分。
输入这个命令之后,会提示你输入远程用户的密码。如果登录成功了,你的远程文件系统就会被挂载到之前创建的 `~/remote_folder` 目录。
![sshfs挂载文件系统到本地目录2](https://www.maketecheasier.com/assets/uploads/2015/10/sshfs-mount-file-system-to-local-folder-2.jpg)
使用完了你的远程文件系统,想要卸载它?容易吗?只需要在终端输入下面的命令:
sudo umount ~/remote_folder
这个简单的命令会断开远程连接同时清空 remote_folder 目录。
### 总结 ###
在 Linux 上有很多工具可以用于访问远程文件并挂载到本地。但是如之前所说,如果有的话,也只有很少的工具能充分利用 SSH 的强大功能。我希望在这篇指南的帮助下,也能认识到 SSHfs 是一个多么强大的工具。
你觉得 SSHfs 怎么样呢?在下面的评论框里告诉我们吧!
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/sshfs-mount-remote-filesystem-linux/
作者:[Derrik Diener][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog/)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/derrikdiener/
[1]:https://www.maketecheasier.com/setup-ssh-ubuntu/

View File

@ -0,0 +1,87 @@
如何在 Linux 终端下创建新的文件系统/分区
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-feature-image.png)
在 Linux 中创建分区或新的文件系统通常意味着一件事:安装 Gnome Parted 分区编辑器GParted。对于大多数 Linux 用户而言,这是唯一的办法。不过,你是否考虑过在终端创建这些分区和文件系统?当然可以!以下就是方法!
### 使用 CFdisk 创建一个基本的 Linux 分区 ###
以下是如何在命令行中创建一个基本的 Linux 分区的正确方案。要做的第一件事就是先打开你的终端。若你已打开,你需要找到你想要创建分区的磁盘。这可以使用一个简单的命令来找到。
lsblk
![cfdisk-lsblk](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-lsblk.png)
当你运行了 `lsblk`,你应该会看到当前系统上每个磁盘的详细列表。看看这个列表,然后找出你想要使用的磁盘。在本文中,我将使用 `sdb` 来进行演示。
在终端输入这个命令。它会显示一个功能强大的基于终端的分区编辑程序。
sudo cfdisk /dev/sdb
![cfdisk-empty-layout](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-empty-layout.png)
**注意**: 使用在 `lsblk` 命令输出的你想要使用的磁盘来替换 `sdb`
当输入此命令后,你将进入分区编辑器中,然后访问你想改变的磁盘。
由于磁盘分区的不同,这取决于用户的需求,这部分的指南将在 **如何建立一个分离的 Linux home/root 分区布局**
首先,需要创建根分区。这需要根据磁盘的字节数来进行分割。我测试的磁盘是 32 GB。
在 CFdisk 中使用键盘上的方向键选择需要分配的空间。你找到后,请使用箭头键选择 [ NEW ],然后按 Enter 键。
![cfdisk-create-root-partition](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-create-root-partition.png)
该程序会要求你输入分区大小。一旦你指定好大小后,按 Enter 键。这将被称为根分区(或 /dev/sdb1
接下来该创建 home 分区(/dev/sdb2了。你需要在 CFdisk 中再选择一些空闲分区。使用箭头选择 [ NEW ] 选项,然后按 Enter 键。输入你的 home 分区的大小,然后按 Enter 键来创建它。
![cfdisk-create-home-partition](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-create-home-partition.png)
最后,需要创建交换分区。像前两次一样,先找一些空闲分区,并使用箭头选择 [ NEW ] 选项。之后,算下你 Linux 想使用多大的交换分区。
**注意**: 交换分区通常和计算机的内存差不多大。
![cfdisk-specify-partition-type-swap](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-specify-partition-type-swap.png)
现在,创建了交换分区,该指定其类型。使用上下箭头来选择它。之后,使用左右箭头选择 [ TYPE ] 。找到 Linux swap 选项,然后按 Enter 键。
![cfdisk-write-partition-table](https://www.maketecheasier.com/assets/uploads/2015/03/cfdisk-write-partition-table.jpg)
所有分区创建后。然后就是将其写入到磁盘。使用右箭头键,选择 [ WRITE ] 选项,然后按 Enter 键。这将直接将新创建的分布写入到磁盘中。
### 使用 mkfs 创建文件系统 ###
有时候,你并不需要一个整个重新分区,你只想要创建一个文件系统而已。你可以在终端直接使用 `mkfs` 命令来实现。
![cfdisk-mkfs-list-partitions-lsblk](https://www.maketecheasier.com/assets/uploads/2015/10/cfdisk-mkfs-list-partitions-lsblk.png)
首先,找出你要使用的磁盘。在终端输入 `lsblk` 找出来。它会打印出列表,之后只要找到你想创建文件系统的分区或盘符。
在这个例子中,我将使用第二个硬盘的 `/dev/sdb1` 作为第一个分区。可以对 `/dev/sdb` 使用 mkfs这将会使用整个分区
![cfdisk-mkfs-make-file-system-ext4](https://www.maketecheasier.com/assets/uploads/2015/10/cfdisk-mkfs-make-file-system-ext4.png)
要在一个特定的分区上创建新文件系统,只需输入
sudo mkfs.ext4 /dev/sdb1
在终端。应当指出的是,`mkfs.ext4` 可以换成任何你想要使用的的文件系统。
### 结论 ###
虽然使用图形工具编辑文件系统和分区更容易但终端可以说是更有效的。终端的加载速度更快点击几个按钮即可。GParted 和其它工具一样,它也是一个完整的工具。我希望在本教程的帮助下,你会明白如何在终端中高效的编辑文件系统。
你是否更喜欢使用基于终端的方法在 Linux 上编辑分区?不管是不是,请在下面告诉我们。
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/create-file-systems-partitions-terminal-linux/
作者:[Derrik Diener][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/derrikdiener/

View File

@ -0,0 +1,53 @@
Ubuntu 软件中心将在 16.04 LTS 中被替换
================================================================================
![The USC Will Be Replaced](http://www.omgubuntu.co.uk/wp-content/uploads/2011/09/usc1.jpg)
*Ubuntu 软件中心将在 Ubuntu 16.04 LTS 中被替换。*
Ubuntu Xenial Xerus 桌面用户将会发现这个熟悉的并有些繁琐的Ubuntu 软件中心将不再可用。
按照目前的计划GNOME 的 [软件应用Software application][1] 将作为基于 Unity 7 的桌面的默认包管理工具。
![GNOME Software](http://www.omgubuntu.co.uk/wp-content/uploads/2013/09/gnome-software.jpg)
*GNOME 软件应用*
作为这次变化的一个结果是,会新开发插件来支持软件中心的评级、评论和应用程序付费的功能。
该决定是在伦敦的 Canonical 总部最近举行的一次桌面峰会中通过的。
“相对于 Ubuntu 软件中心,我们认为我们在 GNOME 软件中心sic添加 Snaps 支持上能做的更好。所以,现在看起来我们将使用 GNOME 软件中心来取代 [Ubuntu 软件中心]”Ubuntu 桌面经理 Will Cooke 在 Ubuntu 在线峰会解释说。
GNOME 3.18 架构与也将出现在 Ubuntu 16.04 中,其中一些应用程序将更新到 GNOME 3.20 这么做也是有道理的Will Cooke 补充说。
我们最近在 Twitter 上做了一项民意调查,询问如何在 Ubuntu 上安装软件。结果表明,只有少数人怀念现在的软件中心...
你使用什么方式在 Ubuntu 上安装软件?
- 软件中心
- 终端
### 在 Ubuntu 16.04 其他应用程序也将会减少 ###
Ubuntu 软件中心并不是唯一一个在 Xenial Xerus 中被丢弃的。
光盘刻录工具 Brasero 和即时通讯工具 **Empathy** 也将从默认镜像中删除。
虽然这些应用程序还在不断的开发,但随着笔记本减少了光驱以及基于移动网络的聊天服务,它们看起来越来越过时了。
如果你还在使用它们请不要惊慌Brasero 和 Empathy 将 **仍然可以通过存档在 Ubuntu 上安装**
也并不全是丢弃和替换默认还包括了一个新的桌面应用程序GNOME 日历。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2015/11/the-ubuntu-software-centre-is-being-replace-in-16-04-lts
作者:[Sam Tran][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://plus.google.com/111008502832304483939?rel=author
[1]:https://wiki.gnome.org/Apps/Software

View File

@ -0,0 +1,84 @@
如何在 Ubuntu 上用 Go For It 管理您的待办清单
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-featured1.jpg)
任务管理可以说是工作及日常生活中最重要也最具挑战性的事情之一。当您在工作中承担越来越多的责任时,您的表现将与您管理任务的能力直接挂钩。
若您的工作有部分需要在电脑上完成,那么您一定很乐意知道,有多款应用软件自称可以为您减轻任务管理的负担。即便这些软件中的大多数都是为 Windows 用户服务的,在 Linux 系统中仍然有不少选择。在本文中我们就来讨论这样一款软件Go For It.
### Go For It ###
[Go For It][1] (GFI) 由 Manuel Kehl 开发他声称“这是款简单易用且时尚优雅的生产力软件以待办清单To-Do List为主打特色并整合了一个能让你专注于当前事务的定时器。”这款软件的定时器功能尤其有趣它还可以让您在继续工作之前暂停下来放松一段时间。
### 下载并安装 ###
使用基于 Debian 系统如Ubuntu的用户可以通过运行以下终端命令轻松地安装这款软件
sudo add-apt-repository ppa:mank319/go-for-it
sudo apt-get update
sudo apt-get install go-for-it
以上命令执行完毕后,您就可以使用这条命令运行这款应用软件了:
go-for-it
### 使用及配置###
当你第一次运行 GFI 时,它的界面是长这样的:
![gfi-first-run](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-first-run1.png)
可以看到,界面由三个标签页组成,分别是*待办* (To-Do)*定时器* (Timer)和*完成* (Done)。*待办*页是一个任务列表上图所示的4个任务是默认生成的——您可以点击头部的方框删除它们*定时器*页内含有任务定时器,而*完成*页则是已完成任务的列表。底部有个文本框,您可以在此输入任务描述,并点击“+”号将任务添加到上面的列表中。
举个例子我将一个名为“MTE-research-work”的任务添加到了列表中并点击选中了它如下图所示
![gfi-task-added](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-task-added1.png)
然后我进入*定时器*页在这里我可以看到一个为当前“MTE-reaserch-work”任务设定的定时器定时25分钟。
![gfi-active-task-timer](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-active-task-timer.png)
当然,您可以将定时器设定为你喜欢的任何值。然而我并没有修改,而是直接点击下方的“开始 (Start)”按钮启动定时器。一旦剩余时间为60秒GFI 就会给出一个提示。
![gfi-first-notification-new](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-first-notification-new.jpg)
一旦时间到它会提醒我休息5分钟。
![gfi-time-up-notification-new](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-time-up-notification-new.jpg)
5分钟过后我可以为我的任务再次开启定时器。
![gfi-break-time-up-new](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-break-time-up-new.jpg)
任务完成以后,您可以点击*定时器*页中的“完成 (Done)”按钮,然后这个任务就会从*待办*页被转移到*完成*页。
![gfi-task-done](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-task-done1.png)
GFI 也能让您稍微调整一些它的设置。例如,下图所示的设置窗口就包含了一些选项,让您修改默认的任务时长,休息时长和提示时刻。
![gfi-settings](https://www.maketecheasier.com/assets/uploads/2015/10/gfi-settings1.png)
值得一提的是GFI 是以 TODO.txt 格式保存待办清单的,这种格式方便了移动设备之间的同步,也让您能使用其他前端程序来编辑任务——更多详情请阅读[这里][2]。
您还可以通过以下视频观看 GFI 的动态展示。
youtube 视频
<iframe frameborder="0" src="http://www.youtube.com/embed/mnw556C9FZQ?autoplay=1&amp;autohide=2&amp;border=1&amp;wmode=opaque&amp;enablejsapi=1&amp;controls=1&amp;showinfo=0" id="youtube-iframe"></iframe>
### 结论###
正如您所看到的GFI 是一款简洁明了且易于使用的任务管理软件。虽然它没有提供非常丰富的功能,但它实现了它的承诺,定时器的整合特别有用。如果您正在寻找一款实现了基础功能,并且开源的 Linux 任务管理软件Go For It 值得您一试。
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/to-do-lists-ubuntu-go-for-it/
作者:[Himanshu Arora][a]
译者:[Ricky-Gong](https://github.com/Ricky-Gong)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/himanshu/
[1]:http://manuel-kehl.de/projects/go-for-it/
[2]:http://todotxt.com/

View File

@ -0,0 +1,51 @@
Linux 有问必答:如何在 Linux 中改变默认的 Java 版本
================================================================================
> **提问**当我尝试在Linux中运行一个Java程序时我遇到了一个错误。看上去像程序编译所使用的Java版本与我本地的不同。我该如何在Linux上切换默认的Java版本
当Java程序编译时编译环境会设置一个“target”变量来设置程序可以运行的最低Java版本。如果你Linux系统上运行的程序不能满足最低的JRE版本要求那么你会在运行的时候遇到下面的错误。
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xmodulo/hmon/gui/NetConf : Unsupported major.minor version 51.0
比如程序在Java JRE 1.7下编译但是系统只有Java JRE 1.6。
要解决这个问题你需要改变默认的Java版本到Java JRE 1.7或者更高假设JRE已经安装了
首先试用下面的update-alternatives命令**检查你系统上可用的Java版本**
$ sudo update-alternatives --display java
![](https://c2.staticflickr.com/6/5663/22661333316_81fe1ab7da_c.jpg)
本例中总共安装了4个不同的Java版本OpenJDK JRE 1.6、Oracle Java JRE 1.6、OpenJDK JRE 1.7 和 Oracle Java JRE 1.7。现在默认的Java版本是OpenJDK JRE 1.6。
如果没有安装需要的Java JRE你可以参考[这些指导][1]来完成安装。
现在有可用的候选版本你可以用下面的命令在可用的Java JRE之间**切换默认的Java版本**
$ sudo update-alternatives --config java
看到提示的时候选择你想试用的Java版本。本例中我们选择Oracle Java JRE 1.7。
![](https://c2.staticflickr.com/6/5651/22066181083_b9c4c5b676_c.jpg)
现在用下面的命令验证默认的Java版本。
$ java -version
![](https://c1.staticflickr.com/1/634/22499411280_1d702a4101_c.jpg)
最后如果你定义了JAVA_HOME环境变量根据你设置的Java版本更新变量。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/change-default-java-version-linux.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:http://ask.xmodulo.com/install-java-runtime-linux.html

View File

@ -0,0 +1,77 @@
Linux 有问必答:如何知道当前正在使用的 shell 是哪个?
================================================================================
> **问题**: 我经常在命令行中切换 shell。是否有一个快速简便的方法来找出我当前正在使用的 shell 呢?此外,我怎么能找到当前 shell 的版本?
### 找到你当前正在使用的 Shell 版本 ###
有多种方式可以查看你目前在使用什么 shell最简单的方法就是通过使用 shell 的特殊参数。
其一,[一个名为 "$$" 的特殊参数][1] 表示当前你正在运行的 shell 实例的 PID。此参数是只读的不能被修改。所以下面的命令也将显示你正在运行的 shell 的名字:
$ ps -p $$
PID TTY TIME CMD
21666 pts/4 00:00:00 bash
上述命令可在所有可用的 shell 中工作。
如果你不使用 csh找到当前使用的 shell 的另外一个办法是使用特殊参数 “$0” ,它表示当前正在运行的 shell 或 shell 脚本的名称。这是 Bash 的一个特殊参数,但也可用在其他 shell 中,如 sh、zsh、tcsh 或 dash。使用 echo 命令可以查看你目前正在使用的 shell 的名称。
$ echo $0
bash
不要被一个叫做 $SHELL 的单独的环境变量所迷惑,它被设置为你的默认 shell 的完整路径。因此,这个变量并不一定指向你当前使用的 shell。例如即使你在终端中调用不同的 shell$SHELL 也保持不变。
$ echo $SHELL
/bin/shell
![](https://c2.staticflickr.com/6/5688/22544087680_4a9c180485_c.jpg)
因此找出当前的shell你应该使用 $$ 或 $0但不是 $SHELL。
### 找出当前 Shell 的版本 ###
一旦你知道你使用的是哪个 shell你可能想知道此 shell 的版本。为此,在命令行中输入 shell 并在后面加上 “--version” 参数可以查看版本信息。例如:
**对于** bash **shell** :
$ bash --version
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
**对于** zsh **shell**:
$ zsh --version
zsh 5.0.7 (x86_64-pc-linux-gnu)
**对于** tcsh **shell**:
$ tcsh --version
tcsh 6.18.01 (Astron) 2012-02-14 (x86_64-unknown-linux) options wide,nls,dl,al,kan,rh,nd,color,filec
对于某些 shell你还可以使用 shell 特定的变量(例如,$BASH_VERSION 或 $ZSH_VERSION
$ echo $BASH_VERSION
4.3.8(1)-release
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/which-shell-am-i-using.html
作者:[Dan Nanni][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:http://ask.xmodulo.com/process-id-pid-shell-script.html

View File

@ -0,0 +1,131 @@
LastPass 的开源替代品
================================================================================
LastPass是一个跨平台的密码管理程序。在Linux平台中它可作为Firefox, Chrome和Opera浏览器的插件使用。LastPass Sesame支持Ubuntu/Debian与Fedora系统。此外LastPass还有安装在Firefox Portable的便携版可将其安装在USB设备上。再加上适用于Ubuntu/Debian, Fedora和openSUSE的LastPass Pocket, 其具有良好的跨平台覆盖性。虽然LastPass备受好评但它是一个专有软件。此外LastPass最近被LogMeIn收购。如果你在找一个开源的替代品这篇文章可能会对你有所帮助。
我们正面临着信息大爆炸。无论你是要在线经营生意,找工作,还是只为了休闲来进行阅读,互联网都是一个海量的信息源。在这种情况下,长期保留信息是很困难的。然而,及时地获取某些特定信息非常重要。密码就是这样的一个例子。
作为一个电脑用户,你可能会面临在不同服务或网站使用相同或不同密码的困境。这个事情非常复杂,因为有些网站会限制你对密码的选择。比如,一个网站可能会限制密码的最小位数,大写字母,数字或者特殊字符,这使得在所有网站使用统一密码变得不可能。更重要的是,不在不同网站中使用同一密码有安全方面的原因。这样就不可避免地意味着人们经常会有很多密码要记。一个解决方案是将所有的密码写下来。然而,这种做法也极度的不安全。
为了解决需要记忆无穷多串密码的问题,目前比较流行的解决方案是使用密码管理软件。事实上,这类软件对于活跃的互联网用户来说极为实用。它使得你获取、管理和安全保存所有密码变得极为容易,而大多数密码都是用软件或文件系统加密过的。因此,用户只需要记住一个简单的密码就可以获取到其它所有密码。密码管理软件鼓励用户对于不同服务去采用独一无二的,非直观的高强度的密码。
为了让大家更深入地了解Linux软件的质量我将介绍4款优秀的、可替代LastPass的开源软件。
### KeePassX ###
![KeePassX软件截图](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-KeePassX.png)
KeePassX是KeePass的多平台移植是一款开源、跨平台的密码管理软件。这款软件可以帮助你以安全的方式保管密码。你可以将所有密码保存在一个数据库中而这个数据库被一个主密码或密码盘来保管。这使得用户只需要记住一个单一的主密码或插入密码盘即可解锁整个数据库。
密码数据库使用AES(即Rijndael)或者TwoFish算法进行加密密钥长度为256位。
该软件功能包括:
- 管理模式丰富
- 通过标题使每条密码更容易被识别
- 可设置密码过期时间
- 可插入附件
- 可为不同分组或密码自定义标志
- 在分组中对密码排序
- 搜索功能:可在特定分组或整个数据库中搜索
- 自动键入: 这个功能允许你在登录网站时只需要按下几个键。KeePassX可以帮助你输入剩下的密码。自动键入通过读取当前窗口的标题对密码数据库进行搜索来获取相应的密码
- 数据库安全性强用户可通过密码或一个密钥文件可存储在CD或U盘中访问数据库或两者
- 安全密码自动生成
- 具有预防措施,获取用星号隐藏的密码并检查其安全性
- 加密 - 用256位密钥通过AES(高级加密标准)或TwoFish算法加密数据库
- 密码可以导入或导出。可从PwManager文件(*.pwm)或KWallet文件(*.xml)中导入密码,可导出为文本(*.txt)格式。
---
- 软件官网:[www.keepassx.org][1]
- 开发者KeepassX Team
- 软件许可证GNU GPL V2
- 版本号0.4.3
### Encryptr ###
![Encryptr软件截图](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-Encryptr.png)
Encryptr是一个开源的、零知识zero-knowledge的、基于云端的密码管理/电子钱包软件以Crypton为基础开发。Crypton是一个Javascript库允许开发者利用其开发应用来上传文件至服务器而服务器无法知道用户所存储的文件内容。
Encryptr可将你的敏感信息比如密码、信用卡数据、PIN码、或认证码存储在云端。然而由于它基于零知识的Cypton框架开发Encryptr可保证只有用户才拥有访问或读取秘密信息的权限。
由于其跨平台的特性Encryptr允许用户随时随地、安全地通过一个账户从云端获取机密信息。
软件特性包括:
- 使用非常安全的零知识Crypton框架只在你的本地加密/解密数据
- 易于使用
- 基于云端
- 可存储三种类型的数据:密码、信用卡账号以及通用的键值对
- 可对每条密码设置“备注”项
- 过滤和搜索密码
- 对密码进行本地加密缓存,以节省载入时间
---
- 软件官网: [encryptr.org][2]
- 开发者: Tommy Williams
- 软件许可证: GNU GPL v3
- 版本号: 1.2.0
### RatticDB ###
![RatticDB软件截图](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-RatticDB.png)
RatticDB是一个开源的、基于Django的密码管理服务。
RatticDB被设计为一个“密码生命周期管理工具”而不是单单一个“密码存储工具”。RatticDB致力于及时提醒用户哪些密码在何时需要更改。它不提供应用层面的密码加密。
软件特性包括:
- 简洁的ACL设计
- 可改变队列功能,可让用户知晓何时需要更改某应用的密码
- 支持Ansible配置
---
- 软件官网: [rattic.org][3]
- 开发者: Daniel Hall
- 软件许可证: GNU GPL v2
- 版本号: 1.3.1
### Seahorse ###
![Seahorse软件截图](http://www.linuxlinks.com/portal/content/reviews/Security/Screenshot-Seahorse.png)
Seahorse是一个GnuPGGNU隐私保护软件的Gnome前端界面。它的目标是提供一个易于使用密钥管理工具以及一个易于使用的界面来控制加密操作。
Seahorse是一个工具用来提供安全传输和数据存储服务。数据加密和数字密钥生成操作可以轻易通过GUI来操作密钥管理操作也可以轻易通过直观的界面来进行。
此外Seahorse包含一个Gedit插件可以使用鹦鹉螺文件管理器管理文件一个管理剪贴板中事物的小程序一个存储私密密码的代理还有一个GnuPG和OpenSSH的密钥管理工具。
软件特性包括:
- 对文本进行加密/解密/签名
- 管理密钥及密钥环
- 将密钥及密钥环与密钥服务器同步
- 密码签名及发布
- 将密码缓存起来,无需多次重复键入
- 对密钥及密钥环进行备份
- 可添加一个GDK支持格式的图片作为OpenGPG图片ID
- 生成SSH密钥对其进行验证及储存
- 多语言支持
---
- 软件官网: [www.gnome.org/projects/seahorse][4]
- 开发者: Jacob Perkins, Jose Carlos, Garcia Sogo, Jean Schurger, Stef Walter, Adam Schreiber
- 软件许可证: GNU GPL v2
- 版本号: 3.18.0
--------------------------------------------------------------------------------
via: http://www.linuxlinks.com/article/20151108125950773/LastPassAlternatives.html
译者:[StdioA](https://github.com/StdioA)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[1]:http://www.keepassx.org/
[2]:https://encryptr.org/
[3]:http://rattic.org/
[4]:http://www.gnome.org/projects/seahorse/

View File

@ -0,0 +1,48 @@
Linux 有问必答:如何在 Linux 上自动设置 JAVA_HOME 环境变量
================================================================================
> **问题**:我需要在我的 Linux 机器上编译 Java 程序。为此我已经安装了 JDK (Java Development Kit),而现在我正试图设置 JAVA\_HOME 环境变量使其指向安装好的 JDK 。关于在 Linux 上设置 JAVA\_HOME 环境变量,最受推崇的办法是什么?
许多 Java 程序或基于 Java 的*集成开发环境* (IDE)都需要设置好 JAVA_HOME 环境变量。该变量应指向 *Java 开发工具包* (JDK)或 *Java 运行时环境* (JRE)的安装目录。JDK 不仅包含了 JRE 提供的一切,还带有用于编译 Java 程序的额外的二进制代码和库文件(例如编译器,调试器及 JavaDoc 文档生成器。JDK 是用来构建 Java 程序的,如果只是运行已经构建好的 Java 程序,单独一份 JRE 就足够了。
当您正试图设置 JAVA\_HOME 环境变量时,麻烦的事情在于 JAVA\_HOME 变量需要根据以下几点而改变:(1) 您是否安装了 JDK 或 JRE(2) 您安装了哪个版本;(3) 您安装的是 Oracle JDK 还是 Open JDK。
因此每当您的开发环境或运行时环境发生改变(例如为 JDK 更新版本)时,您需要根据实际情况调整 JAVA\_HOME 变量,而这种做法是繁重且缺乏效率的。
以下 export 命令能为您**自动设置** JAVA\_HOME 环境变量,而无须顾及上述的因素。
若您安装的是 JRE
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
若您安装的是 JDK
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
根据您的情况,将上述命令中的一条写入 ~/.bashrc或 /etc/profile文件中它就会永久地设置好 JAVA\_HOME 变量。
注意,由于 java 或 javac 可以建立起多个层次的符号链接,为此"readlink -f"命令是用来获取它们真正的执行路径的。
举个例子,假如您安装的是 Oracle JRE 7那么上述的第一条 export 命令将自动设置 JAVA\_HOME 为:
/usr/lib/jvm/java-7-oracle/jre
若您安装的是 Open JDK 第8版那么第二条 export 命令将设置 JAVA\_HOME 为:
/usr/lib/jvm/java-8-openjdk-amd64
![](https://c1.staticflickr.com/1/700/22961948071_c73a3261dd_c.jpg)
简而言之,这些 export 命令会在您重装/升级您的JDK/JRE或[更换默认 Java 版本][1]时自动更新 JAVA\_HOME 变量。您不再需要手动调整它。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/set-java_home-environment-variable-linux.html
作者:[Dan Nanni][a]
译者:[Ricky-Gong](https://github.com/Ricky-Gong)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[1]:http://ask.xmodulo.com/change-default-java-version-linux.html

View File

@ -0,0 +1,48 @@
N1下一代开源邮件客户端
================================================================================
![N1 Open Source email client](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/11/N1-email-client.png)
当我们谈论到Linux中的邮件客户端通常 Thunderbird、Geary 和 [Evolution][3] 就会出现在我们的脑海。作为对这些大咖们的挑战,一款新的开源邮件客户端正在涌入市场。
### 设计和功能 ###
[N1][4]是一个设计与功能并重的新一代开源邮件客户端。作为一个开源软件N1目前支持 Linux 和 Mac OS XWindows的版本还在开发中。
N1宣传它自己为“可扩展的开源邮件客户端”因为它包含了 Javascript 插件框架,任何人都可以为它创建强大的新功能。可扩展是一个非常流行的功能,它帮助[开源编辑器Atom][5]变得流行。N1同样把重点放在了可扩展上面。
除了可扩展性N1同样着重设计了程序的外观。下面N1的截图就是个很好的例子
![N1 Open Source email client on Mac OS X](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/11/N1-email-client-1.jpeg)
*Mac OS X上的N1客户端。图片来自N1*
除了这个功能N1兼容上百个邮件服务提供商包括Gmail、Yahoo、iCloud、Microsoft Exchange等等这个桌面应用提供了离线功能。
### 目前只能邀请使用 ###
我不知道为什么每个人都选择了 OnePlus 的只能邀请使用的市场策略。目前N1桌面端只能被邀请才能下载。你可以用下面的链接请求一个邀请。N1团队会在几天内邮件给你下载链接。
- [请求N1邀请][6]
### 感兴趣了么? ###
我并不是桌面邮件客户端的粉丝,但是 N1 的确引起了我的兴趣,让我想要试一试。你呢?
--------------------------------------------------------------------------------
via: http://itsfoss.com/n1-open-source-email-client/
作者:[Abhishek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:https://www.mozilla.org/en-US/thunderbird/
[2]:https://wiki.gnome.org/Apps/Geary
[3]:https://help.gnome.org/users/evolution/stable/
[4]:https://nylas.com/N1/
[5]:http://itsfoss.com/atom-stable-released/
[6]:https://invite.nylas.com/download

View File

@ -0,0 +1,68 @@
如何在 Ubuntu 15.1014.04 中安装 NVIDIA 358.16 驱动程序
================================================================================
![nvidia-logo-1](http://ubuntuhandbook.org/wp-content/uploads/2015/06/nvidia-logo-1.png)
[NVIDIA 358.16][1] —— NVIDIA 358 系列的第一个稳定版本已经发布,并对 358.09 中(测试版)做了一些修正,以及一些小的改进。
NVIDIA 358 增加了一个新的 **nvidia-modeset.ko** 内核模块,可以配合 nvidia.ko 内核模块工作来调用 GPU 显示引擎。在以后发布版本中,**nvidia-modeset.ko** 内核驱动程序将被用于模式设置接口的基础该接口由内核的直接渲染管理器DRM所提供。
新的驱动程序也有新的 GLX 协议扩展,以及在 OpenGL 驱动中分配大量内存的系统内存分配新机制。新的 GPU **GeForce 805A****GeForce GTX 960A** 都支持。NVIDIA 358.16 也支持 X.Org 1.18 服务器和 OpenGL 4.3。
### 如何在 Ubuntu 中安装 NVIDIA 358.16 : ###
> **请不要在生产设备上安装,除非你知道自己在做什么以及如何才能恢复。**
对于官方的二进制文件,请到 [nvidia.com/object/unix.html][1] 查看。
对于那些喜欢 Ubuntu PPA 的,我建议你使用 [显卡驱动 PPA][2]。到目前为止,支持 Ubuntu 16.04, Ubuntu 15.10, Ubuntu 15.04, Ubuntu 14.04。
**1. 添加 PPA.**
通过按 `Ctrl+Alt+T` 快捷键来从 Unity 桌面打开终端。当打启动应用后,粘贴下面的命令并按回车键:
sudo add-apt-repository ppa:graphics-drivers/ppa
![nvidia-ppa](http://ubuntuhandbook.org/wp-content/uploads/2015/08/nvidia-ppa.jpg)
它会要求你输入密码。输入密码后,密码不会显示在屏幕上,按 Enter 继续。
**2. 刷新并安装新的驱动程序**
添加 PPA 后,逐一运行下面的命令刷新软件库并安装新的驱动程序:
sudo apt-get update
sudo apt-get install nvidia-358 nvidia-settings
### (如果需要的话,) 卸载: ###
开机从 GRUB 菜单进入恢复模式,进入根控制台。然后逐一运行下面的命令:
重新挂载文件系统为可写:
mount -o remount,rw /
删除所有的 nvidia 包:
apt-get purge nvidia*
最后返回菜单并重新启动:
reboot
要禁用/删除显卡驱动 PPA点击系统设置下的**软件和更新**,然后导航到**其他软件**标签。
--------------------------------------------------------------------------------
via: http://ubuntuhandbook.org/index.php/2015/11/install-nvidia-358-16-driver-ubuntu-15-10/
作者:[Ji m][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ubuntuhandbook.org/index.php/about/
[1]:http://www.nvidia.com/Download/driverResults.aspx/95921/en-us
[2]:http://www.nvidia.com/object/unix.html
[3]:https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

View File

@ -0,0 +1,46 @@
在 Ubuntu 15.10 上安装 Intel Graphics 安装器
================================================================================
![Intel graphics installer](http://ubuntuhandbook.org/wp-content/uploads/2015/11/intel_logo.jpg)
Intel 最近发布了一个新版本的 Linux Graphics 安装器。在新版本中,将不支持 Ubuntu 15.04,而必须用 Ubuntu 15.10 Wily。
> Linux 版 Intel® Graphics 安装器可以让你很容易的为你的 Intel Graphics 硬件安装最新版的图形与视频驱动。它能保证你一直使用最新的增强与优化功能,并能够安装到 Intel Graphics Stack 中,来保证你在你的 Intel 图形硬件下,享受到最佳的用户体验。*现在 Linux 版的 Intel® Graphics 安装器支持最新版的 Ubuntu。*
![intel-graphics-installer](http://ubuntuhandbook.org/wp-content/uploads/2015/11/intel-graphics-installer.jpg)
### 安装 ###
**1.** 从[这个链接页面][1]中下载该安装器。当前支持 Ubuntu 15.10 的版本是1.2.1版。你可以在**系统设置 -> 详细信息**中检查你的操作系统32位或64位的类型。
![download-intel-graphics-installer](http://ubuntuhandbook.org/wp-content/uploads/2015/11/download-intel-graphics-installer.jpg)
**2.** 一旦下载完成,到下载目录中点击 .deb 安装包,用 Ubuntu 软件中心打开它,然最后点击“安装”按钮。
![install-via-software-center](http://ubuntuhandbook.org/wp-content/uploads/2015/11/install-via-software-center.jpg)
**3.** 为了让系统信任 Intel Graphics 安装器,你需要通过下面的命令来为它添加密钥。
用快捷键`Ctrl+Alt+T`或者在 Unity Dash 中的“应用程序启动器”中打开终端。依次粘贴运行下面的命令。
wget --no-check-certificate https://download.01.org/gfx/RPM-GPG-KEY-ilg -O - | sudo apt-key add -
wget --no-check-certificate https://download.01.org/gfx/RPM-GPG-KEY-ilg-2 -O - | sudo apt-key add -
![trust-intel](http://ubuntuhandbook.org/wp-content/uploads/2015/11/trust-intel.jpg)
注意:在运行第一个命令的过程中,如果密钥下载完成后,光标停住不动并且一直闪烁的话,就像上面图片显示的那样,输入你的密码(输入时不会看到什么有变化)然后回车就行了。
最后通过 Unity Dash 或应用程序启动器打开 Intel Graphics 安装器。
--------------------------------------------------------------------------------
via: http://ubuntuhandbook.org/index.php/2015/11/install-intel-graphics-installer-in-ubuntu-15-10/
作者:[Ji m][a]
译者:[XLCYun](https://github.com/XLCYun)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ubuntuhandbook.org/index.php/about/
[1]:https://01.org/linuxgraphics/downloads

View File

@ -0,0 +1,126 @@
与 Linux 一起学习:使用这些 Linux 应用来征服你的数学学习
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-featured.png)
这篇文章是[与 Linux 一起学习][1]系列的一部分:
- [与 Linux 一起学习: 学习类型][2]
- [与 Linux 一起学习: 物理模拟][3]
- [与 Linux 一起学习: 学习音乐][4]
- [与 Linux 一起学习: 两个地理应用程序][5]
- [与 Linux 一起学习: 使用这些 Linux 应用来征服你的数学学习][6]
Linux 提供了大量的教育软件和许多优秀的工具来帮助各种年龄段和年级的学生学习和练习各种各样的习题,这通常是以交互的方式进行。“与 Linux 一起学习”这一系列的文章则为这些各种各样的教育软件和应用提供了一个介绍。
数学是计算机的核心。如果有人预期一个类如 GNU/ Linux 这样的伟大的操作系统精确而严格那么这就是数学所起到的作用。如果你在寻求一些数学应用程序那么你将不会感到失望。Linux 提供了很多优秀的工具使得数学看起来和你曾经做过的一样令人畏惧,但实际上他们会简化你使用它的方式。
### Gnuplot ###
Gnuplot 是一个适用于不同平台的命令行脚本化和多功能的图形工具。尽管它的名字中带有“GNU”但是它并不是 GNU 操作系统的一部分。虽然不是自由授权,但它是免费软件(这意味着它受版权保护,但免费使用)。
要在 Ubuntu 系统(或者衍生系统)上安装 `gnuplot`,输入:
sudo apt-get install gnuplot gnuplot-x11
进入一个终端窗口。启动该程序,输入:
gnuplot
你会看到一个简单的命令行界面:
![learnmath-gnuplot](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-gnuplot.png)
在其中您可以直接输入函数开始。绘图命令将绘制一个曲线图。
输入内容,例如,
plot sin(x)/x
随着`gnuplot的`提示,将会打开一个新的窗口,图像便会在里面呈现。
![learnmath-gnuplot-plot1](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-gnuplot-plot1.png)
你也可以即时设置设置这个图的不同属性比如像这样指定“title”
plot sin(x) title 'Sine Function', tan(x) title 'Tangent'
![learnmath-gnuplot-plot2](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-gnuplot-plot2.png)
你可以做的更深入一点,使用`splot`命令绘制3D图形
splot sin(x*y/20)
![learnmath-gnuplot-plot3](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-gnuplot-plot3.png)
这个图形窗口有几个基本的配置选项,
![learnmath-gnuplot-options](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-gnuplot-options.png)
但是`gnuplot`的真正力量在于在它的命令行和脚本功能,`gnuplot`更完整的文档在[Duke大学网站][8]上面[找到][7],带有这个了不起的教程的原始版本。
### Maxima ###
[Maxima][9]是一个源于 Macsyma 开发的一个计算机代数系统,根据它的 SourceForge 页面所述:
> “Maxima 是一个操作符号和数值表达式的系统包括微分积分泰勒级数拉普拉斯变换常微分方程线性方程组多项式集合列表向量矩阵和张量等。Maxima 通过精确的分数任意精度的整数和可变精度浮点数产生高精度的计算结果。Maxima 可以以二维和三维的方式绘制函数和数据。“
大多数Ubuntu衍生系统都有 Maxima 二进制包以及它的图形界面,要安装这些软件包,输入:
sudo apt-get install maxima xmaxima wxmaxima
在终端窗口中Maxima 是一个没有什么 UI 的命令行工具,但如果你开始 wxmaxima你会进入一个简单但功能强大的图形用户界面。
![learnmath-maxima](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-maxima.png)
你可以通过简单的输入来开始。提示回车会增加更多的行如果你想计算一个表达式使用“Shift + Enter”。
Maxima 可以用于一些简单的问题,因此也可以作为一个计算器:
![learnmath-maxima-1and1](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-maxima-1and1.png)
以及一些更复杂的问题:
![learnmath-maxima-functions](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-maxima-functions.png)
它使用`gnuplot`使得绘制简单:
![learnmath-maxima-plot](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-maxima-plot.png)
或者绘制一些复杂的图形。
![learnmath-maxima-plot2](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-maxima-plot2.png)
(它需要 gnuplot-X11 的软件包来显示它们。)
除了将表达式表示为图形Maxima 也可以用 latex 格式导出它们,或者通过右键快捷菜单进行一些常用操作.
![learnmath-maxima-menu](https://www.maketecheasier.com/assets/uploads/2015/07/learnmath-maxima-menu.png)
不过其主菜单还是提供了大量重磅功能,当然 Maxima 的功能远不止如此,这里也有一个广泛使用的[在线文档][10]。
### 总结 ###
数学不是一门容易的学科,这些在 Linux 上的优秀软件也没有使得数学更加容易,但是这些应用使得使用数学变得更加的简单和方便。以上两种应用都只是介绍一下 Linux 所提供的。如果你是认真从事数学和需要更多的功能与丰富的文档,那你更应该看看这些 [Mathbuntu][11] 项目。
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/learn-linux-maths/
作者:[Attila Orosz][a]
译者:[KnightJoker](https://github.com/KnightJoker/KnightJoker)
校对:[wxyD](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/attilaorosz/
[1]:https://www.maketecheasier.com/series/learn-with-linux/
[2]:https://www.maketecheasier.com/learn-to-type-in-linux/
[3]:https://www.maketecheasier.com/linux-physics-simulation/
[4]:https://www.maketecheasier.com/linux-learning-music/
[5]:https://www.maketecheasier.com/linux-geography-apps/
[6]:https://www.maketecheasier.com/learn-linux-maths/
[7]:http://www.gnuplot.info/documentation.html
[8]:http://people.duke.edu/~hpgavin/gnuplot.html
[9]:http://maxima.sourceforge.net/
[10]:http://maxima.sourceforge.net/documentation.html
[11]:http://www.mathbuntu.org/

View File

@ -0,0 +1,112 @@
# SSL/TLS 加密新纪元 - Let's Encrypt
根据 Let's Encrypt 官方博客消息Let's Encrypt 服务将在下周11 月 16 日)正式对外开放。
Let's Encrypt 项目是由互联网安全研究小组ISRGInternet Security Research Group主导并开发的一个新型数字证书认证机构CACertificate Authority。该项目旨在开发一个自由且开放的自动化 CA 套件,并向公众提供相关的证书免费签发服务以降低安全通讯的财务、技术和教育成本。在过去的一年中,互联网安全研究小组拟定了 [ACME 协议草案][1],并首次实现了使用该协议的应用套件:服务端 [Boulder][2] 和客户端 [letsencrypt][3]。
至于为什么 Let's Encrypt 让我们如此激动,以及 HTTPS 协议如何保护我们的通讯请参考[浅谈 HTTPS 和 SSL/TLS 协议的背景与基础][4]。
## ACME 协议
Let's Encrypt 的诞生离不开 ACMEAutomated Certificate Management Environment自动证书管理环境协议的拟定。
说到 ACME 协议,我们不得不提一下传统 CA 的认证方式。Let's Encrypt 服务所签发的证书为域名认证证书DVDomain-validated Certificate签发这类证书需要域名所有者完成以下至少一种挑战Challenge以证明自己对域名的所有权
* 验证申请人对域名的 Whois 信息中邮箱的控制权;
* 验证申请人对域名的常见管理员邮箱(如以 `admin@`、`postmaster@` 开头的邮箱等)的控制权;
* 在 DNS 的 TXT 记录中发布一条 CA 提供的字符串;
* 在包含域名的网址中特定路径发布一条 CA 提供的字符串。
不难发现其中最容易实现自动化的一种操作必然为最后一条ACME 协议中的 [Simple HTTP][5] 认证即是用一种类似的方法对从未签发过任何证书的域名进行认证。该协议要求在访问 `http://域名/.well-known/acme-challenge/指定字符串` 时返回特定的字符串。
然而实现该协议的客户端 [letsencrypt][3] 做了更多——它不仅可以通过 ACME 协议配合服务端 [Boulder][2] 的域名进行独立standalone的认证工作同时还可以自动配置常见的服务器软件目前支持 Nginx 和 Apache以完成认证。
## Let's Encrypt 免费证书签发服务
对于大多数网站管理员来讲,想要对自己的 Web 服务器进行加密需要一笔不小的支出进行证书签发并且难以配置。根据早些年 SSL Labs 公布的 [2010 年互联网 SSL 调查报告PDF][6] 指出超过半数的 Web 服务器没能正确使用 Web 服务器证书,主要的问题有证书不被浏览器信任、证书和域名不匹配、证书过期、证书信任链没有正确配置、使用已知有缺陷的协议和算法等。而且证书过期后的续签和泄漏后的吊销仍需进行繁琐的人工操作。
幸运的是 Let's Encrypt 免费证书签发服务在经历了漫长的开发和测试之后终于来临,在 Let's Encrypt 官方 CA 被广泛信任之前IdenTrust 的根证书对 Let's Encrypt 的二级 CA 进行了交叉签名使得大部分浏览器已经信任 Let's Encrypt 签发的证书。
## 使用 letsencrypt
由于当前 Let's Encrypt 官方的证书签发服务还未公开,你只能尝试开发版本。这个版本会签发一个 CA 标识为 `happy hacker fake CA` 的测试证书,注意这个证书不受信任。
要获取开发版本请直接 `$ git clone https://github.com/letsencrypt/letsencrypt`
以下的[使用方法][7]摘自 Let's Encrypt 官方网站。
### 签发证书
`letsencrypt` 工具可以协助你处理证书请求和验证工作。
#### 自动配置 Web 服务器
下面的操作将会自动帮你将新证书配置到 Nginx 和 Apache 中。
```
$ letsencrypt run
```
#### 独立签发证书
下面的操作将会将新证书置于当前目录下。
```
$ letsencrypt -d example.com auth
```
### 续签证书
默认情况下 `letsencrypt` 工具将协助你跟踪当前证书的有效期限并在需要时自动帮你续签。如果需要手动续签,执行下面的操作。
```
$ letsencrypt renew --cert-path example-cert.pem
```
### 吊销证书
列出当前托管的证书菜单以吊销。
```
$ letsencrypt revoke
```
你也可以吊销某一个证书或者属于某个私钥的所有证书。
```
$ letsencrypt revoke --cert-path example-cert.pem
```
```
$ letsencrypt revoke --key-path example-key.pem
```
## Docker 化 letsencrypt
如果你不想让 letsencrypt 自动配置你的 Web 服务器的话,使用 Docker 跑一份独立的版本将是一个不错的选择。你所要做的只是在装有 Docker 的系统中执行:
```
$ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
quay.io/letsencrypt/letsencrypt:latest auth
```
你就可以快速的为自己的 Web 服务器签发一个免费而且受信任的 DV 证书啦!
## Let's Encrypt 的注意事项
* Let's Encrypt 当前发行的 DV 证书仅能验证域名的所有权,并不能验证其所有者身份;
* Let's Encrypt 不像其他 CA 那样对安全事故有保险赔付;
* Let's Encrypt 目前不提共 Wildcard 证书;
* Let's Encrypt 的有效时间仅为 90 天,逾期需要续签(可自动续签)。
对于 Let's Encrypt 的介绍就到这里,让我们一起目睹这场互联网的安全革命吧。
[1]: https://github.com/letsencrypt/acme-spec
[2]: https://github.com/letsencrypt/boulder
[3]: https://github.com/letsencrypt/letsencrypt
[4]: https://linux.cn/article-5175-1.html
[5]: https://letsencrypt.github.io/acme-spec/#simple-http
[6]: https://community.qualys.com/servlet/JiveServlet/download/38-1636/Qualys_SSL_Labs-State_of_SSL_2010-v1.6.pdf
[7]: https://letsencrypt.org/howitworks/

View File

@ -0,0 +1,107 @@
如何在 Ubuntu 服务器中配置 AWStats
================================================================================
![](https://www.maketecheasier.com/assets/uploads/2015/10/Apache_awstats_featured.jpg)
AWStats 是一个开源的网站分析报告工具可以生成强大的网站、流媒体、FTP 或邮件服务器的访问统计图。此日志分析器以 CGI 或命令行方式进行工作,并在网页中以图表的形式尽可能的显示你日志中所有的信息。它可以“部分”读取信息文件,以便能够频繁并快速处理大量的日志文件。它支持绝大多数 Web 服务器日志文件格式,包括 ApacheIIS 等。
本文将帮助你在 Ubuntu 上安装配置 AWStats。
### 安装 AWStats 包 ###
默认情况下AWStats 的包可以在 Ubuntu 仓库中找到。
可以通过运行下面的命令来安装:
sudo apt-get install awstats
接下来,你需要启用 Apache 的 CGI 模块。
运行以下命令来启动 CGI
sudo a2enmod cgi
现在,重新启动 Apache 以使改变生效。
sudo /etc/init.d/apache2 restart
### 配置 AWStats ###
你需要为你想要查看统计的每个域或网站创建一个配置文件。在这个例子中,我们将为 “test.com” 创建一个配置文件。
要完成此步,你可以通过复制 AWStats 的默认配置文件来配置你要统计的域。
sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.test.com.conf
现在,你需要在配置文件中做一些修改:
sudo nano /etc/awstats/awstats.test.com.conf
像下面这样修改一下:
# Change to Apache log file, by default it's /var/log/apache2/access.log
LogFile="/var/log/apache2/access.log"
# Change to the website domain name
SiteDomain="test.com"
HostAliases="www.test.com localhost 127.0.0.1"
# When this parameter is set to 1, AWStats adds a button on report page to allow to "update" statistics from a web browser
AllowToUpdateStatsFromBrowser=1
保存并关闭文件。
修改配置文件后,你需要用服务器的当前日志建立初步统计。你可以这样做:
sudo /usr/lib/cgi-bin/awstats.pl -config=test.com -update
输出会是这个样子:
![awtstats](https://www.maketecheasier.com/assets/uploads/2015/10/awtstats.png)
### 为 Apache 配置 AWStats ###
接下来,你需要配置 Apache2 来显示统计数据。现在你需要将 “cgi-bin” 文件夹中的内容复制到 Apache 默认根目录下。默认它是在 “/usr/lib/cgi-bin”。
运行以下命令来完成此步:
sudo cp -r /usr/lib/cgi-bin /var/www/html/
sudo chown www-data:www-data /var/www/html/cgi-bin/
sudo chmod -R 755 /var/www/html/cgi-bin/
### 测试 AWStats ###
现在,您可以通过访问 url “http://your-server-ip/cgi-bin/awstats.pl?config=test.com.” 来查看 AWStats 的页面。
它的页面像下面这样:
![awstats_page](https://www.maketecheasier.com/assets/uploads/2015/10/awstats_page.jpg)
### 设置定时任务来更新日志 ###
建议你创建一个定时任务,使用新创建的日志条目定期更新 AWStats 的数据库,然后统计会定期更新。这也将节省你的时间。
要做到这一点,你需要编辑 “/etc/crontab” 文件:
sudo nano /etc/crontab
添加下面那一行来让 AWStats 每十分钟更新一次。
*/10 * * * * root /usr/lib/cgi-bin/awstats.pl -config=test.com -update
保存并关闭文件。
### 结论 ###
AWStats 是一个非常有用的工具,可以让你对网站的状况了如指掌,并能协助你分析网站。它非常容易安装和配置。如果你有任何疑问,请在下面发表评论。
--------------------------------------------------------------------------------
via: https://www.maketecheasier.com/set-up-awstats-ubuntu/
作者:[Hitesh Jethva][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.maketecheasier.com/author/hiteshjethva/

View File

@ -0,0 +1,81 @@
LNAV基于 Ncurses 的日志文件阅读器
================================================================================
日志文件导航器Logfile Navigator简称 lnav是一个基于 curses 的,用于查看和分析日志文件的工具。和文本阅读器/编辑器相比, lnav 的好处是它充分利用了可以从日志文件中获取的语义信息,例如时间戳和日志等级。利用这些额外的语义信息, lnav 可以处理像这样的事情:来自不同文件的交错的信息;按照时间生成信息直方图;支持在文件中导航的快捷键。它希望使用这些功能可以使得用户可以快速有效地定位和解决问题。
### lnav 功能 ###
#### 支持以下日志文件格式: ####
Syslog、Apache 访问日志、strace、tcsh 历史以及常见的带时间戳的日志文件。读入文件的时候回自动检测文件格式。
#### 直方图视图: ####
以时间区划来显示日志信息数量。这对于大概了解在一长段时间内发生了什么非常有用。
#### 过滤器: ####
只显示那些匹配或不匹配一些正则表达式的行。对于移除大量你不感兴趣的日志行非常有用。
#### 即时操作: ####
在你输入到时候会同时完成检索;当添加了新日志行的时候会自动加载和搜索;加载行的时候会应用过滤器;另外,还会在你输入 SQL 查询的时候检查其正确性。
#### 自动显示后文: ####
日志文件视图会自动往下滚动到新添加到文件中的行。只需要向上滚动就可以锁定当前视图,然后向下滚动到底部恢复显示后文。
#### 按照日期顺序排序行: ####
从所有文件中加载的日志行会按照日期进行排序。使得你不需要手动从不同文件中收集日志信息。
#### 语法高亮: ####
错误和警告会用红色和黄色显示。高亮还可用于: SQL 关键字、XML 标签、Java 文件行号和括起来的字符串。
#### 导航: ####
有快捷键用于跳转到下一个或上一个错误或警告,按照指定的时间向后或向前翻页。
#### 用 SQL 查询日志: ####
每个日志文件行都相当于数据库中的一行,可以使用 SQL 进行查询。可以使用的列取决于查看的日志文件类型。
#### 命令和搜索历史: ####
会自动保存你之前输入的命令和搜素,因此你可以在会话之间使用它们。
#### 压缩文件: ####
会实时自动检测和解压压缩的日志文件。
### 在 ubuntu 15.10 上安装 lnav ####
打开终端运行下面的命令
sudo apt-get install lnav
### 使用 lnav ###
如果你想使用 lnav 查看日志,你可以使用下面的命令,默认它会显示 syslogs
lnav
![](http://www.ubuntugeek.com/wp-content/uploads/2015/11/51.png)
如果你想查看特定的日志,那么需要指定路径。如果你想看 CPU 日志,在你的终端里运行下面的命令
lnav /var/log/cups
![](http://www.ubuntugeek.com/wp-content/uploads/2015/11/6.png)
--------------------------------------------------------------------------------
via: http://www.ubuntugeek.com/lnav-ncurses-based-log-file-viewer.html
作者:[ruchi][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog/)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.ubuntugeek.com/author/ubuntufix

View File

@ -0,0 +1,59 @@
如何在 Ubuntu 16.0415.1014.04 中安装 GIMP 2.8.16
================================================================================
![GIMP 2.8.16](http://ubuntuhandbook.org/wp-content/uploads/2015/11/gimp-icon.png)
GIMP 图像编辑器 2.8.16 版本在其20岁生日时发布了。下面是如何安装或升级 GIMP 在 Ubuntu 16.04, Ubuntu 15.10, Ubuntu 14.04, Ubuntu 12.04 及其衍生版本中,如 Linux Mint 17.x/13, Elementary OS Freya。
GIMP 2.8.16 支持 OpenRaster 文件中的层组,修复了 PSD 中的层组支持以及各种用户界面改进,修复了 OSX 上的构建系统,以及更多新的变化。请阅读 [官方声明][1]。
![GIMP image editor 2.8,16](http://ubuntuhandbook.org/wp-content/uploads/2014/08/gimp-2-8-14.jpg)
### 如何安装或升级: ###
多亏了 Otto Meier[Ubuntu PPA][2] 中最新的 GIMP 包可用于当前所有的 Ubuntu 版本和其衍生版。
**1. 添加 GIMP PPA**
从 Unity Dash 中打开终端,或通过 Ctrl+Alt+T 快捷键打开。在它打开它后,粘贴下面的命令并回车:
sudo add-apt-repository ppa:otto-kesselgulasch/gimp
![add GIMP PPA](http://ubuntuhandbook.org/wp-content/uploads/2015/11/gimp-ppa.jpg)
输入你的密码,密码不会在终端显示,然后回车继续。
**2. 安装或升级编辑器**
在添加了 PPA 后,启动 **Software Updater**(在 Mint 中是 Software Manager)。检查更新后,你将看到 GIMP 的更新列表。点击 “Install Now” 进行升级。
![upgrade-gimp2816](http://ubuntuhandbook.org/wp-content/uploads/2015/11/upgrade-gimp2816.jpg)
对于那些喜欢 Linux 命令的,按顺序执行下面的命令,刷新仓库的缓存然后安装 GIMP
sudo apt-get update
sudo apt-get install gimp
**3. (可选的) 卸载**
如果你想卸载或降级 GIMP 图像编辑器。从软件中心直接删除它,或者按顺序运行下面的命令来将 PPA 清除并降级软件:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:otto-kesselgulasch/gimp
就这样。玩的愉快!
--------------------------------------------------------------------------------
via: http://ubuntuhandbook.org/index.php/2015/11/how-to-install-gimp-2-8-16-in-ubuntu-16-04-15-10-14-04/
作者:[Ji m][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ubuntuhandbook.org/index.php/about/
[1]:http://www.gimp.org/news/2015/11/22/20-years-of-gimp-release-of-gimp-2816/
[2]:https://launchpad.net/~otto-kesselgulasch/+archive/ubuntu/gimp

View File

@ -0,0 +1,143 @@
tar 命令使用介绍
================================================================================
Linux [tar][1] 命令是归档或分发文件时的强大武器。GNU tar 归档包可以包含多个文件和目录还能保留其文件权限它还支持多种压缩格式。Tar 表示 "**T**ape **Ar**chiver",这种格式是 POSIX 标准。
### Tar 文件格式 ###
tar 压缩等级简介:
- **无压缩** 没有压缩的文件用 .tar 结尾。
- **Gzip 压缩** Gzip 格式是 tar 使用最广泛的压缩格式,它能快速压缩和提取文件。用 gzip 压缩的文件通常用 .tar.gz 或 .tgz 结尾。这里有一些如何[创建][2]和[解压][3] tar.gz 文件的例子。
- **Bzip2 压缩** 和 Gzip 格式相比 Bzip2 提供了更好的压缩比。创建压缩文件也比较慢,通常采用 .tar.bz2 结尾。
- **Lzip(LAMA)压缩** Lizp 压缩结合了 Gzip 快速的优势,以及和 Bzip2 类似(甚至更好) 的压缩率。尽管有这些好处,这个格式并没有得到广泛使用。
- **Lzop 压缩** 这个压缩选项也许是 tar 最快的压缩格式,它的压缩率和 gzip 类似,但也没有广泛使用。
常见的格式是 tar.gz 和 tar.bz2。如果你想快速压缩那么就是用 gzip。如果归档文件大小比较重要就是用 tar.bz2。
### tar 命令用来干什么? ###
下面是一些使用 tar 命令的常见情形。
- 备份服务器或桌面系统
- 文档归档
- 软件分发
### 安装 tar ###
大部分 Linux 系统默认都安装了 tar。如果没有这里有安装 tar 的命令。
#### CentOS ####
在 CentOS 中,以 root 用户在 shell 中执行下面的命令安装 tar。
yum install tar
#### Ubuntu ####
下面的命令会在 Ubuntu 上安装 tar。“sudo” 命令确保 apt 命令是以 root 权限运行的。
sudo apt-get install tar
#### Debian ####
下面的 apt 命令在 Debian 上安装 tar。
apt-get install tar
#### Windows ####
tar 命令在 Windows 也可以使用,你可以从 Gunwin 项目[http://gnuwin32.sourceforge.net/packages/gtar.htm][4]中下载它。
### 创建 tar.gz 文件 ###
下面是在 shell 中运行 [tar 命令][5] 的一些例子。下面我会解释这些命令行选项。
tar pczf myarchive.tar.gz /home/till/mydocuments
这个命令会创建归档文件 myarchive.tar.gz其中包括了路径 /home/till/mydocuments 中的文件和目录。**命令行选项解释**
- **[p]** 这个选项表示 “preserve”它指示 tar 在归档文件中保留文件属主和权限信息。
- **[c]** 表示创建。要创建文件时不能缺少这个选项。
- **[z]** z 选项启用 gzip 压缩。
- **[f]** file 选项告诉 tar 创建一个归档文件。如果没有这个选项 tar 会把输出发送到标准输出( LCTT 译注:如果没有指定,标准输出默认是屏幕,显然你不会想在屏幕上显示一堆乱码,通常你可以用管道符号送到其它程序去)。
#### Tar 命令示例 ####
**示例 1 备份 /etc 目录**
创建 /etc 配置目录的一个备份。备份保存在 root 目录。
tar pczvf /root/etc.tar.gz /etc
![用 tar 备份 /etc 目录](https://www.howtoforge.com/images/linux-tar-command/big/create-tar.png)
要以 root 用户运行命令确保 /etc 中的所有文件都会被包含在备份中。这次,我在命令中添加了 [v] 选项。这个选项表示 verbose它告诉 tar 显示所有被包含到归档文件中的文件名。
**示例 2 备份你的 /home 目录**
创建你的 home 目录的备份。备份会被保存到 /backup 目录。
tar czf /backup/myuser.tar.gz /home/myuser
用你的用户名替换 myuser。这个命令中我省略了 [p] 选项,也就不会保存权限。
**示例 3 基于文件的 MySQL 数据库备份**
在大部分 Linux 发行版中MySQL 数据库保存在 /var/lib/mysql。你可以使用下面的命令来查看
ls /var/lib/mysql
![使用 tar 基于文件备份 MySQL](https://www.howtoforge.com/images/linux-tar-command/big/tar_backup_mysql.png)
用 tar 备份 MySQL 数据文件时为了保持数据一致性,首先停用数据库服务器。备份会被写到 /backup 目录。
1 创建 backup 目录
mkdir /backup
chmod 600 /backup
2 停止 MySQL用 tar 进行备份并重新启动数据库。
service mysql stop
tar pczf /backup/mysql.tar.gz /var/lib/mysql
service mysql start
ls -lah /backup
![基于文件的 MySQL 备份](https://www.howtoforge.com/images/linux-tar-command/big/tar-backup-mysql2.png)
### 提取 tar.gz 文件###
提取 tar.gz 文件的命令是:
tar xzf myarchive.tar.gz
#### tar 命令选项解释 ####
- **[x]** x 表示提取,提取 tar 文件时这个命令不可缺少。
- **[z]** z 选项告诉 tar 要解压的归档文件是 gzip 格式。
- **[f]** 该选项告诉 tar 从一个文件中读取归档内容,本例中是 myarchive.tar.gz。
上面的 tar 命令会安静地提取 tar.gz 文件,除非有错误信息。如果你想要看提取了哪些文件,那么添加 “v” 选项。
tar xzvf myarchive.tar.gz
**[v]** 选项表示 verbose它会向你显示解压的文件名。
![提取 tar.gz 文件](https://www.howtoforge.com/images/linux-tar-command/big/tar-xfz.png)
--------------------------------------------------------------------------------
via: https://www.howtoforge.com/tutorial/linux-tar-command/
作者:[howtoforge][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog/)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.howtoforge.com/
[1]:https://en.wikipedia.org/wiki/Tar_(computing)
[2]:http://www.faqforge.com/linux/create-tar-gz/
[3]:http://www.faqforge.com/linux/extract-tar-gz/
[4]:http://gnuwin32.sourceforge.net/packages/gtar.htm
[5]:http://www.faqforge.com/linux/tar-command/

View File

@ -0,0 +1,167 @@
在 Linux 下使用 RAID当软件 RAID 故障时如何恢复和重建数据
================================================================================
在阅读过 [RAID 系列][1] 前面的文章后你已经对 RAID 比较熟悉了。回顾前面几个软件 RAID 的配置,我们对每一个都做了详细的解释,使用哪一个取决与你的具体情况。
![Recover Rebuild Failed Software RAID's](http://www.tecmint.com/wp-content/uploads/2015/10/Recover-Rebuild-Failed-Software-RAID.png)
*恢复并重建故障的软件 RAID - 第8部分*
在本文中,我们将讨论当一个磁盘发生故障时如何重建软件 RAID 阵列并且不会丢失数据。为方便起见我们仅考虑RAID 1 的配置 - 但其方法和概念适用于所有情况。
#### RAID 测试方案 ####
在进一步讨论之前,请确保你已经配置好了 RAID 1 阵列可以按照本系列第3部分提供的方法[在 Linux 中如何创建 RAID 1镜像][2]。
在目前的情况下,仅有的变化是:
1. 使用不同版本 CentOSv7而不是前面文章中的v6.5)。
2. 磁盘容量发生改变, /dev/sdb 和 /dev/sdc各8GB
此外,如果 SELinux 设置为 enforcing 模式,你需要将相应的标签添加到挂载 RAID 设备的目录中。否则,当你试图挂载时,你会碰到这样的警告信息:
![SELinux RAID Mount Error](http://www.tecmint.com/wp-content/uploads/2015/10/SELinux-RAID-Mount-Error.png)
*启用 SELinux 时 RAID 挂载错误*
通过以下命令来解决:
# restorecon -R /mnt/raid1
### 配置 RAID 监控 ###
存储设备损坏的原因很多(尽管固态硬盘大大减少了这种情况发生的可能性),但不管是什么原因,可以肯定问题随时可能发生,你需要准备好替换发生故障的部分,并确保数据的可用性和完整性。
首先建议是。虽然你可以查看 `/proc/mdstat` 来检查 RAID 的状态,但有一个更好的和节省时间的方法,使用监控 + 扫描模式运行 mdadm它将警报通过电子邮件发送到一个预定义的收件人。
要这样设置,在 `/etc/mdadm.conf` 添加以下行:
MAILADDR user@<domain or localhost>
我自己的设置如下:
MAILADDR gacanepa@localhost
![RAID Monitoring Email Alerts](http://www.tecmint.com/wp-content/uploads/2015/10/RAID-Monitoring-Email-Alerts.png)
*监控 RAID 并使用电子邮件进行报警*
要让 mdadm 运行在监控 + 扫描模式中,以 root 用户添加以下 crontab 条目:
@reboot /sbin/mdadm --monitor --scan --oneshot
默认情况下mdadm 每隔60秒会检查 RAID 阵列,如果发现问题将发出警报。你可以通过添加 `--delay` 选项到crontab 条目上面,后面跟上秒数,来修改默认行为(例如,`--delay` 1800意味着30分钟
最后确保你已经安装了一个邮件用户代理MUA如[mutt 或 mailx][3]。否则,你将不会收到任何警报。
在一分钟内,我们就会看到 mdadm 发送的警报。
### 模拟和更换发生故障的 RAID 存储设备 ###
为了给 RAID 阵列中的存储设备模拟一个故障,我们将使用 `--manage``--set-faulty` 选项,如下所示:
# mdadm --manage --set-faulty /dev/md0 /dev/sdc1
这将导致 /dev/sdc1 被标记为 faulty我们可以在 /proc/mdstat 看到:
![Stimulate Issue with RAID Storage](http://www.tecmint.com/wp-content/uploads/2015/10/Stimulate-Issue-with-RAID-Storage.png)
*在 RAID 存储设备上模拟问题*
更重要的是,让我们看看是不是收到了同样的警报邮件:
![Email Alert on Failed RAID Device](http://www.tecmint.com/wp-content/uploads/2015/10/Email-Alert-on-Failed-RAID-Device.png)
*RAID 设备故障时发送邮件警报*
在这种情况下,你需要从软件 RAID 阵列中删除该设备:
# mdadm /dev/md0 --remove /dev/sdc1
然后,你可以直接从机器中取出,并将其使用备用设备来取代(/dev/sdd 中类型为 fd 的分区是以前创建的):
# mdadm --manage /dev/md0 --add /dev/sdd1
幸运的是,该系统会使用我们刚才添加的磁盘自动重建阵列。我们可以通过标记 /dev/sdb1 为 faulty 来进行测试,从阵列中取出后,并确认 tecmint.txt 文件仍然在 /mnt/raid1 是可访问的:
# mdadm --detail /dev/md0
# mount | grep raid1
# ls -l /mnt/raid1 | grep tecmint
# cat /mnt/raid1/tecmint.txt
![Confirm Rebuilding RAID Array](http://www.tecmint.com/wp-content/uploads/2015/10/Rebuilding-RAID-Array.png)
*确认 RAID 重建*
上面图片清楚的显示,添加 /dev/sdd1 到阵列中来替代 /dev/sdc1数据的重建是系统自动完成的不需要干预。
虽然要求不是很严格,有一个备用设备是个好主意,这样更换故障的设备就可以在瞬间完成了。要做到这一点,先让我们重新添加 /dev/sdb1 和 /dev/sdc1
# mdadm --manage /dev/md0 --add /dev/sdb1
# mdadm --manage /dev/md0 --add /dev/sdc1
![Replace Failed Raid Device](http://www.tecmint.com/wp-content/uploads/2015/10/Replace-Failed-Raid-Device.png)
*取代故障的 Raid 设备*
### 从冗余丢失中恢复数据 ###
如前所述,当一个磁盘发生故障时, mdadm 将自动重建数据。但是如果阵列中的2个磁盘都故障时会发生什么让我们来模拟这种情况通过标记 /dev/sdb1 和 /dev/sdd1 为 faulty
# umount /mnt/raid1
# mdadm --manage --set-faulty /dev/md0 /dev/sdb1
# mdadm --stop /dev/md0
# mdadm --manage --set-faulty /dev/md0 /dev/sdd1
此时尝试以同样的方式重新创建阵列就(或使用 `--assume-clean` 选项)可能会导致数据丢失,因此不到万不得已不要使用。
让我们试着从 /dev/sdb1 恢复数据,例如,在一个类似的磁盘分区(/dev/sde1 - 注意,这需要你执行前在/dev/sde 上创建一个 fd 类型的分区)上使用 `ddrescue`
# ddrescue -r 2 /dev/sdb1 /dev/sde1
![Recovering Raid Array](http://www.tecmint.com/wp-content/uploads/2015/10/Recovering-Raid-Array.png)
*恢复 Raid 阵列*
请注意,到现在为止,我们还没有触及 /dev/sdb 和 /dev/sdd这是 RAID 阵列的一部分分区。
现在,让我们使用 /dev/sde1 和 /dev/sdf1 来重建阵列:
# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1
请注意,在真实的情况下,你需要使用与原来的阵列中相同的设备名称,即设备失效后替换的磁盘的名称应该是 /dev/sdb1 和 /dev/sdc1。
在本文中,我选择了使用额外的设备来重新创建全新的磁盘阵列,是为了避免与原来的故障磁盘混淆。
当被问及是否继续写入阵列时,键入 Y然后按 Enter。阵列被启动你也可以查看它的进展
# watch -n 1 cat /proc/mdstat
当这个过程完成后,你就应该能够访问 RAID 的数据:
![Confirm Raid Content](http://www.tecmint.com/wp-content/uploads/2015/10/Raid-Content.png)
*确认 Raid 数据*
### 总结 ###
在本文中,我们回顾了从 RAID 故障和冗余丢失中恢复数据。但是,你要记住,这种技术是一种存储解决方案,不能取代备份。
本文中介绍的方法适用于所有 RAID 中其中的概念我将在本系列的最后一篇RAID 管理)中涵盖它。
如果你对本文有任何疑问,随时给我们以评论的形式说明。我们期待倾听阁下的心声!
--------------------------------------------------------------------------------
via: http://www.tecmint.com/recover-data-and-rebuild-failed-software-raid/
作者:[Gabriel Cánepa][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:https://linux.cn/article-6085-1.html
[2]:https://linux.cn/article-6093-1.html
[3]:http://www.tecmint.com/send-mail-from-command-line-using-mutt-command/

View File

@ -0,0 +1,162 @@
在 Linux 下使用 RAID如何使用 Mdadm 工具管理软件 RAID
================================================================================
无论你以前有没有使用 RAID 阵列的经验,以及是否完成了 [此 RAID 系列][1] 的所有教程,一旦你在 Linux 中熟悉了 `mdadm --manage` 命令的使用,管理软件 RAID 将不是很复杂的任务。
![在 Linux 中使用 mdadm 管理 RAID 设备 - 第9部分](http://www.tecmint.com/wp-content/uploads/2015/10/Manage-Raid-with-Mdadm-Tool-in-Linux.jpg)
*在 Linux 中使用 mdadm 管理 RAID 设备 - 第9部分*
在本教程中,我们会再介绍此工具提供的功能,这样当你需要它,就可以派上用场。
#### RAID 测试方案 ####
在本系列的最后一篇文章中,我们将使用一个简单的 RAID 1镜像阵列它由两个 8GB 的磁盘(/dev/sdb 和 /dev/sdc和一个备用设备/dev/sdd来演示但在此使用的方法也适用于其他类型的配置。也就是说放心去用吧把这个页面添加到浏览器的书签然后让我们开始吧。
### 了解 mdadm 的选项和使用方法 ###
幸运的是mdadm 有一个内建的 `--help` 参数来对每个主要的选项提供说明文档。
因此,让我们开始输入:
# mdadm --manage --help
就会使我们看到 `mdadm --manage` 能够执行哪些任务:
![Manage RAID with mdadm Tool](http://www.tecmint.com/wp-content/uploads/2015/10/mdadm-Usage-in-Linux.png)
*使用 mdadm 工具来管理 RAID*
正如我们在上面的图片看到,管理一个 RAID 阵列可以在任意时间执行以下任务:
- (重新)将设备添加到阵列中
- 把设备标记为故障
- 从阵列中删除故障设备
- 使用备用设备更换故障设备
- 先创建部分阵列
- 停止阵列
- 标记阵列为 ro只读或 rw读写
### 使用 mdadm 工具管理 RAID 设备 ###
需要注意的是,如果用户忽略 `--manage` 选项mdadm 默认使用管理模式。请记住这一点,以避免出现最坏的情况。
上图中的高亮文本显示了管理 RAID 的基本语法:
# mdadm --manage RAID options devices
让我们来演示几个例子。
#### 例1为 RAID 阵列添加设备 ####
你通常会添加新设备来更换故障的设备,或者使用空闲的分区以便在出现故障时能及时替换:
# mdadm --manage /dev/md0 --add /dev/sdd1
![Add Device to Raid Array](http://www.tecmint.com/wp-content/uploads/2015/10/Add-Device-to-Raid-Array.png)
*添加设备到 Raid 阵列*
#### 例2把一个 RAID 设备标记为故障并从阵列中移除 ####
在从逻辑阵列中删除该设备前,这是强制性的步骤,然后才能从机器中取出它 - 注意顺序(如果弄错了这些步骤,最终可能会造成实际设备的损害):
# mdadm --manage /dev/md0 --fail /dev/sdb1
请注意在前面的例子中,知道如何添加备用设备来自动更换出现故障的磁盘。在此之后,[恢复和重建 raid 数据][2] 就开始了:
![Recover and Rebuild Raid Data](http://www.tecmint.com/wp-content/uploads/2015/10/Recover-and-Rebuild-Raid-Data.png)
*恢复和重建 raid 数据*
一旦设备已被手动标记为故障,你就可以安全地从阵列中删除它:
# mdadm --manage /dev/md0 --remove /dev/sdb1
#### 例3重新添加设备来替代阵列中已经移除的设备 ####
到现在为止,我们有一个工作的 RAID 1 阵列它包含了2个活动的设备/dev/sdc1 和 /dev/sdd1。现在让我们试试重新添加 /dev/sdb1 到/dev/md0
# mdadm --manage /dev/md0 --re-add /dev/sdb1
我们会碰到一个错误:
# mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible
因为阵列中的磁盘已经达到了最大的数量。因此我们有两个选择a将 /dev/sdb1 添加为备用的如例1或 b从阵列中删除 /dev/sdd1 然后重新添加 /dev/sdb1。
我们选择选项 b先停止阵列然后重新启动
# mdadm --stop /dev/md0
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
如果上面的命令不能成功添加 /dev/sdb1 到阵列中使用例1中的命令来完成。
mdadm 能检测到新添加的设备并将其作为备用设备,当添加完成后它会开始重建数据,它也被认为是 RAID 中的活动设备:
![Raid Rebuild Status](http://www.tecmint.com/wp-content/uploads/2015/10/Raid-Rebuild-Status.png)
*重建 Raid 的状态*
#### 例4使用特定磁盘更换 RAID 设备 ####
在阵列中使用备用磁盘更换磁盘很简单:
# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
![Replace Raid Device](http://www.tecmint.com/wp-content/uploads/2015/10/Replace-Raid-device.png)
*更换 Raid 设备*
这会导致 `--replace` 指定的设备被标记为故障,而 `--with`指定的设备添加到 RAID 中来替代它:
![Check Raid Rebuild Status](http://www.tecmint.com/wp-content/uploads/2015/10/Check-Raid-Rebuild-Status.png)
*检查 Raid 重建状态*
#### 例5标记 RAID 阵列为 ro 或 rw ####
创建阵列后你必须在它上面创建一个文件系统并将其挂载到一个目录下才能使用它。你可能不知道RAID 也可以被设置为 ro使其只读或者设置为 rw就可以同时写入了。
要标记该设备为 ro首先需要将其卸载
# umount /mnt/raid1
# mdadm --manage /dev/md0 --readonly
# mount /mnt/raid1
# touch /mnt/raid1/test1
![Set Permissions on Raid Array](http://www.tecmint.com/wp-content/uploads/2015/10/Set-Permissions-on-Raid-Array.png)
*在 RAID 阵列上设置权限*
要配置阵列允许写入操作需要使用 `--readwrite` 选项。请注意,在设置 rw 标志前,你需要先卸载设备并停止它:
# umount /mnt/raid1
# mdadm --manage /dev/md0 --stop
# mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1
# mdadm --manage /dev/md0 --readwrite
# touch /mnt/raid1/test2
![Allow Read Write Permission on Raid](http://www.tecmint.com/wp-content/uploads/2015/10/Allow-Write-Permission-on-Raid.png)
*配置 Raid 允许读写操作*
### 总结 ###
在本系列中,我们已经解释了如何建立一个在企业环境中使用的软件 RAID 阵列。如果你按照这些文章所提供的例子进行配置,在 Linux 中你会充分领会到软件 RAID 的价值。
如果你碰巧任何问题或有建议,请随时使用下面的方式与我们联系。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/manage-software-raid-devices-in-linux-with-mdadm/
作者:[GABRIEL CÁNEPA][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:https://linux.cn/article-6085-1.html
[2]:https://linux.cn/article-6448-1.html

View File

@ -1,27 +1,28 @@
RHCE 系列第一部分:如何设置和测试静态网络路由
RHCE 系列(一):如何设置和测试静态网络路由
================================================================================
RHCERed Hat Certified Engineer红帽认证工程师是红帽公司的一个认证红帽向企业社区贡献开源操作系统和软件同时它还给公司提供训练、支持和咨询服务。
![RHCE 考试准备指南](http://www.tecmint.com/wp-content/uploads/2015/07/RHCE-Exam-Series-by-TecMint.jpg)
RHCE 考试准备指南
*RHCE 考试准备指南*
这个 RHCE 是基于性能的考试(代号 EX300面向那些拥有更多的技能、知识和能力的红帽企业版 LinuxRHEL系统高级系统管理员。
这个 RHCE 是一个绩效考试(代号 EX300面向那些拥有更多的技能、知识和能力的红帽企业版 LinuxRHEL系统高级系统管理员。
**重要** [红帽认证系统管理员][1] Red Hat Certified System AdministratorRHCSA认证要求先有 RHCE 认证。
以下是基于红帽企业版 Linux 7 考试的考试目标,我们会在该 RHCE 系列中分别介绍:
- 第一部分:如何在 RHEL 7 中设置和测试静态路由
- 第二部分:如进行包过滤、网络地址转换和设置内核运行时参数
- 第三部分:如使用 Linux 工具集产生和发送系统活动报告
- 第二部分:如进行包过滤、网络地址转换和设置内核运行时参数
- 第三部分:如使用 Linux 工具集产生和发送系统活动报告
- 第四部分:使用 Shell 脚本进行自动化系统维护
- 第五部分:如果配置本地和远程系统日志
- 第六部分:如果配置一个 Samba 服务器或 NFS 服务器译者注Samba 是在 Linux 和 UNI X系统上实现 SMB 协议的一个免费软件由服务器及客户端程序构成。SMBServer Messages Block信息服务块是一种在局域网上共享文件和打印机的一种通信协议它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
- 第七部分:为收发邮件配置完整的 SMTP 服务器
- 第八部分:在 RHEL 7 上设置 HTTPS 和 TLS
- 第九部分:设置网络时间协议
- 第十部分:如何配置一个 Cache-Only DNS 服务器
- 第五部分:如何在 RHEL 7 中管理系统日志(配置、轮换和导入到数据库)
- 第六部分:设置 Samba 服务器并配置 FirewallD 和 SELinux 支持客户端文件共享
- 第七部分:设置 NFS 服务器及基于 Kerberos 认证的客户端
- 第八部分:在 Apache 上使用网络安全服务NSS通过 TLS 提供 HTTPS 服务
- 第九部分:如何使用无客户端配置来设置 Postfix 邮件服务器SMTP
- 第十部分:在 RHEL/CentOS 7 中设置网络时间协议NTP服务器
- 第十一部分:如何配置一个只缓存的 DNS 服务器
在你的国家查看考试费用和注册考试,可以到 [RHCE 认证][2] 网页。
@ -29,31 +30,31 @@ RHCE 考试准备指南
![在 RHEL 中设置静态网络路由](http://www.tecmint.com/wp-content/uploads/2015/07/Setup-Static-Network-Routing-in-RHEL-7.jpg)
RHCE 系列第一部分:设置和测试网络静态路由
*RHCE 系列第一部分:设置和测试网络静态路由*
请注意我们不会作深入的介绍,但以这种方式组织内容能帮助你开始第一步并继续后面的内容。
### 红帽企业版 Linux 7 中的静态路由 ###
现代网络的一个奇迹就是有很多可用设备能将一组计算机连接起来,不管是在一个房间里少量的机器还是在一栋建筑物、城市、国家或者大洲之间的多台机器。
现代网络的一个奇迹就是有很多可用设备能将一组计算机连接起来,不管是在一个房间里少量的机器还是在一栋建筑物、城市、国家或者大洲之间的多台机器。
然而,为了能在任意情形下有效的实现这些,需要对网络包进行路由,或者换句话说,它们从源到目的地的路径需要按照某种规则。
静态路由是为网络包指定一个路由的过程,而不是使用网络设备提供的默认网关。除非另有指定,否则通过路由,网络包会被导向默认网关;基于预定义的标准,例如数据包目的地,使用静态路由可以定义其它路径
静态路由是为网络包指定一个路由的过程,而不是使用网络设备提供的默认网关。除非另有指定静态路由,网络包会被导向默认网关;而静态路由则基于预定义标准所定义的其它路径,例如数据包目的地
我们在该篇指南中会考虑以下场景。我们有一台红帽企业版 Linux 7连接到路由器 1号 [192.168.0.1] 以访问因特网以及 192.168.0.0/24 中的其它机器。
我们在该篇指南中会考虑以下场景。我们有一台 RHEL 7连接到 1号路由器 [192.168.0.1] 以访问因特网以及 192.168.0.0/24 中的其它机器。
第二个路由器(路由器 2号有两个网卡enp0s3 同样通过网络连接到路由器 1号以便连接RHEL 7 以及相同网络中的其它机器另外一个网卡enp0s8用于授权访问内部服务所在的 10.0.0.0/24 网络,例如 web 或数据库服务器。
第二个路由器(2号路由器有两个网卡enp0s3 同样连接到路由器1号以访问互联网及与 RHEL 7 和同一网络中的其它机器通讯另外一个网卡enp0s8用于授权访问内部服务所在的 10.0.0.0/24 网络,例如 web 或数据库服务器。
该场景可以用下面的示意图表示:
![静态路由网络示意图](http://www.tecmint.com/wp-content/uploads/2015/07/Static-Routing-Network-Diagram.png)
静态路由网络示意图
*静态路由网络示意图*
在这篇文章中我们会集中介绍在 RHEL 7 中设置路由表,确保它能通过路由器 1号访问因特网以及通过路由器 2号访问内部网络。
在这篇文章中我们会集中介绍在 RHEL 7 中设置路由表,确保它能通过1号路由器访问因特网以及通过2号路由器访问内部网络。
在 RHEL 7 中,你会通过命令行用 [命令 ip][3] 配置和显示设备和路由。这些更改能在运行的系统中及时生效,但由于重启后不会保存,我们会使用 /etc/sysconfig/network-scripts 目录下的 ifcfg-enp0sX 和 route-enp0sX 文件永久保存我们的配置。
在 RHEL 7 中,你可以通过命令行用 [ip 命令][3] 配置和显示设备和路由。这些更改能在运行的系统中及时生效,但由于重启后不会保存,我们会使用 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-enp0sX``route-enp0sX` 文件永久保存我们的配置。
首先,让我们打印出当前的路由表:
@ -61,15 +62,15 @@ RHCE 系列第一部分:设置和测试网络静态路由
![在 Linux 中检查路由表](http://www.tecmint.com/wp-content/uploads/2015/07/Check-Current-Routing-Table.png)
检查当前路由表
*检查当前路由表*
从上面的输出中,我们可以得出以下结论:
- 默认网关的 IP 是 192.168.0.1,可以通过网卡 enp0s3 访问。
- 系统启动的时候,它启用了到 169.254.0.0/16 的 zeroconf 路由(只是在本例中)。也就是说,如果机器设置通过 DHCP 获取一个 IP 地址,但是由于某些原因失败了,它就会在该网络中自动分配到一个地址。这一行的意思是,该路由会允许我们通过 enp0s3 和其它没有从 DHCP 服务器中成功获得 IP 地址的机器机器连接。
- 最后,但同样重要的是,我们也可以通过 IP 地址是 192.168.0.18 的 enp0s3 192.168.0.0/24 网络中的其它机器连接。
- 系统启动的时候,它启用了到 169.254.0.0/16 的 zeroconf 路由(只是在本例中)。也就是说,如果机器设置通过 DHCP 获取 IP 地址,但是由于某些原因失败了,它就会在上述网段中自动分配到一个地址。这一行的意思是,该路由会允许我们通过 enp0s3 和其它没有从 DHCP 服务器中成功获得 IP 地址的机器机器连接。
- 最后,但同样重要的是,我们也可以通过 IP 地址是 192.168.0.18 的 enp0s3 192.168.0.0/24 网络中的其它机器连接。
下面是这样的配置中你需要做的一些典型任务。除非另有说明,下面的任务都在路由器 2号上进行。
下面是这样的配置中你需要做的一些典型任务。除非另有说明,下面的任务都在2号路由器上进行。
确保正确安装了所有网卡:
@ -88,7 +89,7 @@ RHCE 系列第一部分:设置和测试网络静态路由
# ip addr del 10.0.0.17 dev enp0s8
# ip addr add 10.0.0.18 dev enp0s8
现在,请注意你只能添加一个通过已经能访问的网关到目标网络的路由。因为这个原因,我们需要在 192.168.0.0/24 范围中给 enp0s3 分配一个 IP 地址,这样我们的 RHEL 7 才能连接到它:
现在,请注意你只能添加一个通过网关到目标网络的路由,网关需要可以访问到。因为这个原因,我们需要在 192.168.0.0/24 范围中给 enp0s3 分配一个 IP 地址,这样我们的 RHEL 7 才能连接到它:
# ip addr add 192.168.0.19 dev enp0s3
@ -101,7 +102,7 @@ RHCE 系列第一部分:设置和测试网络静态路由
# systemctl stop firewalld
# systemctl disable firewalld
回到我们的 RHEL 7192.168.0.18),让我们配置一个通过 192.168.0.19(路由器 2号的 enp0s3到 10.0.0.0/24 的路由:
回到我们的 RHEL 7192.168.0.18),让我们配置一个通过 192.168.0.192号路由器的 enp0s3到 10.0.0.0/24 的路由:
# ip route add 10.0.0.0/24 via 192.168.0.19
@ -111,7 +112,7 @@ RHCE 系列第一部分:设置和测试网络静态路由
![显示网络路由表](http://www.tecmint.com/wp-content/uploads/2015/07/Show-Network-Routing.png)
确认网络路由表
*确认网络路由表*
同样,在你尝试连接的 10.0.0.0/24 网络的机器中添加对应的路由:
@ -131,13 +132,13 @@ RHCE 系列第一部分:设置和测试网络静态路由
192.168.0.18 也就是我们的 RHEL 7 机器的 IP 地址。
另外,我们还可以使用 [tcpdump][4](需要通过 yum install tcpdump 安装)来检查我们 RHEL 7 和 10.0.0.20 中 web 服务器之间的 TCP 双向通信。
另外,我们还可以使用 [tcpdump][4](需要通过 `yum install tcpdump` 安装)来检查我们 RHEL 7 和 10.0.0.20 中 web 服务器之间的 TCP 双向通信。
首先在第一台机器中启用日志:
# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20
在同一个系统上的另一个终端,让我们通过 telnet 连接到 web 服务器的 80 号端口(假设 Apache 正在监听该端口;否则在下面命令中使用正确的端口):
在同一个系统上的另一个终端,让我们通过 telnet 连接到 web 服务器的 80 号端口(假设 Apache 正在监听该端口;否则在下面命令中使用正确的监听端口):
# telnet 10.0.0.20 80
@ -145,7 +146,7 @@ tcpdump 日志看起来像下面这样:
![检查服务器之间的网络连接](http://www.tecmint.com/wp-content/uploads/2015/07/Tcpdump-logs.png)
检查服务器之间的网络连接
*检查服务器之间的网络连接*
通过查看我们 RHEL 7192.168.0.18)和 web 服务器10.0.0.20)之间的双向通信,可以看出已经正确地初始化了连接。
@ -162,7 +163,7 @@ tcpdump 日志看起来像下面这样:
# Device used to connect to default gateway. Replace X with the appropriate number.
GATEWAYDEV=enp0sX
当需要为每个网卡设置特定的变量和值时(正如我们在路由器 2号上面做的),你需要编辑 /etc/sysconfig/network-scripts/ifcfg-enp0s3 和 /etc/sysconfig/network-scripts/ifcfg-enp0s8 文件。
当需要为每个网卡设置特定的变量和值时(正如我们在2号路由器上面做的),你需要编辑 `/etc/sysconfig/network-scripts/ifcfg-enp0s3``/etc/sysconfig/network-scripts/ifcfg-enp0s8` 文件。
下面是我们的例子,
@ -184,23 +185,23 @@ tcpdump 日志看起来像下面这样:
NAME=enp0s8
ONBOOT=yes
分别对应 enp0s3 和 enp0s8。
分别对应 enp0s3 和 enp0s8。
由于要为我们的客户端机器(192.168.0.18)进行路由,我们需要编辑 /etc/sysconfig/network-scripts/route-enp0s3
由于要为我们的客户端机器(192.168.0.18)进行路由,我们需要编辑 `/etc/sysconfig/network-scripts/route-enp0s3`
10.0.0.0/24 via 192.168.0.19 dev enp0s3
现在重启系统你可以在路由表中看到该路由规则。
现在`reboot`你的系统,就可以在路由表中看到该路由规则。
### 总结 ###
在这篇文章中我们介绍了红帽企业版 Linux 7 的静态路由。尽管场景可能不同,这里介绍的例子说明了所需的原理以及进行该任务的步骤。结束之前,我还建议你看一下 Linux 文档项目中 [第四章 4][5] 保护和优化 Linux 部分,以了解这里介绍主题的更详细内容。
在这篇文章中我们介绍了红帽企业版 Linux 7 的静态路由。尽管场景可能不同,这里介绍的例子说明了所需的原理以及进行该任务的步骤。结束之前,我还建议你看一下 Linux 文档项目The Linux Documentation Project网站上的《安全加固和优化 LinuxSecuring and Optimizing Linux》的[第四章][5],以了解这里介绍主题的更详细内容。
免费电子书 Securing & Optimizing Linux: The Hacking Solution (v.3.0) - 这本 800 多页的电子书全面收集了 Linux 安全的小技巧以及如果安全和简便的使用它们去配置基于 Linux 的应用和服务。
免费电子书《Securing and Optimizing Linux: The Hacking Solution (v.3.0)》 - 这本 800 多页的电子书全面收集了 Linux 安全的小技巧以及如果安全和简便的使用它们去配置基于 Linux 的应用和服务。
![Linux 安全和优化](http://www.tecmint.com/wp-content/uploads/2015/07/Linux-Security-Optimization-Book.gif)
Linux 安全和优化
*Linux 安全和优化*
[马上下载][6]
@ -214,12 +215,12 @@ via: http://www.tecmint.com/how-to-setup-and-configure-static-network-routing-in
作者:[Gabriel Cánepa][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:http://www.tecmint.com/rhcsa-exam-reviewing-essential-commands-system-documentation/
[1]:https://linux.cn/article-6133-1.html
[2]:https://www.redhat.com/en/services/certification/rhce
[3]:http://www.tecmint.com/ip-command-examples/
[4]:http://www.tecmint.com/12-tcpdump-commands-a-network-sniffer-tool/

View File

@ -1,16 +1,17 @@
RHCE 第二部分 - 如何进行包过滤、网络地址转换和设置内核运行时参数
RHCE 系列(二):如何进行包过滤、网络地址转换和设置内核运行时参数
================================================================================
正如第一部分(“[设置静态网络路由][1]”承诺的在这篇文章RHCE 系列第二部分),我们首先介绍红帽企业版 Linux 7中包过滤和网络地址转换原理然后再介绍某些条件发送变化或者需要激活时设置运行时内核参数以改变运行时内核行为。
正如第一部分(“[设置静态网络路由][1]”提到的在这篇文章RHCE 系列第二部分),我们首先介绍红帽企业版 Linux 7RHEL中包过滤和网络地址转换NAT的原理然后再介绍在某些条件发生变化或者需要变动时设置运行时内核参数以改变运行时内核行为。
![RHEL 中的网络包过滤](http://www.tecmint.com/wp-content/uploads/2015/07/Network-Packet-Filtering-in-RHEL.jpg)
RHCE 第二部分:网络包过滤
*RHCE 第二部分:网络包过滤*
### RHEL 7 中的网络包过滤 ###
当我们讨论数据包过滤的时候,我们指防火墙读取每个试通过它的数据包的包头所进行的处理。然后,根据系统管理员之前定义的规则,通过采取所要求的动作过滤数据包。
当我们讨论数据包过滤的时候,我们指防火墙读取每个试通过它的数据包的包头所进行的处理。然后,根据系统管理员之前定义的规则,通过采取所要求的动作过滤数据包。
正如你可能知道的,从 RHEL 7 开始,管理防火墙的默认服务是 [firewalld][2]。类似 iptables它和 Linux 内核的 netfilter 模块交互以便检查和操作网络数据包。不像 iptablesFirewalld 的更新可以立即生效,而不用中断活跃的连接 - 你甚至不需要重启服务。
正如你可能知道的,从 RHEL 7 开始,管理防火墙的默认服务是 [firewalld][2]。类似 iptables它和 Linux 内核的 netfilter 模块交互以便检查和操作网络数据包。不像 iptablesFirewalld 的更新可以立即生效,而不用中断活跃的连接 - 你甚至不需要重启服务。
Firewalld 的另一个优势是它允许我们定义基于预配置服务名称的规则(之后会详细介绍)。
@ -18,27 +19,27 @@ Firewalld 的另一个优势是它允许我们定义基于预配置服务名称
![静态路由网络示意图](http://www.tecmint.com/wp-content/uploads/2015/07/Static-Routing-Network-Diagram.png)
静态路由网络示意图
*静态路由网络示意图*
然而,你应该记得,由于还没有介绍包过滤,为了简化例子,我们停用了路由器 2号 的防火墙。现在让我们来看看如何可以使接收的数据包发送到目的地的特定服务或端口。
然而,你应该记得,由于还没有介绍包过滤,为了简化例子,我们停用了2号路由器的防火墙。现在让我们来看看如何使接收的数据包发送到目的地的特定服务或端口。
首先,让我们添加一条永久规则允许从 enp0s3 (192.168.0.19) 到 enp0s8 (10.0.0.18) 的绑定流量:
首先,让我们添加一条永久规则允许从 enp0s3 (192.168.0.19) 到 enp0s8 (10.0.0.18) 的入站流量:
# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT
上面的命令会把规则保存到 /etc/firewalld/direct.xml
上面的命令会把规则保存到 `/etc/firewalld/direct.xml` 中
# cat /etc/firewalld/direct.xml
![在 CentOS 7 中检查 Firewalld 保存的规则](http://www.tecmint.com/wp-content/uploads/2015/07/Check-Firewalld-Save-Rules.png)
检查 Firewalld 保存的规则
*检查 Firewalld 保存的规则*
然后启用规则使其立即生效:
# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT
现在你可以从 RHEL 7 中通过 telnet 登录到 web 服务器并再次运行 [tcpdump][3] 监视两台机器之间的 TCP 流量,这次路由器 2号已经启用了防火墙。
现在你可以从 RHEL 7 中通过 telnet 到 web 服务器并再次运行 [tcpdump][3] 监视两台机器之间的 TCP 流量,这次2号路由器已经启用了防火墙。
# telnet 10.0.0.20 80
# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20
@ -61,19 +62,19 @@ Firewalld 的另一个优势是它允许我们定义基于预配置服务名称
我强烈建议你看看 Fedora Project Wiki 中的 [Firewalld Rich Language][4] 文档更详细地了解关于富规则的内容。
### RHEL 7 中的网络地址转换 ###
### RHEL 7 中的网络地址转换NAT ###
网络地址转换NAT是为专用网络中的一组计算机也可能是其中的一台分配一个独立的公共 IP 地址的过程。结果,在内部网络中仍然可以用它们自己的私有 IP 地址区别,但外部“看来”它们是一样的。
网络地址转换NAT是为专用网络中的一组计算机也可能是其中的一台分配一个独立的公共 IP 地址的过程。这样,在内部网络中仍然可以用它们自己的私有 IP 地址区别,但外部“看来”它们是一样的。
另外,网络地址转换使得内部网络中的计算机发送请求到外部资源(例如因特网)然后只有源系统能接收到对应的响应成为可能。
另外,网络地址转换使得内部网络中的计算机发送请求到外部资源(例如因特网)然后只有源系统能接收到对应的响应成为可能。
现在让我们考虑下面的场景:
![RHEL 中的网络地址转换](http://www.tecmint.com/wp-content/uploads/2015/07/Network-Address-Translation-Diagram.png)
网络地址转换
*网络地址转换*
在路由器 2 中,我们会把 enp0s3 接口移动到外部区域enp0s8 到内部区域,伪装或者说 NAT 默认是启用的:
2号路由器中,我们会把 enp0s3 接口移动到外部区域externalenp0s8 到内部区域external,伪装masquerading或者说 NAT 默认是启用的:
# firewall-cmd --list-all --zone=external
# firewall-cmd --change-interface=enp0s3 --zone=external
@ -81,7 +82,7 @@ Firewalld 的另一个优势是它允许我们定义基于预配置服务名称
# firewall-cmd --change-interface=enp0s8 --zone=internal
# firewall-cmd --change-interface=enp0s8 --zone=internal --permanent
对于我们当前的设置,内部区域 - 以及和它一起启用的任何东西都是默认区域:
对于我们当前的设置,内部区域internal - 以及和它一起启用的任何东西都是默认区域:
# firewall-cmd --set-default-zone=internal
@ -89,44 +90,44 @@ Firewalld 的另一个优势是它允许我们定义基于预配置服务名称
# firewall-cmd --reload
最后,在 web 服务器中添加路由器 2 为默认网关:
最后,在 web 服务器中添加2号路由器为默认网关:
# ip route add default via 10.0.0.18
现在你会发现在 web 服务器中你可以 ping 路由器 1 和外部网站(例如 tecmint.com
现在你会发现在 web 服务器中你可以 ping 1号路由器和外部网站(例如 tecmint.com
# ping -c 2 192.168.0.1
# ping -c 2 tecmint.com
![验证网络路由](http://www.tecmint.com/wp-content/uploads/2015/07/Verify-Network-Routing.png)
验证网络路由
*验证网络路由*
### 在 RHEL 7 中设置内核运行时参数 ###
在 Linux 中允许你更改、启用以及停用内核运行时参数RHEL 也不例外。/proc/sys 接口允许你当操作条件发生变化时实时设置运行时参数改变系统行为而不需太多麻烦。
在 Linux 中允许你更改、启用以及停用内核运行时参数RHEL 也不例外。当操作条件发生变化时,`/proc/sys` 接口sysctl允许你实时设置运行时参数改变系统行为而不需太多麻烦。
为了实现这个目的,会用内建的 echo shell 写 /proc/sys/<category\> 中的文件其中 <category\> 很可能是以下目录中的一个
为了实现这个目的,会用 shell 内建的 echo 写 `/proc/sys/<category>` 中的文件,其中 `<category>` 一般是以下目录中的一个:
- dev: 连接到机器中的特定设备的参数。
- fs: 文件系统配置(例如 quotas 和 inodes
- kernel: 内核配置。
- net: 网络配置。
- vm: 内核虚拟内存的使用。
- vm: 内核虚拟内存的使用。
要显示所有当前可用值的列表,运行
# sysctl -a | less
在第一部分中,我们通过以下命令改变了 net.ipv4.ip_forward 参数的值以允许 Linux 机器作为一个路由器。
在第一部分中,我们通过以下命令改变了 `net.ipv4.ip_forward` 参数的值以允许 Linux 机器作为一个路由器。
# echo 1 > /proc/sys/net/ipv4/ip_forward
另一个你可能想要设置的运行时参数是 kernel.sysrq它会启用你键盘上的 Sysrq 键,以使系统更好的运行一些底层函数,例如如果由于某些原因冻结了后重启系统:
另一个你可能想要设置的运行时参数是 `kernel.sysrq`,它会启用你键盘上的 `Sysrq` 键,以使系统更好的运行一些底层功能,例如如果由于某些原因冻结了后重启系统:
# echo 1 > /proc/sys/kernel/sysrq
要显示特定参数的值,可以按照下面方式使用 sysctl
要显示特定参数的值,可以按照下面方式使用 `sysctl`
# sysctl <parameter.name>
@ -135,28 +136,29 @@ Firewalld 的另一个优势是它允许我们定义基于预配置服务名称
# sysctl net.ipv4.ip_forward
# sysctl kernel.sysrq
一些参数,例如上面提到的一个,只需要一个值,而其它一些(例如 fs.inode-state要求多个值
有些参数,例如上面提到的某个,只需要一个值,而其它一些(例如 `fs.inode-state`)要求多个值:
![在 Linux 中查看内核参数](http://www.tecmint.com/wp-content/uploads/2015/07/Check-Kernel-Parameters.png)
查看内核参数
*查看内核参数*
不管什么情况下,做任何更改之前你都需要阅读内核文档。
请注意系统重启后这些设置会丢失。要使这些更改永久生效,我们需要添加内容到 /etc/sysctl.d 目录的 .conf 文件,像下面这样:
请注意系统重启后这些设置会丢失。要使这些更改永久生效,我们需要添加内容到 `/etc/sysctl.d` 目录的 .conf 文件,像下面这样:
# echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/10-forward.conf
(其中数字 10 表示相对同一个目录中其它文件的处理顺序)。
并用下面命令启用更改
并用下面命令启用更改
# sysctl -p /etc/sysctl.d/10-forward.conf
### 总结 ###
在这篇指南中我们解释了基本的包过滤、网络地址变换和在运行的系统中设置内核运行时参数并使重启后能持久化。我希望这些信息能对你有用,如往常一样,我们期望收到你的回复!
别犹豫,在下面的表格中和我们分享你的疑问、评论和建议吧。
别犹豫,在下面的表单中和我们分享你的疑问、评论和建议吧。
--------------------------------------------------------------------------------
@ -164,12 +166,12 @@ via: http://www.tecmint.com/perform-packet-filtering-network-address-translation
作者:[Gabriel Cánepa][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:http://www.tecmint.com/how-to-setup-and-configure-static-network-routing-in-rhel/
[1]:https://linux.cn/article-6451-1.html
[2]:http://www.tecmint.com/firewalld-rules-for-centos-7/
[3]:http://www.tecmint.com/12-tcpdump-commands-a-network-sniffer-tool/
[4]:https://fedoraproject.org/wiki/Features/FirewalldRichLanguage

View File

@ -1,32 +1,32 @@
RHCE 第三部分 - 如何使用 Linux 工具集产生和发送系统活动报告
RHCE 系列(三):如何使用 Linux 工具集生成和发送系统活动报告
================================================================================
作为一个系统工程师你经常需要生成一些显示系统资源利用率的报告以便确保1最佳利用它们2防止出现瓶颈3确保可扩展性以及其它原因。
作为一个系统工程师你经常需要生成一些显示系统资源利用率的报告以便确保1在合理利用系统2防止出现瓶颈3确保可扩展性以及其它原因。
![监视 Linux 性能活动报告](http://www.tecmint.com/wp-content/uploads/2015/08/Monitor-Linux-Performance-Activity-Reports.jpg)
RHCE 第三部分:监视 Linux 性能活动报告
*RHCE 第三部分:监视 Linux 性能活动报告*
除了著名的用于检测磁盘、内存和 CPU 使用率的原生 Linux 工具 - 可以给出很多例子,红帽企业版 Linux 7 还提供了两个额外的工具集用于为你的报告增加可以收集的数据sysstat 和 dstat。
除了著名的用于检测磁盘、内存和 CPU 使用率的原生 Linux 工具 - 可以给出很多例子,红帽企业版 Linux 7 还提供了另外两个可以为你的报告更多数据的工具套装sysstat 和 dstat。
在这篇文章中,我们会介绍两者,但首先让我们来回顾一下传统工具的使用。
### 原生 Linux 工具 ###
使用 df你可以报告磁盘空间以及文件系统的 inode 使用情况。你需要监视两者,因为缺少磁盘空间会阻止你保存更多文件(甚至会导致系统崩溃),就像耗尽 inode 意味着你不能将文件链接到对应的数据结构,从而导致同样的结果:你不能将那些文件保存到磁盘中。
使用 df你可以报告磁盘空间以及文件系统的 inode 使用情况。你需要监视两者,因为缺少磁盘空间会阻止你保存更多文件(甚至会导致系统崩溃),就像耗尽 inode 意味着你不能将文件链接到对应的数据结构,从而导致同样的结果:你不能将那些文件保存到磁盘中。
# df -h [以人类可读形式显示输出]
# df -h --total [生成总计]
![检查 Linux 总的磁盘使用](http://www.tecmint.com/wp-content/uploads/2015/08/Check-Linux-Total-Disk-Usage.png)
检查 Linux 总的磁盘使用
*检查 Linux 总的磁盘使用*
# df -i [显示文件系统的 inode 数目]
# df -i --total [生成总计]
![检查 Linux 总的 inode 数目](http://www.tecmint.com/wp-content/uploads/2015/08/Check-Linux-Total-inode-Numbers.png)
检查 Linux 总的 inode 数目
*检查 Linux 总的 inode 数目*
用 du你可以估计文件、目录或文件系统的文件空间使用。
@ -37,7 +37,7 @@ RHCE 第三部分:监视 Linux 性能活动报告
![检查 Linux 目录磁盘大小](http://www.tecmint.com/wp-content/uploads/2015/08/Check-Linux-Directory-Disk-Size.png)
检查 Linux 目录磁盘大小
*检查 Linux 目录磁盘大小*
别错过了:
@ -56,7 +56,7 @@ RHCE 第三部分:监视 Linux 性能活动报告
![检查 Linux 系统性能](http://www.tecmint.com/wp-content/uploads/2015/08/Check-Linux-Systerm-Performance.png)
检查 Linux 系统性能
*检查 Linux 系统性能*
正如你从上面图片看到的vmstat 的输出分为很多列proc(process)、memory、swap、io、system、和 CPU。每个字段的意义可以在 vmstat man 手册的 FIELD DESCRIPTION 部分找到。
@ -66,20 +66,20 @@ RHCE 第三部分:监视 Linux 性能活动报告
![Vmstat Linux 性能监视](http://www.tecmint.com/wp-content/uploads/2015/08/Vmstat-Linux-Peformance-Monitoring.png)
Vmstat Linux 性能监视
*Vmstat Linux 性能监视*
请注意当磁盘上的文件被更改时活跃内存的数量增加写到磁盘的块数目bo和属于用户进程的 CPU 时间us也是这样。
或者一个保存大文件到磁盘时dsync 引发):
或者直接保存一个大文件到磁盘时(由 dsync 标志引发):
# vmstat -a 1 5
# dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync
![Vmstat Linux 磁盘性能监视](http://www.tecmint.com/wp-content/uploads/2015/08/VmStat-Linux-Disk-Performance-Monitoring.png)
Vmstat Linux 磁盘性能监视
*Vmstat Linux 磁盘性能监视*
在这个例子中,我们可以看到很大数目的块被写入到磁盘bo这正如预期的那样同时 CPU 处理任务之前等待 IO 操作完成的时间wa也增加了。
在这个例子中,我们可以看到大量的块被写入到磁盘bo这正如预期的那样同时 CPU 处理任务之前等待 IO 操作完成的时间wa也增加了。
**别错过**: [Vmstat Linux 性能监视][3]
@ -90,22 +90,22 @@ Vmstat Linux 磁盘性能监视
sysstat 软件包包含以下工具:
- sar (收集、报告、或者保存系统活动信息)。
- sadf (以多种方式显 sar 收集的数据)。
- sadf (以多种方式显 sar 收集的数据)。
- mpstat (报告处理器相关的统计信息)。
- iostat (报告 CPU 统计信息和设备以及分区的 IO统计信息
- pidstat (报告 Linux 任务统计信息)。
- nfsiostat (报告 NFS 的输出/输出统计信息)。
- cifsiostat (报告 CIFS 统计信息)
- sa1 (收集并保存系统活动日常文件的二进制数据)。
- sa2 (在 /var/log/sa 目录写每日报告)。
- sa1 (收集并保存二进制数据到系统活动每日数据文件中)。
- sa2 (在 /var/log/sa 目录写每日报告)。
dstat 为这些工具提供的功能添加了一些额外的特性,以及更多的计数器和更大的灵活性。你可以通过运行 yum info sysstat 或者 yum info dstat 找到每个工具完整的介绍,或者安装完成后分别查看每个工具的 man 手册。
dstat 比这些工具所提供的功能更多一些,并且提供了更多的计数器和更大的灵活性。你可以通过运行 yum info sysstat 或者 yum info dstat 找到每个工具完整的介绍,或者安装完成后分别查看每个工具的 man 手册。
安装两个软件包:
# yum update && yum install sysstat dstat
sysstat 主要的配置文件是 /etc/sysconfig/sysstat。你可以在该文件中找到下面的参数
sysstat 主要的配置文件是 `/etc/sysconfig/sysstat`。你可以在该文件中找到下面的参数:
# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
@ -119,17 +119,17 @@ sysstat 主要的配置文件是 /etc/sysconfig/sysstat。你可以在该文件
# Compression program to use.
ZIP="bzip2"
sysstat 安装完成后,/etc/cron.d/sysstat 中会添加和启用两个 cron 作业。第一个作业每 10 分钟运行系统活动计数工具并在 /var/log/sa/saXX 中保存报告,其中 XX 是该月的一天。
sysstat 安装完成后,`/etc/cron.d/sysstat` 中会添加和启用两个 cron 任务。第一个任务每 10 分钟运行系统活动计数工具,并在 `/var/log/sa/saXX` 中保存报告,其中 XX 是该月的一天。
因此,/var/log/sa/sa05 会包括该月份第 5 天所有的系统活动报告。这里假设我们在上面的配置文件中对 HISTORY 变量使用默认的值:
因此,`/var/log/sa/sa05` 会包括该月份第 5 天所有的系统活动报告。这里假设我们在上面的配置文件中对 HISTORY 变量使用默认的值:
*/10 * * * * root /usr/lib64/sa/sa1 1 1
第二个作业在每天夜间 1153 生成每日进程计数总结并把它保存到 /var/log/sa/sarXX 文件,其中 XX 和之前例子中的含义相同:
第二个任务在每天夜间 1153 生成每日进程计数总结并把它保存到 `/var/log/sa/sarXX` 文件,其中 XX 和之前例子中的含义相同:
53 23 * * * root /usr/lib64/sa/sa2 -A
例如,你可能想要输出该月份第 6 天从上午 9:30 到晚上 530 的系统统计信息到一个 LibreOffice Calc 或 Microsoft Excel 可以查看的 .csv 文件(它也允许你创建表格和图片
例如,你可能想要输出该月份第 6 天从上午 9:30 到晚上 530 的系统统计信息到一个 LibreOffice Calc 或 Microsoft Excel 可以查看的 .csv 文件(这样就可以让你创建表格和图片了
# sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv
@ -137,7 +137,7 @@ sysstat 安装完成后,/etc/cron.d/sysstat 中会添加和启用两个 cron
![Linux 系统统计信息](http://www.tecmint.com/wp-content/uploads/2015/08/Linux-System-Statistics.png)
Linux 系统统计信息
*Linux 系统统计信息*
最后,让我们看看 dstat 提供什么功能。请注意如果不带参数运行dstat 默认使用 -cdngy表示 CPU、磁盘、网络、内存页、和系统统计信息并每秒添加一行可以在任何时候用 Ctrl + C 中断执行):
@ -145,15 +145,15 @@ Linux 系统统计信息
![Linux 磁盘统计检测](http://www.tecmint.com/wp-content/uploads/2015/08/dstat-command.png)
Linux 磁盘统计检测
*Linux 磁盘统计检测*
要输出统计信息到 .csv 文件,可以用 -output 标记后面跟一个文件名称。让我们来看看在 LibreOffice Calc 中该文件看起来是怎样的:
![检测 Linux 统计信息输出](http://www.tecmint.com/wp-content/uploads/2015/08/Monitor-Linux-Statistics-Output.png)
检测 Linux 统计信息输出
*检测 Linux 统计信息输出*
我强烈建议你查看 dstat 的 man 手册,为了方便你的阅读用 PDF 格式包括本文以及 sysstat 的 man 手册。你会找到其它能帮助你创建自定义的详细系统活动报告的选项。
为了更多的阅读体验,我强烈建议你查看 [dstat][5] 和 [sysstat][6] 的 pdf 格式 man 手册。你会找到其它能帮助你创建自定义的详细系统活动报告的选项。
**别错过**: [Sysstat Linux 的使用活动检测工具][4]
@ -161,7 +161,7 @@ Linux 磁盘统计检测
在该指南中我们解释了如何使用 Linux 原生工具以及 RHEL 7 提供的特定工具来生成系统使用报告。在某种情况下,你可能像依赖最好的朋友那样依赖这些报告。
你很可能使用过这篇指南中我们没有介绍到的其它工具。如果真是这样的话,用下面的表和社区中的其他成员一起分享吧,也可以是任何其它的建议/疑问/或者评论。
你很可能使用过这篇指南中我们没有介绍到的其它工具。如果真是这样的话,用下面的表和社区中的其他成员一起分享吧,也可以是任何其它的建议/疑问/或者评论。
我们期待你的回复。
@ -171,12 +171,14 @@ via: http://www.tecmint.com/linux-performance-monitoring-and-file-system-statist
作者:[Gabriel Cánepa][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:http://www.tecmint.com/how-to-check-disk-space-in-linux/
[1]:https://linux.cn/article-6466-1.html
[2]:http://www.tecmint.com/check-linux-disk-usage-of-files-and-directories/
[3]:http://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/
[4]:http://www.tecmint.com/install-sysstat-in-linux/
[3]:https://linux.cn/article-4024-1.html
[4]:https://linux.cn/article-4028-1.html
[5]:http://www.tecmint.com/wp-content/pdf/dstat.pdf
[6]:http://www.tecmint.com/wp-content/pdf/sysstat.pdf

View File

@ -1,20 +1,20 @@
第四部分 - 使用 Shell 脚本自动化 Linux 系统维护任务
RHCE 系列(四): 使用 Shell 脚本自动化 Linux 系统维护任务
================================================================================
之前我听说高效系统管理员/工程师其中一个特点是懒惰。一开始看起来很矛盾,但作者接下来解释了其中的原因:
之前我听说高效系统管理员的一个特点是懒惰。一开始看起来很矛盾,但作者接下来解释了其中的原因:
![自动化 Linux 系统维护任务](http://www.tecmint.com/wp-content/uploads/2015/08/Automate-Linux-System-Maintenance-Tasks.png)
RHCE 系列:第四部分 - 自动化 Linux 系统维护任务
*RHCE 系列:第四部分 - 自动化 Linux 系统维护任务*
如果一个系统管理员花费大量的时间解决问题以及做重复的工作,你就应该怀疑他这么做是否正确。换句话说,一个高效的系统管理员/工程师应该制定一个计划使得尽量花费少的时间去做重复的工作,以及通过使用系列中第三部分 [使用 Linux 工具集监视系统活动报告][1] 介绍的工具预见问题。因此,尽管看起来他/她没有做很多的工作,但那是因为 shell 脚本帮助完成了他的/她的大部分任务,这也就是本章我们将要探讨的东西。
如果一个系统管理员花费大量的时间解决问题以及做重复的工作,你就应该怀疑他这么做是否正确。换句话说,一个高效的系统管理员/工程师应该制定一个计划使得尽量花费少的时间去做重复的工作,以及通过使用系列中第三部分 [使用 Linux 工具集监视系统活动报告][1] 介绍的工具预见问题。因此,尽管看起来他/她没有做很多的工作,但那是因为 shell 脚本帮助完成了他的/她的大部分任务,这也就是本章我们将要探讨的东西。
### 什么是 shell 脚本? ###
简单的说shell 脚本就是一个由 shell 一步一步执行的程序,而 shell 是在 Linux 内核和用户之间提供接口的另一个程序。
简单的说shell 脚本就是一个由 shell 一步一步执行的程序,而 shell 是在 Linux 内核和最终用户之间提供接口的另一个程序。
默认情况下RHEL 7 中用户使用的 shell 是 bash/bin/bash。如果你想知道详细的信息和历史背景你可以查看 [维基页面][2]。
默认情况下RHEL 7 中用户使用的 shell 是 bash/bin/bash。如果你想知道详细的信息和历史背景你可以查看这个[维基页面][2]。
关于这个 shell 提供的众多功能的介绍,可以查看 **man 手册**,也可以从 [Bash 命令][3])下载 PDF 格式。除此之外,假设你已经熟悉 Linux 命令(否则我强烈建议你首先看一下 **Tecmint.com** 中的文章 [从新手到系统管理员指南][4] )。现在让我们开始吧。
关于这个 shell 提供的众多功能的介绍,可以查看 **man 手册**,也可以从 [Bash 命令][3]下载 PDF 格式。除此之外,假设你已经熟悉 Linux 命令(否则我强烈建议你首先看一下 **Tecmint.com** 中的文章 [从新手到系统管理员指南][4] )。现在让我们开始吧。
### 写一个脚本显示系统信息 ###
@ -27,7 +27,7 @@ RHCE 系列:第四部分 - 自动化 Linux 系统维护任务
#!/bin/bash
# RHCE 系列第四部分例脚本
# RHCE 系列第四部分例脚本
# 该脚本会返回以下这些系统信息:
# -主机名称:
echo -e "\e[31;43m***** HOSTNAME INFORMATION *****\e[0m"
@ -67,9 +67,9 @@ RHCE 系列:第四部分 - 自动化 Linux 系统维护任务
![服务器监视 Shell 脚本](http://www.tecmint.com/wp-content/uploads/2015/08/Server-Monitoring-Shell-Script.png)
服务器监视 Shell 脚本
*服务器监视 Shell 脚本*
该功能用以下命令提供
颜色功能是由以下命令提供的
echo -e "\e[COLOR1;COLOR2m<YOUR TEXT HERE>\e[0m"
@ -79,13 +79,13 @@ RHCE 系列:第四部分 - 自动化 Linux 系统维护任务
你想使其自动化的任务可能因情况而不同。因此,我们不可能在一篇文章中覆盖所有可能的场景,但是我们会介绍使用 shell 脚本可以使其自动化的三种典型任务:
**1)** 更新本地文件数据库, 2) 查找(或者删除)有 777 权限的文件, 以及 3) 文件系统使用超过定义的阀值时发出警告。
1) 更新本地文件数据库, 2) 查找(或者删除)有 777 权限的文件, 以及 3) 文件系统使用超过定义的阀值时发出警告。
让我们在脚本目录中新建一个名为 `auto_tasks.sh` 的文件并添加以下内容:
#!/bin/bash
# 自动化任务例脚本:
# 自动化任务例脚本:
# -更新本地文件数据库:
echo -e "\e[4;32mUPDATING LOCAL FILE DATABASE\e[0m"
updatedb
@ -123,16 +123,16 @@ RHCE 系列:第四部分 - 自动化 Linux 系统维护任务
![查找 777 权限文件的 Shell 脚本](http://www.tecmint.com/wp-content/uploads/2015/08/Shell-Script-to-Find-777-Permissions.png)
查找 777 权限文件的 Shell 脚本
*查找 777 权限文件的 Shell 脚本*
### 使用 Cron ###
想更进一步提高效率,你不会想只是坐在你的电脑前手动执行这些脚本。相反,你会使用 cron 来调度这些任务周期性地执行,并把结果通过邮件发动给预定的接收者或者将它们保存到使用 web 浏览器可以查看的文件中。
想更进一步提高效率,你不会想只是坐在你的电脑前手动执行这些脚本。相反,你会使用 cron 来调度这些任务周期性地执行,并把结果通过邮件发动给预先指定的接收者或者将它们保存到使用 web 浏览器可以查看的文件中。
下面的脚本filesystem_usage.sh会运行有名的 **df -h** 命令,格式化输出到 HTML 表格并保存到 **report.html** 文件中:
#!/bin/bash
# Sample script to demonstrate the creation of an HTML report using shell scripting
# 演示使用 shell 脚本创建 HTML 报告的示例脚本
# Web directory
WEB_DIR=/var/www/html
# A little CSS and table layout to make the report look a little nicer
@ -177,7 +177,7 @@ RHCE 系列:第四部分 - 自动化 Linux 系统维护任务
![服务器监视报告](http://www.tecmint.com/wp-content/uploads/2015/08/Server-Monitoring-Report.png)
服务器监视报告
*服务器监视报告*
你可以添加任何你想要的信息到那个报告中。添加下面的 crontab 条目在每天下午的 130 运行该脚本:
@ -193,12 +193,12 @@ via: http://www.tecmint.com/using-shell-script-to-automate-linux-system-maintena
作者:[Gabriel Cánepa][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:http://www.tecmint.com/linux-performance-monitoring-and-file-system-statistics-reports/
[1]:https://linux.cn/article-6512-1.html
[2]:https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29
[3]:http://www.tecmint.com/wp-content/pdf/bash.pdf
[4]:http://www.tecmint.com/60-commands-of-linux-a-guide-from-newbies-to-system-administrator/

View File

@ -1,26 +1,24 @@
第五部分 - 如何在 RHEL 7 中管理系统日志(配置、旋转以及导入到数据库)
RHCE 系列(五):如何在 RHEL 7 中管理系统日志(配置、轮换以及导入到数据库)
================================================================================
为了确保你的 RHEL 7 系统安全,你需要通过查看日志文件监控系统中发生的所有活动。这样,你就可以检测任何不正常或有潜在破坏的活动并进行系统故障排除或者其它恰当的操作。
为了确保你的 RHEL 7 系统安全,你需要通过查看日志文件监控系统中发生的所有活动。这样,你就可以检测任何不正常或有潜在破坏的活动并进行系统故障排除或者其它恰当的操作。
![Linux 中使用 Rsyslog 和 Logrotate 旋转日志文件](http://www.tecmint.com/wp-content/uploads/2015/08/Manage-and-Rotate-Linux-Logs-Using-Rsyslog-Logrotate.jpg)
![Linux 中使用 Rsyslog 和 Logrotate 轮换日志文件](http://www.tecmint.com/wp-content/uploads/2015/08/Manage-and-Rotate-Linux-Logs-Using-Rsyslog-Logrotate.jpg)
(译者注:[日志旋转][9]是系统管理中归档每天产生的日志文件的自动化过程)
RHCE 考试 - 第五部分:使用 Rsyslog 和 Logrotate 管理系统日志
*RHCE 考试 - 第五部分:使用 Rsyslog 和 Logrotate 管理系统日志*
在 RHEL 7 中,[rsyslogd][1] 守护进程负责系统日志,它从 /etc/rsyslog.conf该文件指定所有系统日志的默认路径和 /etc/rsyslog.d 中的所有文件(如果有的话)读取配置信息。
### Rsyslogd 配置 ###
快速浏览一下 [rsyslog.conf][2] 会是一个好的开端。该文件分为 3 个主要部分模块rsyslong 按照模块化设计),全局指令(用于设置 rsyslogd 守护进程的全局属性),以及规则。正如你可能猜想的,最后一个部分指示获取,显示以及在哪里保存什么的日志(也称为选择子),这也是这篇博文关注的重点。
快速浏览一下 [rsyslog.conf][2] 会是一个好的开端。该文件分为 3 个主要部分模块rsyslong 按照模块化设计),全局指令(用于设置 rsyslogd 守护进程的全局属性),以及规则。正如你可能猜想的,最后一个部分指示记录或显示什么以及在哪里保存也称为选择子selector这也是这篇文章关注的重点。
rsyslog.conf 中典型的一行如下所示:
![Rsyslogd 配置](http://www.tecmint.com/wp-content/uploads/2015/08/Rsyslogd-Configuration.png)
Rsyslogd 配置
*Rsyslogd 配置*
在上面的图片中,我们可以看到一个选择子包括了一个或多个用分号分隔的设备优先级Facility:Priority其中设备描述了消息类型参考 [RFC 3164 4.1.1 章节][3] 查看 rsyslog 可用的完整设备列表),优先级指示它的严重性,这可能是以下几种之一:
在上面的图片中,我们可以看到一个选择子包括了一个或多个用分号分隔的“设备:优先级”Facility:Priority其中设备描述了消息类型参考 [RFC 3164 4.1.1 章节][3]查看 rsyslog 可用的完整设备列表),优先级指示它的严重性,这可能是以下几种之一:
- debug
- info
@ -31,7 +29,7 @@ Rsyslogd 配置
- alert
- emerg
尽管自身并不是一个优先级,关键字 none 意味着指定设备没有任何优先级。
尽管 none 并不是一个优先级,不过它意味着指定设备没有任何优先级。
**注意**:给定一个优先级表示该优先级以及之上的消息都应该记录到日志中。因此,上面例子中的行指示 rsyslogd 守护进程记录所有优先级为 info 以及以上(不管是什么设备)的除了属于 mail、authpriv、以及 cron 服务(不考虑来自这些设备的消息)的消息到 /var/log/messages。
@ -47,7 +45,7 @@ Rsyslogd 配置
#### 创建自定义日志文件 ####
要把所有的守护进程消息记录到 /var/log/tecmint.log我们需要在 rsyslog.conf 或者 /etc/rsyslog.d 目录中的单独文件(易于管理)添加下面一行:
要把所有的守护进程消息记录到 /var/log/tecmint.log我们需要在 rsyslog.conf 或者 /etc/rsyslog.d 目录中的单独文件(这样易于管理)添加下面一行:
daemon.* /var/log/tecmint.log
@ -55,19 +53,19 @@ Rsyslogd 配置
# systemctl restart rsyslog
在随机重启两个守护进程之前和之后查看自定义日志的内容:
在随便重启两个守护进程之前和之后查看下自定义日志的内容:
![Linux 创建自定义日志文件](http://www.tecmint.com/wp-content/uploads/2015/08/Create-Custom-Log-File.png)
创建自定义日志文件
*创建自定义日志文件*
作为一个自学练习,我建议你重点关注设备和优先级,添加额外的消息到已有的日志文件或者像上面那样创建一个新的日志文件。
### 使用 Logrotate 旋转日志 ###
### 使用 Logrotate 轮换日志 ###
为了防止日志文件无限制增长logrotate 工具用于旋转、压缩、移除或者通过电子邮件发送日志,从而减轻管理会产生大量日志文件系统的困难。
为了防止日志文件无限制增长logrotate 工具用于轮换、压缩、移除或者通过电子邮件发送日志,从而减轻管理会产生大量日志文件系统的困难。(译者注:[日志轮换][9]rotate是系统管理中归档每天产生的日志文件的自动化过程
Logrotate 作为一个 cron 作业/etc/cron.daily/logrotate每天运行并从 /etc/logrotate.conf 和 /etc/logrotate.d 中的文件(如果有的话)读取配置信息。
Logrotate 作为一个 cron 任务/etc/cron.daily/logrotate每天运行并从 /etc/logrotate.conf 和 /etc/logrotate.d 中的文件(如果有的话)读取配置信息。
对于 rsyslog即使你可以在主文件中为指定服务包含设置为每个服务创建单独的配置文件能帮助你更好地组织设置。
@ -75,27 +73,27 @@ Logrotate 作为一个 cron 作业(/etc/cron.daily/logrotate每天运行
![Logrotate 配置](http://www.tecmint.com/wp-content/uploads/2015/08/Logrotate-Configuration.png)
Logrotate 配置
*Logrotate 配置*
在上面的例子中logrotate 会为 /var/log/wtmp 进行以下操作:尝试每个月旋转一次,但至少文件要大于 1MB然后用 0664 权限、用户 root、组 utmp 创建一个新的日志文件。下一步只保存一个归档日志,正如旋转指令指定的:
在上面的例子中logrotate 会为 /var/log/wtmp 进行以下操作:尝试每个月轮换一次,但至少文件要大于 1MB然后用 0664 权限、用户 root、组 utmp 创建一个新的日志文件。下一步只保存一个归档日志,正如轮换指令指定的:
![每月 Logrotate 日志](http://www.tecmint.com/wp-content/uploads/2015/08/Logrotate-Logs-Monthly.png)
每月 Logrotate 日志
*每月 Logrotate 日志*
让我们再来看看 /etc/logrotate.d/httpd 中的另一个例子:
![旋转 Apache 日志文件](http://www.tecmint.com/wp-content/uploads/2015/08/Rotate-Apache-Log-Files.png)
![轮换 Apache 日志文件](http://www.tecmint.com/wp-content/uploads/2015/08/Rotate-Apache-Log-Files.png)
旋转 Apache 日志文件
*轮换 Apache 日志文件*
你可以在 logrotate 的 man 手册([man logrotate][4] 和 [man logrotate.conf][5])中阅读更多有关它的设置。为了方便你的阅读,本文还提供了两篇文章的 PDF 格式。
作为一个系统工程师,很可能由你决定多久按照什么格式保存一次日志,取决于你是否有一个单独的分区/逻辑卷给 /var。否则你真的要考虑删除旧日志以节省存储空间。另一方面根据你公司和客户内部的政策为了以后的安全审核你可能被迫要保留多个日志。
作为一个系统工程师,很可能由你决定多久按照什么格式保存一次日志,取决于你是否有一个单独的分区/逻辑卷给 `/var`。否则,你真的要考虑删除旧日志以节省存储空间。另一方面,根据你公司和客户内部的政策,为了以后的安全审核,你可能必须要保留多个日志。
#### 保存日志到数据库 ####
当然检查日志可能是一个很繁琐的工作(即使有类似 grep 工具和正则表达式的帮助。因为这个原因rsyslog 允许我们把它们导出到数据库OTB 支持的关系数据库管理系统包括 MySQL、MariaDB、PostgreSQL 和 Oracle
当然检查日志可能是一个很繁琐的工作(即使有类似 grep 工具和正则表达式的帮助。因为这个原因rsyslog 允许我们把它们导出到数据库OTB 支持的关系数据库管理系统包括 MySQL、MariaDB、PostgreSQL 和 Oracle)。
指南的这部分假设你已经在要管理日志的 RHEL 7 上安装了 MariaDB 服务器和客户端:
@ -104,10 +102,9 @@ Logrotate 配置
然后使用 `mysql_secure_installation` 工具为 root 用户设置密码以及其它安全考量:
![保证 MySQL 数据库安全](http://www.tecmint.com/wp-content/uploads/2015/08/Secure-MySQL-Database.png)
保证 MySQL 数据库安全
*保证 MySQL 数据库安全*
注意:如果你不想用 MariaDB root 用户插入日志消息到数据库,你也可以配置用另一个用户账户。如何实现的介绍已经超出了本文的范围,但在 [MariaDB 知识][6] 中有详细解析。为了简单在这篇指南中我们会使用 root 账户。
@ -117,7 +114,7 @@ Logrotate 配置
![保存服务器日志到数据库](http://www.tecmint.com/wp-content/uploads/2015/08/Save-Server-Logs-to-Database.png)
保存服务器日志到数据库
*保存服务器日志到数据库*
最后,添加下面的行到 /etc/rsyslog.conf
@ -132,18 +129,18 @@ Logrotate 配置
#### 使用 SQL 语法查询日志 ####
现在执行一些会改变日志的操作(例如停止和启动服务),然后登陆到你的 DB 服务器并使用标准的 SQL 命令显示和查询日志:
现在执行一些会改变日志的操作(例如停止和启动服务),然后登录到你的数据库服务器并使用标准的 SQL 命令显示和查询日志:
USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;
![在数据库中查询日志](http://www.tecmint.com/wp-content/uploads/2015/08/Query-Logs-in-Database.png)
在数据库中查询日志
*在数据库中查询日志*
### 总结 ###
在这篇文章中我们介绍了如何设置系统日志,如果旋转日志以及为了简化查询如何重定向消息到数据库。我们希望这些技巧能对你准备 [RHCE 考试][8] 和日常工作有所帮助。
在这篇文章中我们介绍了如何设置系统日志,如果轮换日志以及为了简化查询如何重定向消息到数据库。我们希望这些技巧能对你准备 [RHCE 考试][8] 和日常工作有所帮助。
正如往常,非常欢迎你的反馈。用下面的表单和我们联系吧。
@ -153,7 +150,7 @@ via: http://www.tecmint.com/manage-linux-system-logs-using-rsyslogd-and-logrotat
作者:[Gabriel Cánepa][a]
译者:[ictlyh](http://www.mutouxiaogui.cn/blog/)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
@ -165,5 +162,5 @@ via: http://www.tecmint.com/manage-linux-system-logs-using-rsyslogd-and-logrotat
[5]:http://www.tecmint.com/wp-content/pdf/logrotate.conf.pdf
[6]:https://mariadb.com/kb/en/mariadb/create-user/
[7]:https://github.com/sematext/rsyslog/blob/master/plugins/ommysql/createDB.sql
[8]:http://www.tecmint.com/how-to-setup-and-configure-static-network-routing-in-rhel/
[8]:https://linux.cn/article-6451-1.html
[9]:https://en.wikipedia.org/wiki/Log_rotation

View File

@ -1,4 +1,4 @@
安装 Samba 并配置 Firewalld 和 SELinux 使得能在 Linux 和 Windows 之间共享文件 - 第六部分
RHCE 系列(六):安装 Samba 并配置 Firewalld 和 SELinux 让 Linux 和 Windows 共享文件
================================================================================
由于计算机很少作为一个独立的系统工作,作为一个系统管理员或工程师,就应该知道如何在有多种类型的服务器之间搭设和维护网络。
@ -6,9 +6,9 @@
![在 Linux 中配置 Samba 进行文件共享](http://www.tecmint.com/wp-content/uploads/2015/09/setup-samba-file-sharing-on-linux-windows-clients.png)
RHCE 系列第六部分 - 设置 Samba 文件共享
*RHCE 系列第六部分 - 设置 Samba 文件共享*
如果有人你设置文件服务器用于协作或者配置很可能有多种不同类型操作系统和设备的企业环境,这篇文章就能派上用场。
如果有人你设置文件服务器用于协作或者配置很可能有多种不同类型操作系统和设备的企业环境,这篇文章就能派上用场。
由于你可以在网上找到很多关于 Samba 和 NFS 背景和技术方面的介绍,在这篇文章以及后续文章中我们就省略了这些部分直接进入到我们的主题。
@ -22,7 +22,7 @@ RHCE 系列第六部分 - 设置 Samba 文件共享
![测试安装 Samba](http://www.tecmint.com/wp-content/uploads/2015/09/Testing-Setup-for-Samba.png)
测试安装 Samba
*测试安装 Samba*
在 box1 中安装以下软件包:
@ -36,7 +36,7 @@ RHCE 系列第六部分 - 设置 Samba 文件共享
### 步骤二: 设置通过 Samba 进行文件共享 ###
Samba 这么重要的原因之一是它为 SMB/CIFS 客户端(译SMB 是微软和英特尔制定的一种通信协议CIFS 是其中一个版本,更详细的介绍可以参考[Wiki][6])提供了文件和打印设备,这使得客户端看起来服务器就是一个 Windows 系统(我必须承认写这篇文章的时候我有一点激动,因为这是我多年前作为一个新手 Linux 系统管理员的第一次设置)。
Samba 这么重要的原因之一是它为 SMB/CIFS 客户端(LCTT 译注SMB 是微软和英特尔制定的一种通信协议CIFS 是其中一个版本,更详细的介绍可以参考 [Wiki][6])提供了文件和打印设备,这使得服务器在客户端看起来就是一个 Windows 系统(我必须承认写这篇文章的时候我有一点激动,因为这是我多年前作为一个新手 Linux 系统管理员的第一次设置)。
**添加系统用户并设置权限和属性**
@ -91,9 +91,9 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
![测试 Samba 配置](http://www.tecmint.com/wp-content/uploads/2015/09/Test-Samba-Configuration.png)
测试 Samba 配置
*测试 Samba 配置*
如果你要添加另一个公开的共享目录(意味着没有任何验证),在 /etc/samba/smb.conf 中创建另一章节,在共享目录名称下面复制上面的章节,只需要把 public=no 更改为 public=yes 并去掉有效用户和写列表命令。
如果你要添加另一个公开的共享目录(意味着不需要任何验证),在 /etc/samba/smb.conf 中创建另一章节,在共享目录名称下面复制上面的章节,只需要把 public=no 更改为 public=yes 并去掉有效用户valid users和写列表write list命令。
### 步骤五: 添加 Samba 用户 ###
@ -102,7 +102,7 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
# smbpasswd -a user1
# smbpasswd -a user2
最后,重启 Samda启用系统启动时自动启动服务,并确保共享目录对网络客户端可用:
最后,重启 Samda并让系统启动时自动启动该服务,确保共享目录对网络客户端可用:
# systemctl start smb
# systemctl enable smb
@ -112,7 +112,7 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
![验证 Samba 共享](http://www.tecmint.com/wp-content/uploads/2015/09/Verify-Samba-Share.png)
验证 Samba 共享
*验证 Samba 共享*
到这里,已经正确安装和配置了 Samba 文件服务器。现在让我们在 RHEL 7 和 Windows 8 客户端中测试该配置。
@ -120,12 +120,11 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
首先,确保客户端可以访问 Samba 共享:
# smbclient L 192.168.0.18 -U user2
# smbclient L 192.168.0.18 -U user2
![在 Linux 上挂载 Samba 共享](http://www.tecmint.com/wp-content/uploads/2015/09/Mount-Samba-Share-on-Linux.png)
在 Linux 上挂载 Samba 共享
*在 Linux 上挂载 Samba 共享*
(为 user1 重复上面的命令)
@ -135,11 +134,11 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
![挂载 Samba 网络共享](http://www.tecmint.com/wp-content/uploads/2015/09/Mount-Samba-Network-Share.png)
挂载 Samba 网络共享
*挂载 Samba 网络共享*
(其中 /media/samba 是一个已有的目录)
或者在 /etc/fstab 文件中添加下面的条目自动挂载:
或者在 /etc/fstab 文件中添加下面的条目自动挂载:
**fstab**
@ -147,7 +146,7 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0
其中隐藏文件 /media/samba/.smbcredentials它的权限被设置为 600 和 rootroot有两行,指示允许使用共享的账户的用户名和密码:
其中隐藏文件 /media/samba/.smbcredentials它的权限被设置为 600 和 root:root有两行内容,指示允许使用共享的账户的用户名和密码:
**.smbcredentials**
@ -162,17 +161,17 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
![在 Samba 共享中创建文件](http://www.tecmint.com/wp-content/uploads/2015/09/Create-File-in-Samba-Share.png)
在 Samba 共享中创建文件
*在 Samba 共享中创建文件*
正如你看到的,用权限 0770 和属主 user1:finance 创建了文件。
### 步骤七: 在 Windows 上挂载 Samba 共享 ###
要在 Windows 上挂载 Samba 共享,进入 ‘我的计算机’ 并选择 ‘计算机’,‘网络驱动映射’。下一步,为要映射的驱动分配一个字母并用不同的认证检查连接(下面的截图使用我的母语西班牙语):
要在 Windows 上挂载 Samba 共享,进入 ‘我的计算机’ 并选择 ‘计算机’,‘网络驱动映射’。下一步,为要映射的驱动分配一个驱动器盘符并用不同的认证身份检查是否可以连接(下面的截图使用我的母语西班牙语):
![在 Windows 中挂载 Samba 共享](http://www.tecmint.com/wp-content/uploads/2015/09/Mount-Samba-Share-in-Windows.png)
在 Windows 中挂载 Samba 共享
*在 Windows 中挂载 Samba 共享*
最后,让我们新建一个文件并检查权限和属性:
@ -188,7 +187,7 @@ Samba 这么重要的原因之一是它为 SMB/CIFS 客户端译者注SMB
在这篇文章中我们不仅介绍了如何使用不同操作系统设置 Samba 服务器和两个客户端,也介绍了[如何配置 Firewalld][3] 和 [服务器中的 SELinux][4] 以获取所需的组协作功能。
最后,同样重要的是,我推荐阅读网上的 [smb.conf man 手册][5] 查看其它可能针对你的情况比本文中介绍的场景更加合适的配置命令。
最后,同样重要的是,我推荐阅读网上的 [smb.conf man 手册][5] 查看其它比本文中介绍的场景更加合适你的场景的配置命令。
正如往常,欢迎在下面的评论框中留下你的评论或建议。
@ -198,7 +197,7 @@ via: http://www.tecmint.com/setup-samba-file-sharing-for-linux-windows-clients/
作者:[Gabriel Cánepa][a]
译者:[ictlyh](http://www.mutouxiaogui.cn/blog/)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,11 +1,10 @@
第七部分 - 在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器
RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器
================================================================================
在本系列的前一篇文章,我们回顾了[如何在可能包括多种类型操作系统的网络上配置 Samba 共享][1]。现在,如果你需要为一组类-Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS。
在本系列的前一篇文章,我们回顾了[如何在可能包括多种类型操作系统的网络上配置 Samba 共享][1]。现在,如果你需要为一组类 Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS。
![设置使用 Kerberos 进行身份验证的 NFS 服务器](http://www.tecmint.com/wp-content/uploads/2015/09/Setting-Kerberos-Authentication-with-NFS.jpg)
RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服务器
*RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服务器*
在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程。假设你已经配置好了一个 NFS 服务器和一个客户端。如果还没有,可以参考 [安装和配置 NFS 服务器][2] - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置。
@ -24,28 +23,26 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
#### 创建 NFS 组并配置 NFS 共享目录 ####
1. 新建一个名为 nfs 的组并给它添加用户 nfsnobody然后更改 /nfs 目录的权限为 0770组属主为 nfs。于是nfsnobody对应请求用户在共享目录有写的权限你就不需要在 /etc/exports 文件中使用 no_root_squash注:设为 root_squash 意味着在访问 NFS 服务器上的文件时,客户机上的 root 用户不会被当作 root 用户来对待)。
1 新建一个名为 nfs 的组并给它添加用户 nfsnobody然后更改 /nfs 目录的权限为 0770组属主为 nfs。于是nfsnobody对应请求用户在共享目录有写的权限你就不需要在 /etc/exports 文件中使用 no_root_squashLCTT 译注:设为 root_squash 意味着在访问 NFS 服务器上的文件时,客户机上的 root 用户不会被当作 root 用户来对待)。
# groupadd nfs
# usermod -a -G nfs nfsnobody
# chmod 0770 /nfs
# chgrp nfs /nfs
2. 像下面那样更改 export 文件(/etc/exports只允许从 box1 使用 Kerberos 安全验证的访问sec=krb5
2 像下面那样更改 export 文件(/etc/exports只允许从 box1 使用 Kerberos 安全验证的访问sec=krb5
**注意**anongid 的值设置为之前新建的组 nfs 的 GID
**exports 添加 NFS 共享**
----------
/nfs box1(rw,sec=krb5,anongid=1004)
3. 再次 exprot-r所有-aNFS 共享。为输出添加详情(-v是个好主意因为它提供了发生错误时解决问题的有用信息
3 再次 exprot-r所有-aNFS 共享。为输出添加详情(-v是个好主意因为它提供了发生错误时解决问题的有用信息
# exportfs -arv
4. 重启并启用 NFS 服务器以及相关服务。注意你不需要启动 nfs-lock 和 nfs-idmapd因为系统启动时其它服务会自动启动它们
4 重启并启用 NFS 服务器以及相关服务。注意你不需要启动 nfs-lock 和 nfs-idmapd因为系统启动时其它服务会自动启动它们
# systemctl restart rpcbind nfs-server nfs-lock nfs-idmap
# systemctl enable rpcbind nfs-server
@ -61,14 +58,12 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
正如你看到的为了简便NFS 服务器和 KDC 在同一台机器上,当然如果你有更多可用机器你也可以把它们安装在不同的机器上。两台机器都在 `mydomain.com` 域。
最后同样重要的是Kerberos 要求客户端和服务器中至少有一个域名解析的基本式和[网络时间协议][5]服务,因为 Kerberos 身份验证的安全一部分基于时间戳。
最后同样重要的是Kerberos 要求客户端和服务器中至少有一个域名解析的基本式和[网络时间协议][5]服务,因为 Kerberos 身份验证的安全一部分基于时间戳。
为了配置域名解析,我们在客户端和服务器中编辑 /etc/hosts 文件:
**host 文件 为域添加 DNS**
----------
192.168.0.18 box1.mydomain.com box1
192.168.0.20 box2.mydomain.com box2
@ -82,10 +77,9 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
# chronyc tracking
![用 Chrony 同步服务器时间](http://www.tecmint.com/wp-content/uploads/2015/09/Synchronize-Time-with-Chrony.png)
用 Chrony 同步服务器时间
*用 Chrony 同步服务器时间*
### 安装和配置 Kerberos ###
@ -109,7 +103,7 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
![创建 Kerberos 数据库](http://www.tecmint.com/wp-content/uploads/2015/09/Create-Kerberos-Database.png)
创建 Kerberos 数据库
*创建 Kerberos 数据库*
下一步,使用 kadmin.local 工具为 root 创建管理权限:
@ -129,7 +123,7 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
![添加 Kerberos 到 NFS 服务器](http://www.tecmint.com/wp-content/uploads/2015/09/Create-Kerboros-for-NFS.png)
添加 Kerberos 到 NFS 服务器
*添加 Kerberos 到 NFS 服务器*
为 root/admin 获取和缓存票据授权票据ticket-granting ticket
@ -138,7 +132,7 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
![缓存 Kerberos](http://www.tecmint.com/wp-content/uploads/2015/09/Cache-kerberos-Ticket.png)
缓存 Kerberos
*缓存 Kerberos*
真正使用 Kerberos 之前的最后一步是保存被授权使用 Kerberos 身份验证的规则到一个密钥表文件(在服务器中):
@ -154,7 +148,7 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
![挂载 NFS 共享](http://www.tecmint.com/wp-content/uploads/2015/09/Mount-NFS-Share.png)
挂载 NFS 共享
*挂载 NFS 共享*
现在让我们卸载共享,在客户端中重命名密钥表文件(模拟它不存在)然后试着再次挂载共享目录:
@ -163,7 +157,7 @@ RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服
![挂载/卸载 Kerberos NFS 共享](http://www.tecmint.com/wp-content/uploads/2015/09/Mount-Unmount-Kerberos-NFS-Share.png)
挂载/卸载 Kerberos NFS 共享
*挂载/卸载 Kerberos NFS 共享*
现在你可以使用基于 Kerberos 身份验证的 NFS 共享了。
@ -177,12 +171,12 @@ via: http://www.tecmint.com/setting-up-nfs-server-with-kerberos-based-authentica
作者:[Gabriel Cánepa][a]
译者:[ictlyh](http://www.mutouxiaogui.cn/blog/)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/gacanepa/
[1]:http://www.tecmint.com/setup-samba-file-sharing-for-linux-windows-clients/
[1]:https://linux.cn/article-6550-1.html
[2]:http://www.tecmint.com/configure-nfs-server/
[3]:http://www.tecmint.com/selinux-essentials-and-control-filesystem-access/
[4]:http://www.tecmint.com/firewalld-rules-for-centos-7/

View File

@ -1,48 +1,48 @@
The history of Android
安卓编年史6
================================================================================
![T-Mobile G1](http://cdn.arstechnica.net/wp-content/uploads/2014/04/t-mobile_g1.jpg)
T-Mobile G1
T-Mobile供图
*T-Mobile G1 [T-Mobile供图]*
### 安卓1.0——谷歌系app和实体硬件的引入 ###
到了2008年10月安卓1.0已经准备好发布,这个系统在[T-Mobile G1][1]又以HTC Dream为人周知上初次登台。G1进入了被iPhone 3G和[Nokia 1680 classic][2]所主宰的市场。这些手机并列获得了2008年[销量最佳手机][3]称号各自卖出了350万台。G1的销量数字已难以获得但T-Mobile宣称截至2009年4月该设备的销量突破了100万台。无论从哪方面来说这在竞争中都处于落后地位。
到了2008年10月安卓1.0已经准备好发布,这个系统在[T-Mobile G1][1]又以HTC Dream为人周知上初次登台。G1进入了被iPhone 3G和[Nokia 1680 classic][2]所主宰的市场。这些手机并列获得了2008年[销量最佳手机][3]称号各自卖出了350万台。G1的具体销量数字已难以获得但T-Mobile宣称截至2009年4月该设备的销量突破了100万台。无论从哪方面来说这在竞争中都处于落后地位。
G1拥有单核528Mhz的ARM 11处理器一个Adreno 130的GPU192MB内存以及多达256MB的存储空间供给系统以及应用使用。它有一块3.2英寸320x480分辨率的显示屏被布置在一个含有实体全键盘的滑动结构之上。所以尽管安卓软件的确走过了很长的一段路硬件也是的。时至今日我们可以在厂商的一个手表中得到比这更好的参数:最新的[三星智能手表][4]拥有512MB内存以及1GHz的双核处理器。
G1拥有单核528Mhz的ARM 11处理器一个Adreno 130的GPU192MB内存以及多达256MB的存储空间供给系统以及应用使用。它有一块3.2英寸320x480分辨率的显示屏被布置在一个含有实体全键盘的滑动结构之上。所以尽管安卓软件的确走过了很长的一段路硬件也是的。时至今日我们可以在一个厂商提供手表中得到比这更好的参数:最新的[三星智能手表][4]拥有512MB内存以及1GHz的双核处理器。
当iPhone有着最少数量的按键的时候G1确实完全相反的按键几乎支持每个硬件控制。它有拨通和挂断按钮home键后退以及菜单键一个相机快门键音量控制键一个轨迹球当然还有50个键盘按。未来安卓设备将会慢慢离开按键多多的界面设计,几乎每部新旗舰都在减少按键的数量。
当iPhone有着最少数量的按键的时候G1确实完全相反的按键几乎支持每个硬件控制。它有拨通和挂断按钮home键后退以及菜单键一个相机快门键音量控制键一个轨迹球当然还有50个键盘按。未来安卓设备将会慢慢离开按键多多的界面设计,几乎每部新旗舰都在减少按键的数量。
但是这是第一次人们见到了运行在实机上的安卓而不是跑在一个令人沮丧的慢吞吞的模拟器上。安卓1.0没有iPhone那样顺滑流畅闪亮耀眼或拥有那么多的新闻报道。它也不像Windows Mobile 6.5那样才华横溢。但这仍然是个好的开始。
![安卓1.0和0.9的默认应用列表。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/apps.png)
安卓1.0和0.9的默认应用列表。
Ron Amadeo供图
安卓1.0的核心与两个月前发布的beta版本相比看起来并没有什么引人注目的不同但消费者产品带来了不少应用包括一套完整的谷歌系应用。日历电子邮件Gmail即时通讯市场设置语音拨号以及YouTube都是全新登场。那时候音乐是智能手机上占据主宰地位的媒体类型其王者是iTunes音乐商店。谷歌没有自家的音乐服务所以它选择了亚马逊并绑定了亚马逊MP3商店。
*安卓1.0和0.9的默认应用列表。[Ron Amadeo供图]*
安卓最重要的新增是谷歌商店的首次登场叫做“安卓市场Beta”。与此同时大部分公司满足于将它们的软件目录称作一些不同的“应用商店”——意思是一个出售应用的商店并且只出售应用——谷歌明显有着更大的野心。它搭配了一个更为通用的名字“安卓市场”。这个名字的想法是安卓市场不仅仅拥有应用还拥有一切你的安卓设备所需要的东西。
安卓1.0的核心与两个月前发布的beta版本相比看起来并没有什么引人注目的不同但这个消费产品带来了不少应用包括一套完整的谷歌系应用。日历电子邮件Gmail即时通讯市场设置语音拨号以及YouTube都是全新登场。那时候音乐是智能手机上占据主宰地位的媒体类型其王者是iTunes音乐商店。谷歌没有自家的音乐服务所以它选择了亚马逊并绑定了亚马逊MP3商店。
安卓最重要的新增内容是首次登场的谷歌商店叫做“安卓市场Beta”。与此同时大部分公司满足于将它们的软件目录称作各种“应用商店”——意思是一个出售应用的商店并且只出售应用——谷歌明显有着更大的野心。它搭配了一个更为通用的名字“安卓市场”。这个名字的想法是安卓市场不仅仅拥有应用还拥有一切你的安卓设备所需要的东西。
![第一个安卓市场客户端。截图展示了主页,“我的下载”,一个应用页面,以及一个应用权限页面。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/market.png)
第一个安卓市场客户端。截图展示了主页,“我的下载”,一个应用页面,以及一个应用权限页面。
[Google][5]供图
那时候安卓市场只提供应用和游戏开发者们甚至还不能为它们收费。苹果的App Store相对与安卓市场有4个月的先发优势但是谷歌的主要差异化在于安卓的商店几乎是完全开放的。在iPhone上应用受制于苹果的审查必须遵循设计和技术指南。潜在的新应用不允许在功能上复制已有应用。在安卓市场开发者可以自由地做任何想做的包括开发替代已有的应用。控制的缺失会转变成祝福同时也是诅咒。它允许开发者革新已有的功能但同时意味着甚至是毫无价值的垃圾应用也被允许进入市场。
*第一个安卓市场客户端。截图展示了主页,“我的下载”,一个应用页面,以及一个应用权限页面。[[Google][5]供图]*
现在,这个客户端是又一个不再能够和谷歌服务器通讯的应用。幸运的是,它也是在因特网上被[真正记录][6]的为数不多的早期安卓应用之一。主页提供了通向一般区域的连接像应用游戏搜索以及下载顶部有横向滚动显示的特色应用图标。搜索结果和“我的下载”页面以滚动列表的方式显示应用显示应用名开发者费用在那时都是免费的以及评分。单独的应用页面展示了一个简短的描述安装数用户评论和评分以及最重要的安装按钮。早期的安卓市场不支持图片开发者唯一能使用的区域是应用描述还有着500字的限制。这使得类似维护一个更新日志变的十分困难因为只有描述的位置可以供其使用。
那时候安卓市场只提供应用和游戏开发者们甚至还不能为它们收费。苹果的App Store相对与安卓市场有4个月的先发优势但是谷歌的主要差异化在于安卓的商店几乎是完全开放的。在iPhone上应用受制于苹果的审查必须遵循设计和技术指南。潜在的新应用不允许在功能上复制已有应用。在安卓市场开发者可以自由地做任何想做的包括开发替代已有的应用。控制的缺失导致福祸相依。它允许开发者革新已有的功能但同时意味着甚至是毫无价值的垃圾应用也被允许进入市场。
时至今日,这个安卓市场的客户端是又一个不再能够和谷歌服务器通讯的应用。幸运的是,它也是在因特网上被[真正记录][6]的为数不多的早期安卓应用之一。主页提供了通向一般区域的连接像应用游戏搜索以及下载顶部有横向滚动显示的特色应用图标。搜索结果和“我的下载”页面以滚动列表的方式显示应用显示应用名开发者费用在那时都是免费的以及评分。单独的应用页面展示了一个简短的描述安装数用户评论和评分以及最重要的安装按钮。早期的安卓市场不支持图片开发者唯一能使用的区域是应用描述还有着500字的限制。这使得类似维护一个更新日志变的十分困难因为只有描述的位置可以供其使用。
就在安装之前安卓市场显示了应用所需要的权限。这是苹果直至2012年之前都避免做的那年一个iOS应用被发现在用户不知情的情况下[将完整的通讯录上传][7]到云端。权限显示给出了一个完整的应用用到的权限列表尽管这个版本强迫用户同意应用权限。界面有个“OK”按钮但是除了后退按钮没有办法取消。
![Gmail展示收件箱打开菜单的收件箱。 ](http://cdn.arstechnica.net/wp-content/uploads/2013/12/gmail1.01.png)
Gmail展示收件箱打开菜单的收件箱。
Ron Amadeo供图
下一个重要的应用也许就是Gmail。大多数基本的功能此时已经准备好了。未读邮件以加粗显示标签是个有颜色的标记。在收件箱中每封独立邮件显示着主题发件人以及一个会话中的回复数。Gmail加星标志也在这里——快速点击即可给邮件加星或取消。一如往常对于早期版本的安卓菜单里有收件箱视图应有的所有按钮。但是一旦打开了一封邮件界面看起来就更加的现代了“回复”和“转发”按钮永久固定在了屏幕底部。各个独立回复可以点击它们来展开和收缩。
*Gmail展示收件箱打开菜单的收件箱。[Ron Amadeo供图]*
下一个重要的应用也许就是Gmail。大多数基本的功能此时已经准备好了。未读邮件以加粗显示标签是个有颜色的标记。在收件箱中每封独立邮件显示着主题发件人以及一个会话中的回复数。Gmail加星标志也在这里——快速点击即可给邮件加星或取消。一如往常对于早期版本的安卓菜单里有收件箱视图应有的所有按钮。但是一旦打开了一封邮件界面看起来就更加的现代了“回复”和“转发”按钮永久固定在了屏幕底部。单独回复可以点击它们来展开和收缩。
圆角阴影以及气泡图标给了整个应用“卡通”的外表但是这是个好的开始。安卓的功能第一哲学真正从此开始Gmail支持标签邮件会话搜索以及邮件推送。
![Gmail在安卓1.0的标签视图,写邮件界面,以及设置。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/gmail3.png)
Gmail在安卓1.0的标签视图,写邮件界面,以及设置。
Ron Amadeo供图
*Gmail在安卓1.0的标签视图,写邮件界面,以及设置。[Ron Amadeo供图]*
但是如果你认为Gmail很丑电子邮件应用又拉低了下限。它没有分离的收件箱或文件夹视图——所有东西都糊在一个界面。应用呈现给你一个文件夹列表点击一个文件夹会以内嵌的方式展开内容。未读邮件左侧有条绿色的线指示这就是电子邮件应用的界面。这个应用支持IMAP和POP3但是没有Exchange。
@ -58,7 +58,7 @@ Ron Amadeo供图
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/6/
译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID)
译者:[alim0x](https://github.com/alim0x) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,90 +1,90 @@
安卓编年史
安卓编年史7
================================================================================
![电子邮件应用的所有界面。前两张截图展示了标签/收件箱结合的视图,最后一张截图展示了一封邮件。](http://cdn.arstechnica.net/wp-content/uploads/2014/01/email2lol.png)
电子邮件应用的所有界面。前两张截图展示了标签/收件箱结合的视图,最后一张截图展示了一封邮件。
Ron Amadeo供图
邮件视图是——令人惊讶的——白色。安卓的电子邮件应用从历史角度来说算是个打了折扣的Gmail应用你可以在这里看到紧密的联系。读邮件以及写邮件视图几乎没有任何修改地就从Gmail那里直接取过来使用。
*电子邮件应用的所有界面。前两张截图展示了标签/收件箱结合的视图,最后一张截图展示了一封邮件。 [Ron Amadeo供图]*
邮件视图是——令人惊讶的居然是白色。安卓的电子邮件应用从历史角度来说算是个打了折扣的Gmail应用你可以在这里看到紧密的联系。读邮件以及写邮件视图几乎没有任何修改地就从Gmail那里直接取过来使用。
![即时通讯应用。截图展示了服务提供商选择界面,朋友列表,以及一个对话。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/IM2.png)
即时通讯应用。截图展示了服务提供商选择界面,朋友列表,以及一个对话。
Ron Amadeo供图
在Google Hangouts之前甚至是Google Talk之前就有“IM”——安卓1.0带来的唯一一个即时通讯客户端。令人惊奇的是它支持多种IM服务用户可以从AIMGoogle TalkWindows Live Messenger以及Yahoo中挑选。还记得操作系统开发者什么时候关心过互通性吗
*即时通讯应用。截图展示了服务提供商选择界面,朋友列表,以及一个对话。[Ron Amadeo供图]*
朋友列表是聊天中带有白色聊天气泡的黑色背景界面。状态用一个带颜色的圆形来指示右侧的小安卓机器人指示出某人正在使用移动设备。IM应用相比Google Hangouts远比它有沟通性这真是十分神奇的。绿色代表着某人正在使用设备并且已经登录黄色代表着他们登录了但处于空闲状态红色代表他们手动设置状态为忙不想被打扰灰色表示离线。现在Hangouts只显示用户是否打开了应用。
在Google Hangouts之前甚至是Google Talk之前就有了“IM”——安卓1.0带来的唯一一个即时通讯客户端。令人惊奇的是它支持多种IM服务用户可以从AIMGoogle TalkWindows Live Messenger以及Yahoo中挑选。还记得操作系统开发者什么时候关心过互通性吗
朋友列表是黑色背景界面如果在聊天中则带有白色聊天气泡。状态用一个带颜色的圆形来指示右侧的小安卓机器人指示出某人正在使用移动设备。IM应用相比Google Hangouts远比它有沟通性这真是十分神奇的。绿色代表着某人正在使用设备并且已经登录黄色代表着他们登录了但处于空闲状态红色代表他们手动设置状态为忙不想被打扰灰色表示离线。现在Hangouts只显示用户是否打开了应用。
聊天对话界面明显基于信息应用,聊天的背景从白色和蓝色被换成了白色和绿色。但是没人更改信息输入框的颜色,所以加上橙色的高亮效果,界面共使用了白色,绿色,蓝色和橙色。
![安卓1.0上的YouTube。截图展示了主界面打开菜单的主界面分类界面视频播放界面。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/yt5000.png)
安卓1.0上的YouTube。截图展示了主界面打开菜单的主界面分类界面视频播放界面。
Ron Amadeo供图
YouTube仅仅以G1的320p屏幕和3G网络速度可能不会有今天这样的移动意识但谷歌的视频服务在安卓1.0上就被置入发布了。主界面看起来就像是安卓市场调整过的版本,顶部带有一个横向滚动选择部分,下面有垂直滚动分类列表。谷歌的一些分类选择还真是奇怪:“最热门”和“最多观看”有什么区别?
*安卓1.0上的YouTube。截图展示了主界面打开菜单的主界面分类界面视频播放界面。[Ron Amadeo供图]*
一个谷歌没有意识到YouTube最终能达到多庞大的标志——有一个视频分类是“最近更新”。在今天每分钟有[100小时时长的视频][1]上传到Youtube上如果这个分类能正常工作的话它会是一个快速滚动的视频列表快到以至于变为一片无法阅读的模糊。
以G1的320p屏幕和3G网络速度YouTube可能不会有今天这样的手机上的表现但谷歌的视频服务在安卓1.0上就被置入发布了。主界面看起来就像是安卓市场调整过的版本,顶部带有一个横向滚动选择部分,下面有垂直滚动分类列表。谷歌的一些分类选择还真是奇怪:“最热门”和“最多观看”有什么区别?
菜单含有搜索,喜爱,分类,设置。设置(没有图片)是有史以来最简陋的,只有个清除搜索历史的选项。分类都是一样的平淡,仅仅是个黑色的文本列表。
这是一个谷歌没有意识到YouTube最终能达到多庞大的标志——有一个视频分类是“最近更新”。在今天每分钟有[100小时时长的视频][1]上传到Youtube上如果这个分类能正常工作的话它会是一个快速滚动的视频列表快到以至于变为一片无法阅读的模糊。
菜单含有搜索,喜爱,分类,设置。设置(没有该图片)是有史以来最简陋的,只有个清除搜索历史的选项。分类都是一样的平淡,仅仅是个黑色的文本列表。
最后一张截图展示了视频播放界面,只支持横屏模式。尽管自动隐藏的播放控制有个进度条,但它还是很奇怪地包含了后退和前进按钮。
![YouTube的视频菜单描述页面评论。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/yt3.png)
YouTube的视频菜单描述页面评论。
Ron Amadeo供图
每个视频的更多选项可以通过点击菜单按钮来打开。在这里你可以把视频标记为喜爱,查看详细信息,以及阅读评论。所有的这些界面,和视频播放一样,是锁定横屏模式的。
*YouTube的视频菜单描述页面评论。[Ron Amadeo供图]*
每个视频的更多选项可以通过点击菜单按钮来打开。在这里你可以把视频标记为“喜爱”,查看详细信息,以及阅读评论。所有的这些界面,和视频播放一样,是锁定横屏模式的。
然而“共享”不会打开一个对话框它只是向Gmail邮件中加入了视频的链接。想要把链接通过短信或即时消息发送给别人是不可能的。你可以阅读评论但是没办法评价他们或发表自己的评论。你同样无法给视频评分或赞。
![相机应用的拍照界面,菜单,照片浏览模式。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/camera.png)
相机应用的拍照界面,菜单,照片浏览模式。
Ron Amadeo供图
在实体机上跑上真正的安卓意味着相机功能可以正常运作即便那里没什么太多可关注的。左边的黑色方块是相机的界面原本应该显示取景器图像但SDK的截图工具没办法捕捉下来。G1有个硬件实体的拍照键还记得吗所以相机没必要有个屏幕上的快门键。相机没有曝光白平衡或HDR设置——你可以拍摄照片仅此而已。
*相机应用的拍照界面,菜单,照片浏览模式。[Ron Amadeo供图]*
在实体机上跑真正的安卓意味着相机功能可以正常运作即便那里没什么太多可关注的。左边的黑色方块是相机的界面原本应该显示取景器图像但SDK的截图工具没办法捕捉下来。G1有个硬件实体的拍照键还记得吗所以相机没必要有个屏幕上的快门键。相机没有曝光白平衡或HDR设置——你可以拍摄照片仅此而已。
菜单按钮显示两个选项:跳转到相册应用和带有两个选项的设置界面。第一个设置选项是是否给照片加上地理标记,第二个是在每次拍摄后显示提示菜单,你可以在上面右边看到截图。同样的,你目前还只能拍照——还不支持视频拍摄。
![日历的月视图,打开菜单的周视图,日视图,以及日程。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/calviews.png)
日历的月视图,打开菜单的周视图,日视图,以及日程。
Ron Amadeo供图
*日历的月视图,打开菜单的周视图,日视图,以及日程。[Ron Amadeo供图]*
就像这个时期的大多数应用一样,日历的主命令界面是菜单。菜单用来切换视图,添加新事件,导航至当天,选择要显示的日程,以及打开设置。菜单扮演着每个单独按钮的入口的作用。
月视图不能显示约会事件的文字。每个日期旁边有个侧边约会会显示为侧边上的绿色部分通过位置来表示约会是在一天中的什么时候。周视图同样不能显示预约文字——G1的320×480的显示屏像素还不够密——所以你会在日历中看到一个带有颜色指示条的白块。唯一一个显示文字的是日程和日视图。你可以用滑动来切换日期——左右滑动切换周和日上下滑动切换月份和日程。
![设置主界面,无线设置,关于页面的底部。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/settings.png)
设置主界面,无线设置,关于页面的底部。
Ron Amadeo供图
安卓1.0最终带来了设置界面。这个界面是个带有文字的黑白界面,粗略地分为各个部分。每个列表项边的下箭头让人误以为点击它会展开折叠的更多东西,但是触摸列表项的任何位置只会加载下一屏幕。所有的界面看起来确实无趣,都差不多一样,但是嘿,这可是设置啊。
*设置主界面,无线设置,关于页面的底部。[Ron Amadeo供图]*
任何带有开/关状态的选项都使用了卡通风的复选框。安卓1.0最初的复选框真是奇怪——就算是在“未选中”状态时它们还是有个灰色的勾选标记在里面。安卓把勾选标记当作了灯泡打开时亮起来关闭的时候变得黯淡但这不是复选框的工作方式。然而我们最终还是见到了“关于”页面。安卓1.0运行Linux内核2.6.25版本。
安卓1.0最终带来了设置界面。这个界面是个带有文字的黑白界面,粗略地分为各个部分。每个列表项边上的下箭头让人误以为点击它会展开折叠的更多东西,但是触摸列表项的任何位置只会加载下一屏幕。所有的界面看起来确实无趣,都差不多一样,但是嘿,这可是设置啊。
任何带有开/关状态的选项都使用了卡通风格的复选框。安卓1.0最初的复选框真是奇怪——就算是在“未选中”状态时它们还是有个灰色的勾选标记在里面。安卓把勾选标记当作了灯泡打开时亮起来关闭的时候变得黯淡但这不是复选框的工作方式。然而我们最终还是见到了“关于”页面。安卓1.0运行Linux内核2.6.25版本。
设置界面意味着我们终于可以打开安全设置并更改锁屏。安卓1.0只有两种风格安卓0.9那样的灰色方形锁屏以及需要你在9个点组成的网格中画出图案的图形解锁。像这样的滑动图案相比PIN码更加容易记忆和输入尽管它没有增加多少安全性。
![语音拨号,图形锁屏,电池低电量警告,时间设置。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/grabbag.png)
语音拨号,图形锁屏,电池低电量警告,时间设置。
Ron Amadeo供图
语音功能和语音拨号一同来到了1.0。这个特性以各种功能实现在AOSP徘徊了一段时间然而它是一个简单的拨打号码和联系人的语音命令应用。语音拨号是个和谷歌未来的语音产品完全无关的应用但是它的工作方式和非智能机上的语音拨号一样。
*语音拨号,图形锁屏,电池低电量警告,时间设置。[Ron Amadeo供图]*
语音功能和语音拨号一同来到了1.0。这个特性以各种功能实现在AOSP徘徊了一段时间然而它是一个简单的拨打号码和联系人的语音命令应用。语音拨号是个和谷歌未来的语音产品完全无关的应用它的工作方式和非智能机上的语音拨号一样。
关于最后一个值得注意的,当电池电量低于百分之十五的时候会触发低电量弹窗。这是个有趣的图案,它把电源线错误的一端插入手机。谷歌,那可不是(现在依然不是)手机应该有的充电方式。
安卓1.0是个伟大的开头,但是功能上仍然有许多缺失。实体键盘和大量硬件按钮被强制要求配备,因为不带有十字方向键或轨迹球的安卓设备依然不被允许销售。另外,基本的智能手机功能比如自动旋转依然缺失。内置应用不可能像今天这样通过安卓市场来更新。所有的谷歌系应用和系统交织在一起。如果谷歌想要升级一个单独的应用,需要通过运营商推送整个系统的更新。安卓依然还有许多工作要做。
安卓1.0是个伟大的开端,但是功能上仍然有许多缺失。强制配备了实体键盘和大量硬件按钮,因为不带有十字方向键或轨迹球的安卓设备依然不被允许销售。另外,基本的智能手机功能比如自动旋转依然缺失。内置应用不可能像今天这样通过安卓市场来更新。所有的谷歌系应用和系统交织在一起。如果谷歌想要升级一个单独的应用,需要通过运营商推送整个系统的更新。安卓依然还有许多工作要做。
### 安卓1.1——第一个真正的增量更新 ###
![安卓1.1的所有新特性:语音搜索,安卓市场付费应用支持,谷歌纵横,设置中的新“系统更新”选项。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/11.png)
安卓1.1的所有新特性:语音搜索,安卓市场付费应用支持,谷歌纵横,设置中的新“系统更新”选项。
Ron Amadeo供图
安卓1.0发布四个半月后2009年2月安卓在安卓1.1中得到了它的第一个公开更新。系统方面没有太多变化谷歌向1.1中添加新东西现如今也都已被关闭。谷歌语音搜索是安卓向云端语音搜索的第一个突击,它在应用抽屉里有自己的图标。尽管这个应用已经不能与谷歌服务器通讯,你可以[在iPhone上][2]看到它以前是怎么工作的。它还没有语音操作,但你可以说出想要搜索的,结果会显示在一个简单的谷歌搜索中。
*安卓1.1的所有新特性:语音搜索,安卓市场付费应用支持,谷歌纵横,设置中的新“系统更新”选项。[Ron Amadeo供图]*
安卓市场添加了对付费应用的支持但是就像beta客户端中一样这个版本的安卓市场不再能够连接Google Play服务器。我们最多能够看到分类界面你可以在免费应用付费应用和全部应用中选择。
安卓1.0发布四个半月后2009年2月安卓在安卓1.1中得到了它的第一个公开更新。系统方面没有太多变化谷歌向1.1中添加的新东西现如今也都已被关闭。谷歌语音搜索是安卓向云端语音搜索的第一个突击,它在应用抽屉里有自己的图标。尽管这个应用已经不能与谷歌服务器通讯,你可以[在iPhone上][2]看到它以前是怎么工作的。它还没有语音操作,但你可以说出想要搜索的,结果会显示在一个简单的谷歌搜索中。
安卓市场添加了对付费应用的支持但是就像beta客户端中一样这个版本的安卓市场已经不能连接Google Play服务器。我们最多能够看到分类界面你可以在免费应用、付费应用和全部应用中选择。
地图添加了[谷歌纵横][3]一个向朋友分享自己位置的方法。纵横在几个月前为了支持Google+而被关闭并且不再能够工作。地图菜单里有个纵横的选项,但点击它现在只会打开一个带载入中圆圈的画面,并永远停留在这里。
安卓世界的系统更新来得更加迅速——或者至少是一条在运营商和OEM推送之前获得更新的途径——谷歌“关于手机”界面添加了检查系统更新按钮。
安卓世界的系统更新来得更加迅速——或者至少是一条在运营商和OEM推送之前获得更新的途径——谷歌也在“关于手机”界面添加了检查系统更新按钮。
----------
@ -98,7 +98,7 @@ Ron Amadeo供图
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/7/
译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID)
译者:[alim0x](https://github.com/alim0x) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,4 +1,3 @@
cygmris is translating...
Great Open Source Collaborative Editing Tools
================================================================================
In a nutshell, collaborative writing is writing done by more than one person. There are benefits and risks of collaborative working. Some of the benefits include a more integrated / co-ordinated approach, better use of existing resources, and a stronger, united voice. For me, the greatest advantage is one of the most transparent. That's when I need to take colleagues' views. Sending files back and forth between colleagues is inefficient, causes unnecessary delays and leaves people (i.e. me) unhappy with the whole notion of collaboration. With good collaborative software, I can share notes, data and files, and use comments to share thoughts in real-time or asynchronously. Working together on documents, images, video, presentations, and tasks is made less of a chore.

View File

@ -1,4 +1,3 @@
Translating by H-mudcup
5 best open source board games to play online
================================================================================
I have always had a fascination with board games, in part because they are a device of social interaction, they challenge the mind and, most importantly, they are great fun to play. In my misspent youth, myself and a group of friends gathered together to escape the horrors of the classroom, and indulge in a little escapism. The time provided an outlet for tension and rivalry. Board games help teach diplomacy, how to make and break alliances, bring families and friends together, and learn valuable lessons.

View File

@ -1,64 +0,0 @@
alim0x translating
Open Source Media Player MPlayer 1.2 Released
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/MPlayer-1.2.jpg)
Almost three years after [MPlaayer][1] 1.1, the new version of MPlayer has been released last week. MPlayer 1.2 brings up support for many new codecs in this release.
MPlayer is a cross-platform, open source media player. Its name is an abbreviation of “Movie Player”. MPlayer has been one of the oldest video players for Linux and during last 15 years, it has inspired a number of other media players. Some of the famous media players based on MPlayer are:
- [MPV][2]
- SMPlayer
- KPlayer
- GNOME MPlayer
- Deepin Player
#### Whats new in MPlayer 1.2? ####
- Compatibility with FFmpeg 2.8
- VDPAU hardware acceleration for H.265/HEVC
- A number of new codecs supported via FFmpeg
- Improvements in TV and DVB support
- GUI improvements
- external dependency on libdvdcss/libdvdnav packages
#### Install MPlayer 1.2 in Linux ####
Most Linux distributions are still having MPlayer 1.1. If you want to use the new MPlayer 1.2, youll have to compile it from the source code which could be tricky at times for beginners.
I have used Ubuntu 15.04 for the installation of MPlayer 1.2. Installation instructions will remain the same for all Linux distributions except the part where you need to install yasm.
Open a terminal and use the following commands:
wget http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.2.tar.xz
tar xvf MPlayer-1.1.1.tar.xz
cd MPlayer-1.2
sudo apt-get install yasm
./configure
When you run make, it will throw a number of things on the terminal screen and takes some time to build it. Have patience.
make
sudo make install
If you feel uncomfortable using the source code, I advise you to either wait forMPlayer 1.2 to land in the repositories of your Linux distribution or use an alternate like MPV.
--------------------------------------------------------------------------------
via: http://itsfoss.com/mplayer-1-2-released/
作者:[Abhishek][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:https://www.mplayerhq.hu/
[2]:http://mpv.io/

View File

@ -0,0 +1,336 @@
Bossie Awards 2015: The best open source application development tools
================================================================================
InfoWorld's top picks among platforms, frameworks, databases, and all the other tools that programmers use
![](http://images.techhive.com/images/article/2015/09/bossies-2015-app-dev-100613767-orig.jpg)
### The best open source development tools ###
There must be a better way, right? The developers are the ones who find it. This year's winning projects in the application development category include client-side frameworks, server-side frameworks, mobile frameworks, databases, languages, libraries, editors, and yeah, Docker. These are our top picks among all of the tools that make it faster and easier to build better applications.
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-docker-100613773-orig.jpg)
### Docker ###
The darling of container fans almost everywhere, [Docker][2] provides a low-overhead way to isolate an application or services environment, which serves its stated goal of being an open platform for building, shipping, and running distributed applications. Docker has been widely supported, even among those seeking to replace the Docker container format with an alternative, more secure runtime and format, specifically Rkt and AppC. Heck, Microsoft Visual Studio now supports deploying into a Docker container too.
Dockers biggest impact has been on virtual machine environments. Since Docker containers run inside the operating system, many more Docker containers than virtual machines can run in a given amount of RAM. This is important because RAM is usually the scarcest and most expensive resource in a virtualized environment.
There are hundreds of thousands of runnable public images on Docker Hub, of which a few hundred are official, and the rest are from the community. You describe Docker images with a Dockerfile and build images locally from the Docker command line. You can add both public and private image repositories to Docker Hub.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-nodejs-iojs-100613778-orig.jpg)
### Node.js and io.js ###
[Node.js][2] -- and its recently reunited fork [io.js][3] -- is a platform built on [Google Chrome's V8 JavaScript runtime][4] for building fast, scalable, network applications. Node uses an event-driven, nonblocking I/O model without threads. In general, Node tends to take less memory and CPU resources than other runtime engines, such as Java and the .Net Framework. For example, a typical Node.js Web server can run well in a 512MB instance on Cloud Foundry or a 512MB Docker container.
The Node repository on GitHub has more than 35,000 stars and more than 8,000 forks. The project, sponsored primarily by Joyent, has more than 600 contributors. Some of the more famous Node applications are 37Signals, [Ancestry.com][5], Chomp, the Wall Street Journal online, FeedHenry, [GE.com][6], Mockingbird, [Pearson.com][7], Shutterstock, and Uber. The popular IoT back-end Node-RED is built on Node, as are many client apps, such as Brackets and Nuclide.
-- Martin Heller
![](rticle/2015/09/bossies-2015-angularjs-100613766-orig.jpg)
### AngularJS ###
[AngularJS][8] (or simply Angular, among friends) is a Model-View-Whatever (MVW) JavaScript AJAX framework that extends HTML with markup for dynamic views and data binding. Angular is especially good for developing single-page Web applications and linking HTML forms to models and JavaScript controllers.
The weird sounding Model-View-Whatever pattern is an attempt to include the Model-View-Controller, Model-View-ViewModel, and Model-View-Presenter patterns under one moniker. The differences among these three closely related patterns are the sorts of topics that programmers love to argue about fiercely; the Angular developers decided to opt out of the discussion.
Basically, Angular automatically synchronizes data from your UI (view) with your JavaScript objects (model) through two-way data binding. To help you structure your application better and make it easy to test, AngularJS teaches the browser how to do dependency injection and inversion of control.
Angular was created by Google and open-sourced under the MIT license; there are currently more than 1,200 contributors to the project on GitHub, and the repository has more than 40,000 stars and 18,000 forks. The Angular site lists [210 “neat things” built with Angular][9].
-- Martin Heller
![](http://images.techhive.com/images/article/2015/09/bossies-2015-react-100613782-orig.jpg)
### React ###
[React][10] is a JavaScript library for building a UI or view, typically for single-page applications. Note that React does not implement anything having to do with a model or controller. React pages can render on the server or the client; rendering on the server (with Node.js) is typically much faster. People often combine React with AngularJS to create complete applications.
React combines JavaScript and HTML in a single file, optionally a JSX component. React fans like the way JSX components combine views and their related functionality in one file, though that flies in the face of the last decade of Web development trends, which were all about separating the markup and the code. React fans also claim that you cant understand it until youve tried it. Perhaps you should; the React repository on GitHub has 26,000 stars.
[React Native][11] implements React with native iOS controls; the React Native command line uses Node and Xcode. [ReactJS.Net][12] integrates React with [ASP.Net][13] and C#. React is available under a BSD license with a patent license grant from Facebook.
-- Martin Heller
![](http://images.techhive.com/images/article/2015/09/bossies-2015-atom-100613768-orig.jpg)
### Atom ###
[Atom][14] is an open source, hackable desktop editor from GitHub, based on Web technologies. Its a full-featured tool with a fuzzy finder; fast projectwide search and replace; multiple cursors and selections; multiple panes, snippets, code folding; and the ability to import TextMate grammars and themes. Out of the box, Atom displayed proper syntax highlighting for every programming language on which I tried it, except for F# and C#; I fixed that easily by loading those packages from within Atom. Not surprising, Atom has tight integration with GitHub.
The skeleton of Atom has been separated from the guts and called the Electron shell, providing an open source way to build cross-platform desktop apps with Web technologies. Visual Studio Code is built on the Electron shell, as are a number of proprietary and open source apps, including Slack and Kitematic. Facebook Nuclide adds significant functionality to Atom, including remote development and support for Flow, Hack, and Mercurial.
On the downside, updating Atom packages can become painful, especially if you have many of them installed. The Nuclide packages seem to be the worst offenders -- they not only take a long time to update, they run CPU-intensive Node processes to do so.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-brackets-100613769-orig.jpg)
### Brackets ###
[Brackets][15] is a lightweight editor for Web design that Adobe developed and open-sourced, drawing heavily on other open source projects. The idea is to build better tooling for JavaScript, HTML, CSS, and related open Web technologies. Brackets itself is written in JavaScript, HTML, and CSS, and the developers use Brackets to build Brackets. The editor portion is based on another open source project, CodeMirror, and the Brackets native shell is based on Googles Chromium Embedded Framework.
Brackets features a clean UI, with the ability to open a quick inline editor that displays all of the related CSS for some HTML, or all of the related JavaScript for some scripting, and a live preview for Web pages that you are editing. New in Brackets 1.4 is instant search in files, easier preferences editing, the ability to enable and disable extensions individually, improved text rendering on Macs, and Greek and Cyrillic character support. Last November, Adobe started shipping a preview version of Extract for Brackets, which can pull out design information from Photoshop files, as part of the default download for Brackets.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-typescript-100613786-orig.jpg)
### TypeScript ###
[TypeScript][16] is a portable, duck-typed superset of JavaScript that compiles to plain JavaScript. The goal of the project is to make JavaScript usable for large applications. In pursuit of that goal, TypeScript adds optional types, classes, and modules to JavaScript, and it supports tools for large-scale JavaScript applications. Typing gets rid of some of the nonsensical and potentially buggy default behavior in JavaScript, for example:
> 1 + "1"
'11'
“Duck” typing means that the type checking focuses on the shape of the data values; TypeScript describes basic types, interfaces, and classes. While the current version of JavaScript does not support traditional, class-based, object-oriented programming, the ECMAScript 6 specification does. TypeScript compiles ES6 classes into plain, compatible JavaScript, with prototype-based objects, unless you enable ES6 output using the `--target` compiler option.
Visual Studio includes TypeScript in the box, starting with Visual Studio 2013 Update 2. You can also edit TypeScript in Visual Studio Code, WebStorm, Atom, Sublime Text, and Eclipse.
When using an external JavaScript library, or new host API, you'll need to use a declaration file (.d.ts) to describe the shape of the library. You can often find declaration files in the [DefinitelyTyped][17] repository, either by browsing, using the [TSD definition manager][18], or using NuGet.
TypeScripts GitHub repository has more than 6,000 stars.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-swagger-100613785-orig.jpg)
### Swagger ###
[Swagger][19] is a language-agnostic interface to RESTful APIs, with tooling that gives you interactive documentation, client SDK generation, and discoverability. Its one of several recent attempts to codify the description of RESTful APIs, in the spirit of WSDL for XML Web Services (2000) and CORBA for distributed object interfaces (1991).
The tooling makes Swagger especially interesting. [Swagger-UI][20] automatically generates beautiful documentation and a live API sandbox from a Swagger-compliant API. The [Swagger codegen][21] project allows generation of client libraries automatically from a Swagger-compliant server.
[Swagger Editor][22] lets you edit Swagger API specifications in YAML inside your browser and preview documentations in real time. Valid Swagger JSON descriptions can then be generated and used with the full Swagger tooling.
The [Swagger JS][23] library is a fast way to enable a JavaScript client to communicate with a Swagger-enabled server. Additional clients exist for Clojure, Go, Java, .Net, Node.js, Perl, PHP, Python, Ruby, and Scala.
The [Amazon API Gateway][24] is a managed service for API management at scale. It can import Swagger specifications using an open source [Swagger Importer][25] tool.
Swagger and friends use the Apache 2.0 license.
-- Martin Heller
![](http://images.techhive.com/images/article/2015/09/bossies-2015-polymer-100613781-orig.jpg)
### Polymer ###
The [Polymer][26] library is a lightweight, “sugaring” layer on top of the Web components APIs to help in building your own Web components. It adds several features for greater ease in building complex elements, such as creating custom element registration, adding markup to your element, configuring properties on your element, setting the properties with attributes, data binding with mustache syntax, and internal styling of elements.
Polymer also includes libraries of prebuilt elements. The Iron library includes elements for working with layout, user input, selection, and scaffolding apps. The Paper elements implement Google's Material Design. The Gold library includes elements for credit card input fields for e-commerce, the Neon elements implement animations, the Platinum library implements push messages and offline caching, and the Google Web Components library is exactly what it says; it includes wrappers for YouTube, Firebase, Google Docs, Hangouts, Google Maps, and Google Charts.
Polymer Molecules are elements that wrap other JavaScript libraries. The only Molecule currently implemented is for marked, a Markdown library. The Polymer repository on GitHub currently has 12,000 stars. The software is distributed under a BSD-style license.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-ionic-100613775-orig.jpg)
### Ionic ###
The [Ionic][27] framework is a front-end SDK for building hybrid mobile apps, using Angular.js and Cordova, PhoneGap, or Trigger.io. Ionic was designed to be similar in spirit to the Android and iOS SDKs, and to do a minimum of DOM manipulation and use hardware-accelerated transitions to keep the rendering speed high. Ionic is focused mainly on the look and feel and UI interaction of your app.
In addition to the framework, Ionic encompasses an ecosystem of mobile development tools and resources. These include Chrome-based tools, Angular extensions for Cordova capabilities, back-end services, a development server, and a shell View App to enable testers to use your Ionic code on their devices without the need for you to distribute beta apps through the App Store or Google Play.
Appery.io integrated Ionic into its low-code builder in July 2015. Ionics GitHub repository has more than 18,000 stars and more than 3,000 forks. Ionic is distributed under an MIT license and currently runs in UIWebView for iOS 7 and later, and in Android 4.1 and up.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-cordova-100613771-orig.jpg)
### Cordova ###
[Apache Cordova][28] is the open source project spun off when Adobe acquired PhoneGap from Nitobi. Cordova is a set of device APIs, plus some tooling, that allows a mobile app developer to access native device functionality like the camera and accelerometer from JavaScript. When combined with a UI framework like Angular, it allows a smartphone app to be developed with only HTML, CSS, and JavaScript. By using Cordova plug-ins for multiple devices, you can generate hybrid apps that share a large portion of their code but also have access to a wide range of platform capabilities. The HTML5 markup and code runs in a WebView hosted by the Cordova shell.
Cordova is one of the cross-platform mobile app options supported by Visual Studio 2015. Several companies offer online builders for Cordova apps, similar to the Adobe PhoneGap Build service. Online builders save you from having to install and maintain most of the device SDKs on which Cordova relies.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-famous-100613774-orig.jpg)
### Famous Engine ###
The high-performance Famo.us JavaScript framework introduced last year has become the [Famous Engine][29] and [Famous Framework][30]. The Famous Engine runs in a mixed mode, with the DOM and WebGL under a single coordinate system. As before, Famous structures applications in a scene graph hierarchy, but now it produces very little garbage (reducing the garbage collector overhead) and sustains 60FPS animations.
The Famous Physics engine has been refactored to its own, fine-grained module so that you can load only the features you need. Other improvements since last year include streamlined eventing, improved sizing, decoupling the scene graph from the rendering pipeline by using a draw command buffer, and switching to a fully open MIT license.
The new Famous Framework is an alpha-stage developer preview built on the Famous Engine; its goal is creating reusable, composable, and interchangeable UI widgets and applications. Eventually, Famous hopes to replace the jQuery UI widgets with Famous Framework widgets, but while it's promising, the Famous Framework is nowhere near production-ready.
-- Martin Heller
![](http://images.techhive.com/images/article/2015/09/bossies-2015-mongodb-rev-100614248-orig.jpg)
### MongoDB ###
[MongoDB][31] is no stranger to the Bossies or to the ever-growing and ever-competitive NoSQL market. If you still aren't familiar with this very popular technology, here's a brief overview: MongoDB is a cross-platform document-oriented database, favoring JSON-like documents with dynamic schemas that make data integration easier and faster.
MongoDB has attractive features, including but not limited to ad hoc queries, flexible indexing, replication, high availability, automatic sharding, load balancing, and aggregation.
The big, bold move with [version 3.0 this year][32] was the new WiredTiger storage engine. We can now have document-level locking. This makes “normal” applications a whole lot more scalable and makes MongoDB available to more use cases.
MongoDB has a growing open source ecosystem with such offerings as the [TokuMX engine][33], from the famous MySQL bad boys Percona. The long list of MongoDB customers includes heavy hitters such as Craigslist, eBay, Facebook, Foursquare, Viacom, and the New York Times.
-- Andrew Oliver
![](http://images.techhive.com/images/article/2015/09/bossies-2015-couchbase-100614851-orig.jpg)
### Couchbase ###
[Couchbase][34] is another distributed, document-oriented database that has been making waves in the NoSQL world for quite some time now. Couchbase and MongoDB often compete, but they each have their sweet spots. Couchbase tends to outperform MongoDB when doing more in memory is possible.
Additionally, Couchbases mobile features allow you to disconnect and ship a database in compact format. This allows you to scale down as well as up. This is useful not just for mobile devices but also for specialized applications, like shipping medical records across radio waves in Africa.
This year Couchbase added N1QL, a SQL-based query language that did away with Couchbases biggest obstacle, requiring static views. The new release also introduced multidimensional scaling. This allows individual scaling of services such as querying, indexing, and data storage to improve performance, instead of adding an entire, duplicate node.
-- Andrew C. Oliver
![](http://images.techhive.com/images/article/2015/09/bossies-2015-cassandra-100614852-orig.jpg)
### Cassandra ###
[Cassandra][35] is the other white meat of column family databases. HBase might be included with your favorite Hadoop distribution, but Cassandra is the one people deliberately deploy for specialized applications. There are good reasons for this.
Cassandra was designed for high workloads of both writes and reads where millisecond consistency isn't as important as throughput. HBase is optimized for reads and greater write consistency. To a large degree, Cassandra tends to be used for operational systems and HBase more for data warehouse and batch-system-type use cases.
While Cassandra has not received as much attention as other NoSQL databases and slipped into a quiet period a couple years back, it is widely used and deployed, and it's a great fit for time series, product catalog, recommendations, and other applications. If you want to keep a cluster up “no matter what” with multiple masters and multiple data centers, and you need to scale with lots of reads and lots of writes, Cassandra might just be your Huckleberry.
-- Andrew C. Oliver
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-orientdb-100613780-orig.jpg)
### OrientDB ###
[OrientDB][36] is an interesting hybrid in the NoSQL world, combining features from a document database, where individual documents can have multiple fields without necessarily defining a schema, and a graph database, which consists of a set of nodes and edges. At a basic level, OrientDB considers the document as a vertex, and relationships between fields as graph edges. Because the relationships between elements are part of the record, no costly joins are required when querying data.
Like most databases today, OrientDB offers linear scalability via a distributed architecture. Adding capacity is a matter of simply adding more nodes to the cluster. Queries are written in a variant of SQL that is extended to support graph concepts. It's not exactly SQL, but data analysts shouldn't have too much trouble adapting. Language bindings are available for most commonly used languages, such as R, Scala, .Net, and C, and those integrating OrientDB into their applications will find an active user community to get help from.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-rethinkdb-100613783-orig.jpg)
### RethinkDB ###
[RethinkDB][37] is a scalable, real-time JSON database with the ability to continuously push updated query results to applications that subscribe to changes. There are official RethinkDB drivers for Ruby, Python, and JavaScript/Node.js, and community-supported drivers for more than a dozen other languages, including C#, Go, and PHP.
Its temping to confuse RethinkDB with real-time sync APIs, such as Firebase and PubNub. RethinkDB can be run as a cloud service like Firebase and PubNub, but you can also install it on your own hardware or Docker containers. RethinkDB does more than synchronize: You can run arbitrary RethinkDB queries, including table joins, subqueries, geospatial queries, and aggregation. Finally, RethinkDB is designed to be accessed from an application server, not a browser.
Where MongoDB requires you to poll the database to see changes, RethinkDB lets you subscribe to a stream of changes to a query result. You can shard and scale RethinkDB easily, unlike MongoDB. Also unlike relational databases, RethinkDB does not give you full ACID support or strong schema enforcement, although it can perform joins.
The RethinkDB repository has 10,000 stars on GitHub, a remarkably high number for a database. It is licensed with the Affero GPL 3.0; the drivers are licensed with Apache 2.0.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-rust-100613784-orig.jpg)
### Rust ###
[Rust][38] is a syntactically C-like systems programming language from Mozilla Research that guarantees memory safety and offers painless concurrency (that is, no data races). It does not have a garbage collector and has minimal runtime overhead. Rust is strongly typed with type inference. This is all promising.
Rust was designed for performance. It doesnt yet demonstrate great performance, however, so now the mantra seems to be that it runs as fast as C++ code that implements all the safety checks built into Rust. Im not sure whether I believe that, as in many cases the strictest safety checks for C/C++ code are done by static and dynamic analysis and testing, which dont add any runtime overhead. Perhaps Rust performance will come with time.
So far, the only tools for Rust are the Cargo package manager and the rustdoc documentation generator, plus a couple of simple Rust plug-ins for programming editors. As far as we have heard, there is no shipping software that was actually built with Rust. Now that Rust has reached the 1.0 milestone, we might expect that to change.
Rust is distributed with a dual Apache 2.0 and MIT license. With 13,000 stars on its GitHub repository, Rust is certainly attracting attention, but when and how it will deliver real benefits remains to be seen.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opencv-100613779-orig.jpg)
### OpenCV ###
[OpenCV][39] (Open Source Computer Vision Library) is a computer vision and machine learning library that contains about 500 algorithms, such as face detection, moving object tracking, image stitching, red-eye removal, machine learning, and eye movement tracking. It runs on Windows, Mac OS X, Linux, Android, and iOS.
OpenCV has official C++, C, Python, Java, and MATLAB interfaces, and wrappers in other languages such as C#, Perl, and Ruby. CUDA and OpenCL interfaces are under active development. OpenCV was originally (1999) an Intel Research project in Russia; from there it moved to the robotics research lab Willow Garage (2008) and finally to [OpenCV.org][39] (2012) with a core team at Itseez, current source on GitHub, and stable snapshots on SourceForge.
Users of OpenCV include Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, and Toyota. There are currently more than 6,000 stars and 5,000 forks on the GitHub repository. The project uses a BSD license.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-llvm-100613777-orig.jpg)
### LLVM ###
The [LLVM Project][40] is a collection of modular and reusable compiler and tool chain technologies, which originated at the University of Illinois. LLVM has grown to include a number of subprojects, several of which are interesting in their own right. LLVM is distributed with Debian, Ubuntu, and Apple Xcode, among others, and its used in commercial products from the likes of Adobe (including After Effects), Apple (including Objective-C and Swift), Cray, Intel, NVIDIA, and Siemens. A few of the open source projects that depend on LLVM are PyPy, Mono, Rubinius, Pure, Emscripten, Rust, and Julia. Microsoft has recently contributed LLILC, a new LLVM-based compiler for .Net, to the .Net Foundation.
The main LLVM subprojects are the core libraries, which provide optimization and code generation; Clang, a C/C++/Objective-C compiler thats about three times faster than GCC; LLDB, a much faster debugger than GDB; libc++, an implementation of the C++ 11 Standard Library; and OpenMP, for parallel programming.
-- Martin Heller
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-main-100613823-orig.jpg)
### Read about more open source winners ###
InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners:
[Bossie Awards 2015: The best open source applications][41]
[Bossie Awards 2015: The best open source application development tools][42]
[Bossie Awards 2015: The best open source big data tools][43]
[Bossie Awards 2015: The best open source data center and cloud software][44]
[Bossie Awards 2015: The best open source desktop and mobile software][45]
[Bossie Awards 2015: The best open source networking and security software][46]
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2982920/open-source-tools/bossie-awards-2015-the-best-open-source-application-development-tools.html
作者:[InfoWorld staff][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/InfoWorld-staff/
[1]:https://www.docker.com/
[2]:https://nodejs.org/en/
[3]:https://iojs.org/en/
[4]:https://developers.google.com/v8/?hl=en
[5]:http://www.ancestry.com/
[6]:http://www.ge.com/
[7]:https://www.pearson.com/
[8]:https://angularjs.org/
[9]:https://builtwith.angularjs.org/
[10]:https://facebook.github.io/react/
[11]:https://facebook.github.io/react-native/
[12]:http://reactjs.net/
[13]:http://asp.net/
[14]:https://atom.io/
[15]:http://brackets.io/
[16]:http://www.typescriptlang.org/
[17]:http://definitelytyped.org/
[18]:http://definitelytyped.org/tsd/
[19]:http://swagger.io/
[20]:https://github.com/swagger-api/swagger-ui
[21]:https://github.com/swagger-api/swagger-codegen
[22]:https://github.com/swagger-api/swagger-editor
[23]:https://github.com/swagger-api/swagger-js
[24]:http://aws.amazon.com/cn/api-gateway/
[25]:https://github.com/awslabs/aws-apigateway-importer
[26]:https://www.polymer-project.org/
[27]:http://ionicframework.com/
[28]:https://cordova.apache.org/
[29]:http://famous.org/
[30]:http://famous.org/framework/
[31]:https://www.mongodb.org/
[32]:http://www.infoworld.com/article/2878738/nosql/first-look-mongodb-30-for-mature-audiences.html
[33]:http://www.infoworld.com/article/2929772/nosql/mongodb-crossroads-growth-or-openness.html
[34]:http://www.couchbase.com/nosql-databases/couchbase-server
[35]:https://cassandra.apache.org/
[36]:http://orientdb.com/
[37]:http://rethinkdb.com/
[38]:https://www.rust-lang.org/
[39]:http://opencv.org/
[40]:http://llvm.org/
[41]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html
[42]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html
[43]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html
[44]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
[45]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
[46]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html

View File

@ -0,0 +1,238 @@
Bossie Awards 2015: The best open source applications
================================================================================
InfoWorld's top picks in open source business applications, enterprise integration, and middleware
![](http://images.techhive.com/images/article/2015/09/bossies-2015-applications-100614669-orig.jpg)
### The best open source applications ###
Applications -- ERP, CRM, HRM, CMS, BPM -- are not only fertile ground for three-letter acronyms, they're the engines behind every modern business. Our top picks in the category include back- and front-office solutions, marketing automation, lightweight middleware, heavyweight middleware, and other tools for moving data around, mixing it together, and magically transforming it into smarter business decisions.
![](http://images.techhive.com/images/article/2015/09/bossies-2015-xtuple-100614684-orig.jpg)
### xTuple ###
Small and midsize companies with light manufacturing or distribution needs have a friend in [xTuple][1]. This modular ERP/CRM combo bundles operations and financial control, product and inventory management, and CRM and sales support. Its relatively simple install lets you deploy all of the modules or only what you need today -- helping trim support costs without sacrificing customization later.
This summers release brought usability improvements to the UI and a generous number of bug fixes. Recent updates also yielded barcode scanning and label printing for mobile warehouse workers, an enhanced workflow module (built with Plv8, a wrapper around Googles V8 JavaScript engine that lets you write stored procedures for PostgreSQL in JavaScript), and quality management tools that are sure to get mileage on shop floors.
The xTuple codebase is JavaScript from stem to stern. The server components can all be installed locally, in xTuples cloud, or deployed as an appliance. A mobile Web client, and mobile CRM features, augment a good native desktop client.
-- James R. Borck
![](http://images.techhive.com/images/article/2015/09/bossies-2015-odoo-100614678-orig.jpg)
### Odoo ###
[Odoo][2] used to be known as OpenERP. Last year the company raised private capital and broadened its scope. Today Odoo is a one-stop shop for back office and customer-facing applications -- replete with content management, business intelligence, and e-commerce modules.
Odoo 8 fronts accounting, invoicing, project management, resource planning, and customer relationship management tools with a flexible Web interface that can be tailored to your companys workflow. Add-on modules for warehouse management and HR, as well as for live chat and analytics, round out the solution.
This year saw Odoo focused primarily on usability updates. A recently released sales planner helps sales groups track KPIs, and a new tips feature lends in-context help. Odoo 9 is right around the corner with alpha builds showing customer portals, Web form creation tools, mobile and VoIP services, and integration hooks to eBay and Amazon.
Available for Windows and Linux, and as a SaaS offering, Odoo gives small and midsized companies an accessible set of tools to manage virtually every aspect of their business.
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-idempiere-100614673-orig.jpg)
### iDempiere ###
Small and midsize companies have great choices in Odoo and xTuple. Larger manufacturing and distribution companies will need something more. For them, theres [iDempiere][3] -- a well maintained offshoot of ADempiere with OSGi modularity.
iDempiere implements a fully loaded ERP, supply chain, and CRM suite right out of the box. Built with Java, iDempiere supports both PostgreSQL and Oracle Database, and it can be customized extensively through modules built to the OSGi specification. iDempiere is perfectly suited to managing complex business scenarios involving multiple partners, requiring dynamic reporting, or employing point-of-sale and warehouse services.
Being enterprise-ready comes with a price. iDempieres feature-rich tools and complexity impose a steep learning curve and require a commitment to integration support. Of course, those costs are offset by savings from the softwares free GPL2 licensing. iDempieres easy install script, small resource footprint, and clean interface also help alleviate some of the startup pains. Theres even a virtual appliance available on Sourceforge to get you started.
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-suitecrm-100614680-orig.jpg)
### SuiteCRM ###
SugarCRM held the sweet spot in open source CRM since, well, forever. Then last year Sugar announced it would no longer contribute to the open source Community Edition. Into the ensuing vacuum rushed [SuiteCRM][4] a fork of the final Sugar code.
SuiteCRM 7.2 creates an experience on a par with SugarCRM Professionals marketing, sales, and service tools. With add-on modules for workflow, reporting, and security, as well as new innovations like Lucene-driven search, taps for social media, and a beta reveal of new desktop notifications, SuiteCRM is on solid footing.
The Advanced Open Sales module provides a familiar migration path from Sugar, while commercial support is available from the likes of [SalesAgility][5], the company that forked SuiteCRM in the first place. In little more than a year, SuiteCRM rescued the code, rallied an inspired community, and emerged as a new leader in open source CRM. Who needs Sugar?
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-civicrm-100614671-orig.jpg)
### CiviCRM ###
We typically focus attention on CRM vis-à-vis small and midsize business requirements. But nonprofit and advocacy groups need to engage with their “customers” too. Enter [CiviCRM][6].
CiviCRM addresses the needs of nonprofits with tools for fundraising and donation processing, membership management, email tracking, and event planning. Granular access control and security bring role-based permissions to views, keeping paid staff and volunteers partitioned and productive. This year CiviCRM continued to develop with new features like simple A/B testing and monitoring for email campaigns.
CiviCRM deploys as a plug-in to your WordPress, Drupal, or Joomla content management system -- a dead-simple install if you already have one of these systems in place. If you dont, CiviCRM is an excellent reason to deploy the CMS. Its a niche-filling solution that allows nonprofits to start using smarter, tailored tools for managing constituencies, without steep hurdles and training costs.
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-mautic-100614677-orig.jpg)
### Mautic ###
For marketers, the Internet -- Web, email, social, all of it -- is the stuff dreams are made on. [Mautic][7] allows you to create Web and email campaigns that track and nurture customer engagement, then roll all of the data into detailed reports to gain insight into customer needs and wants and how to meet them.
Open source options in marketing automation are few, but Mautics extensibility stands out even against closed solutions like IBMs Silverpop. Mautic even integrates with popular third-party email marketing solutions (MailChimp, Constant Contact) and social media platforms (Facebook, Twitter, Google+, Instagram) with quick-connect widgets.
The developers of Mautic could stand to broaden the features for list segmentation and improve the navigability of their UI. Usability is also hindered by sparse documentation. But if youre willing to rough it out long enough to learn your way, youll find a gem -- and possibly even gold -- in Mautic.
-- James R. Borck
![](http://images.techhive.com/images/article/2015/09/bossies-2015-orangehrm-100614679-orig.jpg)
### OrangeHRM ###
The commercial software market in the human resource management space is rather fragmented, with Talent, HR, and Workforce Management startups all vying for a slice of the pie. Its little wonder the open source world hasnt found much direction either, with the most ambitious HRM solutions often locked inside larger ERP distributions. [OrangeHRM][8] is a standout.
OrangeHRM tackles employee administration from recruitment and applicant tracking to performance reviews, with good audit trails throughout. An employee portal provides self-serve access to personal employment information, time cards, leave requests, and personnel documents, helping reduce demands on HR staff.
OrangeHRM doesnt yet address niche aspects like talent management (social media, collaboration, knowledge banks), but its remarkably full-featured. Professional and Enterprise options offer more advanced functionality (in areas such as recruitment, training, on/off-boarding, document management, and mobile device access), while community modules are available for the likes of Active Directory/LDAP integration, advanced reporting, and even insurance benefit management.
-- James R. Borck
![](http://images.techhive.com/images/article/2015/09/bossies-2015-libreoffice-100614675-orig.jpg)
### LibreOffice ###
[LibreOffice][9] is the easy choice for best open source office productivity suite. Originally forked from OpenOffice, Libre has been moving at a faster clip than OpenOffice ever since, drawing more developers and producing more new features than its rival.
LibreOffice 5.0, released only last month, offers UX improvements that truly enhance usability (like visual previews to style changes in the sidebar), brings document editing to Android devices (previously a view-only prospect), and finally delivers on a 64-bit Windows codebase.
LibreOffice still lacks a built-in email client and a personal information manager, not to mention the real-time collaborative document editing available in Microsoft Office. But Libre can run off of a USB flash disk for portability, natively supports a greater number of graphic and file formats, and creates hybrid PDFs with embedded ODF files for full-on editing. Libre even imports Apple Pages documents, in addition to opening and saving all Microsoft Office formats.
LibreOffice has done a solid job of tightening its codebase and delivering enhancements at a regular clip. With a new cloud version under development, LibreOffice will soon be more liberating than ever.
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-bonita-100614672-orig.jpg)
### Bonita BPM ###
Open source BPM has become a mature, cost-effective alternative to the top proprietary solutions. Having led the charge since 2009, Bonitasoft continues to raise the bar. The new [Bonita BPM 7][10] release impresses with innovative features that simplify code generation and shorten development cycles for BPM app creation.
Most important to the new version, though, is better abstraction of underlying core business logic from UI and data components, allowing UIs and processes to be developed independently. This new MVC approach reduces downtime for live upgrades (no more recompilation!) and eases application maintenance.
Bonita contains a winning set of connectors to a broad range of enterprise systems (ERP, CRM, databases) as well as to Web services. Complementing its process weaving tools, a new form designer (built on AngularJS/Bootstrap) goes a long way toward improving UI creation for the Web-centric and mobile workforce.
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-camunda-100614670-orig.jpg)
### Camunda BPM ###
Many open source solutions, like Bonita BPM, offer solid, drop-in functionality. Dig into the code base, though, and you may find its not the cleanest to build upon. Enterprise Java developers who hang out under the hood should check out [Camunda BPM][11].
Forked from Alfresco Activiti (a creation of former Red Hat jBPM developers), Camunda BPM delivers a tight, Java-based BPMN 2.0 engine in support of human workflow activities, case management, and systems process automation that can be embedded in your Java apps or run as a container service in Tomcat. Camundas ecosystem offers an Eclipse plug-in for process modeling and the Cockpit dashboard brings real-time monitoring and management over running processes.
The Enterprise version adds WebSphere and WebLogic Server support. Additional incentives for the Enterprise upgrade include Saxon-driven XSLT templating (sidestepping the scripting engine) and add-ons to improve process management and exception handling.
Camunda is a solid BPM engine ready for build-out and one of the first open source process managers to introduce DMN (Decision Model and Notation) support, which helps to simplify complex rules-based modeling alongside BPMN. DMN support is currently at the alpha stage.
-- James R. Borck
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-talend-100614681-orig.jpg)
### Talend Open Studio ###
No open source ETL or EAI solution comes close to [Talend Open Studio][12] in functionality, performance, or support of modern integration trends. This year Talend unleashed Open Studio 6, a new version with a streamlined UI and smarter tooling that brings it more in line with Talends cloud-based offering.
Using Open Studio you can visually design, test, and debug orchestrations that connect, transform, and synchronize data across a broad range of real-time applications and data resources. Talends wealth of connectors provides support for most any endpoint -- from flat files to Hadoop to Amazon S3. Packaged editions focus on specific scenarios such as big data integration, ESB, and data integrity monitoring.
New support for Java 8 brings a speed boost. The addition of support for MariaDB and for in-memory processing with MemSQL, as well as updates to the ESB engine, keep Talend in step with the communitys needs. Version 6 was a long time coming, but no less welcome for that. Talend Open Studio is still first in managing complex data integration -- in-house, in the cloud, or increasingly, a combination of the two.
-- James R. Borck
![](http://images.techhive.com/images/article/2015/09/bossies-2015-warewolf-100614683-orig.jpg)
### Warewolf ESB ###
Complex integration patterns may demand the strengths of a Talend to get the job done. But for many lightweight microservices, the overhead of a full-fledged enterprise integration solution is extreme overkill.
[Warewolf ESB][13] combines a streamlined .Net-based process engine with visual development tools to provide for dead simple messaging and application payload routing in a native Windows environment. The Warewolf ESB is an “easy service bus,” not an enterprise service bus.
Drag-and-drop tooling in the design studio makes quick work of configuring connections and logic flows. Built-in wizardry handles Web services definitions and database calls, and it can even tap Windows DLLs and the command line directly. Using the visual debugger, you can inspect execution streams (if not yet actually step through them), then package everything for remote deployment.
Warewolf is still a .40.5 release and undergoing major code changes. It also lacks native connectors, easy transforms, and any means of scalability management. Be aware that the precompiled install demands collection of some usage statistics (I wish they would stop that). But Warewolf ESB is fast, free, and extensible. Its a quirky, upstart project that offers definite benefits to Windows integration architects.
-- James R. Borck
![](http://images.techhive.com/images/article/2015/09/bossies-2015-knime-100614674-orig.jpg)
### KNIME ###
[KNIME][14] takes a code-free approach to predictive analytics. Using a graphical workbench, you wire together workflows from an abundant library of processing nodes, which handle data access, transformation, analysis, and visualization. With KNIME, you can pull data from databases and big data platforms, run ETL transformations, perform data mining with R, and produce custom reports in the end.
The company was busy this year rolling out the KNIME 2.12 update. The new release introduces MongoDB support, XPath nodes with autoquery creation, and a new view controller (based on the D3 JavaScript library) that creates interactive data visualizations on the fly. It also includes additional statistical nodes and a REST interface (KNIME Server edition) that provides services-based access to workflows.
KNIMEs core analytics engine is free open source. The company offers several fee-based extensions for clustering and collaboration. (A portion of your licensing fee actually funds the open source project.) KNIME Server (on-premise or cloud) ups the ante with security, collaboration, and workflow repositories -- all serving to inject analytics more productively throughout your business lines.
-- James R. Borck
![](http://images.techhive.com/images/article/2015/09/bossies-2015-teiid-100614682-orig.jpg)
### Teiid ###
[Teiid][15] is a data virtualization system that allows applications to use data from multiple, heterogeneous data stores. Currently a JBoss project, Teiid is backed by years of development from MetaMatrix and a long history of addressing the data access needs of the largest enterprise environments. I even see [uses for Teiid in Hadoop and big data environments][16].
In essence, Teiid allows you to connect all of your data sources into a “virtual” mega data source. You can define caching semantics, transforms, and other “configuration not code” transforms to load from multiple data sources using plain old SQL, XQuery, or procedural queries.
Teiid is primarily accessible through JBDC and has built-in support for Web services. Red Hat sells Teiid as [JBoss Data Virtualization][17].
-- Andrew C. Oliver
![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614676-orig.jpg)
### Read about more open source winners ###
InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners:
[Bossie Awards 2015: The best open source applications][18]
[Bossie Awards 2015: The best open source application development tools][19]
[Bossie Awards 2015: The best open source big data tools][20]
[Bossie Awards 2015: The best open source data center and cloud software][21]
[Bossie Awards 2015: The best open source desktop and mobile software][22]
[Bossie Awards 2015: The best open source networking and security software][23]
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2982622/open-source-tools/bossie-awards-2015-the-best-open-source-applications.html
作者:[InfoWorld staff][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/InfoWorld-staff/
[1]:http://xtuple.org/
[2]:http://odoo.com/
[3]:http://idempiere.org/
[4]:http://suitecrm.com/
[5]:http://salesagility.com/
[6]:http://civicrm.org/
[7]:https://www.mautic.org/
[8]:http://www.orangehrm.com/
[9]:http://libreoffice.org/
[10]:http://www.bonitasoft.com/
[11]:http://camunda.com/
[12]:http://talend.com/
[13]:http://warewolf.io/
[14]:http://www.knime.org/
[15]:http://teiid.jboss.org/
[16]:http://www.infoworld.com/article/2922180/application-development/database-virtualization-or-i-dont-want-to-do-etl-anymore.html
[17]:http://www.jboss.org/products/datavirt/overview/
[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html
[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html
[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html
[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html

View File

@ -0,0 +1,287 @@
Bossie Awards 2015: The best open source big data tools
================================================================================
InfoWorld's top picks in distributed data processing, streaming analytics, machine learning, and other corners of large-scale data analytics
![](http://images.techhive.com/images/article/2015/09/bossies-2015-big-data-100613944-orig.jpg)
### The best open source big data tools ###
How many Apache projects can sit on a pile of big data? Fire up your Hadoop cluster, and you might be able to count them. Among this year's Bossies in big data, you'll find the fastest, widest, and deepest newfangled solutions for large-scale SQL, stream processing, sort-of stream processing, and in-memory analytics, not to mention our favorite maturing members of the Hadoop ecosystem. It seems everyone has a nail to drive into MapReduce's coffin.
![](http://images.techhive.com/images/article/2015/09/bossies-2015-spark-100613962-orig.jpg)
### Spark ###
With hundreds of contributors, [Spark][1] is one of the most active and fastest-growing Apache projects, and with heavyweights like IBM throwing their weight behind the project and major corporations bringing applications into large-scale production, the momentum shows no signs of letting up.
The sweet spot for Spark continues to be machine learning. Highlights since last year include the replacement of the SchemaRDD with a Dataframes API, similar to those found in R and Pandas, making data access much simpler than with the raw RDD interface. Also new are ML pipelines for building repeatable machine learning workflows, expanded and optimized support for various storage formats, simpler interfaces to machine learning algorithms, improvements in the display of cluster resources usage, and task tracking.
On by default in Spark 1.5 is the off-heap memory manager, Tungsten, which offers much faster processing by fine-tuning data structure layout in memory. Finally, the new website, [spark-packages.org][2], with more than 100 third-party libraries, adds many useful features from the community.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-storm-100614149-orig.jpg)
### Storm ###
[Apache Storm][3] is a Clojure-based distributed computation framework primarily for streaming real-time analytics. Storm is based on the [disruptor pattern][4] for low-latency complex event processing created LMAX. Unlike Spark, Storm can do single events as opposed to “micro-batches,” and it has a lower memory footprint. In my experience, it scales better for streaming, especially when youre mainly streaming to ingest data into other data sources.
Storms profile has been eclipsed by Spark, but Spark is inappropriate for many streaming applications. Storm is frequently used with Apache Kafka.
-- Andrew C. Oliver
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-h2o-100613950-orig.jpg)
### H2O ###
[H2O][5] is a distributed, in-memory processing engine for machine learning that boasts an impressive array of algorithms. Previously only available for R users, version 3.0 adds Python and Java language bindings, as well as a Spark execution engine for the back end. The best way to view H20 is as a very large memory extension of your R environment. Instead of working directly on large data sets, the R extensions communicate via a REST API with the H2O cluster, where H2O does the heavy lifting.
Several useful R packages such as ddply have been wrapped, allowing you to use them on data sets larger than the amount of RAM on the local machine. You can run H2O on EC2, on a Hadoop/YARN cluster, and on Docker containers. With Sparkling Water (Spark plus H2O) you can access Spark RDDs on the cluster side by side to, for example, process a data frame with Spark before passing it to an H2O machine learning algorithm.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-apex-100613943-orig.jpg)
### Apex ###
[Apex][6] is an enterprise-grade, big data-in-motion platform that unifies stream processing as well as batch processing. A native YARN application, Apex processes streaming data in a scalable, fault-tolerant manner and provides all the common stream operators out of the box. One of the best things about Apex is that it natively supports the common event processing guarantees (exactly once, at least once, at most once). Formerly a commercial product by DataTorrent, Apex's roots show in the quality of the documentation, examples, code, and design. Devops and application development are cleanly separated, and user code generally doesn't have to be aware that it is running in a streaming cluster.
A related project, [Malhar][7], offers more than 300 commonly used operators and application templates that implement common business logic. The Malhar libraries significantly reduce the time it takes to develop an Apex application, and there are connectors (operators) for storage, file systems, messaging systems, databases, and nearly anything else you might want to connect to from an application. The operators can all be extended or customized to meet individual business's requirements. All Malhar components are available under the Apache license.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-druid-100613947-orig.jpg)
### Druid ###
[Druid][8], which moved to a commercially friendly Apache license in February of this year, is best described as a hybrid, “event streams meet OLAP” solution. Originally developed to analyze online events for ad markets, Druid allows users to do arbitrary and interactive exploration of time series data. Some of the key features include low-latency ingest of events, fast aggregations, and approximate and exact calculations.
At the heart of Druid is a custom data store that uses specialized nodes to handle each part of the problem. Real-time ingest is managed by real-time nodes (JVMs) that eventually flush data to historical nodes that are responsible for data that has aged. Broker nodes direct queries in a scatter-gather fashion to both real-time and historical nodes to give the user a complete picture of events. Benchmarked at a sustained 500K events per second and 1 million events per second peak, Druid is ideal as a real-time dashboard for ad-tech, network traffic, and other activity streams.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-flink-100613949-orig.jpg)
### Flink ###
At its core, [Flink][9] is a data flow engine for event streams. Although superficially similar to Spark, Flink takes a different approach to in-memory processing. First, Flink was designed from the start as a stream processor. Batch is simply a special case of a stream with a beginning and an end, and Flink offers APIs for dealing with each case, the DataSet API (batch) and the DataStream API. Developers coming from the MapReduce world should feel right at home working with the DataSet API, and porting applications to Flink should be straightforward. In many ways Flink mirrors the simplicity and consistency that helped make Spark so popular. Like Spark, Flink is written in Scala.
The developers of Flink clearly thought out usage and operations too: Flink works natively with YARN and Tez, and it uses an off-heap memory management scheme to work around some of the JVM limitations. A peek at the Flink JIRA site shows a healthy pace of development, and youll find an active community on the mailing lists and on StackOverflow as well.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-elastic-100613948-orig.jpg)
### Elasticsearch ###
[Elasticsearch][10] is a distributed document search server based on [Apache Lucene][11]. At its heart, Elasticsearch builds indices on JSON-formatted documents in nearly real time, enabling fast, full-text, schema-free queries. Combined with the open source Kibana dashboard, you can create impressive visualizations of your real-time data in a simple point-and-click fashion.
Elasticsearch is easy to set up and easy to scale, automatically making use of new hardware by rebalancing shards as required. The query syntax isn't at all SQL-like, but it is intuitive enough for anyone familiar with JSON. Most users won't be interacting at that level anyway. Developers can use the native JSON-over-HTTP interface or one of the several language bindings available, including Ruby, Python, PHP, Perl, .Net, Java, and JavaScript.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-slamdata-100613961-orig.jpg)
### SlamData ###
If you are seeking a user-friendly tool to visualize and understand your newfangled NoSQL data, take a look at [SlamData][12]. SlamData allows you to query nested JSON data using familiar SQL syntax, without relocation or transformation.
One of the technologys main features is its connectors. From MongoDB to HBase, Cassandra, and Apache Spark, SlamData taps external data sources with the industry's most advanced “pushdown” processing technology, performing transformations and analytics close to the data.
While you might ask, “Wouldnt I be better off building a data lake or data warehouse?” consider the companies that were born in NoSQL. Skipping the ETL and simply connecting a visualization tool to a replica offers distinct advantages -- not only in terms of how up-to-date the data is, but in how many moving parts you have to maintain.
-- Andrew C. Oliver
![](http://images.techhive.com/images/article/2015/09/bossies-2015-drill-100613946-orig.jpg)
### Drill ###
[Drill][13] is a distributed system for interactive analysis of large-scale data sets, inspired by [Google's Dremel][14]. Designed for low-latency analysis of nested data, Drill has a stated design goal of scaling to 10,000 servers and querying petabytes of data and trillions of records.
Nested data can be obtained from a variety of data sources (such as HDFS, HBase, Amazon S3, and Azure Blobs) and in multiple formats (including JSON, Avro, and protocol buffers), and you don't need to specify a schema up front (“schema on read”).
Drill uses ANSI SQL:2003 for its query language, so there's no learning curve for data engineers to overcome, and it allows you to join data across multiple data sources (for example, joining a table in HBase with logs in HDFS). Finally, Drill offers ODBC and JDBC interfaces to connect your favorite BI tools.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-hbase-100613951-orig.jpg)
### HBase ###
[HBase][15] reached the 1.x milestone this year and continues to improve. Like other nonrelational distributed datastores, HBase excels at returning search results very quickly and for this reason is often used to back search engines, such as the ones at eBay, Bloomberg, and Yahoo. As a stable and mature software offering, HBase does not get fresh features as frequently as newer projects, but that's often good for enterprises.
Recent improvements include the addition of high-availability region servers, support for rolling upgrades, and YARN compatibility. Features in the works include scanner updates that promise to improve performance and the ability to use HBase as a persistent store for streaming applications like Storm and Spark. HBase can also be queried SQL style via the [Phoenix][16] project, now out of incubation, whose SQL compatibility is steadily improving. Phoenix recently added a Spark connector and the ability to add custom user-defined functions.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-hive-100613952-orig.jpg)
### Hive ###
Although stable and mature for several years, [Hive][17] reached the 1.0 version milestone this year and continues to be the best solution when really heavy SQL lifting (many petabytes) is required. The community continues to focus on improving the speed, scale, and SQL compliance of Hive. Currently at version 1.2, significant improvements since its last Bossie include full ACID semantics, cross-data center replication, and a cost-based optimizer.
Hive 1.2 also brought improved SQL compliance, making it easier for organizations to use it to off-load ETL jobs from their existing data warehouses. In the pipeline are speed improvements with an in-memory cache called LLAP (which, from the looks of the JIRAs, is about ready for release), the integration of Spark machine learning libraries, and improved SQL constructs like nonequi joins, interval types, and subqueries.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-kylin-100613955-orig.jpg)
### Kylin ###
[Kylin][18] is an application developed at eBay for processing very large OLAP cubes via ANSI SQL, a task familiar to most data analysts. If you think about how many items are on sale now and in the past at eBay, and all the ways eBay might want to slice and dice data related to those items, you will begin to understand the types of queries Kylin was designed for.
Like most other analysis applications, Kylin supports multiple access methods, including JDBC, ODBC, and a REST API for programmatic access. Although Kylin is still in incubation at Apache, and the community nascent, the project is well documented and the developers are responsive and eager to understand customer use cases. Getting up and running with a starter cube was a snap. If you have a need for analysis of extremely large cubes, you should take a look at Kylin.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-cdap-100613945-orig.jpg)
### CDAP ###
[CDAP][19] (Cask Data Access Platform) is a framework running on top of Hadoop that abstracts away the complexity of building and running big data applications. CDAP is organized around two core abstractions: data and applications. CDAP Datasets are logical representations of data that behave uniformly regardless of the underlying storage layer; CDAP Streams provide similar support for real-time data.
Applications use CDAP services for things such as distributed transactions and service discovery to shield developers from the low-level details of Hadoop. CDAP comes with a data ingestion framework and a few prebuilt applications and “packs” for common tasks like ETL and website analytics, along with support for testing, debugging, and security. Like most formerly commercial (closed source) projects, CDAP benefits from good documentation, tutorials, and examples.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-ranger-100613960-orig.jpg)
### Ranger ###
Security has long been a sore spot with Hadoop. It isnt (as is frequently reported) that Hadoop is “insecure” or “has no security.” Rather, the truth was more that Hadoop had too much security, though not in a good way. I mean that every component had its own authentication and authorization implementation that wasnt integrated with the rest of platform.
Hortonworks acquired XA/Secure in May, and [a few renames later][20] we have [Ranger][21]. Ranger pulls many of the key components of Hadoop together under one security umbrella, allowing you to set a “policy” that ties your Hadoop security to your existing ACL-based Active Directory authentication and authorization. Ranger gives you one place to manage Hadoop access control, one place to audit, one place to manage the encryption, and a pretty Web page to do it from.
-- Andrew C. Oliver
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-mesos-100613957-orig.jpg)
### Mesos ###
[Mesos][22], developed at the [AMPLab][23] at U.C. Berkeley that also brought us Spark, takes a different approach to managing cluster computing resources. The best way to describe Mesos is as a distributed microkernel for the data center. Mesos provides a minimal set of operating system mechanisms like inter-process communications, disk access, and memory to higher-level applications, called “frameworks” in Mesos-speak, that run in what is analogous to user space. Popular frameworks for Mesos include [Chronos][24] and [Aurora][25] for building ETL pipelines and job scheduling, and a few big data processing applications including Hadoop, Storm, and Spark, which have been ported to run as Mesos frameworks.
Mesos applications (frameworks) negotiate for cluster resources using a two-level scheduling mechanism, so writing a Mesos application is unlikely to feel like a familiar experience to most developers. Although Mesos is a young project, momentum is growing, and with Spark being an exceptionally good fit for Mesos, we're likely to see more from Mesos in the coming years.
-- Steven Nunez
![](http://images.techhive.com/images/article/2015/09/bossies-2015-nifi-100613958-orig.jpg)
### NiFi ###
[NiFi][26] is an incubating Apache project to automate the flow of data between systems. It doesn't operate in the traditional space that Kafka and Storm do, but rather in the space between external devices and the data center. NiFi was originally developed by the NSA and donated to the open source community in 2014. It has a strong community of developers and users within various government agencies.
NiFi isn't like anything else in the current big data ecosystem. It is much closer to a tradition EAI (enterprise application integration) tool than a data processing platform, although simple transformations are possible. One interesting feature is the ability to debug and change data flows in real time. Although not quite a REPL (read, eval, print loop), this kind of paradigm dramatically shortens the development cycle by not requiring a compile-deploy-test-debug workflow. Other interesting features include a strong “chain of custody,” where each piece of data can be tracked from beginning to end, along with any changes made along the way. You can also prioritize data flows so that time-sensitive information can be received as quickly as possible, bypassing less time-critical events.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-kafka-100613954-orig.jpg)
### Kafka ###
[Kafka][27] has emerged as the de-facto standard for distributed publish-subscribe messaging in the big data space. Its design allows brokers to support thousands of clients at high rates of sustained message throughput, while maintaining durability through a distributed commit log. Kafka does this by maintaining what is essentially a single log file in HDFS. Since HDFS is a distributed storage system that keeps redundant copies, Kafka is protected.
When consumers want to read messages, Kafka looks up their offset in the central log and sends them. Because messages are not deleted immediately, adding consumers or replaying historical messages does not impose additional costs. Kafka has been benchmarked at 2 million writes per second by its developers at LinkedIn. Despite Kafkas sub-1.0 version number, Kafka is a mature and stable product, in use in some of the largest clusters in the world.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opentsdb-100613959-orig.jpg)
### OpenTSDB ###
[OpenTSDB][28] is a time series database built on HBase. It was designed specifically for analyzing data collected from applications, mobile devices, networking equipment, and other hardware devices. The custom HBase schema used to store the time series data has been designed for fast aggregations and minimal storage requirements.
By using HBase as the underlying storage layer, OpenTSDB gains the distributed and reliable characteristics of that system. Users don't interact with HBase directly; instead events are written to the system via the time series daemon (TSD), which can be scaled out as required to handle high-throughput situations. There are a number of prebuilt connectors to publish data to OpenTSDB, and clients to read data from Ruby, Python, and other languages. OpenTSDB isn't strong on creating interactive graphics, but several third-party tools fill that gap. If you are already using HBase and want a simple way to store event data, OpenTSDB might be just the thing.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-jupyter-100613953-orig.jpg)
### Jupyter ###
Everybody's favorite notebook application went generic. [Jupyter][29] is “the language-agnostic parts of IPython” spun out into an independent package. Although Jupyter itself is written in Python, the system is modular. Now you can have an IPython-like interface, along with notebooks for sharing code, documentation, and data visualizations, for nearly any language you like.
At least [50 language][30] kernels are already supported, including LISP, R, Ruby, F#, Perl, and Scala. In fact, even IPython itself is simply a Python module for Jupyter. Communication with the language kernel is via a REPL (read, eval, print loop) protocol, similar to [nREPL][31] or [Slime][32]. It is nice to see such a useful piece of software receiving significant [nonprofit funding][33] to further its development, such as parallel execution and multi-user notebooks. Behold, open source at its best.
-- Steven Nunez
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zeppelin-100613963-orig.jpg)
### Zeppelin ###
While still in incubation, [Apache Zeppelin][34] is nevertheless stirring the data analytics and visualization pot. The Web-based notebook enables users to ingest, discover, analyze, and visualize their data. The notebook also allows you to collaborate with others to make data-driven, interactive documents incorporating a growing number of programming languages.
This technology also boasts an integration with Spark and an interpreter concept allowing any language or data processing back end to be plugged into Zeppelin. Currently Zeppelin supports interpreters such as Scala, Python, SparkSQL, Hive, Markdown, and Shell.
Zeppelin is still immature. I wanted to put a demo up but couldnt find an easy way to disable “shell” as an execution option (among other things). However, it already looks better visually than IPython Notebook, which is the popular incumbent in this space. If you dont want to spring for DataBricks Cloud or need something open source and extensible, this is the most promising distributed computing notebook around -- especially if youre a Sparky type.
-- Andrew C. Oliver
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-main-100613956-orig.jpg)
### Read about more open source winners ###
InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners:
[Bossie Awards 2015: The best open source applications][35]
[Bossie Awards 2015: The best open source application development tools][36]
[Bossie Awards 2015: The best open source big data tools][37]
[Bossie Awards 2015: The best open source data center and cloud software][38]
[Bossie Awards 2015: The best open source desktop and mobile software][39]
[Bossie Awards 2015: The best open source networking and security software][40]
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2982429/open-source-tools/bossie-awards-2015-the-best-open-source-big-data-tools.html
作者:[InfoWorld staff][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/InfoWorld-staff/
[1]:https://spark.apache.org/
[2]:http://spark-packages.org/
[3]:https://storm.apache.org/
[4]:https://lmax-exchange.github.io/disruptor/
[5]:http://h2o.ai/product/
[6]:https://www.datatorrent.com/apex/
[7]:https://github.com/DataTorrent/Malhar
[8]:https://druid.io/
[9]:https://flink.apache.org/
[10]:https://www.elastic.co/products/elasticsearch
[11]:http://lucene.apache.org/
[12]:http://teiid.jboss.org/
[13]:https://drill.apache.org/
[14]:http://research.google.com/pubs/pub36632.html
[15]:http://hbase.apache.org/
[16]:http://phoenix.apache.org/
[17]:https://hive.apache.org/
[18]:https://kylin.incubator.apache.org/
[19]:http://cdap.io/
[20]:http://www.infoworld.com/article/2973381/application-development/apache-ranger-chuck-norris-hadoop-security.html
[21]:https://ranger.incubator.apache.org/
[22]:http://mesos.apache.org/
[23]:https://amplab.cs.berkeley.edu/
[24]:http://nerds.airbnb.com/introducing-chronos/
[25]:http://aurora.apache.org/
[26]:http://nifi.apache.org/
[27]:https://kafka.apache.org/
[28]:http://opentsdb.net/
[29]:http://jupyter.org/
[30]:http://https//github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages
[31]:https://github.com/clojure/tools.nrepl
[32]:https://github.com/slime/slime
[33]:http://blog.jupyter.org/2015/07/07/jupyter-funding-2015/
[34]:https://zeppelin.incubator.apache.org/
[35]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html
[36]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html
[37]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html
[38]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
[39]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
[40]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html

View File

@ -0,0 +1,261 @@
Bossie Awards 2015: The best open source data center and cloud software
================================================================================
InfoWorld's top picks of the year in open source platforms, infrastructure, management, and orchestration software
![](http://images.techhive.com/images/article/2015/09/bossies-2015-data-center-cloud-100613986-orig.jpg)
### The best open source data center and cloud software ###
You might have heard about this new thing called Docker containers. Developers love them because you can build them with a script, add services in layers, and push them right from your MacBook Pro to a server for testing. It works because they're superlightweight, unlike those now-archaic virtual machines. Containers -- and other lightweight approaches to deliver services -- are changing the shape of operating systems, applications, and the tools to manage them. Our Bossie winners in data center and cloud are leading the charge.
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-docker-100613987-orig.jpg)
### Docker Machine, Compose, and Swarm ###
Dockers open source container technology has been adopted by the major public clouds and is being built into the next version of Windows Server. Allowing developers and operations teams to separate applications from infrastructure, Docker is a powerful data center automation tool.
However, containers are only part of the Docker story. Docker also provides a series of tools that allow you to use the Docker API to automate the entire container lifecycle, as well as handling application design and orchestration.
[Machine][1] allows you to automate the provisioning of Docker Containers. Starting with a command line, you can use a single line of code to target one or more hosts, deploy the Docker engine, and even join it to a Swarm cluster. Theres support for most hypervisors and cloud platforms all you need are your access credentials.
[Swarm][2] handles clustering and scheduling, and it can be integrated with Mesos for more advanced scheduling capabilities. You can use Swarm to build a pool of container hosts, allowing your apps to scale out as demand increases. Applications and all of their dependencies can be defined with [Compose][3], which lets you link containers together into a distributed application and launch them as a group. Compose descriptions work across platforms, so you can take a developer configuration and quickly deploy in production.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-coreos-rkt-100613985-orig.jpg)
### CoreOS and Rkt ###
A thin, lightweight server OS, [CoreOS][4] is based on Googles Chromium OS. Instead of using a package manager to install functions, its designed to be used with Linux containers. By using containers to extend a thin core, CoreOS allows you to quickly deploy applications, working well on cloud infrastructures.
CoreOSs container management tooling, fleet, is designed to treat a cluster of CoreOS servers as a single unit, with tools for managing high availability and for deploying containers to the cluster based on resource availability. A cross-cluster key/value store, etcd, handles device management and supports service discovery. If a node fails, etcd can quickly restore state on a new replica, giving you a distributed configuration management platform thats linked to CoreOSs automated update service.
While CoreOS is perhaps best known for its Docker support, the CoreOS team is developing its own container runtime, rkt, with its own container format, the App Container Image. Also compatible with Docker containers, rkt has a modular architecture that allows different containerization systems (even hardware virtualization, in a proof of concept from Intel) to be plugged in. However, rkt is still in the early stages of development, so isnt quite production ready.
-- Simon Bisson
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-rancheros-100613997-orig.jpg)
### RancherOS ###
As we abstract more and more services away from the underlying operating system using containers, we can start thinking about what tomorrows operating system will look like. Similar to our applications, its going to be a modular set of services running on a thin kernel, self-configuring to offer only the services our applications need.
[RancherOS][5] is a glimpse of what that OS might look like. Blending the Linux kernel with Docker, RancherOS is a minimal OS suitable for hosting container-based applications in cloud infrastructures. Instead of using standard Linux packaging techniques, RancherOS leverages Docker to host Linux user-space services and applications in separate container layers. A low-level Docker instance is first to boot, hosting system services in their own containers. Users' applications run in a higher-level Docker instance, separate from the system containers. If one of your containers crashes, the host keeps running.
RancherOS is only 20MB in size, so it's easy to replicate across a data center. Its also designed to be managed using automation tools, not manually, with API-level access that works with Dockers management tools as well as with Rancher Labs own cloud infrastructure and management tools.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-kubernetes-100613991-orig.jpg)
### Kubernetes ###
Googles [Kubernetes][6] container orchestration system is designed to manage and run applications built in Docker and Rocket containers. Focused on managing microservice applications, Kubernetes lets you distribute your containers across a cluster of hosts, while handling scaling and ensuring managed services run reliably.
With containers providing an application abstraction layer, Kubernetes is an application-centric management service that supports many modern development paradigms, with a focus on user intent. That means you launch applications, and Kubernetes will manage the containers to run within the parameters you set, using the Kubernetes scheduler to make sure it gets the resources it needs. Containers are grouped into pods and managed by a replication engine that can recover failed containers or add more pods as applications scale.
Kubernetes powers Googles own Container Engine, and it runs on a range of other cloud and data center services, including AWS and Azure, as well as vSphere and Mesos. Containers can be either loosely or tightly coupled, so applications not designed for cloud PaaS operations can be migrated to the cloud as a tightly coupled set of containers. Kubernetes also supports rapid deployment of applications to a cluster, giving you an endpoint for a continuous delivery process.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-mesos-100613993-orig.jpg)
### Mesos ###
Turning a data center into a private or public cloud requires more than a hypervisor. It requires a new operating layer that can manage the data center resources as if they were a single computer, handling resources and scheduling. Described as a “distributed systems kernel,” [Apache Mesos][7] allows you to manage thousands of servers, using containers to host applications and APIs to support parallel application development.
At the heart of Mesos is a set of daemons that expose resources to a central scheduler. Tasks are distributed across nodes, taking advantage of available CPU and memory. One key approach is the ability for applications to reject offered resources if they dont meet requirements. Its an approach that works well for big data applications, and you can use Mesos to run Hadoop and Cassandra distributed databases, as well as Apaches own Spark data processing engine. Theres also support for the Jenkins continuous integration server, allowing you to run build and test workers in parallel on a cluster of servers, dynamically adjusting the tasks depending on workload.
Designed to run on Linux and Mac OS X, Mesos has also recently been ported to Windows to support the development of scalable parallel applications on Azure.
-- Simon Bisson
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-smartos-100614849-orig.jpg)
### SmartOS and SmartDataCenter ###
Joyents [SmartDataCenter][8] is the software that runs its public cloud, adding a management platform on top of its [SmartOS][9] thin server OS. A descendent of OpenSolaris that combines Zones containers and the KVM hypervisor, SmartOS is an in-memory operating system, quick to boot from a USB stick and run on bare-metal servers.
Using SmartOS, you can quickly deploy a set of lightweight servers that can be programmatically managed via a set of JSON APIs, with functionality delivered via virtual machines, downloaded by built-in image management tools. Through the use of VMs, all userland operations are isolated from the underlying OS, reducing the security exposure of both the host and guests.
SmartDataCenter runs on SmartOS servers, with one server running as a dedicated management node, and the rest of a cluster operating as compute nodes. You can get started with a Cloud On A Laptop build (available as a VMware virtual appliance) that lets you experiment with the management server. In a live data center, youll deploy SmartOS on your servers, using ZFS to handle storage which includes your local image library. Services are deployed as images, with components stored in an object repository.
The combination of SmartDataCenter and SmartOS builds on the experience of Joyents public cloud, giving you a tried and tested set of tools that can help you bootstrap your own cloud data center. Its an infrastructure focused on virtual machines today, but laying the groundwork for tomorrow. A related Joyent project, [sdc-docker][10], exposes an entire SmartDataCenter cluster as a single Docker host, driven by native Docker commands.
-- Simon Bisson
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-sensu-100614850-orig.jpg)
### Sensu ###
Managing large-scale data centers isnt about working with server GUIs, its about automating scripts based on information from monitoring tools and services, routing information from sensors and logs, and then delivering actions to applications. One tool thats beginning to offer this functionality is [Sensu][11], often described as a “monitoring router.”
Scripts running across your data center deliver information to Sensu, which then routes it to the appropriate handler, using a publish-and-subscribe architecture based on RabbitMQ. Servers can be distributed, delivering published check results to handler code. You might see results in email, or in a Slack room, or in Sensus own dashboards. Message formats are defined in JSON files, or mutators used to format data on the fly, and messages can be filtered to one or more event handlers.
Sensu is still a relatively young tool, but its one that shows a lot of promise. If youre going to automate your data center, youre going to need a tool like this not only to show you whats happening, but to deliver that information where its most needed. A commercial option adds support for integration with third-party applications, but much of what you need to manage a data center is in the open source release.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-prometheus-100613996-orig.jpg)
### Prometheus ###
Managing a modern data center is a complex task. Racks of servers need to be treated like cattle rather than pets, and you need a monitoring system designed to handle hundreds and thousands of nodes. Monitoring applications presents special challenges, and thats where [Prometheus][12] comes in to play. A service monitoring system designed to deliver alerts to operators, Prometheus can run on everything from a single laptop to a highly available cluster of monitoring servers.
Time series data is captured and stored, then compared against patterns to identify faults and problems. Youll need to expose data on HTTP endpoints, using a YAML file to configure the server. A browser-based reporting tool handles displaying data, with an expression console where you can experiment with queries. Dashboards can be created with a GUI builder, or written using a series of templates, letting you deliver application consoles that can be managed using version control systems such as Git.
Captured data can be managed using expressions, which make it easy to aggregate data from several sources -- for example, letting you bring performance data from a series of Web endpoints into one store. An experimental alert manager module delivers alerts to common collaboration and devops tools, including Slack and PagerDuty. Official client libraries for common languages like Go and Java mean its easy to add Prometheus support to your applications and services, while third-party options extend Prometheus to Node.js and .Net.
-- Simon Bisson
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-elk-100613988-orig.jpg)
### Elasticsearch, Logstash, and Kibana ###
Running a modern data center generates a lot of data, and it requires tools to get information out of that data. Thats where the combination of Elasticsearch, Logstash, and Kibana, often referred to as the ELK stack, comes into play.
Designed to handle scalable search across a mix of content types, including structured and unstructured documents, [Elasticsearch][13] builds on Apaches Lucene information retrieval tools, with a RESTful JSON API. Its used to provide search for sites like Wikipedia and GitHub, using a distributed index with automated load balancing and routing.
Under the fabric of a modern cloud is a physical array of servers, running as VM hosts. Monitoring many thousands of servers needs centralized logs. [Logstash][14] harvests and filters the logs generated by those servers (and by the applications running on them), using a forwarder on each physical and virtual machine. Logstash-formatted data is then delivered to Elasticsearch, giving you a search index that can be quickly scaled as you add more servers.
At a higher level, [Kibana][15] adds a visualization layer to Elasticsearch, providing a Web dashboard for exploring and analyzing the data. Dashboards can be created around custom searches and shared with your team, providing a quick, easy-to-digest devops information feed.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-ansible-100613984-orig.jpg)
### Ansible ###
Managing server configuration is a key element of any devops approach to managing a modern data center or a cloud infrastructure. Configuration management tooling that takes a desired state approach to simplifies systems management at cloud scale, using server and application descriptions to handle server and application deployment.
[Ansible][16] offers a minimal management service, using SSH to manage Unix nodes and PowerShell to work with Windows servers, with no need to deploy agents. An Ansible Playbook describes the state of a server or service in YAML, deploying Ansible modules to servers that handle configuration and removing them once the service is running. You can use Playbooks to orchestrate tasks -- for example, deploying several Web endpoints with a single script.
Its possible to make module creation and Playbook delivery part of a continuous delivery process, using build tools to deliver configurations and automate deployment. Ansible can pull in information from cloud service providers, simplifying management of virtual machines and networks. Monitoring tools in Ansible are able to trigger additional deployments automatically, helping manage and control cloud services, as well as working to manage resources used by large-scale data platforms like Hadoop.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-jenkins-100613990-orig.jpg)
### Jenkins ###
Getting continuous delivery right requires more than a structured way of handling development; it also requires tools for managing test and build. Thats where the [Jenkins][17] continuous integration server comes in. Jenkins works with your choice of source control, your test harnesses, and your build server. Its a flexible tool, initially designed for working with Java but now extended to support Web and mobile development and even to build Windows applications.
Jenkins is perhaps best thought of as a switching network, shunting files through a test and build process, and responding to signals from the various tools youre using thanks to a library of more than 1,000 plug-ins. These include tools for integrating Jenkins with both local Git instances and GitHub so that it's possible to extend a continuous development model into your build and delivery processes.
Using an automation tool like Jenkins is as much about adopting a philosophy as it is about implementing a build process. Once you commit to continuous integration as part of a continuous delivery model, youll be running test and build cycles as soon as code is delivered to your source control release branch and delivering it to users as soon as its in the main branch.
-- Simon Bisson
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-nodejs-iojs-100613995-orig.jpg)
### Node.js and io.js ###
Modern cloud applications are built using different design patterns from the familiar n-tier enterprise and Web apps. Theyre distributed, event-driven collections of services that can be quickly scaled and can support many thousands of simultaneous users. One key technology in this new paradigm is [Node.js][18], used by many major cloud platforms and easy to install as part of a thin server or container on cloud infrastructure.
Key to the success of Node.js is the Npm package format, which allows you to quickly install extensions to the core Node.js service. These include frameworks like Express and Seneca, which help build scalable applications. A central registry handles package distribution, and dependencies are automatically installed.
While the [io.js][19] fork exposed issues with project governance, it also allowed a group of developers to push forward adding ECMAScript 6 support to an Npm-compatible engine. After reconciliation between the two teams, the Node.js and io.js codebases have been merged, with new releases now coming from the io.js code repository.
Other forks, like Microsofts io.js fork to add support for its 64-bit Chakra JavaScript engine alongside Googles V8, are likely to be merged back into the main branch over the next year, keeping the Node.js platform evolving and cementing its role as the preferred host for cloud-scale microservices.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-seneca-100613998-orig.jpg)
### Seneca ###
The developers of the [Seneca][20] microservice framework have a motto: “Build it now, scale it later!” Its an apt maxim for anyone thinking about developing microservices, as it allows you to start small, then add functionality as your service grows.
Seneca is at heart an implementation of the [actor/message design pattern][21], focused on using Node.js as a switching engine that takes in messages, processes their contents, and sends an appropriate response, either to the message originator or to another service. By focusing on the message patterns that map to business use cases, its relatively easy to take Seneca and quickly build a minimum viable product for your application. A plug-in architecture makes it easy to integrate Seneca with other tools and to quickly add functionality to your services.
You can easily add new patterns to your codebase or break existing patterns into separate services as the needs of your application grow or change. One pattern can also call another, allowing quick code reuse. Its also easy to add Seneca to a message bus, so you can use it as a framework for working with data from Internet of things devices, as all you need to do is define a listening port where JSON data is delivered.
Services may not be persistent, and Seneca gives you the option of using a built-in object relational mapping layer to handle data abstraction, with plug-ins for common databases.
-- Simon Bisson
![](http://images.techhive.com/images/article/2015/09/bossies-2015-netcore-aspnet-100613994-orig.jpg)
### .Net Core and ASP.Net vNext ###
Microsofts [open-sourcing of .Net][22] is bringing much of the companys Web platform into the open. The new [.Net Core][23] release runs on Windows, on OS X, and on Linux. Currently migrating from Microsofts Codeplex repository to GitHub, .Net Core offers a more modular approach to .Net, allowing you to install the functions you need as you need them.
Currently under development is [ASP.Net 5][24], an open source version of the Web platform, which runs on .Net Core. You can work with it as the basis of Web apps using Microsofts MVC 6 framework. Theres also support for the new SignalR libraries, which add support for WebSockets and other real-time communications protocols.
If youre planning on using Microsofts new Nano server, youll be writing code against .Net Core, as its designed for thin environments. The new DNX, the .Net Execution environment, simplifies deployment of ASP.Net applications on a wide range of platforms, with tools for packaging code and for booting a runtime on a host. Features are added using the NuGet package manager, letting you use only the libraries you want.
Microsofts open source .Net is still very young, but theres a commitment in Redmond to ensure its successful. Support in Microsofts own next-generation server operating systems means it has a place in both the data center and the cloud.
-- Simon Bisson
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-glusterfs-100613989-orig.jpg)
### GlusterFS ###
[GlusterFS][25] is a distributed file system. Gluster aggregates various storage servers into one large parallel network file system. You can [even use it in place of HDFS in a Hadoop cluster][26] or in place of an expensive SAN system -- or both. While HDFS is great for Hadoop, having a general-purpose distributed file system that doesnt require you to transfer data to another location to analyze it is a key advantage.
In an era of commoditized hardware, commoditized computing, and increased performance and latency requirements, buying a big, fat expensive EMC SAN and hoping it fits all of your needs (it wont) is no longer your sole viable option. GlusterFS was acquired by Red Hat in 2011.
-- Andrew C. Oliver
![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100613992-orig.jpg)
### Read about more open source winners ###
InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners:
[Bossie Awards 2015: The best open source applications][27]
[Bossie Awards 2015: The best open source application development tools][28]
[Bossie Awards 2015: The best open source big data tools][29]
[Bossie Awards 2015: The best open source data center and cloud software][30]
[Bossie Awards 2015: The best open source desktop and mobile software][31]
[Bossie Awards 2015: The best open source networking and security software][32]
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2982923/open-source-tools/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
作者:[InfoWorld staff][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/InfoWorld-staff/
[1]:https://www.docker.com/docker-machine
[2]:https://www.docker.com/docker-swarm
[3]:https://www.docker.com/docker-compose
[4]:https://coreos.com/
[5]:http://rancher.com/rancher-os/
[6]:http://kubernetes.io/
[7]:https://mesos.apache.org/
[8]:https://github.com/joyent/sdc
[9]:https://smartos.org/
[10]:https://github.com/joyent/sdc-docker
[11]:https://sensuapp.org/
[12]:http://prometheus.io/
[13]:https://www.elastic.co/products/elasticsearch
[14]:https://www.elastic.co/products/logstash
[15]:https://www.elastic.co/products/kibana
[16]:http://www.ansible.com/home
[17]:https://jenkins-ci.org/
[18]:https://nodejs.org/en/
[19]:https://iojs.org/en/
[20]:http://senecajs.org/
[21]:http://www.infoworld.com/article/2976422/application-development/how-to-use-actors-in-distributed-applications.html
[22]:http://www.infoworld.com/article/2846450/microsoft-net/microsoft-open-sources-server-side-net-launches-visual-studio-2015-preview.html
[23]:https://dotnet.github.io/core/
[24]:http://www.asp.net/vnext
[25]:http://www.gluster.org/
[26]:http://www.gluster.org/community/documentation/index.php/Hadoop
[27]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html
[28]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html
[29]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html
[30]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
[31]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
[32]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html

View File

@ -0,0 +1,223 @@
Bossie Awards 2015: The best open source desktop and mobile software
================================================================================
InfoWorld's top picks in open source productivity tools, desktop utilities, and mobile apps
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-desktop-mobile-100614439-orig.jpg)
### The best open source desktop and mobile software ###
Open source on the desktop has a long and distinguished history, and many of our Bossie winners in this category go back many years. Packed with features and still improving, some of these tools offer compelling alternatives to pricey commercial software. Others are utilities that we lean on daily for one reason or another -- the can openers and potato peelers of desktop productivity. One or two of them either plug holes in Windows, or they go the distance where Windows falls short.
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-libreoffice-100614436-orig.jpg)
### LibreOffice ###
With the major release of version 5 in August, the Document Foundations [LibreOffice][1] offers a completely redesigned user interface, better compatibility with Microsoft Office (including good-but-not-great DOCX, XLSX, and PPTX file format support), and significant improvements to Calc, the spreadsheet application.
Set against a turbulent background, the LibreOffice effort split from OpenOffice.org in 2010. In 2011, Oracle announced it would no longer support OpenOffice.org, and handed the trademark to the Apache Software Foundation. Since then, it has become [increasingly clear][2] that LibreOffice is winning the race for developers, features, and users.
-- Woody Leonhard
![](http://images.techhive.com/images/article/2015/09/bossies-2015-firefox-100614426-orig.jpg)
### Firefox ###
In the battle of the big browsers, [Firefox][3] gets our vote over its longtime open source rival Chromium for two important reasons:
&bull; **Memory use**. Chromium, like its commercial cousin Chrome, has a nasty propensity to glom onto massive amounts of memory.
&bull; **Privacy**. Witness the [recent controversy][4] over Chromium automatically downloading a microphone snooping program to respond to “OK, Google.”
Firefox may not have the most features or the down-to-the-millisecond fastest rendering engine. But its solid, stingy with resources, highly extensible, and most of all, it comes with no strings attached. Theres no ulterior data-gathering motive.
-- Woody Leonhard
![](http://images.techhive.com/images/article/2015/09/bossies-2015-thunderbird-100614433-orig.jpg)
### Thunderbird ###
A longtime favorite email client, Mozillas [Thunderbird][5], may be getting a bit long in the tooth, but its still supported and showing signs of life. The latest version, 38.2, arrived in August, and there are plans for more development.
Mozilla officially pulled its people off the project back in July 2012, but a hardcore group of volunteers, led by Kent James and the all-volunteer Thunderbird Council, continues to toil away. While you wont find the latest email innovations in Thunderbird, you will find a solid core of basic functions based on local storage. If having mail in the cloud spooks you, its a good, private alternative. And if James goes ahead with his idea of encrypting Thunderbird mail end-to-end, there may be significant new life in the old bird.
-- Woody Leonhard
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-notepad-100614432-orig.jpg)
### Notepad++ ###
If Windows Notepad handles all of your text editing (and source code editing and HTML editing) needs, more power to ya. For Windows users who yearn for a little bit more in a text editor, theres Don Hos [Notepad++][6], which is the editor I turn to, over and over again.
With tabbed views, drag-and-drop, color-coded hints for completing HTML commands, bookmarks, macro recording, shortcut keys, and every text encoding format youre likely to encounter, Notepad++ takes text to a new level. We get frequent updates, too, with the latest in August.
-- Woody Leonhard
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-vlc-100614435-orig.jpg)
### VLC ###
The stalwart [VLC][7] (formerly known as VideoLan Client) runs almost any kind of media file on almost any platform. Yes, it even works as a remote control on Apple Watch.
The tiled Universal app version for Windows 10, in the Windows Store, draws some criticism for instability and lack of control, but in most cases VLC works, and it works well -- without external codecs. It even supports Blu-ray formats with two new libraries.
The desktop version is a must-have for Windows 10, unless youre ready to run the advertising gauntlets that are the Universal Groove Music and Movies & TV apps from Microsoft. VLC received a major [feature update][8] in February and a comprehensive bug fix in April.
-- Woody Leonhard
![](http://images.techhive.com/images/article/2015/09/bossies-2015-7-zip-100614429-orig.jpg)
### 7-Zip ###
Long recognized as the preeminent open source ZIP archive manager for Windows, [7-Zip][9] works like a champ, even on the Windows 10 desktop. Full coverage for RAR files, which can be problematic in Windows, combine with password-protected file creation and support for self-extracting ZIPs. Its one of those programs that just works.
Yes, it would be nice to get a more modern file picker. Yes, it would be interesting to see a tiled Universal app version. But even without the fancy bells and whistles, 7-Zip deserves a place on every Windows desktop.
-- Woody Leonhard
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-handbrake-100614427-orig.jpg)
### Handbrake ###
If you want to convert your DVDs (or video files in any commonly used format) into a file in some other format, or simply scrape them off a silver coaster, [Handbrake][10] is the way to do it. If youre a Windows user, Handbrake is almost indispensible, since Microsoft doesnt believe in ripping DVDs.
Handbrake presents a number of handy presets for optimizing conversions for your target device (iPod, iPad, Android Tablet, and so on) Its simple, and its fast. With the latest round of bug fixes released in June, Handbrakes keeping up on maintenance -- and it works fine on the Windows 10 desktop.
-- Woody Leonhard
![](http://images.techhive.com/images/article/2015/09/bossies-2015-keepass-100614430-orig.jpg)
### KeePass ###
Ill confess that I almost gave up on [KeePass][11] because the primary download site goes to Sourceforge. That means you have to be extremely careful which boxes are checked and what you click on (and when) as you attempt to download and install the software. While KeePass itself is 100 percent clean open source (GNU GPL), Sourceforge doesnt feel so constrained, and its [installers reek of crapware][12].
One of many local-file password storage programs, KeePass distinguishes itself with broad scope, as well as its ability to run on all sorts of platforms, no installation required. KeePass will save not only passwords, but also credit card information and freely structured information. It provides a strong random password generator, and the database itself is locked with AES and Twofish, so nobodys going to crack it. And its kept up to date, with a new stable release last month.
-- Woody Leonhard
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-virtualbox-100614434-orig.jpg)
### VirtualBox ###
With a major release published in July, Oracles open source [VirtualBox][13] -- available for Windows, OS X, Linux, even Solaris --continues to give commercial counterparts VMware Workstation, VMware Fusion, Parallels Desktop, and Microsofts Hyper-V a hard run for their money. The Oracle team is still getting the final Windows 10 bugs ironed out, but come to think of it, so is Microsoft.
VirtualBox doesnt quite match the performance or polish of the VMware and Parallels products, but its getting closer. Version 5 brought long-awaited drag-and-drop support, making it easier to move files between VMs and host.
I prefer VirtualBox over Hyper-V because its easy to control external devices. In Hyper-V, for example, getting sound to work is a pain in the neck, but in VirtualBox it only takes a click in setup. The shared clipboard between VM and host works wonders. Running speed on both is roughly the same, with a slight advantage to Hyper-V. But managing VirtualBox machines is much easier.
-- Woody Leonhard
![](http://images.techhive.com/images/article/2015/09/bossies-2015-inkscape-100614428-orig.jpg)
### Inkscape ###
If you stand in awe of the designs created with Adobe Illustrator (or even CorelDraw), take a close look at [Inkscape][14]. Scalable vector images never looked so good.
Version 0.91, released in January, uses a new internal graphics rendering engine called Cairo, sponsored by Google, to make the app run faster and allow for more accurate rendering. Inkscape will read and write SVG, PNG, PDF, even EPS, and many other formats. It can export Flash XML Graphics, HTML5 Canvas, and XAML, among others.
Theres a strong community around Inkscape, and its built for easy extensibility. Its available for Windows, OS X, and Linux.
-- Woody Leonhard
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-keepassdroid-100614431-orig.jpg)
### KeePassDroid ###
Trying to remember all of the passwords we need today is impossible, and creating new ones to meet stringent password policy requirements can be agonizing. A port of KeePass for Android, [KeePassDroid][15] brings sanity preserving password management to mobile devices.
Like KeyPass, KeyPassDroid makes creating and accessing passwords easy, requiring you to recall only a single master password. It supports both DES and Twofish algorithms for encrypting all passwords, and it goes a step further by encrypting the entire password database, not only the password fields. Notes and other password pertinent information are encrypted too.
While KeePassDroid's interface is minimal -- dated, some would say -- it gets the job done with bare-bones efficiency. Need to generate passwords that have certain character sets and lengths? KeePassDroid can do that with ease. With more than a million downloads on the Google Play Store, you could say this app definitely fills a need.
-- Victor R. Garza
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-prey-100615300-orig.jpg)
### Prey ###
Loss or theft of mobile devices is all too common these days. While there are many tools in the enterprise to manage and erase data either misplaced or stolen from an organization, [Prey][16] facilitates the recovery of the phone, laptop, or tablet, and not just the wiping of potentially sensitive information from the device.
Prey is a Web service that works with an open source installed agent for Linux, OS X, Windows, Android, and iOS devices. Prey tracks your lost or stolen device by using either the device's GPS, the native geolocation provided by newer operating systems, or an associated Wi-Fi hotspot to home in on the location.
If your smartphone is lost or stolen, send a text message to the device to activate Prey. For stolen tablets or laptops, use the Prey Project's cloud-based control panel to select the device as missing. The Prey agent on any device can then take a screenshot of the active applications, turn on the camera to catch a thief's image, reset the device to the factory settings, or fully lock down the device.
Should you want to retrieve your lost items, the Prey Project strongly suggests you contact your local police to have them assist you.
-- Victor R. Garza
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-orbot-100615299-orig.jpg)
### Orbot ###
The premiere proxy application for Android, [Orbot][17] leverages the volunteer-operated network of virtual tunnels called Tor (The Onion Router) to keep all communications private. Orbot works with companion applications [Orweb][18] for secure Web browsing and [ChatSecure][19] for secure chat. In fact, any Android app that allows its proxy settings to be changed can be secured with Orbot.
One thing to remember about the Tor network is that it's designed for secure, lightweight communications, not for pulling down torrents or watching YouTube videos. Surfing media-rich sites like Facebook can be painfully slow. Your Orbot communications won't be blazing fast, but they will stay private and confidential.
-- Victor R. Garza
![](http://images.techhive.com/images/article/2015/09/bossies-2015-tails-100615301-orig.jpg)
### Tails ###
[Tails][20], or The Amnesic Incognito Live System, is a Linux Live OS that can be booted from a USB stick, DVD, or SD card. Its often used covertly in the Deep Web to secure traffic when purchasing illicit substances, but it can also be used to avoid tracking, support freedom of speech, circumvent censorship, and promote liberty.
Leveraging Tor (The Onion Router), Tails keeps all communications secure and private and promises to leave no trace on any computer after its used. It performs disk encryption with LUKS, protects instant messages with OTR, encrypts Web traffic with the Tor Browser and HTTPS Everywhere, and securely deletes files via Nautilus Wipe. Tails even has an office suite, image editor, and the like.
Now, it's always possible to be traced while using any system if you're not careful, so be vigilant when using Tails and follow good privacy practices, like turning off JavaScript while using Tor. And be aware that Tails isn't necessarily going to be speedy, even while using a fiber connect, but that's what you pay for anonymity.
-- Victor R. Garza
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-main-100614438-orig.jpg)
### Read about more open source winners ###
InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners:
[Bossie Awards 2015: The best open source applications][21]
[Bossie Awards 2015: The best open source application development tools][22]
[Bossie Awards 2015: The best open source big data tools][23]
[Bossie Awards 2015: The best open source data center and cloud software][24]
[Bossie Awards 2015: The best open source desktop and mobile software][25]
[Bossie Awards 2015: The best open source networking and security software][26]
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2982630/open-source-tools/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
作者:[InfoWorld staff][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/InfoWorld-staff/
[1]:https://www.libreoffice.org/download/libreoffice-fresh/
[2]:http://lwn.net/Articles/637735/
[3]:https://www.mozilla.org/en-US/firefox/new/
[4]:https://nakedsecurity.sophos.com/2015/06/24/not-ok-google-privacy-advocates-take-on-the-chromium-team-and-win/
[5]:https://www.mozilla.org/en-US/thunderbird/
[6]:https://notepad-plus-plus.org/
[7]:http://www.videolan.org/vlc/index.html
[8]:http://www.videolan.org/press/vlc-2.2.0.html
[9]:http://www.7-zip.org/
[10]:https://handbrake.fr/
[11]:http://keepass.info/
[12]:http://www.infoworld.com/article/2931753/open-source-software/sourceforge-the-end-cant-come-too-soon.html
[13]:https://www.virtualbox.org/
[14]:https://inkscape.org/en/download/windows/
[15]:http://www.keepassdroid.com/
[16]:http://preyproject.com/
[17]:https://www.torproject.org/docs/android.html.en
[18]:https://guardianproject.info/apps/orweb/
[19]:https://guardianproject.info/apps/chatsecure/
[20]:https://tails.boum.org/
[21]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html
[22]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html
[23]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html
[24]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
[25]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
[26]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html

View File

@ -0,0 +1,162 @@
Bossie Awards 2015: The best open source networking and security software
================================================================================
InfoWorld's top picks of the year among open source tools for building, operating, and securing networks
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-net-sec-100614459-orig.jpg)
### The best open source networking and security software ###
BIND, Sendmail, OpenSSH, Cacti, Nagios, Snort -- open source software seems to have been invented for networks, and many of the oldies and goodies are still going strong. Among our top picks in the category this year, you'll find a mix of stalwarts, mainstays, newcomers, and upstarts perfecting the arts of network management, security monitoring, vulnerability assessment, rootkit detection, and much more.
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-icinga-100614482-orig.jpg)
### Icinga 2 ###
Icinga began life as a fork of system monitoring application Nagios. [Icinga 2][1] was completely rewritten to give users a modern interface, support for multiple databases, and an API to integrate numerous extensions. With out-of-the-box load balancing, notifications, and configuration, Icinga 2 shortens the time to installation for complex environments. Icinga 2 supports Graphite natively, giving administrators real-time performance graphing without any fuss. But what puts Icinga back on the radar this year is its release of Icinga Web 2, a graphical front end with drag-and-drop customizable dashboards and streamlined monitoring tools.
Administrators can view, filter, and prioritize problems, while keeping track of which actions have already been taken. A new matrix view lets administrators view hosts and services on one page. You can view events over a particular time period or filter incidents to understand which ones need immediate attention. Icinga Web 2 may boast a new interface and zippier performance, but all the usual commands from Icinga Classic and Icinga Web are still available. That means there is no downtime trying to learn a new version of the tool.
-- Fahmida Rashid
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zenoss-100614465-orig.jpg)
### Zenoss Core ###
Another open source stalwart, [Zenoss Core][2] gives network administrators a complete, one-stop solution for tracking and managing all of the applications, servers, storage, networking components, virtualization tools, and other elements of an enterprise infrastructure. Administrators can make sure the hardware is running efficiently and take advantage of the modular design to plug in ZenPacks for extended functionality.
Zenoss Core 5, released in February of this year, takes the already powerful tool and improves it further, with an enhanced user interface and expanded dashboard. The Web-based console and dashboards were already highly customizable and dynamic, and the new version now lets administrators mash up multiple component charts onto a single chart. Think of it as the tool for better root cause and cause/effect analysis.
Portlets give additional insights for network mapping, device issues, daemon processes, production states, watch lists, and event views, to name a few. And new HTML5 charts can be exported outside the tool. The Zenoss Control Center allows out-of-band management and monitoring of all Zenoss components. Zenoss Core has new tools for online backup and restore, snapshots and rollbacks, and multihost deployment. Even more important, deployments are faster with full Docker support.
-- Fahmida Rashid
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opennms-100614461-orig.jpg)
### OpenNMS ###
An extremely flexible network management solution, [OpenNMS][3] can handle any network management task, whether it's device management, application performance monitoring, inventory control, or events management. With IPv6 support, a robust alerts system, and the ability to record user scripts to test Web applications, OpenNMS has everything network administrators and testers need. OpenNMS has become, as now a mobile dashboard, called OpenNMS Compass, lets networking pros keep an eye on their network even when they're out and about.
The iOS version of the app, which is available on the [iTunes App Store][4], displays outages, nodes, and alarms. The next version will offer additional event details, resource graphs, and information about IP and SNMP interfaces. The Android version, available on [Google Play][5], displays network availability, outages, and alarms on the dashboard, as well as the ability to acknowledge, escalate, or clear alarms. The mobile clients are compatible with OpenNMS Horizon 1.12 or greater and OpenNMS Meridian 2015.1.0 or greater.
-- Fahmida Rashid
![](http://images.techhive.com/images/article/2015/09/bossies-2015-onion-100614460-orig.jpg)
### Security Onion ###
Like an onion, network security monitoring is made of many layers. No single tool will give you visibility into every attack or show you every reconnaissance or foot-printing session on your company network. [Security Onion][6] bundles scores of proven tools into one handy Ubuntu distro that will allow you to see who's inside your network and help keep the bad guys out.
Whether you're taking a proactive approach to network security monitoring or following up on a potential attack, Security Onion can assist. Consisting of sensor, server, and display layers, the Onion combines full network packet capture with network-based and host-based intrusion detection, and it serves up all of the various logs for inspection and analysis.
The star-studded network security toolchain includes Netsniff-NG for packet capture, Snort and Suricata for rules-based network intrusion detection, Bro for analysis-based network monitoring, OSSEC for host intrusion detection, and Sguil, Squert, Snorby, and ELSA (Enterprise Log Search and Archive) for display, analysis, and log management. Its a carefully vetted collection of tools, all wrapped in a wizard-driven installer and backed by thorough documentation, that can help you get from zero to monitoring as fast as possible.
-- Victor R. Garza
![](http://images.techhive.com/images/article/2015/09/bossies-2015-kali-100614458-orig.jpg)
Kali Linux
The team behind [Kali Linux][7] revamped the popular security Linux distribution this year to make it faster and even more versatile. Kali sports a new 4.0 kernel, improved hardware and wireless driver support, and a snappier interface. The most popular tools are easily accessible from a dock on the side of the screen. The biggest change? Kali Linux is now a rolling distribution, with a continuous stream of software updates. Kali's core system is based on Debian Jessie, and the team will pull packages continuously from Debian Testing, while continuing to add new Kali-flavored features on top.
The distribution still comes jam-packed with tools for penetration testing, vulnerability analysis, security forensics, Web application analysis, wireless networking and assessment, reverse engineering, and exploitation tools. Now the distribution has an upstream version checking system that will automatically notify users when updates are available for the individual tools. The distribution also features ARM images for a range of devices, including Raspberry Pi, Chromebook, and Odroids, as well as updates to the NetHunter penetration testing platform that runs on Android devices. There are other changes too: Metasploit Community/Pro is no longer included, because Kali 2.0 is not yet [officially supported by Rapid7][8].
-- Fahmida Rashid
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-openvas-100614462-orig.jpg)
### OpenVAS ###
[OpenVAS][9], the Open Vulnerability Assessment System, is a framework that combines multiple services and tools to offer vulnerability scanning and vulnerability management. The scanner is coupled with a weekly feed of network vulnerability tests, or you can use a feed from a commercial service. The framework includes a command-line interface (so it can be scripted) and an SSL-secured, browser-based interface via the [Greenbone Security Assistant][10]. OpenVAS accommodates various plug-ins for additional functionality. Scans can be scheduled or run on-demand.
Multiple OpenVAS installations can be controlled through a single master, which makes this a scalable vulnerability assessment tool for enterprises. The project is as compatible with standards as can be: Scan results and configurations are stored in a SQL database, where they can be accessed easily by external reporting tools. Client tools access the OpenVAS Manager via the XML-based stateless OpenVAS Management Protocol, so security administrators can extend the functionality of the framework. The software can be installed from packages or source code to run on Windows or Linux, or downloaded as a virtual appliance.
-- Matt Sarrel
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-owasp-100614463-orig.jpg)
### OWASP ###
[OWASP][11], the Open Web Application Security Project, is a nonprofit organization with worldwide chapters focused on improving software security. The community-driven organization provides test tools, documentation, training, and almost anything you could imagine thats related to assessing software security and best practices for developing secure software. Several OWASP projects have become valuable components of many a security practitioner's toolkit:
[ZAP][12], the Zed Attack Proxy Project, is a penetration test tool for finding vulnerabilities in Web applications. One of the design goals of ZAP was to make it easy to use so that developers and functional testers who aren't security experts can benefit from using it. ZAP provides automated scanners and a set of manual test tools.
The [Xenotix XSS Exploit Framework][13] is an advanced cross-site scripting vulnerability detection and exploitation framework that runs scans within browser engines to get real-world results. The Xenotix Scanner Module uses three intelligent fuzzers, and it can run through nearly 5,000 distinct XSS payloads. An API lets security administrators extend and customize the exploit toolkit.
[O-Saft][14], or the OWASP SSL advanced forensic tool, is an SSL auditing tool that shows detailed information about SSL certificates and tests SSL connections. This command-line tool can run online or offline to assess SSL security such as ciphers and configurations. O-Saft provides built-in checks for common vulnerabilities, and you can easily extend these through scripting. In May 2015 a simple GUI was added as an optional download.
[OWTF][15], the Offensive Web Testing Framework, is an automated test tool that follows OWASP testing guidelines and the NIST and PTES standards. The framework uses both a Web UI and a CLI, and it probes Web and application servers for common vulnerabilities such as improper configuration and unpatched software.
-- Matt Sarrel
![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-beef-100614456-orig.jpg)
### BeEF ###
The Web browser has become the most common vector for attacks against clients. [BeEF][15], the Browser Exploitation Framework Project, is a widely used penetration tool to assess Web browser security. BeEF helps you expose the security weaknesses of client systems using client-side attacks launched through the browser. BeEF sets up a malicious website, which security administrators visit from the browser they want to test. BeEF then sends commands to attack the Web browser and use it to plant software on the client machine. Administrators can then launch attacks on the client machine as if they were zombies.
BeEF comes with commonly used modules like a key logger, a port scanner, and a Web proxy, plus you can write your own modules or send commands directly to the zombified test machine. BeEF comes with a handful of demo Web pages to help you get started and makes it very easy to write additional Web pages and attack modules so you can customize testing to your environment. BeEF is a valuable test tool for assessing browser and endpoint security and for learning how browser-based attacks are launched. Use it to put together a demo to show your users how malware typically infects client devices.
-- Matt Sarrel
![](http://images.techhive.com/images/article/2015/09/bossies-2015-unhide-100614464-orig.jpg)
### Unhide ###
[Unhide][16] is a forensic tool that locates open TCP/UDP ports and hidden process on UNIX, Linux, and Windows. Hidden ports and processes can be the result of rootkit or LKM (loadable kernel module) activity. Rootkits can be difficult to find and remove because they are designed to be stealthy, hiding themselves from the OS and user. A rootkit can use LKMs to hide its processes or impersonate other processes, allowing it to run on machines undiscovered for a long time. Unhide can provide the assurance that administrators need to know their systems are clean.
Unhide is really two separate scripts: one for processes and one for ports. The tool interrogates running processes, threads, and open ports and compares this info to what's registered with the system as active, reporting discrepancies. Unhide and WinUnhide are extremely lightweight scripts that run from the command line to produce text output. They're not pretty, but they are extremely useful. Unhide is also included in the [Rootkit Hunter][17] project.
-- Matt Sarrel
![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614457-orig.jpg)
Read about more open source winners
InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners:
[Bossie Awards 2015: The best open source applications][18]
[Bossie Awards 2015: The best open source application development tools][19]
[Bossie Awards 2015: The best open source big data tools][20]
[Bossie Awards 2015: The best open source data center and cloud software][21]
[Bossie Awards 2015: The best open source desktop and mobile software][22]
[Bossie Awards 2015: The best open source networking and security software][23]
--------------------------------------------------------------------------------
via: http://www.infoworld.com/article/2982962/open-source-tools/bossie-awards-2015-the-best-open-source-networking-and-security-software.html
作者:[InfoWorld staff][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.infoworld.com/author/InfoWorld-staff/
[1]:https://www.icinga.org/icinga/icinga-2/
[2]:http://www.zenoss.com/
[3]:http://www.opennms.org/
[4]:https://itunes.apple.com/us/app/opennms-compass/id968875097?mt=8
[5]:https://play.google.com/store/apps/details?id=com.opennms.compass&hl=en
[6]:http://blog.securityonion.net/p/securityonion.html
[7]:https://www.kali.org/
[8]:https://community.rapid7.com/community/metasploit/blog/2015/08/12/metasploit-on-kali-linux-20
[9]:http://www.openvas.org/
[10]:http://www.greenbone.net/
[11]:https://www.owasp.org/index.php/Main_Page
[12]:https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
[13]:https://www.owasp.org/index.php/O-Saft
[14]:https://www.owasp.org/index.php/OWASP_OWTF
[15]:http://www.beefproject.com/
[16]:http://www.unhide-forensics.info/
[17]:http://www.rootkit.nl/projects/rootkit_hunter.html
[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html
[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html
[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html
[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html
[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html
[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html

View File

@ -0,0 +1,195 @@
Optimize Web Delivery with these Open Source Tools
================================================================================
Web proxy software forwards HTTP requests without modifying traffic in any way. They can be configured as a transparent proxy with no client-side configuration required. They can also be used as a reverse proxy front-end to websites; here the cache serves an unlimited number of clients for one or some web servers.
Web proxies are versatile tools. They have a wide variety of uses, from caching web, DNS and other lookups, to speeding up the delivery of a web server / reducing bandwidth consumption. Web proxy software can also harden security by filtering traffic and anonymizing connections, and offer media-range limitations. This software is used by high-profile, high-traffic websites such as The New York Times, The Guardian, and social media and content sites such as Twitter, Facebook, and Wikipedia.
Web caches have become a vital mechanism for optimising the amount of data that is delivered in a given period of time. Good web caches also help to minimise latency, serving pages as quickly as possible. This helps to prevent the end user from becoming impatient having to wait for content to be delivered. Web caches optimise the data flow between client and server. They also help to converse bandwidth by caching frequently-delivered content. If you need to reduce server load and improve delivery speed of your content, it is definitely worth exploring the benefits offered by web cache software.
To provide an insight into the quality of software available for Linux, I feature below 5 excellent open source web proxy tools. Some of the them are full-featured; a couple of them have very modest resource needs.
### Squid ###
Squid is a high-performance open source proxy caching server and web cache daemon. It supports FTP, Internet Gopher, HTTPS, TLS, and SSL. It handles all requests in a single, non-blocking, I/O-driven process over IPv4 or IPv6.
Squid consists of a main server program squid, a Domain Name System lookup program dnsserver, some optional programs for rewriting requests and performing authentication, together with some management and client tools.
Squid offers a rich access control, authorization and logging environment to develop web proxy and content serving applications.
Features include:
- Web proxy:
- Caching to reduce access time and bandwidth use
- Keeps meta data and especially hot objects cached in RAM
- Caches DNS lookups
- Supports non-blocking DNS lookups
- Implements negative chacking of failed requests
- Squid caches can be arranged in a hierarchy or mesh for additional bandwidth savings
- Enforce site-usage policies with extensive access controls
- Anonymize connections, such as disabling or changing specific header fields in a client's HTTP request
- Reverse proxy
- Media-range limitations
- Supports SSL
- Support for IPv6
- Error Page Localization - error pages presented by Squid may now be localized per-request to match the visitors local preferred language
- Connection Pinning (for NTLM Auth Passthrough) - a workaround which permits Web servers to use Microsoft NTLM Authentication instead of HTTP standard authentication through a web proxy
- Quality of Service (QoS) Flow support
- Select a TOS/Diffserv value to mark local hits
- Select a TOS/Diffserv value to mark peer hits
- Selectively mark only sibling or parent requests
- Allows any HTTP response towards clients to have the TOS value of the response coming from the remote server preserved
- Mask certain bits in the TOS received from the remote server, before copying the value to the TOS send towards clients
- SSL Bump (for HTTPS Filtering and Adaptation) - Squid-in-the-middle decryption and encryption of CONNECT tunneled SSL traffic, using configurable client- and server-side certificates
- eCAP Adaptation Module support
- ICAP Bypass and Retry enhancements - ICAP is now extended with full bypass and dynamic chain routing to handle multiple adaptation services.
- ICY streaming protocol support - commonly known as SHOUTcast multimedia streams
- Dynamic SSL Certificate Generation
- Support for the Internet Content Adaptation Protocol (ICAP)
- Full request logging
- Anonymize connections
- Website: [www.squid-cache.org][1]
- Developer: National Laboratory for Applied Networking Research (NLANR) and Internet volunteers
- License: GNU GPL v2
- Version Number: 4.0.1
### Privoxy ###
Privoxy (Privacy Enhancing Proxy) is a non-caching Web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. Privoxy has a flexible configuration and can be customized to suit individual needs and tastes. It supports both stand-alone systems and multi-user networks.
Privoxy uses the concept of actions in order to manipulate the data stream between the browser and remote sites.
Features include:
- Highly configurable - completely personalize your installation
- Ad blocking
- Cookie management
- Supports "Connection: keep-alive". Outgoing connections can be kept alive independently from the client
- Supports IPv6
- Tagging which allows to change the behaviour based on client and server headers
- Run as an "intercepting" proxy
- Sophisticated actions and filters for manipulating both server and client headers
- Can be chained with other proxies
- Integrated browser-based configuration and control utility. Browser-based tracing of rule and filter effects. Remote toggling
- Web page filtering (text replacements, removes banners based on size, invisible "web-bugs" and HTML annoyances, etc)
- Modularized configuration that allows for standard settings and user settings to reside in separate files, so that installing updated actions files won't overwrite individual user settings
- Support for Perl Compatible Regular Expressions in the configuration files, and a more sophisticated and flexible configuration syntax
- GIF de-animation
- Bypass many click-tracking scripts (avoids script redirection)
- User-customizable HTML templates for most proxy-generated pages (e.g. "blocked" page)
- Auto-detection and re-reading of config file changes
- Most features are controllable on a per-site or per-location basis
- Website: [www.privoxy.org][2]
- Developer: Fabian Keil (lead developer), David Schmidt, and many other contributors
- License: GNU GPL v2
- Version Number: 3.4.2
### Varnish Cache ###
Varnish Cache is a web accelerator written with performance and flexibility in mind. It's modern architecture offers significantly better performance. It typically speeds up delivery with a factor of 300 - 1000x, depending on your architecture. Varnish stores web pages in memory so the web servers do not have to create the same web page repeatedly. The web server only recreates a page when it is changed. When content is served from memory this happens a lot faster then anything.
Additionally Varnish can serve web pages much faster then any application server is capable of - giving the website a significant speed enhancement.
For a cost-effective configuration, Varnish Cache uses between 1-16GB and a SSD disk.
Features include:
- Modern design
- VCL - a very flexible configuration language. The VCL configuration is translated to C, compiled, loaded and executed giving flexibility and speed
- Load balancing using both a round-robin and a random director, both with a per-backend weighting
- DNS, Random, Hashing and Client IP based Directors
- Load balance between multiple backends
- Support for Edge Side Includes including stitching together compressed ESI fragments
- Heavily threaded
- URL rewriting
- Cache multiple vhosts with a single Varnish
- Log data is stored in shared memory
- Basic health-checking of backends
- Graceful handling of "dead" backends
- Administered by a command line interface
- Use In-line C to extend Varnish
- Can be used on the same system as Apache
- Run multiple Varnish on the same system
- Support for HAProxy's PROXY protocol. This is a protocol adds a small header on each incoming TCP connection that describes who the real client is, added by (for example) an SSL terminating process
- Warm and cold VCL states
- Plugin support with Varnish Modules, called VMODs
- Backends defined through VMODs
- Gzip Compression and Decompression
- HTTP Streaming Pass & Fetch
- Saint and Grace mode. Saint Mode allows for unhealthy backends to be blacklisted for a period of time, preventing them from serving traffic when using Varnish as a load balancer. Grace mode allows Varnish to serve an expired version of a page or other asset in cases where Varnish is unable to retrieve a healthy response from the backend
- Experimental support for Persistent Storage, without LRU eviction
- Website: [www.varnish-cache.org][3]
- Developer: Varnish Software
- License: FreeBSD
- Version Number: 4.1.0
### Polipo ###
Polipo is an open source caching HTTP proxy which has modest resource needs.
It listens to requests for web pages from your browser and forwards them to web servers, and forwards the servers replies to your browser. In the process, it optimises and cleans up the network traffic. It is similar in spirit to WWWOFFLE, but the implementation techniques are more like the ones ones used by Squid.
Polipo aims at being a compliant HTTP/1.1 proxy. It should work with any web site that complies with either HTTP/1.1 or the older HTTP/1.0.
Features include:
- HTTP 1.1, IPv4 & IPv6, traffic filtering and privacy-enhancement
- Uses HTTP/1.1 pipelining if it believes that the remote server supports it, whether the incoming requests are pipelined or come in simultaneously on multiple connections
- Cache the initial segment of an instance if the download has been interrupted, and, if necessary, complete it later using Range requests
- Upgrade client requests to HTTP/1.1 even if they come in as HTTP/1.0, and up- or downgrade server replies to the client's capabilities
- Complete support for IPv6 (except for scoped (link-local) addresses)
- Use as a bridge between the IPv4 and IPv6 Internets
- Content-filtering
- Can use a technique known as Poor Man's Multiplexing to reduce latency
- SOCKS 4 and SOCKS 5 protocol support
- HTTPS proxying
- Behaves as a transparent proxy
- Run Polipo together with Privoxy or tor
- Website: [www.pps.univ-paris-diderot.fr/~jch/software/polipo/][4]
- Developer: Juliusz Chroboczek, Christopher Davis
- License: MIT License
- Version Number: 1.1.1
### Tinyproxy ###
Tinyproxy is a lightweight open source web proxy daemon. It is designed to be fast and yet small. It is useful for cases such as embedded deployments where a full featured HTTP proxy is required, but the system resources for a larger proxy are unavailable.
Tinyproxy is very useful in a small network setting, where a larger proxy would either be too resource intensive, or a security risk. One of the key features of Tinyproxy is the buffering connection concept. In effect, Tinyproxy will buffer a high speed response from a server, and then relay it to a client at the highest speed the client will accept. This feature greatly reduces the problems with sluggishness on the net.
Features:
- Easy to modify
- Anonymous mode - allows specification of individual HTTP headers that should be allowed through, and which should be blocked
- HTTPS support - Tinyproxy allows forwarding of HTTPS connections without modifying traffic in any way through the CONNECT method
- Remote monitoring - access proxy statistics from afar, letting you know exactly how busy the proxy is
- Load average monitoring - configure software to refuse connections after the server load reaches a certain point
- Access control - configure to only allow connections from certain subnets or IP addresses
- Secure - run without any special privileges, thus minimizing the chance of system compromise
- URL based filtering - allows domain and URL-based black- and whitelisting
- Transparent proxying - configure as a transparent proxy, so that a proxy can be used without any client-side configuration
- Proxy chaining - use an upstream proxy server for outbound connections, instead of direct connections to the target server, creating a so-called proxy chain
- Privacy features - restrict both what data comes to your web browser from the HTTP server (e.g., cookies), and to restrict what data is allowed through from your web browser to the HTTP server (e.g., version information)
- Small footprint - the memory footprint is about 2MB with glibc, and the CPU load increases linearly with the number of simultaneous connections (depending on the speed of the connection). Tinyproxy can be run on an old machine without affecting performance
- Website: [banu.com/tinyproxy][5]
- Developer: Robert James Kaes and contributors
- License: GNU GPL v2
- Version Number: 1.8.3
--------------------------------------------------------------------------------
via: http://www.linuxlinks.com/article/20151101020309690/WebDelivery.html
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[1]:http://www.squid-cache.org/
[2]:http://www.privoxy.org/
[3]:https://www.varnish-cache.org/
[4]:http://www.pps.univ-paris-diderot.fr/%7Ejch/software/polipo/
[5]:https://banu.com/tinyproxy/

Some files were not shown because too many files have changed in this diff Show More