diff --git a/README.md b/README.md index 0caee9b7a8..02fc5a8227 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,26 @@ LCTT的组成 请阅读[WIKI](https://github.com/LCTT/TranslateProject/wiki)。 +历史 +------------------------------- + +* 2013/09/10 倡议并得到了大家的积极响应,成立翻译组。 +* 2013/09/11 采用github进行翻译协作,并开始进行选题翻译。 +* 2013/09/16 公开发布了翻译组成立消息后,又有新的成员申请加入了。并从此建立见习成员制度。 +* 2013/09/24 鉴于大家使用Github的水平不一,容易导致主仓库的一些错误,因此换成了常规的fork+PR的模式来进行翻译流程。 +* 2013/10/11 根据对LCTT的贡献,划分了Core Translators组,最先的加入成员是vito-L和tinyeyeser。 +* 2013/10/12 取消对LINUX.CN注册用户的依赖,在QQ群内、文章内都采用github的注册ID。 +* 2013/10/18 正式启动man翻译计划。 +* 2013/11/10 举行第一次北京线下聚会。 +* 2014/01/02 增加了Core Translators 成员: geekpi。 +* 2014/05/04 更换了新的QQ群:198889102 +* 2014/05/16 增加了Core Translators 成员: will.qian、vizv。 +* 2014/06/18 由于GOLinux令人惊叹的翻译速度和不错的翻译质量,升级为Core Translators成员。 +* 2014/09/09 LCTT 一周年,做一年[总结](http://linux.cn/article-3784-1.html)。并将曾任 CORE 的成员分组为 Senior,以表彰他们的贡献。 +* 2014/10/08 提升bazz2为Core Translators成员。 +* 2014/11/04 提升zpl1025为Core Translators成员。 +* 2014/12/25 提升runningwater为Core Translators成员。 + 活跃成员 ------------------------------- @@ -119,21 +139,3 @@ LCTT的组成 谢谢大家的支持! -历史 -------------------------------- - -* 2013/09/10 倡议并得到了大家的积极响应,成立翻译组。 -* 2013/09/11 采用github进行翻译协作,并开始进行选题翻译。 -* 2013/09/16 公开发布了翻译组成立消息后,又有新的成员申请加入了。并从此建立见习成员制度。 -* 2013/09/24 鉴于大家使用Github的水平不一,容易导致主仓库的一些错误,因此换成了常规的fork+PR的模式来进行翻译流程。 -* 2013/10/11 根据对LCTT的贡献,划分了Core Translators组,最先的加入成员是vito-L和tinyeyeser。 -* 2013/10/12 取消对LINUX.CN注册用户的依赖,在QQ群内、文章内都采用github的注册ID。 -* 2013/10/18 正式启动man翻译计划。 -* 2013/11/10 举行第一次北京线下聚会。 -* 2014/01/02 增加了Core Translators 成员: geekpi。 -* 2014/05/04 更换了新的QQ群:198889102 -* 2014/05/16 增加了Core Translators 成员: will.qian、vizv。 -* 2014/06/18 由于GOLinux令人惊叹的翻译速度和不错的翻译质量,升级为Core Translators成员。 -* 2014/09/09 LCTT 一周年,做一年[总结](http://linux.cn/article-3784-1.html)。并将曾任 CORE 的成员分组为 Senior,以表彰他们的贡献。 -* 2014/10/08 提升bazz2为Core Translators成员。 -* 2014/11/04 提升zpl1025为Core Translators成员。 \ No newline at end of file diff --git a/translated/talk/20140910 Why Do Some Old Programming Languages Never Die.md b/published/20140910 Why Do Some Old Programming Languages Never Die.md similarity index 68% rename from translated/talk/20140910 Why Do Some Old Programming Languages Never Die.md rename to published/20140910 Why Do Some Old Programming Languages Never Die.md index 5ed8a5513d..09c30aa5f7 100644 --- a/translated/talk/20140910 Why Do Some Old Programming Languages Never Die.md +++ b/published/20140910 Why Do Some Old Programming Languages Never Die.md @@ -1,16 +1,16 @@ 为什么一些古老的编程语言不会消亡? ================================================================================ -> 我们中意于我们所知道的。 +> 我们钟爱我们已知的。 ![](http://a4.files.readwrite.com/image/upload/c_fill,h_900,q_70,w_1600/MTIzMDQ5NjY0MTUxMjU4NjM2.jpg) 当今许多知名的编程语言已经都非常古老了。PHP 语言20年、Python 语言23年、HTML 语言21年、Ruby 语言和 JavaScript 语言已经19年,C 语言更是高达42年之久。 -这是没人能预料得到的,即使是计算机科学家 [Brian Kernighan][1] 也一样。他是写著第一本关于 C 语言的作者之一,只到今天这本书还在印刷着。(C 语言本身的发明者 [Dennis Ritchie][2] 是 Kernighan 的合著者,他于 2011 年已辞世。) +这是没人能预料得到的,即使是计算机科学家 [Brian Kernighan][1] 也一样。他是写著第一本关于 C 语言的作者之一,直到今天这本书还在印刷着。(C 语言本身的发明者 [Dennis Ritchie][2] 是 Kernighan 的合著者,他于 2011 年已辞世。) “我依稀记得早期跟编辑们的谈话,告诉他们我们已经卖出了5000册左右的量,”最近采访 Kernighan 时他告诉我说。“我们设法做的更好。我没有想到的是在2014年的教科书里学生仍然在使用第一个版本的书。” -关于 C 语言的持久性特别显著的就是 Google 开发出了新的语言 Go,解决同一问题比用 C 语言更有效率。 +关于 C 语言的持久性特别显著的就是 Google 开发出了新的语言 Go,解决同一问题比用 C 语言更有效率。不过,我仍然很难想象 Go 能彻底杀死 C,无论它有多么好。 “大多数语言并不会消失或者至少很大一部分用户承认它们不会消失,”他说。“C 语言仍然在一定的领域独领风骚,所以它很接地气。” @@ -20,13 +20,13 @@ 分别来自普林斯顿大学和加州大学伯克利分校的研究者 Ari Rabkin 和 Leo Meyerovich 花费了两年时间来研究解决上面的问题。他们的研究报告,[《编程语言使用情况实例分析》][3],记录了对超过 200,000 个 Sourceforge 项目和超过 13,000 个程序员投票结果的分析。 -他们主要的发现呢?大多数时候程序员选择的编程语言都是他们所熟悉的。 +他们主要的发现是什么呢?大多数时候程序员选择的编程语言都是他们所熟悉的。 -“存在着我们使用的语言是因为我们经常使用他们,” Rabkin 告诉我。“例如:天文学家就经常使用 IDL [交互式数据语言]来开发他们的计算机程序,并不是因为它具有什么特殊的星级功能或其它特点,而是因为用它形成习惯了。他们已经用些语言构建出很优秀的程序了,并且想保持原状。” +“这些我们使用的语言还继续存在是因为我们经常使用他们,” Rabkin 告诉我。“例如:天文学家就经常使用 IDL [交互式数据语言]来开发他们的计算机程序,并不是因为它具有什么特殊的亮点功能或其它特点,而是因为用它形成习惯了。他们已经用些语言构建出很优秀的程序了,并且想保持原状。” -换句话说,它部分要归功于创建其的语言的的知名度仍保留较大劲头。当然,这并不意味着流行的语言不会变化。Rabkin 指出我们今天在使用的 C 语言就跟 Kernighan 第一次创建时的一点都不同,那时的 C 编译器跟现代的也不是完全兼容。 +换句话说,它部分要归功于这些语言所创立的知名度仍保持较高。当然,这并不意味着流行的语言不会变化。Rabkin 指出我们今天在使用的 C 语言就跟 Kernighan 第一次创建时的一点都不同,那时的 C 编译器跟现代的也不是完全兼容。 -“有一个古老的,关于工程师的笑话。工程师被问到哪一种编程语言人们会使用30年,他说,‘我不知道,但它总会被叫做 Fortran’,” Rabkin 说到。“长期存活的语言跟他们在70年代和80年代刚设计出来的时候不一样了。人们通常都是在上面增加功能,而不会删除功能,因为要保持向后兼容,但有些功能会被修正。” +“有一个古老的,关于工程师的笑话。工程师被问到哪一种编程语言人们会使用30年,他说,‘我不知道,但它总会被叫做 Fortran’,” Rabkin 说到。“长期存活的语言跟他们在70年代和80年代刚设计出来的时候不太一样了。人们通常都是在上面增加功能,而不会删除功能,因为要保持向后兼容,但有些功能会被修正。” 向后兼容意思就是当语言升级后,程序员不仅可以使用升级语言的新特性,也不用回去重写已经实现的老代码块。老的“遗留代码”的语法规则已经不用了,但舍弃是要花成本的。只要它们存在,我们就有理由相信相关的语言也会存在。 @@ -34,17 +34,17 @@ 遗留代码指的是用过时的源代码编写的程序或部分程序。想想看,一个企业或工程项目的关键程序功能部分是用没人维护的编程语言写出来的。因为它们仍起着作用,用现代的源代码重写非常困难或着代价太高,所以它们不得不保留下来,即使其它部分的代码都变动了,程序员也必须不断折腾以保证它们能正常工作。 -任何的编程语言,存在了超过几十年时间都具有某种形式的遗留代码问题, PHP 也不加例外。PHP 是一个很有趣的例子,因为它的遗留代码跟现在的代码明显不同,支持者或评论家都承认这是一个巨大的进步。 +任何编程语言,存在了超过几十年时间都具有某种形式的遗留代码问题, PHP 也不例外。PHP 是一个很有趣的例子,因为它的遗留代码跟现在的代码明显不同,支持者或评论家都承认这是一个巨大的进步。 -Andi Gutmans 是 已经成为 PHP4 的标准编译器的 Zend Engine 的发明者之一。Gutmans 说他和搭档本来是想改进完善 PHP3 的,他们的工作如此成功,以至于 PHP 的原发明者 Rasmus Lerdorf 也加入他们的项目。结果就成为了 PHP4 和他的后续者 PHP5 的编译器。 +Andi Gutmans 是已经成为 PHP4 的标准编译器的 Zend Engine 的发明者之一。Gutmans 说他和搭档本来是想改进完善 PHP3 的,他们的工作如此成功,以至于 PHP 的原发明者 Rasmus Lerdorf 也加入他们的项目。结果就成为了 PHP4 和他的后续者 PHP5 的编译器。 -因此,当今的 PHP 与它的祖先即最开始的 PHP 是完全不同的。然而,在 Gutmans 看来,在用古老的 PHP 语言版本写的遗留代码的地方一直存在着偏见以至于上升到整个语言的高度。比如 PHP 充满着安全漏洞或没有“集群”功能来支持大规模的计算任务等概念。 +因此,当今的 PHP 与它的祖先——即最开始的 PHP 是完全不同的。然而,在 Gutmans 看来,在用古老的 PHP 语言版本写的遗留代码的地方一直存在着偏见以至于上升到整个语言的高度。比如 PHP 充满着安全漏洞或没有“集群”功能来支持大规模的计算任务等概念。 “批评 PHP 的人们通常批评的是在 1998 年时候的 PHP 版本,”他说。“这些人都没有与时俱进。当今的 PHP 已经有了很成熟的生态系统了。” 如今,Gutmans 说,他作为一个管理者最重要的事情就是鼓励人们升级到最新版本。“PHP有个很大的社区,足以支持您的遗留代码的问题,”他说。“但总的来说,我们的社区大部分都在 PHP5.3 及以上的。” -问题是,任何语言用户都不会全部升级到最新版本。这就是为什么 Python 用户仍在使用 2000 年发布的 Python 2,而不是使用 2008 年发布的 Python 3 的原因。甚至是已经六年了喜欢 Google 的大多数用户仍没有升级。这种情况是多种原因造成的,但它使得很多开发者在承担风险。 +问题是,任何语言用户都不会全部升级到最新版本。这就是为什么 Python 用户仍在使用 2000 年发布的 Python 2,而不是使用 2008 年发布的 Python 3 的原因。甚至在六年后,大多数像 Google 这样的用户仍没有升级。这种情况是多种原因造成的,但它使得很多开发者在承担风险。 “任何东西都不会消亡的,”Rabkin 说。“任何语言的遗留代码都会一直存在。重写的代价是非常高昂的,如果它们不出问题就不要去改动。” @@ -54,15 +54,15 @@ Andi Gutmans 是 已经成为 PHP4 的标准编译器的 Zend Engine 的发明 > 有一件事使我们被深深震撼到了。这事最重要的就是我们给人们按年龄分组,然后询问他们知道多少编程语言。我们主观的认为随着年龄的增长知道的会越来越多,但实际上却不是,25岁年龄组和45岁年龄组知道的语言数目是一样的。几个反复询问的问题这里持续不变的。您知道一种语言的几率并不与您的年龄挂钩。 -换句话说,不仅仅里年长的开发者坚持传统,年轻的程序员会承认并采用古老的编程语言作为他们的第一们语言。这可能是因为这些语言具有很有趣的开发库及功能特点,也可能是因为在社区里开发者都是一个组的都喜爱这种开发语言。 +换句话说,不仅仅年长的开发者坚持传统,年轻的程序员也会认可并采用古老的编程语言作为他们的第一们语言。这可能是因为这些语言具有很有趣的开发库及功能特点,也可能是因为在社区里开发者都是喜爱这种开发语言的一伙人。 -“在全球程序员关注的语言的数量是有定数的,” Rabkin 说。“如果一们语言表现出足够独特的价值,人们将会学习和使用它。如果是和您交流代码和知识的的某个人分享一门编程语言,您将会学习它。因此,例如,只要那些开发库是 Python 库和社区特长是 Python 语言的经验,那么 Python 将会大行其道。” +“在全球程序员关注的语言的数量是有定数的,” Rabkin 说。“如果一们语言表现出足够独特的价值,人们将会学习和使用它。如果是和您交流代码和知识的的某个人分享一门编程语言,您将会学习它。因此,例如,只要那些 Python 库存在、 社区也对 Python 语言很有经验的话,那么 Python 仍将会大行其道。” -研究人员发现关于语言实现的功能,社区是一个巨大的因素。虽然像 Python 和 Ruby 这样的高级语言并没有太大的差别,但,例如程序员就更容易觉得一种比另一种优越。 +研究人员发现关于语言实现的功能,社区是一个巨大的因素。虽然像 Python 和 Ruby 这样的高级语言并没有太大的差别,但,程序员总是容易觉得一种比另一种优越。 -“Rails 不一定要用 Ruby 语言编写,但它用了,这就是社会因素在起作用,” Rabkin 说。“例如,复活 Objective-C 语言这件事就是苹果的工程师团队说‘让我们使用它吧,’ 他们就没得选择了。” +“Rails 不一定要用 Ruby 语言编写,但它用了,这就是社区因素在起作用,” Rabkin 说。“例如,复活 Objective-C 语言这件事就是苹果的工程师团队说‘让我们使用它吧,’ 他们就没得选择了。” -通观社会的影响及老旧代码这些问题,我们发现最古老的和最新的计算机语言都有巨大的惰性。Go 语言怎么样能超越 C 语言呢?如果有合适的人或公司说它超越它就超越。 +通观社会的影响及老旧代码这些问题,我们发现最古老的和最新的计算机语言都有巨大的惰性。Go 语言怎么样才能超越 C 语言呢?如果有合适的人或公司说它超越它就超越。 “它归结为谁传播的更好谁就好,” Rabkin 说。 @@ -74,7 +74,7 @@ via: http://readwrite.com/2014/09/02/programming-language-coding-lifetime 作者:[Lauren Orsini][a] 译者:[runningwater](https://github.com/runningwater) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/translated/talk/20140915 Make Downloading Files Effortless.md b/published/20140915 Make Downloading Files Effortless.md similarity index 83% rename from translated/talk/20140915 Make Downloading Files Effortless.md rename to published/20140915 Make Downloading Files Effortless.md index eb7b27e8bc..e4d46564cd 100644 --- a/translated/talk/20140915 Make Downloading Files Effortless.md +++ b/published/20140915 Make Downloading Files Effortless.md @@ -1,27 +1,26 @@ 让下载更方便 ================================================================================ -下载管理器是一个电脑程序,专门处理下载文件,优化带宽占用,以及让下载更有条理等任务。有些网页浏览器,例如Firefox,也集成了一个下载管理器作为功能,但是它们的方式还是没有专门的下载管理器(或者浏览器插件)那么专业,没有最佳地使用带宽,也没有好用的文件管理功能。 +下载管理器是一个电脑程序,专门处理下载文件,优化带宽占用,以及让下载更有条理等任务。有些网页浏览器,例如Firefox,也集成了一个下载管理器作为功能,但是它们的使用方式还是没有专门的下载管理器(或者浏览器插件)那么专业,没有最佳地使用带宽,也没有好用的文件管理功能。 对于那些经常下载的人,使用一个好的下载管理器会更有帮助。它能够最大化下载速度(加速下载),断点续传以及制定下载计划,让下载更安全也更有价值。下载管理器已经没有之前流行了,但是最好的下载管理器还是很实用,包括和浏览器的紧密结合,支持类似YouTube的主流网站,以及更多。 有好几个能在Linux下工作都非常优秀的开源下载管理器,以至于让人无从选择。我整理了一个摘要,是我喜欢的下载管理器,以及Firefox里的一个非常好用的下载插件。这里列出的每一个程序都是开源许可发布的。 ----------- -![](http://www.linuxlinks.com/portal/content2/png/uGet.png) +###uGet ![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-uGet.png) uGet是一个轻量级,容易使用,功能完备的开源下载管理器。uGet允许用户从不同的源并行下载来加快速度,添加文件到下载序列,暂停或继续下载,提供高级分类管理,和浏览器集成,监控剪贴板,批量下载,支持26种语言,以及其他许多功能。 -uGet是一个成熟的软件;保持开发超过11年。在这个时间里,它发展成一个非常多功能的下载管理器,拥有一套很高价值的功能集,还保持了易用性。 +uGet是一个成熟的软件;持续开发超过了11年。在这段时间里,它发展成一个非常多功能的下载管理器,拥有一套很高价值的功能集,还保持了易用性。 uGet是用C语言开发的,使用了cURL作为底层支持,以及应用库libcurl。uGet有非常好的平台兼容性。它一开始是Linux系统下的项目,但是被移植到在Mac OS X,FreeBSD,Android和Windows平台运行。 #### 功能点: #### - 容易使用 -- 下载队列可以让下载任务按任意多或少或你希望的数量同时进行。 +- 下载队列可以让下载任务按任意数量或你希望的数量同时进行。 - 断点续传 - 默认分类 - 完美实现的剪贴板监控功能 @@ -43,19 +42,19 @@ uGet是用C语言开发的,使用了cURL作为底层支持,以及应用库li - 支持GnuTLS - 支持26种语言,包括:阿拉伯语,白俄罗斯语,简体中文,繁体中文,捷克语,丹麦语,英语(默认),法语,格鲁吉亚语,德语,匈牙利语,印尼语,意大利语,波兰语,葡萄牙语(巴西),俄语,西班牙语,土耳其语,乌克兰语,以及越南语。 +--- - 网站:[ugetdm.com][1] - 开发人员:C.H. Huang and contributors - 许可:GNU LGPL 2.1 - 版本:1.10.5 ----------- -![](http://www.linuxlinks.com/portal/content2/png/DownThemAll%21.png) +###DownThemAll! ![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-DownThemAll%21.png) -DownThemAll!是一个小巧的,可靠的以及易用的,开源下载管理器/加速器,是Firefox的一个组件。它可以让用户下载一个页面上所有链接和图片以及更多功能。它可以让用户完全控制下载任务,随时分配下载速度以及同时下载的任务数量。通过使用Metalinks或者手动添加镜像的方式,可以同时从不同的服务器下载同一个文件。 +DownThemAll!是一个小巧可靠的、易用的开源下载管理器/加速器,是Firefox的一个组件。它可以让用户下载一个页面上所有链接和图片,还有更多功能。它可以让用户完全控制下载任务,随时分配下载速度以及同时下载的任务数量。通过使用Metalinks或者手动添加镜像的方式,可以同时从不同的服务器下载同一个文件。 DownThemAll会根据你要下载的文件大小,切割成不同的部分,然后并行下载。 @@ -69,6 +68,7 @@ DownThemAll会根据你要下载的文件大小,切割成不同的部分,然 - 高级重命名选项 - 暂停和继续下载任务 +--- - 网站:[addons.mozilla.org/en-US/firefox/addon/downthemall][2] - 开发人员:Federico Parodi, Stefano Verna, Nils Maier @@ -77,13 +77,13 @@ DownThemAll会根据你要下载的文件大小,切割成不同的部分,然 ---------- -![](http://www.linuxlinks.com/portal/content2/png/JDownloader.png) +###JDownloader ![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-JDownloader.png) JDownloader是一个免费,开源的下载管理工具,拥有一个大型社区的开发者支持,让下载更简单和快捷。用户可以开始,停止或暂停下载,设置带宽限制,自动解压缩包,以及更多功能。它提供了一个容易扩展的框架。 -JDownloader简化了从一键下载网站下载文件。它还支持从不同并行资源下载,手势识别,自动文件解压缩以及更多功能。另外,还支持许多“加密链接”网站-所以你只需要复制粘贴“加密的”链接,然后JDownloader会处理剩下的事情。JDownloader还能导入CCF,RSDF和DLC文件。 +JDownloader简化了从一键下载网站下载文件。它还支持从不同并行资源下载、手势识别、自动文件解压缩以及更多功能。另外,还支持许多“加密链接”网站-所以你只需要复制粘贴“加密的”链接,然后JDownloader会处理剩下的事情。JDownloader还能导入CCF,RSDF和DLC文件。 #### 功能点: #### @@ -98,6 +98,7 @@ JDownloader简化了从一键下载网站下载文件。它还支持从不同并 - 网页更新 - 集成包管理器支持额外模块(例如,Webinterface,Shutdown) +--- - 网站:[jdownloader.org][3] - 开发人员:AppWork UG @@ -106,11 +107,11 @@ JDownloader简化了从一键下载网站下载文件。它还支持从不同并 ---------- -![](http://www.linuxlinks.com/portal/content2/png/FreeRapidDownloader.png) +###FreeRapid Downloader ![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-FreeRapidDownloader.png) -FreeRapid Downloader是一个易用的开源下载程序,支持从Rapidshare,Youtube,Facebook,Picasa和其他文件分享网站下载。他的下载引擎基于一些插件,所以可以从特殊站点下载。 +FreeRapid Downloader是一个易用的开源下载程序,支持从Rapidshare,Youtube,Facebook,Picasa和其他文件分享网站下载。他的下载引擎基于一些插件,所以可以从那些特别的站点下载。 对于需要针对特定文件分享网站的下载管理器用户来说,FreeRapid Downloader是理想的选择。 @@ -133,6 +134,7 @@ FreeRapid Downloader使用Java语言编写。需要至少Sun Java 7.0版本才 - 支持多国语言:英语,保加利亚语,捷克语,芬兰语,葡萄牙语,斯洛伐克语,匈牙利语,简体中文,以及其他 - 支持超过700个站点 +--- - 网站:[wordrider.net/freerapid/][4] - 开发人员:Vity and contributors @@ -141,7 +143,7 @@ FreeRapid Downloader使用Java语言编写。需要至少Sun Java 7.0版本才 ---------- -![](http://www.linuxlinks.com/portal/content2/png/FlashGot.png) +###FlashGot ![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-FlashGot.png) @@ -151,7 +153,7 @@ FlashGot把所支持的所有下载管理器统一成Firefox中的一个下载 #### 功能点: #### -- Linux下支持:Aria, Axel Download Accelerator, cURL, Downloader 4 X, FatRat, GNOME Gwget, FatRat, JDownloader, KDE KGet, pyLoad, SteadyFlow, uGet, wxDFast, 和wxDownload Fast +- Linux下支持:Aria, Axel Download Accelerator, cURL, Downloader 4 X, FatRat, GNOME Gwget, FatRat, JDownloader, KDE KGet, pyLoad, SteadyFlow, uGet, wxDFast 和 wxDownload Fast - 支持图库功能,可以帮助把原来分散在不同页面的系列资源,整合到一个所有媒体库页面中,然后可以轻松迅速地“下载所有” - FlashGot Link会使用默认下载管理器下载当前鼠标选中的链接 - FlashGot Selection @@ -160,12 +162,13 @@ FlashGot把所支持的所有下载管理器统一成Firefox中的一个下载 - FlashGot Media - 抓取页面里所有链接 - 抓取所有标签栏的所有链接 -- 链接过滤(例如,只下载指定类型文件) +- 链接过滤(例如只下载指定类型文件) - 在网页上抓取点击所产生的所有链接 - 支持从大多数链接保护和文件托管服务器直接和批量下载 - 隐私选项 - 支持国际化 +--- - 网站:[flashgot.net][5] - 开发人员:Giorgio Maone @@ -178,7 +181,7 @@ via: http://www.linuxlinks.com/article/20140913062041384/DownloadManagers.html 作者:Frazer Kline 译者:[zpl1025](https://github.com/zpl1025) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/translated/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md b/published/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md similarity index 95% rename from translated/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md rename to published/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md index 712303ed0a..dcde85a4b8 100644 --- a/translated/tech/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md +++ b/published/20141118 Linux FAQs with Answers--How to install phpMyAdmin on CentOS.md @@ -1,4 +1,4 @@ -Linux问答时间--如何在CentOS上安装phpMyAdmin +Linux有问必答:如何在CentOS上安装phpMyAdmin ================================================================================ > **问题**:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库。在CentOS上安装phpMyAdmin的最佳方法是什么? @@ -108,7 +108,7 @@ phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工 ### 测试phpMyAdmin ### -测试phpMyAdmin是否设置成功,访问这个页面:http:///phpmyadmin +测试phpMyAdmin是否设置成功,访问这个页面:http://\/phpmyadmin ![](https://farm6.staticflickr.com/5606/15550758749_0f7ab66b5b_z.jpg) @@ -153,14 +153,14 @@ phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工 via: http://ask.xmodulo.com/install-phpmyadmin-centos.html 译者:[ZTinoZ](https://github.com/ZTinoZ) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 [1]:http://xmodulo.com/set-web-based-database-management-system-adminer.html -[2]:http://xmodulo.com/install-lamp-stack-centos.html -[3]:http://xmodulo.com/install-lemp-stack-centos.html -[4]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html +[2]:http://linux.cn/article-1567-1.html +[3]:http://linux.cn/article-4314-1.html +[4]:http://linux.cn/article-2324-1.html [5]: [6]: [7]: diff --git a/translated/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md b/published/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md similarity index 87% rename from translated/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md rename to published/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md index ab84c499d8..e05e1f740f 100644 --- a/translated/tech/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md +++ b/published/20141119 10 SCP Commands to Transfer Files or Folders in Linux.md @@ -1,6 +1,6 @@ -Linux的十条SCP传输命令 +十个 SCP 传输命令例子 ================================================================================ -Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。在**SSH**命令中内置了一种叫**SCP**的命令,用来在服务器之间安全传输文件。 +Linux系统管理员应该很熟悉**CLI**环境,因为通常在Linux服务器中是不安装**GUI**的。**SSH**可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。在**SSH**命令中内置了一种叫**SCP**的命令,用来在服务器之间安全传输文件。 ![](http://www.tecmint.com/wp-content/uploads/2013/10/SCP-Commands.png) @@ -10,7 +10,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 scp source_file_name username@destination_host:destination_folder -**SCP**命令有很多参数供你使用,这里指的是每次都会用到的参数。 +**SCP**命令有很多可以使用的参数,这里指的是每次都会用到的参数。 ### 用-v参数来提供SCP进程的详细信息 ### @@ -53,7 +53,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ### 用-C参数来让文件传输更快 ### -有一个参数能让传输文件更快,就是“**-C**”参数,它的作用是不停压缩所传输的文件。它特别之处在于压缩是在网络中进行,当文件传到目标服务器时,它会变回压缩之前的原始大小。 +有一个参数能让传输文件更快,就是“**-C**”参数,它的作用是不停压缩所传输的文件。它特别之处在于压缩是在网络传输中进行,当文件传到目标服务器时,它会变回压缩之前的原始大小。 来看看这些命令,我们使用一个**93 Mb**的单一文件来做例子。 @@ -121,18 +121,18 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 看到了吧,压缩了文件之后,传输过程在**162.5**秒内就完成了,速度是不用“**-C**”参数的10倍。如果你要通过网络拷贝很多份文件,那么“**-C**”参数能帮你节省掉很多时间。 -有一点我们需要注意,这个压缩的方法不是适用于所有文件。当源文件已经被压缩过了,那就没办法再压缩了。诸如那些像**.zip**,**.rar**,**pictures**和**.iso**的文件,用“**-C**”参数就无效。 +有一点我们需要注意,这个压缩的方法不是适用于所有文件。当源文件已经被压缩过了,那就没办法再压缩很多了。诸如那些像**.zip**,**.rar**,**pictures**和**.iso**的文件,用“**-C**”参数就没什么意义。 ### 选择其它加密算法来加密文件 ### -**SCP**默认是用“**AES-128**”加密算法来加密文件的。如果你想要改用其它加密算法来加密文件,你可以用“**-c**”参数。我们来瞧瞧。 +**SCP**默认是用“**AES-128**”加密算法来加密传输的。如果你想要改用其它加密算法来加密传输,你可以用“**-c**”参数。我们来瞧瞧。 pungki@mint ~/Documents $ scp -c 3des Label.pdf mrarianto@202.x.x.x:. mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 282.5KB/s 00:13 -上述命令是告诉**SCP**用**3des algorithm**来加密文件。要注意这个参数是“**-c**”而不是“**-C**“。 +上述命令是告诉**SCP**用**3des algorithm**来加密文件。要注意这个参数是“**-c**”(小写)而不是“**-C**“(大写)。 ### 限制带宽使用 ### @@ -143,24 +143,24 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 50.3KB/s 01:13 -在“**-l**”参数后面的这个**400**值意思是我们给**SCP**进程限制了带宽为**50 KB/秒**。有一点要记住,带宽是以**千比特/秒** (**kbps**)表示的,**8 比特**等于**1 字节**。 +在“**-l**”参数后面的这个**400**值意思是我们给**SCP**进程限制了带宽为**50 KB/秒**。有一点要记住,带宽是以**千比特/秒** (**kbps**)表示的,而**8 比特**等于**1 字节**。 因为**SCP**是用**千字节/秒** (**KB/s**)计算的,所以如果你想要限制**SCP**的最大带宽只有**50 KB/s**,你就需要设置成**50 x 8 = 400**。 ### 指定端口 ### -通常**SCP**是把**22**作为默认端口。但是为了安全起见,你可以改成其它端口。比如说,我们想用**2249**端口,命令如下所示。 +通常**SCP**是把**22**作为默认端口。但是为了安全起见SSH 监听端口改成其它端口。比如说,我们想用**2249**端口,这种情况下就要指定端口。命令如下所示。 pungki@mint ~/Documents $ scp -P 2249 Label.pdf mrarianto@202.x.x.x:. mrarianto@202.x.x.x's password: Label.pdf 100% 3672KB 262.3KB/s 00:14 -确认一下写的是大写字母“**P**”而不是“**p**“,因为“**p**”已经被用来保留源文件的修改时间和模式。 +确认一下写的是大写字母“**P**”而不是“**p**“,因为“**p**”已经被用来保留源文件的修改时间和模式(LCTT 译注:和 ssh 命令不同了)。 ### 递归拷贝文件和文件夹 ### -有时我们需要拷贝文件夹及其内部的所有**文件** / **文件夹**,我们如果能用一条命令解决问题那就更好了。**SCP**用“**-r**”参数就能做到。 +有时我们需要拷贝文件夹及其内部的所有**文件**/**子文件夹**,我们如果能用一条命令解决问题那就更好了。**SCP**用“**-r**”参数就能做到。 pungki@mint ~/Documents $ scp -r documents mrarianto@202.x.x.x:. @@ -172,7 +172,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ### 禁用进度条和警告/诊断信息 ### -如果你不想从SCP中看到进度条和警告/诊断信息,你可以用“**-q**”参数来禁用它们,举例如下。 +如果你不想从SCP中看到进度条和警告/诊断信息,你可以用“**-q**”参数来静默它们,举例如下。 pungki@mint ~/Documents $ scp -q Label.pdf mrarianto@202.x.x.x:. @@ -207,7 +207,7 @@ Linux系统管理员应该很熟悉**CLI**环境,因为在Linux服务器中是 ### 选择不同的ssh_config文件 ### -对于经常在公司网络和公共网络之间切换的移动用户来说,一直改变SCP的设置显然是很痛苦的。如果我们能放一个不同的**ssh_config**文件来匹配我们的需求那就很好了。 +对于经常在公司网络和公共网络之间切换的移动用户来说,一直改变SCP的设置显然是很痛苦的。如果我们能放一个保存不同配置的**ssh_config**文件来匹配我们的需求那就很好了。 #### 以下是一个简单的场景 #### @@ -231,7 +231,7 @@ via: http://www.tecmint.com/scp-commands-examples/ 作者:[Pungki Arianto][a] 译者:[ZTinoZ](https://github.com/ZTinoZ) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/sources/share/20141224 Calife--A lightweight alternative to sudo.md b/sources/share/20141224 Calife--A lightweight alternative to sudo.md new file mode 100644 index 0000000000..194ac043cb --- /dev/null +++ b/sources/share/20141224 Calife--A lightweight alternative to sudo.md @@ -0,0 +1,70 @@ +Calife – A lightweight alternative to sudo +================================================================================ +Calife requests user's own password for becoming login (or root, if no login is provided), and switches to that user and group ID after verifying proper rights to do so. A shell is then executed. If calife is executed by root, no password is requested and a shell with the appropriate user ID is executed. + +The invoked shell is the user's own except when a shell is specified in the configuration file calife.auth. + +If "-" is specified on the command line, user's profile files are read as if it was a login shell. + +This is not the traditional behavior of su. + +Only users specified in calife.auth can use calife to become another one with this method. + +calife.auth is installed as /etc/calife.auth + +### Calife Features ### + +Here is an extensive list of features: + +you keep your environment variables and shell aliases intact +it has start and end of session logging +you can have a list of all permitted logins for each calife user. That way, you can give a user newsmaster’s rights without giving out the root password +you can specify a group in the configuration file instead of the logins of all administrators: Juste use @staff or %staff and all members of the staff group will have access to calife +calife can also be used to become users even if they have no home directory or even no shell. That’s very practical if you want to become uucp or even bin +you can make calife runs a specific system-wide script at the end of the session (to send a mailabout what was done as root for example) + +### Install calife in ubuntu ### + +Open the terminal and run the following command + + sudo apt-get install calife + +### Using Calife ### + +### Syntax ### + + calife [-] [login] + +Check calife manpage for more details + +-------------------------------------------------------------------------------- + +via: http://www.ubuntugeek.com/calife-a-lightweight-alternative-to-sudo.html + +作者:[ruchi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://www.ubuntugeek.com/author/ubuntufix +[1]: +[2]: +[3]: +[4]: +[5]: +[6]: +[7]: +[8]: +[9]: +[10]: +[11]: +[12]: +[13]: +[14]: +[15]: +[16]: +[17]: +[18]: +[19]: +[20]: \ No newline at end of file diff --git a/sources/talk/20141211 Was 2014 The Year of Linux Desktop.md b/sources/talk/20141211 Was 2014 The Year of Linux Desktop.md deleted file mode 100644 index 4cf00f5161..0000000000 --- a/sources/talk/20141211 Was 2014 The Year of Linux Desktop.md +++ /dev/null @@ -1,46 +0,0 @@ -Translating by ZTinoZ -Was 2014 "The Year of Linux Desktop"? -================================================================================ -> The Linux desktop is finally hitting all the right notes - -![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-2.jpg) - -![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-3.jpg) - -![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-4.jpg) - -![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-5.jpg) - -![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-6.jpg) - -**Linux has seen a lot of changes during 2014 and many users are saying that this was finally the year that really showed some real progress, but has it been enough to call it "the year of Linux desktop"?** - -This particular phrase, "the year of Linux desktop," has been recited like a mantra in the past couple of years and it's basically trying to mark all the progress registered until now in a way that makes sense. This kind of stuff hasn't happened so far and there is no precedent for the kind of growth we're witnessing, so it's easy to understand why Linux users might look at it from this perspective. - -Most software and hardware domains don't usually go through this kind of fast progress and things happen at a slower pace, but things have been wild even for people who have a better insight into the industry. It's hard, if not impossible, to pinpoint a certain moment or a certain event, but Linux development exploded and changed exponentially in the course of just a couple of years. - -### Year of the Linux desktop is an uncertain term ### - -There is no single authority which can decree that the year of the Linux desktop has arrived or that it has passed. We can only try to deduce it from what we've seen until now and it's actually up to the users. Some are more conservative and not too many things have changed for them, and others are more progressive and they just can't get enough. It really depends on what your outlook is. - -The spark that seems to have put everything in motion appears to be the launch of Steam for Linux, although we've seen some important movement of the Linux gaming scene before that became a reality. In any case, Valve is probably the catalyst of the resurgence of what we're seeing today. - -The Linux desktop has been in a kind of slow evolution in the past decade and nothing really changed. There have been a lot of innovations for sure, but the market share has remained almost the same. No matter how cool the desktop became or how many features Linux had well before anyone else, things have remained largely the same, and that includes the participation of companies making proprietary software. They largely ignored Linux. - -Now, more companies have shown interest in the Linux platform in the past year than they did in the last 10. Maybe it's a natural evolution and Valve had nothing to do with it, but Linux has finally reached a level where it can be used and understood by regular users, not just people fascinated by open source. - -The drivers are better, game studios are porting games now on a regular basis, applications and middleware that we never thought we would see on Linux have started to show up, the Linux kernel development has an incredible pace, the installation process for most of the major distros is usually trivial, and all of these are just the tip of the iceberg. - -So, when someone asks you if 2014 was the year of the Linux desktop, you can say yes. The Linux desktop totally ruled in 2014. - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/Was-2014-The-Year-of-Linux-Desktop-467036.shtml - -作者:[Silviu Stahie ][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[a]:http://news.softpedia.com/editors/browse/silviu-stahie diff --git a/sources/talk/20141224 The Curious Case of the Disappearing Distros.md b/sources/talk/20141224 The Curious Case of the Disappearing Distros.md new file mode 100644 index 0000000000..5efa2f4d1f --- /dev/null +++ b/sources/talk/20141224 The Curious Case of the Disappearing Distros.md @@ -0,0 +1,120 @@ +The Curious Case of the Disappearing Distros +================================================================================ +![](http://www.linuxinsider.com/ai/828896/linux-distros.jpg) + +"Linux is a big game now, with billions of dollars of profit, and it's the best thing since sliced bread, but corporations are taking control, and slowly but systematically, community distros are being killed," said Google+ blogger Alessandro Ebersol. "Linux is slowly becoming just like BSD, where companies use and abuse it and give very little in return." + +Well the holidays are pretty much upon us at last here in the Linux blogosphere, and there's nowhere left to hide. The next two weeks or so promise little more than a blur of forced social occasions and too-large meals, punctuated only -- for the luckier ones among us -- by occasional respite down at the Broken Windows Lounge. + +Perhaps that's why Linux bloggers seized with such glee upon the good old-fashioned mystery that came up recently -- delivered in the nick of time, as if on cue. + +"Why is the Number of Linux Distros Declining?" is the [question][1] posed over at Datamation, and it's just the distraction so many FOSS fans have been needing. + +"Until about 2011, the number of active distributions slowly increased by a few each year," wrote author Bruce Byfield. "By contrast, the last three years have seen a 12 percent decline -- a decrease too high to be likely to be coincidence. + +"So what's happening?" Byfield wondered. + +It would be difficult to imagine a more thought-provoking question with which to spend the Northern hemisphere's shortest days. + +### 'There Are Too Many Distros' ### + +![](http://www.linuxinsider.com/images/article_images/linuxgirl_bg_pinkswirl_150x245.jpg) + +"That's an easy question," began blogger [Robert Pogson][2]. "There are too many distros." + +After all, "if a fanatic like me can enjoy life having sampled only a dozen distros, why have any more?" Pogson explained. "If someone has a concept different from the dozen or so most common distros, that concept can likely be demonstrated by documenting the tweaks and package-lists and, perhaps, some code." + +Trying to compete with some 40,000 package repositories like Debian's, however, is "just silly," he said. + +"No startup can compete with such a distro," Pogson asserted. "Why try? Just use it to do what you want and tell the world about it." + +### 'I Don't Distro-Hop Anymore' ### + +The major existing distros are doing a good job, so "we don't need so many derivative works," Google+ blogger Kevin O'Brien agreed. + +"I know I don't 'distro-hop' anymore, and my focus is on using my computer to get work done," O'Brien added. + +"If my apps run fine every day, that is all that I need," he said. "Right now I am sticking with Ubuntu LTS 14.04, and probably will until 2016." + +### 'The More Distros, the Better' ### + +It stands to reason that "as distros get better, there will be less reasons to roll your own," concurred [Linux Rants][3] blogger Mike Stone. + +"I think the modern Linux distros cover the bases of a larger portion of the Linux-using crowd, so fewer and fewer people are starting their own distribution to compensate for something that the others aren't satisfying," he explained. "Add to that the fact that corporations are more heavily involved in the development of Linux now than they ever have been, and they're going to focus their resources." + +So, the decline isn't necessarily a bad thing, as it only points to the strength of the current offerings, he asserted. + +At the same time, "I do think there are some negative consequences as well," Stone added. "Variation in the distros is a way that Linux grows and evolves, and with a narrower field, we're seeing less opportunity to put new ideas out there. In my mind, the more distros, the better -- hopefully the trend reverses soon." + +### 'I Hope Some Diversity Survives' ### + +Indeed, "the era of novelty and experimentation is over," Google+ blogger Gonzalo Velasco C. told Linux Girl. + +"Linux is 20+ years old and got professional," he noted. "There is always room for experimentation, but the top 20 are here since more than a decade ago. + +"Godspeed GNU/Linux," he added. "I hope some diversity survives -- especially distros without Systemd; on the other hand, some standards are reached through consensus." + +### A Question of Package Managers ### + +There are two trends at work here, suggested consultant and [Slashdot][4] blogger Gerhard Mack. + +First, "there are fewer reasons to start a new distro," he said. "The basic nuts and bolts are mostly done, installation is pretty easy across most distros, and it's not difficult on most hardware to get a working system without having to resort to using the command line." + +The second thing is that "we are seeing a reduction of distros with inferior package managers," Mack suggested. "It is clear that .deb-based distros had fewer losses and ended up with a larger overall share." + +### Survival of the Fittest ### + +It's like survival of the fittest, suggested consultant Rodolfo Saenz, who is certified in Linux, IBM Tivoli Storage Manager and Microsoft Active Directory. + +"I prefer to see a strong Linux with less distros," Saenz added. "Too many distros dilutes development efforts and can confuse potential future users." + +Fewer distros, on the other hand, "focuses development efforts into the stronger distros and also attracts new potential users with clear choices for their needs," he said. + +### All About the Money ### + +Google+ blogger Alessandro Ebersol also saw survival of the fittest at play, but he took a darker view. + +"Linux is a big game now, with billions of dollars of profit, and it's the best thing since sliced bread," Ebersol began. "But corporations are taking control, and slowly but systematically, community distros are being killed." + +It's difficult for community distros to keep pace with the ever-changing field, and cash is a necessity, he conceded. + +Still, "Linux is slowly becoming just like BSD, where companies use and abuse it and give very little in return," Ebersol said. "It saddens me, but GNU/Linux's best days were 10 years ago, circa 2002 to 2004. Now, it's the survival of the fittest -- and of course, the ones with more money will prevail." + +### 'Fewer Devs Care' ### + +SoylentNews blogger hairyfeet focused on today's altered computing landscape. + +"The reason there are fewer distros is simple: With everybody moving to the Google Playwall of Android, and Windows 10 looking to be the next XP, fewer devs care," hairyfeet said. + +"Why should they?" he went on. "The desktop wars are over, MSFT won, and the mobile wars are gonna be proprietary Google, proprietary Apple and proprietary MSFT. The money is in apps and services, and with a slow economy, there just isn't time for pulling a Taco Bell and rerolling yet another distro. + +"For the few that care about Linux desktops you have Ubuntu, Mint and Cent, and that is plenty," hairyfeet said. + +### 'No Less Diversity' ### + +Last but not least, Chris Travers, a [blogger][5] who works on the [LedgerSMB][6] project, took an optimistic view. + +"Ever since I have been around Linux, there have been a few main families -- [SuSE][7], [Red Hat][8], Debian, Gentoo, Slackware -- and a number of forks of these," Travers said. "The number of major families of distros has been declining for some time -- Mandrake and Connectiva merging, for example, Caldera disappearing -- but each of these families is ending up with fewer members as well. + +"I think this is a good thing," he concluded. + +"The big community distros -- Debian, Slackware, Gentoo, Fedora -- are going strong and picking up a lot of the niche users that other distros catered to," he pointed out. "Many of these distros are making it easier to come up with customized variants for niche markets. So what you have is a greater connectedness within the big distros, and no less diversity." + +-------------------------------------------------------------------------------- + +via: http://www.linuxinsider.com/story/The-Curious-Case-of-the-Disappearing-Distros-81518.html + +作者:Katherine Noyes +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://www.datamation.com/open-source/why-is-the-number-of-linux-distros-declining.html +[2]:http://mrpogson.com/ +[3]:http://linuxrants.com/ +[4]:http://slashdot.org/ +[5]:http://ledgersmbdev.blogspot.com/ +[6]:http://www.ledgersmb.org/ +[7]:http://www.novell.com/linux +[8]:http://www.redhat.com/ \ No newline at end of file diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to check SSH protocol version on Linux.md b/sources/tech/20141224 Linux FAQs with Answers--How to check SSH protocol version on Linux.md new file mode 100644 index 0000000000..5a0cce00cb --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to check SSH protocol version on Linux.md @@ -0,0 +1,75 @@ +Linux FAQs with Answers--How to check SSH protocol version on Linux +================================================================================ +> **Question**: I am aware that there exist SSH protocol version 1 and 2 (SSH1 and SSH2). What is the difference between SSH1 and SSH2, and how can I check which SSH protocol version is supported on a Linux server? + +Secure Shell (SSH) is a network protocol that enables remote login or remote command execution between two hosts over a cryptographically secure communication channel. SSH was designed to replace insecure clear-text protocols such as telnet, rsh or rlogin. SSH provides a number of desirable features such as authentication, encryption, data integrity, authorization, and forwarding/tunneling. + +### SSH1 vs. SSH2 ### + +The SSH protocol specification has a number of minor version differences, but there are two major versions of the protocol: **SSH1** (SSH version 1.XX) and **SSH2** (SSH version 2.00). + +In fact, SSH1 and SSH2 are two entirely different protocols with no compatibility in between. SSH2 is a significantly improved version of SSH1 in many respects. First of all, while SSH1 is a monolithic design where several different functions (e.g., authentication, transport, connection) are packed into a single protocol, SSH2 is a layered architecture designed with extensibility and flexibility in mind. In terms of security, SSH2 comes with a number of stronger security features than SSH1, such as MAC-based integrity check, flexible session re-keying, fully-negotiable cryptographic algorithms, public-key certificates, etc. + +SSH2 is standardized by IETF, and as such its implementation is widely deployed and accepted in the industry. Due to SSH2's popularity and cryptographic superiority over SSH1, many products are dropping support for SSH1. As of this writing, OpenSSH still [supports][1] both SSH1 and SSH2, while on all modern Linux distributions, OpenSSH server comes with SSH1 disabled by default. + +### Check Supported SSH Protocol Version ### + +#### Method One #### + +If you want to check what SSH protocol version(s) are supported by a local OpenSSH server, you can refer to **/etc/ssh/sshd_config** file. Open /etc/ssh/sshd_config with a text editor, and look for "Protocol" field. + +If it shows the following, it means that OpenSSH server supports SSH2 only. + + Protocol 2 + +If it displays the following instead, OpenSSH server supports both SSH1 and SSH2. + + Protocol 1,2 + +#### Method Two #### + +If you cannot access /etc/ssh/sshd_config because OpenSSH server is running on a remote server, you can test its SSH protocol support by using SSH client program called ssh. More specifically, we force ssh to use a specific SSH protocol, and see how the remote SSH server responds. + +The following command will force ssh command to use SSH1: + + $ ssh -1 user@remote_server + +The following command will force ssh command to use SSH2: + + $ ssh -2 user@remote_server + +If the remote SSH server supports SSH2 only, the first command with "-1" option will fails with an error message like this: + + Protocol major versions differ: 1 vs. 2 + +If the SSH server supports both SSH1 and SSH2, both commands should work successfully. + +### Method Three ### + +Another method to check supported SSH protocol version of a remote SSH server is to run an SSH scanning tool called [scanssh][2]. This command-line tool is useful when you want to check SSH protocol versions for a bulk of IP addresses or the entire local network to upgrade SSH1-capable SSH servers. + +Here is the basic syntax of scanssh for SSH version scanning. + + $ sudo scanssh -s ssh -n [ports] [IP addresses or CIDR prefix] + +The "-n" option can specify the SSH port number(s) to scan. You can specify multiple port numbers separated by comma. Without this option, scanssh will scan port 22 by default. + +Use the following command to discover SSH servers on 192.168.1.0/24 local nework, and detect their SSH protocol versions: + + $ sudo scan -s ssh 192.168.1.0/24 + +![](https://farm8.staticflickr.com/7550/15460750074_95f83217a2_b.jpg) + +If scanssh reports "SSH-1.XX-XXXX" for a particular IP address, it implies that the minimum SSH protocol version supported by the corresponding SSH server is SSH1. If the remote server supports SSH2 only, scanssh will show "SSH-2.0-XXXX". + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/check-ssh-protocol-version-linux.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://www.openssh.com/specs.html +[2]:http://www.monkey.org/~provos/scanssh/ \ No newline at end of file diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md b/sources/tech/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md new file mode 100644 index 0000000000..abaaf7d985 --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to fix 'XXX is not in the sudoers file' error.md @@ -0,0 +1,61 @@ +Translating by ZTinoZ +Linux FAQs with Answers--How to fix “XXX is not in the sudoers file” error +================================================================================ +> **Question**: I am trying to use sudo to run some privileged command on my Linux. However, when I attempt to do so, I am getting "[my-user-id] is not in the sudoers file. This incident will be reported." error message. How can I resolve this sudo error? + +sudo is a program which enables specific groups of users to run a command with the privilege of another user (typically root). sudo comes with detailed logging capability, and offers finer granular control over which user can type what commands via sudo. + +### Sudo vs. Su ### + +The su command also offers similar privilege escalation capability. Difference between sudo and su is their authentication process and the granularity of priviledge change. su allows you to switch your login session to another user's, where you can then run any arbitrary programs with the user's privilege as many times as you want. You will have to know the target user's password to switch to the user though. On the other hand, sudo works on a per-command basis, allowing you to run a single command with root privilege. To use sudo, you don't have to know the root password, but enter your own password at sudo password prompt. + +### Add a User to Sudoers List ### + +As a new user, if you attempt to run sudo command, you will encounter the following error. This means that you are not in the sudoers list which contains a group of users who are authorized to use sudo. + + [my-user-id] is not in the sudoers file. This incident will be reported. + +There are two ways to add you to sudoers list. + +### Metho One ### + +The first method is to add you to the Linux group named sudo. This special Linux group is pre-configured to be able to use sudo. Thus once you are in the group, you can run sudo command. + +The following command will add you to sudo Linux group. Make sure to run the command as the root. + + # adduser sudo + +Now confirm that your group membership has been updated. Use groups command to see a list of groups you currently belong to. The list must include sudo group. + + $ groups + +---------- + + alice adm cdrom sudo dip plugdev fuse lpadmin netdev sambashare davfs2 libvirtd docker promiscuous + +he group membership change (and sudo access) will be activated once you log out and log back in. + +### Metho Two ### + +The second method to enable you to use sudo is to add yourself to /etc/sudoers configuration file directly. + +To change /etc/sudoers file, you can use a special sudo editor command called visudo. Simply invoke the following command as the root. + + # visudo + +This will open up /etc/sudoers file for editing. Append the following line to the end of the file, and press Ctrl+X. When prompted, save the change, and exit. + + ALL=(ALL) ALL + +This change will be effective immediately, and you will be able to use sudo right away. + +![](https://farm8.staticflickr.com/7511/15866443418_e147329e1b_c.jpg) + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/fix-is-not-in-the-sudoers-file.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to install 7zip on Linux.md b/sources/tech/20141224 Linux FAQs with Answers--How to install 7zip on Linux.md new file mode 100644 index 0000000000..258bc61e27 --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to install 7zip on Linux.md @@ -0,0 +1,74 @@ +Linux FAQs with Answers--How to install 7zip on Linux +================================================================================ +> **Question**: I need to extract files from an ISO image, and for that I want to use 7zip program. How can I install 7zip on [insert your Linux distro]? + +7zip is an open-source archive program originally developed for Windows, which can pack or unpack a variety of archive formats including its native format 7z as well as XZ, GZIP, TAR, ZIP and BZIP2. 7zip is also popularly used to extract RAR, DEB, RPM and ISO files. Besides simple archiving, 7zip can support AES-256 encryption as well as self-extracting and multi-volume archiving. For POSIX systems (Linux, Unix, BSD), the original 7zip program has been ported as p7zip (short for "POSIX 7zip"). + +Here is how to install 7zip (or p7zip) on Linux. + +### Install 7zip on Debian, Ubuntu or Linux Mint ### + +Debian-based distributions come with three packages related to 7zip. + +- **p7zip**: contains 7zr (a minimal 7zip archive tool) which can handle its native 7z format only. +- **p7zip-full**: contains 7z which can support 7z, LZMA2, XZ, ZIP, CAB, GZIP, BZIP2, ARJ, TAR, CPIO, RPM, ISO and DEB. +- **p7zip-rar**: contains a plugin for extracting RAR files. + +It is recommended to install p7zip-full package (not p7zip) since this is the most complete 7zip package which supports many archive formats. In addition, if you want to extract RAR files, you also need to install p7zip-rar package as well. The reason for having a separate plugin package is because RAR is a proprietary format. + + $ sudo apt-get install p7zip-full p7zip-rar + +### Install 7zip on Fedora or CentOS/RHEL ### + +Red Hat-based distributions offer two packages related to 7zip. + +- **p7zip**: contains 7za command which can support 7z, ZIP, GZIP, CAB, ARJ, BZIP2, TAR, CPIO, RPM and DEB. +- **p7zip-plugins**: contains 7z command and additional plugins to extend 7za command (e.g., ISO extraction). + +On CentOS/RHEL, you need to enable [EPEL repository][1] before running yum command below. On Fedora, there is not need to set up additional repository. + + $ sudo yum install p7zip p7zip-plugins + +Note that unlike Debian based distributions, Red Hat based distributions do not offer a RAR plugin. Therefore you will not be able to extract RAR files using 7z command. + +### Create or Extract an Archive with 7z ### + +Once you installed 7zip, you can use 7z command to pack or unpack various types of archives. The 7z command uses other plugins to handle the archives. + +![](https://farm8.staticflickr.com/7583/15874000610_878a85b06a_b.jpg) + +To create an archive, use "a" option. Supported archive types for creation are 7z, XZ, GZIP, TAR, ZIP and BZIP2. If the specified archive file already exists, it will "add" the files to the existing archive, instead of overwriting it. + + $ 7z a + +To extract an archive, use "e" option. It will extract the archive in the current directory. Supported archive types for extraction are a lot more than those for creation. The list includes 7z, XZ, GZIP, TAR, ZIP, BZIP2, LZMA2, CAB, ARJ, CPIO, RPM, ISO and DEB. + + $ 7z e + +Another way to unpack an archive is to use "x" option. Unlike "e" option, it will extract the content with full paths. + + $ 7z x + +To see a list of files in an archive, use "l" option. + + $ 7z l + +You can update or remove file(s) in an archive with "u" and "d" options, respectively. + + $ 7z u + $ 7z d + +To test the integrity of an archive: + + $ 7z t + +-------------------------------------------------------------------------------- + +via:http://ask.xmodulo.com/install-7zip-linux.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html \ No newline at end of file diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to install Kingsoft Office on Linux.md b/sources/tech/20141224 Linux FAQs with Answers--How to install Kingsoft Office on Linux.md new file mode 100644 index 0000000000..950407ad02 --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to install Kingsoft Office on Linux.md @@ -0,0 +1,79 @@ +Linux FAQs with Answers--How to install Kingsoft Office on Linux +================================================================================ +> **Question**: I heard good things about Kingsoft Office, so I would like to try it out on my Linux. How can I install Kingsoft Office on [insert your Linux distro]? + +Kingsoft Office is an office suite available for muliple platforms including Windows, Linux, iOS and Android. It comes with three programs: Writer for word processing, Presentation for presentations, and Spreadsheets for spreadsheets. It is freemium model, where the basic version is free to use. Compared to other Linux office suites such as LibreOffice or OpenOffice, the best advantage of Kingsoft Office is its **excellent compatibility with Microsoft Office**. Thus for those of you who need to use an office suite on Linux and Windows platforms interchangeably, Kingsoft Office is a good choice for Linux platform. + +### Install Kingsoft Office on CentOS, Fedora or RHEL ### + +Download a RPM file for the [official site][1]. The official RPM package is available as a 32-bit version only, but you can install it on both 32-bit and 64-bit systems. + +Use yum command with "localinstall" option to install the RPM file. + + $ sudo yum localinstall kingsoft-office-9.1.0.4244-0.1.a12p3.i686.rpm + +Note that do NOT use rpm command to install it. Otherwise, you will get unmet dependency errors, which are not easy to solve manually: + + error: Failed dependencies: + libICE.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686 + libSM.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686 + libX11.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686 + libXext.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686 + libXrender.so.1 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686 + libc.so.6 is needed by kingsoft-office-9.1.0.4244-0.1.a12p3.i686 + +Red Hat based distributions have multilib support. If the RPM package you are trying to install is 32-bit and has 32-bit library dependencies, a better way is to use yum to install it as shown above. As long as the RPM is properily built with all dependency information, yum should be able to install it using yum repositories. + +![](https://farm9.staticflickr.com/8626/16040291445_ca62275064_c.jpg) + +### Install Kingsoft Office on Debian, Ubuntu or Linux Mint ### + +Download a DEB package from the [official site][2]. The official DEB package is available as a 32-bit version only, but you can install it on both 32-bit and 64-bit systems. + +The DEB package has a set of dependencies to meet. Therefore use [gdebi][3] instead of dpkg command to automatically resolve dependencies. + + $ sudo apt-get install gdebi-core + $ sudo gdebi kingsoft-office_9.1.0.4244~a12p3_i386.deb + +### Launch Kingsoft Office ### + +Once Kingsoft Office is installed, you can launch Witer, Presentation, and Spreadsheets from the desktop manager easily. + +On Ubuntu Unity: + +![](https://farm9.staticflickr.com/8591/16039583702_632a49779f_z.jpg) + +On GNOME: + +![](https://farm9.staticflickr.com/8617/16039583622_4e7c1d8545_b.jpg) + +Alternatively, you can also launch Kingsoft Office from the command line. + +To launch Kingsoft Writer from the command line, use this command: + +![](https://farm8.staticflickr.com/7525/16039583642_7202457899_c.jpg) + +To launch Kingsoft Presentation from the command line, use this command: + + $ wpp + +![](https://farm8.staticflickr.com/7570/15420632223_4243cc99d9_c.jpg) + +To launch Kingsoft Spreadsheets from the command line, use this command: + + $ et + +![](https://farm9.staticflickr.com/8682/15852842558_97edda4afd_c.jpg) + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/install-kingsoft-office-linux.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://ksosoft.com/product/office-2013-linux.html +[2]:http://ksosoft.com/product/office-2013-linux.html +[3]:http://xmodulo.com/how-to-install-deb-file-with-dependencies.html \ No newline at end of file diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to install kernel headers on Linux.md b/sources/tech/20141224 Linux FAQs with Answers--How to install kernel headers on Linux.md new file mode 100644 index 0000000000..c22ebd7597 --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to install kernel headers on Linux.md @@ -0,0 +1,74 @@ +Linux FAQs with Answers--How to install kernel headers on Linux +================================================================================ +> **Question**: I need to install kernel headers to install a device driver for my kernel. What is a proper way to install matching kernel headers on [insert your Linux distro]? + +When you compile a device driver a custom kernel module, you need to have kernel header files installed on your Linux system. Kernel headers are needed also when you build a userspace application which links directly against the kernel. When you install kernel headers in such cases, you must make sure to kernel headers are exactly matched with the kernel version of your system (e.g., 3.13.0-24-generic). + +If your kernel is the default version that comes with the distribution, or you upgraded it using the default package manager (e.g., apt-get, aptitude or yum) from base repositories, you can install matching kernel headers using the package manager as well. On the other hand, if you downloaded the [kernel source][1] and compiled it manually, you can install matching kernel headers by using [make command][2]. + +Here we assume that your kernel comes from base repositories of your Linux distribution, and see how we can install matching kernel headers. + +### Install Kernel Headers on Debian, Ubuntu or Linux Mint ### + +Assuming that you did not manually compile the kernel, you can install matching kernel headers using apt-get command. + +First, check if matching kernel headers are already available on your system using dpkg-query command. + + $ dpkg-query -s linux-headers-$(uname -r) + +---------- + + dpkg-query: package 'linux-headers-3.11.0-26-generic' is not installed and no information is available + +Go ahead and install matching kernel headers as follows. + + $ sudo apt-get install linux-headers-$(uname -r) + +![](https://farm9.staticflickr.com/8681/16000652415_a7c399992e_z.jpg) + +Verify that matching kernel headers are successfully installed. + + $ dpkg-query -s linux-headers-$(uname -r) + +---------- + + Package: linux-headers-3.11.0-26-generic + Status: install ok installed + +The default location of kernel headers on Debian, Ubuntu or Linux Mint is **/usr/src**. + +### Install Kernel Headers on Fedora, CentOS or RHEL ### + +If you did not manually upgrade the kernel, you can install matching kernel headers using yum command. + +First, check if matching kernel headers are already installed on your system. If the following command does not produce any output, it means kernel headers are not available. + + $ rpm -qa | grep kernel-headers-$(uname -r) + +Go ahead and install kernel headers with yum command. This command will automatically find a package of matching kernel headers, and install it. + + $ sudo yum install kernel-headers + +![](https://farm9.staticflickr.com/8594/15378403114_c51ff6f4ae_z.jpg) + +Verify the status of the installed package. + + $ rpm -qa | grep kernel-headers-$(uname -r) + +---------- + + kernel-headers-3.10.0-123.9.3.el7.x86_64 + +The default location of kernel headers on Fedora, CentOS or RHEL is **/usr/include/linux**. + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/install-kernel-headers-linux.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:https://www.kernel.org/pub/linux/kernel/ +[2]:https://www.kernel.org/doc/Documentation/kbuild/headers_install.txt \ No newline at end of file diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to install non-free packages on Debian.md b/sources/tech/20141224 Linux FAQs with Answers--How to install non-free packages on Debian.md new file mode 100644 index 0000000000..b5e71f808a --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to install non-free packages on Debian.md @@ -0,0 +1,47 @@ +Linux FAQs with Answers--How to install non-free packages on Debian +================================================================================ +> **Question**: I need to install some proprietary device driver on Debian, which is part of a non-free package. However, I cannot find and install the package in my Debian box. How can I install non-free packages on Debian? + +The Debian project is distributed as a collection of packages, [48,000][1] of them, as of Debian Wheezy. These packages are categorized into three areas: main, contrib and non-free, mainly based on licensing requirements, e.g., [Debian Free Software Guidelines][2] (DFSG). + +The main area contains free software that complies with DFSG. The contrib area contains free software that complies with DFSG, but relies on non-free software for compilation or execution. Finally, the non-free area contains non-free packages that are not compliant with DFSG but redistributable. The main repository is considered a part of Debian, but neither contrib or non-free repository is. The latter two are maintained and provided only as a convenience to users. + +If you want to install a non-free package maintained by Debian, you need to enable contrib and non-free repositories. To do so, open /etc/apt/sources.list with a text editor, and append "contrib non-free" to each source. + +The following is an example of /etc/apt/sources.list for Debian Wheezy. + + deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free + deb-src http://ftp.us.debian.org/debian/ wheezy main contrib non-free + + deb http://security.debian.org/ wheezy/updates main contrib non-free + deb-src http://security.debian.org/ wheezy/updates main contrib non-free + + # wheezy-updates, previously known as 'volatile' + deb http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free + deb-src http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free + +![](https://farm8.staticflickr.com/7562/16063758036_0ef8fce075_b.jpg) + +After modifying sources of packages, run the following command to download package index files for contrib and non-free repositories. + + $ sudo apt-get update + +If you are using aptitude, run the following instead. + + $ sudo aptitude update + +Now you are ready to search and install any non-free package on Debian. + +![](https://farm9.staticflickr.com/8593/16089610915_b638fce55d_c.jpg) + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/install-nonfree-packages-debian.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:https://packages.debian.org/stable/allpackages?format=txt.gz +[2]:https://www.debian.org/social_contract.html#guidelines \ No newline at end of file diff --git a/sources/tech/20141224 Linux FAQs with Answers--How to rename multiple files on Linux.md b/sources/tech/20141224 Linux FAQs with Answers--How to rename multiple files on Linux.md new file mode 100644 index 0000000000..c310ccd893 --- /dev/null +++ b/sources/tech/20141224 Linux FAQs with Answers--How to rename multiple files on Linux.md @@ -0,0 +1,82 @@ +Linux FAQs with Answers--How to rename multiple files on Linux +================================================================================ +> **Question**: I know I can rename a file using mv command. But what if I want to change the name of many files? It will be tedius to invoke mv command for every such file. Is there a more convenient way to rename multiple files at once? + +In Linux, when you want to change a file name, mv command gets the job done. However, mv cannot rename multiple files using wildcard. There are ways to deal with multiple files by using a combination of sed, awk or find in conjunction with [xargs][1]. However, these CLIs are rather cumbersome and not user-friendly, and can be error-prone if you are not careful. You don't want to undo incorrect name change for 1,000 files. + +When it comes to renaming multiple files, the rename utility is probably the easiest, the safest, and the most powerful command-line tool. The rename command is actually a Perl script, and comes pre-installed on all modern Linux distributions. + +Here is the basic syntax of rename command. + + rename [-v -n -f] + + is a Perl-compatible regular expression (PCRE) which represents file(s) to rename and how. This regular expression is in the form of 's/old-name/new-name/'. + +The '-v' option shows the details of file name changes (e.g., XXX renamed as YYY). + +The '-n' option tells rename to show how the files would be renamed without actually changing the names. This option is useful when you want to simulate filename change without touching files. + +The '-f' option force overwriting existing files. + +In the following, let's see several rename command examples. + +### Change File Extensions ### + +Suppose you have many image files with .jpeg extension. You want to change their file names to *.jpg. The following command converts *.jpeg files to *.jpg. + + $ rename 's/\.jpeg$/\.jpg/' *.jpeg + +### Convert Uppercase to Lowercase and Vice-Versa ### + +In case you want to change text case in filenames, you can use the following commands. + +To rename all files to lower-case: + + # rename 'y/A-Z/a-z/' * + +To rename all files to upper-case: + + # rename 'y/a-z/A-Z/' * + +![](https://farm9.staticflickr.com/8655/16054304245_bcf9d23b59_b.jpg) + +### Change File Name Patterns ### + +Now let's consider more complex regular expressions which involve subpatterns. In PCRE, a subpattern captured within round brackets can be referenced by a number preceded by a dollar sign (e.g., $1, $2). + +For example, the following command will rename 'img_NNNN.jpeg' to 'dan_NNNN.jpg'. + + # rename -v 's/img_(\d{4})\.jpeg$/dan_$1\.jpg/' *.jpeg + +---------- + + img_5417.jpeg renamed as dan_5417.jpg + img_5418.jpeg renamed as dan_5418.jpg + img_5419.jpeg renamed as dan_5419.jpg + img_5420.jpeg renamed as dan_5420.jpg + img_5421.jpeg renamed as dan_5421.jpg + +The next command will rename 'img_000NNNN.jpeg' to 'dan_NNNN.jpg'. + + # rename -v 's/img_\d{3}(\d{4})\.jpeg$/dan_$1\.jpg/' *jpeg + +---------- + + img_0005417.jpeg renamed as dan_5417.jpg + img_0005418.jpeg renamed as dan_5418.jpg + img_0005419.jpeg renamed as dan_5419.jpg + img_0005420.jpeg renamed as dan_5420.jpg + img_0005421.jpeg renamed as dan_5421.jpg + +In both cases above, the subpattern '\d{4}' captures four consecutive digits. The captured four digits are then referred to as $1, and used as part of new filenames. + +-------------------------------------------------------------------------------- + +via: http://ask.xmodulo.com/rename-multiple-files-linux.html + +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://xmodulo.com/xargs-command-linux.html \ No newline at end of file diff --git a/translated/talk/20141211 Was 2014 The Year of Linux Desktop.md b/translated/talk/20141211 Was 2014 The Year of Linux Desktop.md new file mode 100644 index 0000000000..cbcc72f0ca --- /dev/null +++ b/translated/talk/20141211 Was 2014 The Year of Linux Desktop.md @@ -0,0 +1,45 @@ +2014年会是 "Linux桌面年"吗? +================================================================================ +> 现在谈起Linux桌面终于能头头是道了 + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-2.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-3.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-4.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-5.jpg) + +![](http://i1-news.softpedia-static.com/images/news2/Was-2014-The-Year-of-Linux-Desktop-467036-6.jpg) + +**看来Linux在2014年有很多改变,许多用户都表示今年Linux的确有进步,但是仅凭这个就能断定2014年就是"Linux桌面年"吗?** + +"Linux桌面年"这句话,在过去几年就被传诵得像句颂歌一样,可以说是在试图用一种比较有意义的方式来标记它的发展进程。此类事情目前还没有发生过,在我们的见证下也从无先例,所以这就不难理解为什么Linux用户会用这个角度去看待这句话。 + +大多数软件和硬件领域不太会有这种快速的进步,都以较慢的速度发展,但是对于那些在工业领域有更好眼光的人来说,事情就会变得疯狂。即使有可能,针对某一时刻或某一事件还是比较困难的,但是Linux在几年的过程中还是以指数方式迅速发展成长。 + +### Linux桌面年这句话不可轻言 ### + +没有一个比较权威的人和机构能判定Linux桌面年已经到来或者已经过去,所以我们只能尝试根据迄今为止我们所看到的和用户所反映的去推断。有一些人比较保守,改变对他们影响不大,还有一些人则比较激进,永远不知满足。这真的要取决于你的见解了。 + +点燃这一切的火花似乎就是Linux上的Steam平台,尽管在这变成现实之前我们已经看到了一些Linux游戏已经开始有重要的动作了。在任何情况下,Valve都可能是我们今天所看到的一系列复苏事件的催化剂。 + +在过去的十年里,Linux桌面以一种缓慢的速度在发展,并没有什么真正的改变。创新肯定是有的,但是市场份额几乎还是保持不变。无论桌面变得多么酷或Linux相比之前的任何一版多出了多少特点,很大程度上还是在原地踏步,包括那些制作专有软件的公司,他们的参与度一直很小,基本上就忽略掉了Linux。 + +现在,相比过去的十年里,更多的公司表现出了对Linux平台的浓厚兴趣。或许这是一种自然地演变,Valve并没有做什么,但是Linux最终还是达到了一个能被普通用户接受并理解的水平,并不只是因为令人着迷的开源技术。 + +驱动程序能力强了,游戏工作室就会定期移植游戏,在Linux中我们前所未见的应用和中间件就会开始出现。Linux内核发展达到了难以置信的速度,大多数发行版的安装过程通常都不怎么难,所有这一切都只是冰山一角。 + +所以,当有人问你2014年是不是Linux桌面年时,你可以说“是的!”,因为Linux桌面完全统治了2014年。 + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/Was-2014-The-Year-of-Linux-Desktop-467036.shtml + +作者:[Silviu Stahie ][a] +译者:[ZTinoZ](https://github.com/ZTinoZ) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/silviu-stahie