[微博活动]那些年，我们追过的编程语言

记得第一次上手的是QBasic 高中计算机的必修课 FIX函数老是讲得很精彩 还可以用它画图形 蛮有意思的 虽然只是黑白屏。。总之很好奇~考试的时候 背了很多代码 总觉得不是自己在写 而是在抄 木有创造性 当然 那时也不懂什么创造了 呵呵 希望能中吧

shell 和perl吧，就为了偷懒，所以用来写脚本

其实呢，由VB.NET启蒙，用过C、C++、C#、Ruby、F#、Swift后觉得，还是Objective-C可爱啊！

抓紧滴 我第一语言是C 嘿嘿 那时候for循环都写不出来啊 不过现在 我最喜欢Java 哈哈

[神马]

回复@十指紧扣伴你共度余生:PHP 大法好。用PHP保平安。

第一种是C语言，为了过二级，顺利毕业，做很多题呀，上机很少，导致上级做的很差，勉强通过，这才意识到实践很重要。

回复@怀旧黑白:.NET大法好，退Java保平安。

回复@十指紧扣伴你共度余生:开源万岁。NET确定能后来居上嘛？[最右]

我要基础的python基础教程

回复@怀旧黑白:.NET也开源了，VS也免费了，平台也跨了，反正我从VB.NET启蒙，很快就学会了C#，但是就Java这个环境我都没搞明白。估计我智商不足以驾驭Java。

我要我要。转发那么久。就没中过

第一次用的是vb，学校里面学的，拖拖拽拽然后就能做出来一点小功能感觉挺有趣的。后来学了c，感觉总是做不出来什么东西，就只能写写打印程序。。。现在想想那时候想法真有意思

我最先学习的是java，但是第一份工作却用的是C#，后来随着web的兴起，又被学php的鄙视，妹的，心想都是高级语言怎么有这个社会的差别了，后来加入了一个群，终于想明白是自己技术不到家啊，C#的大神还是多的。[耶]

求送书[爱你]

//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

正在看C++，明年九月份就找工作了，好想拿到这本C++

回复@十指紧扣伴你共度余生:←_←让我这个从Qt上学C#情何以堪。。。语言顺手就行。。哈哈哈

这些书刚好都没有~

第一种编程语言是visuial basic//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

学会的第一种编程语言:LOGO

@图灵教育

在学linux急需急需一本[可怜][可怜]

每次都没中奖[生病]

随便来一本吧~

太激动了...编程我的最爱

学的第一种编程语言是c++，后来java，javascript，php，python…打算明年学c#。学了很多语言，可依旧不能精通一种。学语言很快的，一通百通，一般看三两本书就能对其有比较全面的了解并并熟练使熟练使用了，但是不常用的话，一些语法规则容易忘…现在最爱用python

转了那么多发敢送我一次么？！[doge]//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

我最先学的c语言，还记得当初学的时候，带着一颗虔诚的心，以为自己将来也能成为电影中的骇客什么的，但是到现在自己连骇客的门都没摸到呢，继续努力。。。

第一门，不严格算的话，小学学的logo。严格说，有写出点东西然后发布的话，初二学的C# //@jackyrong:学会的第一种编程语言:LOGO

回复@怀旧黑白:嘛，最重要的就是开心...

万一中了呢

本来是学C#开发的，后来，转运维了[泪流满面]

[doge]

我学的第一种编程语言是Java。最爱的语言应该是C#吧。个人觉得还是C#有趣一点。

我想要Python，我是运维的

求中//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

最开始学的果断是C语言啊，大学必修课，但是学了C++才知道C语言好难写，于是果断C++，然后学了Java后感觉C++虽然也很强大，但是不好写。最后学了ruby才知道原来代码还可以写的如此优雅，Ruby是目前感觉最好用的语言。

来个人品被！

@Linux中国 @图灵教育

都是好书哦 @特价萝卜 @臧秀涛 //@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

能不能中一次啊

GO，Ruby， swift，都是我喜欢的。转了。

来一本，第一门当然C喽

接触顺序：LOGO->BASIC->Pascal->C++->MATLAB->R->Python

是啊

初中学过c，然后到了大学继续学c

学的第一种语言是c++，现在对python比较着迷。最糗的一件事是，刚刚上大学的时候，还没接触过电脑，连桌面上的快捷方式是什么都不知道。有一回想从学校机房拷贝一个vc++6.0安装文件，结果就把桌面上那个经典的vc++6.0快捷方式图标拷贝回来了。。。

C语言

1除以3再乘以3不等于1 不解释.......

最爱C语言，有趣的事是遇到一个题目，用C语言简单验证下哥德巴赫猜想……

对python比较着迷。刚开始没有分清tab和空格，那时候纠结了很久！

现在在看python，并且现在也拿python来做api，很高效的说，表示会深入学习

接触顺序：LOGO->BASIC->Pascal->C++->MATLAB->R->Python->Scala

我要第七本。。。求中

hello world

来一本[挤眼]

Python， Swift， C，都可以。//@袁龙飞Zero: GO，Ruby， swift，都是我喜欢的。转了。

Repost

敲着敲着睡着了！//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

万一。

python....

真的能中吗？？？

学的第一种是LOGO，然后是PASCAL，然后是VB6…记得当年用C枚举质数，算幻方，看着枚举出来的文本文件几十M，成就感满满的[酷]

[太开心]

求中第二本

哇，又有赠书活动了，这次一定不要忘了我，最想要c++了~ 也和好友一起分享，好运降临~

第三本[心]Ruby Programming

最爱python，C++其实也蛮喜欢。程序员能有什么有趣的事情。求go和R的书啊

logo。。。

都是非常喜欢的书~

c语言啦啦啦

学的第一门语言是C,然后接触的C++,现在也在搞C++,所以好想要这本c++呀。。。

来本c++吧

[哈哈]

转～

第一次学的编程语言是C++，但最爱Java，因为它是运行在虚拟机上，不担心内存分配问题，别看第一次我学的是C++，但在写实验报告的时候，用的是c语言写的，呵呵，你懂得。想要本C++，巩固一下知识。 //@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

第一门是初中学的VB //@淘子回:第一门，不严格算的话，小学学的logo。严格说，有写出点东西然后发布的话，初二学的C# //@jackyrong:学会的第一种编程语言:LOGO

第一门语言嘛，当属上学的时候学的C

go并发编程

从Basic入门的我，多不好意思！

第二本我有了，其他的好想要。

想要python[花心]

我要。。~\(≧▽≦)/~//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

第一种C

[doge][doge][doge]

读书党求书一本枚

随手转。书太少，搬家完全没有感觉好么。//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

c->java->c++->matlab->php/html/css->ruby,因为买了计算本质那本书，所以学习了ruby语言，从此就喜欢上了它，求第三本《Ruby Programming》或者《Head First C》。下一条继续

接上一条，最印象深刻的一件事是当初学C语言时因为我原本能把圆周率背到小数点后200位，所以用自己写的计算圆周率的算法验证结果，看到屏幕上蹦出来的数字跟我背诵的一模一样，当时感觉做了有史以来最有成就感的一件事[偷乐][鼓掌][酷]

Repost

C

读书党求书~转了好多次了，求rp

[可爱]bug

想要swift的 谢谢

最开始c，然后shell

//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

书不嫌多[嘻嘻]

nice//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

转发微博.

最爱的语言肯定是C啊，最有趣的事情：”烫烫烫‘

我是从C语言入门的，现在做网络方向了，一编程语言还不够，Python是一门很好的脚本语言，现在还没学习，希望尽快入门。//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

大割割hhh//@弥玄:转了那么多发敢送我一次么？！[doge]//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

求书

想要c语言哈

C#  作为老师，继续深造

[可怜][可怜][可怜]

c，不过现在打算自学python

求中 swift！！！//@机智的阿卡林酱: [神马]

//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

我最爱Python，它上手快，学习资料多，社区活跃。刚学那阵子，有次考试题目是输出用户输入的字符串及其长度。小白的我，一脸茫然。同学们都做出来走了，我还在想。助教同意我回去做，但不许作弊。回宿舍后我又费了会功夫，才知道该怎么做。从此，我爱上了折磨过我的Python @图灵教育

c#。。。。。。

我学习的第一种语言是BASIC，还是在APPLE上调试的。//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

嗨翻C[挖鼻屎]

走着

这些都是入门书啊，其实没啥意思。有进阶的拿着会更有意义一些//@弥玄: 转了那么多发敢送我一次么？！[doge]//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

@梅妹_你 @我八戒啊 有书赠送啊

赞……@Linux中国

@纯真的我叫小飞 求中奖

天天顶...一直在支持,从未放弃过...今天为python而来```python我的小心脏快点回到我身边...支持linux.cn..支持图灵教育

最早的时候是高二，那时候不懂编程语言，结果竟然看了VFP，，，而且竟然完全没看懂。。。。真正掌握的编程语言算是Delphi，用它做过作品之类的

好怪的名字。

@梅妹_你 @我八戒啊 求中奖，求给力，

第一次写Java代码，辛辛苦苦写了那么多，死活就是不输出结果，弄了一上午，还是未果，最后一大神看了下，没写main函数，当时我果断囧了！！

第一种语言是必须C啊，。。。现在还是，，

凑热闹，测rp//@Number_tu: 好怪的名字。

念研究生的时候，导师说，你学习下VB吧。我这里有一个用VB写的软件。软件有点儿老了，到时候帮忙更新一下。然后我就学了。然后就没有然后了。导师她老人家忘记这件事了。谢谢老师给我们亲自下厨做饭。[嘻嘻]

測rp！

最熟悉的就是C语言了

第一次听说C语言时，以为是一门外国语言，后来发现好像真的是一门外国语言，只是…@图灵教育 //@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

python以前玩过一段时间，电脑里面还有好多视频呢？不过后来～就没有后来了

转发

//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

求python//@老齐Py: 我学习的第一种语言是BASIC，还是在APPLE上调试的。//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

需要第二本！！！

记得高三暑假那一年，自学第一门语言：C语言，自学到关于链表那里，自己按照书上的代码和自己的理解敲了一下，跑起黑框框，结果：烫烫烫烫.......  根本停不下来[偷笑]于是果断机智的拔掉电源，强制关机.........[馋嘴]

#那些年，我们追过的编程语言#第一次接触的编程语言，是小学计算机课上教我们的logo语言，用一些简单指令，让画面上的小乌龟移动，当时觉得太有趣了。但真正比较熟悉的语言是高中时学的Pascal语言了。

BASIC、LOGO、PASCAL、C、C++、Java、JavaScript、PHP、Python、Ruby，以后学习学习Go吧。[兔子]

C the one

我要swift

Repost

第一次学的是basic，看别人敲了段代码，就有个线条组成的火箭飞起来，觉得很cool，于是就开始学了。我觉得所有人都应该学编程，不一定要很厉害，能解决身边的问题就好

土豪  我要c语言  c++  给我 给我

第一个编程语言毫无疑问是C，之前写过basic、qbasic、html，但那时候完全不是学习，就只是一些片段。至今依然记得用turboC时候满屏幕的烫烫烫，第一次觉得程序也是有五感的[doge]。如今转Java很久，喜欢Java的逻辑，也喜欢Python、JavaScript的惊艳。

VB…

ruby

第一门语言是C，现在用的最多是C++，虽然谈不上最喜欢，但现在主要学习中心都在C++上了。最近还打算自学PY。

咦[害羞]好想要一本《python基础编程》，最近正在看这本书，只不过是从图书馆借的，学生党[哈哈]，之前学习过C语言，感觉python要高级许多，也许是因为它是我学的第一门面向对象语言吧。[可怜][可怜][可怜]

[衰]

c

偶像要ruby或python

算是第一门就是java了吧，但很憧憬python和ruby

本本都很经典。那本嗨翻c很喜欢。正好好好学习下。

这么多重磅好书！

我学的第一门编程语言是汇编[挖鼻屎][挖鼻屎] 小编准备送什么书给我。//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

学的第一门编程语言是汇编啊，高中自学的。现在对汇编无爱了...目前学习c#//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

C，敲什么代码……当时是写在纸上的，高中寄宿

第一门是windows上的批处理(算不算……不算的话就是pascal) 现在最喜欢的么 当然是scala大法好 退java保平安(逃…

Swift！

第一个学的还是C语言

python和ruby大法好！

偏爱python

C->MATLAB->Python->C++//@ComplexLY: 接触顺序：LOGO->BASIC->Pascal->C++->MATLAB->R->Python->Scala

python强迫症缩进甚喜,但第一个学的是Ｃ,但初涉不久就跑去lamp!

来吧。。。来本ruby吧。。。

想要那本Go并发编程

一开始学习编程是因为好奇觉得好玩，最开始接触的编程语言是C语言，至今自己都不明白16岁的一女生为什么会突然对编程感兴趣，一开始是觉得好玩，然后就是较真学，运气比较好吧遇到了一个很耐心的师父，自己的原因吧学东西很慢，给世界打个招呼花了两个星期，半夜有被自己气哭过，哈哈。

要python

@图灵教育 //@一个旁观者_:最开始接触的编程语言是C语言，至今自己都不明白16岁的一女生为什么会突然对编程感兴趣一开始是觉得好玩，然后就是较真学，运气比较好吧遇到了一个很耐心的师父，自己的原因吧学东西很慢，给世界打个招呼花了两个星期，半夜有被自己气哭过，哈哈。

一直用C语言，可能以后还要一直用下去

......//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

必须swift！希望越来越成熟！

Python

。。。第一门啊。。。as3。。。

ruby

ruby

swift

来本python就好了。。

想要python

fortran

为毛都是我想看的？我是来拉底中奖率的

万一呢？

【转发赠书】这么多重磅好书，都是大爱啊！

[ali哇]

@图灵教育

my  love

我最早接触编程是C语言，那时候对字符界面的C不以为然，感觉做不了大事。殊不知基础语言才是编程之根基，抛开华丽的外衣才能更好地察觉和体会其本质。 之后爱上了C++，用它终于能写出GUI程序了。 2003年末，随着MS的吹鼓，尝试着接触了C#， @图灵教育 @Linux中国 @互动出版网china-pub

C#及其他基于.net库的语言优点是简单，纯粹的搭建积木。缺点是臃肿，效率低，依赖于.net库。 不可否认，在Web开发方面C#确实有长处，但我主要做一些桌面开发， 在后来很长一段时间内都主要用C++。 @图灵教育 @Linux中国 @互动出版网china-pub

今年年初，“操作系统”是比较热门的话题了，因为不满MS的败笔Win7、8、10，逐渐放弃了Windows平台，工作和生活基本转移到了Linux。 写shell的过程中读过一些perl代码， 在未来打算系统的学习python，尝试进行一些Linux下的应用开发。 加油！@图灵教育 @Linux中国 @互动出版网china-pub

真多的好书。目不暇接。

来本书[晕]学一下

python不多说~~

从最初AppleII的basic到现在，学了不少的编程语言，仍有许多新的还在追寻中。学无止境啊。不过貌似精通8种编程语言没有精通8门外语听着唬人。

要python

来♂一♂发//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

c语言大法好[可爱]//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

要Python 或 ruby @图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

我的第一门编程语言是C++，但老师讲得太无趣了，所以根本没有学懂，考试什么的也就靠的是背书。后来对计算机编程渐渐感兴趣了，才又开始重新学习C++。而后接触的是Java，不太喜欢，首先是风格，其次是在使用了几个Java写的图论分析软件后，对其执行效率太[失望]了，再后来喜欢上了简洁的Python^_^。

@Linux中国 C++是我第一门编程语言，happy coding.

学的第一门语言是C语言，最爱的语言当然也是C语言，简洁高效。C语言是上大学学的第一门语言，用的书是那本（大家都懂的）。当时编写和调试程序还是Turbo C 2.0，蓝色的背景，不支持鼠标输入，感觉很高深的样子，函数中使用的变量必须在函数头定义，否则会编译错误，当时为了找原因弄得满头大汗。

嘻嘻，我怎么想@小黑屋_屋主 你呢[偷笑][哈哈]

@Linux中国 //@Linux中国://@互动出版网china-pub: #那些年，我们追过的编程语言#9本编程语言图书等你免费领~所有获奖者除赠书外，均可额外获得@互动出版网china-pub 提供的购书优惠券一张哟！还等什么赶快来参加吧！ http://t.cn/hMyA3

C#和C++都是好东西，无聊的时候写个死循环，看看过多久CPU和内存会爆满100%[阴险][阴险][阴险]——我是来炫配置的

basic//@虐毒狂人:C#和C++都是好东西，无聊的时候写个死循环，看看过多久CPU和内存会爆满100%[阴险][阴险][阴险]——我是来炫配置的

@图灵教育 @图灵李洁 [鼓掌]好多书~

土豪，还有大腿吗？

求中奖python

新手学习中

求中奖python，求中奖@Linux中国 @Linux中国_笑语彦然

C语言、C++语言、C#语言[赞]

swift or C#来一本好吗？ @我一下好吗

好书别走

求C语音那本

当时学C++的往事简直不堪回首啊...

放循环[嘻嘻][嘻嘻][嘻嘻][嘻嘻][嘻嘻][阴险][阴险][阴险][阴险][阴险]//@己已斋:basic//@虐毒狂人:C#和C++都是好东西，无聊的时候写个死循环，看看过多久CPU和内存会爆满100%[阴险][阴险][阴险]——我是来炫配置的

LOGO

7岁的时候学的logo语言，那时候只记得在586上跑小海龟画图，经常画各种图案，“玩”了一段时间就放弃了。。后来10岁的时候学C语言，没人教只能自学，到12岁的时候转HTML，那时候还是用frontpage设计界面拖拖拽拽的，偶尔写写CSS，做出来的网页丑爆了。。。。

曾经想学会所有的语言，后来才发现想学好其中之一就很不错了。一直在学习C语言，也希望一直很好的走下去。//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

//@不知霜舞哀伤udspj:。。。第一门啊。。。as3。。。

Matlab

C语言，当时学习C的书我还珍藏着，想想那本书真是误人子弟，连指针都不教，晕菜。

啦啦，我来拉，想要python，c++也不错~~~刚学C的时候觉得还是python的语法精简，如今觉得C其实也不错呢~C是我掌握的第一门编程语言，啦啦

[泪流满面]完全无法直视了→_→//@坡小西: 7岁的时候学的logo语言，那时候只记得在586上跑小海龟画图，经常画各种图案，“玩”了一段时间就放弃了。。后来10岁的时候学C语言，没人教只能自学，到12岁的时候转HTML，那时候还是用frontpage设计界面拖拖拽拽的，偶尔写写CSS，做出来的网页丑爆了。。。。

bash啊，脚本语言，现在过渡到python3了

我的书

还是最喜欢c语言

话说。。。要“@”一下才能抽奖么？

第一位中奖用户诞生，恭喜@Kaibo_Hao 获赠第一本《Go并发编程实战》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。明天的Python会“书落谁家”呢？参与活动就有机会哦[太开心]

[喵喵][doge]

[哈哈]java，自学…我开始以为空格是固定的…按照图书开始数空格数[可怜]

自学java

我要ruby,快到碗里来

嘎嘎

......必备 //@古怪945:[哈哈]java，自学…我开始以为空格是固定的…按照图书开始数空格数[可怜]

研究生期间就学习c#只是从来没有正式从头学～现在工作当老师了  想学习～来一本吧

求带走swift

C语言大学才开始接触的

那些年我们一起写过的程序

学的第一门编程妥妥的是VB

抢一本R和python吧

Repost

好

想要大蟒蛇

[偷笑]

：【转发赠书】土豪，爱你别走，这么多重磅好书！

明天Python是我的[哈哈]//@Linux中国:第一位中奖用户诞生，恭喜@Kaibo_Hao 获赠第一本《Go并发编程实战》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。明天的Python会“书落谁家”呢？参与活动就有机会哦[太开心]

希望是第一本。。。Go语言确实简洁。。。

第一门是C，至今仍是常用和喜欢的语言。最喜欢的很难说是哪个，偏函数式的、强类型的比较喜欢。好书到我碗里来。[嘻嘻]

[草泥马]

我我我！

python

c++不错哦~~~刚学C的时候觉得还是python的语法精简，如今觉得C其实也不错呢~C是我掌握的第一门编程语言……

啊啊啊，求中奖啊啊啊。。。//@臧秀涛://@图灵李洁: 都是好书哦 @特价萝卜 @臧秀涛 //@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

来一发pythom[可怜]

第一门当然是c了，各种不懂～～

[哈哈]求中

第三本[心]Ruby Programming

求个第二本  图书馆借的看了感觉不错

Python

给我一本鼓励我一下

转  很想要go并发[馋嘴][泪]

我只想一本。

我的第一個是遊戲機上用的basic 那是2000年左右 我12歲花了140銀子沒講價在縣城買的 呀恍如隔世呀

听说ruby不错，R语言也不错，我不贪，有一本就行了

对现代方法这本书情有独钟，一直想入手一本，现在有机会了，感谢！！！

来本c#吧  想深造

第一次中@Linux中国 福利[太开心] 谢谢//@Linux中国:第一位中奖用户诞生，恭喜@Kaibo_Hao 获赠第一本《Go并发编程实战》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。明天的Python会“书落谁家”呢？参与活动就有机会哦[太开心]

我第一次学会的语言应该是C语言吧，就这转发下，看着别人中奖很羡慕，但很多时候也知道一般人中奖不容易

好多书我都喜欢，要是有Scala 的更好啦[哈哈]

第一个会的是C，现在依旧主要撸C，偶尔玩玩Python~

[给力]

从来没有中过～

好像要那本《嗨翻C语言》

只用过C语言@Linux中国

@Linux中国 给我来一本吧

@Linux中国 @图灵教育  只是个C ++菜鸟，正要好书来扩展知识呢[嘻嘻]

第一个当然是C语言啦，记得当初书上几十行代码我照抄都要半个小时呢

初三自学VB，高一自学pascal和C，大一学C++，大二学Python。。。

Basic之后是PASCAL，开始用到一些有趣的算法。问题是，代码写纸上，从没运行过

最近痴迷python[爱你][爱你]

c语言

Java,C#,HTML,CSS,JS,.NET

C ：hello word！一个伟大的行动和思想，都有一个微不足道的开始。

哇！

Ruby 厉害。。。

C++雨燕也可以

第一次接触编程语言是小学计算机课上教我们的logo语言，用一些简单指令让画面上的小乌龟移动，当时觉得太有趣了。但开始真正比较熟悉的语言是高中时学的Pascal语言。

转发～喜欢～@linux中国

第一个自学的是谭浩强的c ++.

RP大爆发

[懒得理你]

Ruby

精通C#

恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

想学习下Python

第一个接触到的是C，当时就没学懂

第一个是QBASIC，完全不知道那是啥。最爱python

继续支持活动[作揖]

为啥呢，，，，书呢？？？？？//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

耐你~来我的怀抱吧~

Python有了，我要Ruby。//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

嗨翻c语言…

第一个是C，当时完全不理解这语言

C

python简洁优雅

第一个是c 写那个搬箱子游戏时晕了 现在还不会写 我想要那本r

哇咔咔，终于要抽我最爱的Ruby啦，国内Ruby的书好少，我要它！！！

//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

[来][来]

好好学习，天天向上！ //@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

小学的时候一种儿童编程语言吧…………初中粗略的写过html+css，真正认真学应该是高考后的暑假学C语言

第一门当然是C啦，希望抽到Python

[doge]抽我抽我

虽然很菜，但有一颗学习的心

我也好想要蟒蛇[悲伤]。。。。感觉最帅的语言。。。因为在高层可以做好多跨平台的事。。[doge]

一直在转 。。不信不中

basic,cls print 完全不知其所以然//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

pascal

[威武]

大一开始c 研究生cpp java Python.工作现在纯c。

两年前走进了编程的世界，最先是接触C语言，但是我最爱的是C++

第一个学会的编程语言是qbasic，高中的时候学的，会一些简单的运算，用它做了一个加减乘除的计算器，现在都是用c了，记得有段时间敲代码敲多了，上英语课答问题，顺口include reg52.h  老师一脸茫然。。。

每天登陆微博查看下微博私信，啊！没有获赠。。好吧

书都不错 //@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

我最喜欢qt啦，哈哈哈，第一次做个像样的大作业就用的qt，请把中间那本狠狠的抽给我[哈哈][哈哈][哈哈]

好想来一本啊

开始学swift，有机会入一本？让我抽中吧//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

想要书的路过//@Skogkatt:正经学会的第一种应该是1997年那会接触的FoxBase。第一个像样的应该是1998年用VB5写的帮老师统计考试成绩的一个玩意。大学毕业前一直在用Delphi，现在想想也有十年没怎么用了，都快忘了。说到汇编完全是当年看@小貓撲得很賣力 在破解某东西，跟风自学的，也有十几年了。

╭(╯ε╰)╮

大学的时候C++没好好学，工作了发现自己对编程还挺有兴趣

怒转//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

[抓狂]//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

无法和量子力学相比。//@kennedyhan: 第一个接触到的是C，当时就没学懂

学海无涯[good]

呐呐，到我怀里来

都是好书，么么达

还说早点睡，大骗纸[躁狂症][躁狂症]//@颠仔爱:第一个学会的编程语言是qbasic，高中的时候学的，会一些简单的运算，用它做了一个加减乘除的计算器，现在都是用c了，记得有段时间敲代码敲多了，上英语课答问题，顺口include reg52.h  老师一脸茫然。。。

好像最早在初中接触的语言是logo语言。然后逐渐接触basic，用过c++ ，还有和r语言类似的sci ，还用过php ，基本上比较杂，语言只是工具。需要哪些特性就选哪些语言。//@Linux中国:《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称编@Linux中国_笑语彦然

来吧，ruby

哈哈，正在学习Python，到我碗里来。。。

爆发吧 人品

求。//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

抽一把

好书一起转发，已经关注有些日子了，大神，给我个惊喜吧[泪流满面]

求中

第一次编程用的是visual basic,是高中的时候计算机课用来求圆的面积！

嘿嘿嘿，，，

那么好的书，快来转发@Somiar @9舍丶男生 @我可能不敢爱你 @-我还在路上 //@来自死神界的夏天:好想来一本啊

哇！！各种求啊.！@Leo毛毛丶 @拔节成长的minmin @echo杰森伯恩 @人肉疯选机 @0黄小花_纯种哈士奇 @胖丞cheng @杨梦鸥

求送。。

多读书，多看报，少吃零食多睡觉

=。=中一个？~缺书啊混蛋。。。。

[泪流满面]好书一起转发，已经关注有些日子了，大神，给我个惊喜吧

其实比英语简单！

[太开心][太开心][太开心]挡不住的诱惑呀！//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

[加油啊]//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

城内学过C++，matlab和汇编……

我接触 第一个编程语言是c++，现在我想学swift，对不起我迟到了swift[泪]//@图灵教育:【转发赠书】土豪，爱你别走，这么多重磅好书！

是时候拼人品啦 啦啦啦

是时候拼人品啦 啦啦啦

恭喜微博用户@Skogkatt 获赠《Ruby基础教程》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。

恭喜//@Linux中国:恭喜微博用户@Skogkatt 获赠《Ruby基础教程》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。

想要一本！//@Linux中国: 恭喜微博用户@Skogkatt 获赠《Ruby基础教程》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。

精通c![呵呵]

C语言，记得当初一开学就有幸加入了ACM创新实验基地，开始了我的码农时代！唉，求赠python[嘻嘻]

世界上只有一门编程语言，C语言。//@Linux中国:恭喜微博用户@Skogkatt 获赠《Ruby基础教程》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。

求go并发编程！嘿嘿，go的书市面上不是很多，国内讲go并发编程的，只有这一本吧？

最爱c语言

c语言，强大的语言，

一天来一次

@图灵教育 [害羞]

[doge] 求本C~

能多本书也是极好的

[呵呵]

c++

最爱golang

我特别喜欢C++@说人话从入门到精通

到我碗里来～～

//@Linux中国:恭喜@alan是蜗牛 获赠《Python基础教程（第2版•修订版）》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶] 明天Ruby抽抽抽~[挤眼]

python[花心][花心]//@Linux中国:恭喜微博用户@Skogkatt 获赠《Ruby基础教程》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。

来点料，让我们不要停下学习的脚步。

C语言，觉得是很直接的一门语言，简单明了。

什么时候可以抽到我

我的入门语言是....c#，现在正学c++   @_@

正在学iOS， swift不要跑

我要

d\求书

想想两个月前我还不知C语言为何物，更不知道还有JAVA，JSP，.net,perl,c#,...反正像是发现个新世界，经过两个月的百度谷歌，一点点拓展自己的知识框架，为自己今后的学习尽可能好的定下路线，C语言需要更多的时间来学习巩固提高，那本《嗨翻C语言》前几天刚从一位学长那里看到，正准备买，所以，哈哈

求书

ruby 现在那么火么，完全不会，百万分之一的中奖几率@Linux中国_笑语彦然

期待来本 :P

第一门语言是C语言，而后学习了C++语言。微软将.NET开源后，想学习C#语言。

恭喜微博用户@xiapeilong 获赠《Groovy程序设计》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[礼物]

求送！

嗨翻c语言 //@Linux中国:恭喜微博用户@xiapeilong 获赠《Groovy程序设计》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[礼物]

#爱抽奖# 来一发

爱[心][心]

第一门是C，到现在也还是只会C[泪]

HTML，初一的时候就想着拥有自己的网站，瞎鼓捣HTML，虽然最后什么都没搞出来。

Repost

祝我人品爆发吧。。。

[耶]求送//@Linux中国:恭喜微博用户@xiapeilong 获赠《Groovy程序设计》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[礼物]

来本c#

虽然我觉得肯定不会中的//@Linux中国:恭喜微博用户@xiapeilong 获赠《Groovy程序设计》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[礼物]

从事运维的来说，这真是一本必备的宝典呀！一直都觉得Python是自己的薄弱环节，希望小编能送我一本《Python基础教程（第2版•修订版）》，万分感谢！！[可怜][可怜][可怜]小编

第一次接触变成语言还是VB，那时候用VB写了一个界面，感觉很爽

ruby我想要

python python , give me python

参加

求书，求书啊！！来本GO

谈不到最爱吧，因为还没学几种目前用到的C最多，还有今年寒假准备学C++虽然有一点点了解但不系统准备在补补，其实C#也挺好使写什么上位机的对于我这种C++不太熟的人来说也算一种福利吧

最喜欢的是Java，因为其他语言用的不多呀。

恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

[喵喵][喵喵][喵喵]//@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

武器库里装着BASH，PERL，C++、C可是我最喜欢的还是C语言，简洁高效，清爽直白。（当然语言不能比较优劣只能说C适合我）//@Linux中国: 恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出

最先学的是C, 给我来本python [doge]

python

学的第一种语言是C，最喜欢的是Java，因为其他语言用的不多呀。现在在实习，做安卓开发，希望自己不要沦为码农。

来本C来本C

[可怜]

上次转发那么多次，也不给送本。。。。//@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

恭喜恭喜//@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

Go~

pc logo~ //@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

go并发编程实战

已发送，谢谢啦//@Linux中国: 恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

嗨翻C语言还有Python[可怜][可怜][可怜][可怜][可怜]

来本Python

//@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

...[泪]Python·已经没了[泪][泪]那就嗨翻C语言吧[可怜][可怜][太开心][太开心]最开始接触的也只有c了，

C语言还有Python//@图灵教育: 【转发赠书】土豪，爱你别走，这么多重磅好书！

[哼]bug

Python有多少？

哈哈[哈哈]再碰碰运气//@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

swift和go都okay

求中！

大一学的C语言。后来自学Python。个人最喜欢Python。。。@Linux中国

[晕]

我的学习经过是c，c++，java，android，flex，c#，python，hadoop

python基础教程//@Linux中国:恭喜@er3456qi 获赠《Swift开发指南》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[太开心]

python 看起来不错。让我做一次分子吧！

c,之后是java

来一本

C语言

喜欢

第六本书的中奖用户诞生，恭喜微博用户@yanqingquan_kin 获赠《嗨翻C语言》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[哈哈]

现在是各种送书啊

最喜欢的还是Go了……

好好想要一本c，作为新手刚起步，加油！！！

想要c++程序设计

谢谢~！

快到碗裡來[花心]

《C++程序设计》

太高兴了，中了！虽不是我最想要的C#，C也不错。感谢感谢！我要哭吗？ //@Linux中国:第六本书的中奖用户诞生，恭喜微博用户@yanqingquan_kin 获赠《嗨翻C语言》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[哈哈]

第一个会的是c语言，然后看c专家的时候，居然被里面的冷笑话逗笑了[汗]

好书！！转！

先学的是C语言，后来学面向对象用的是C++，毕业设计的时候有的C#，现在还是用c++

土豪，赐一本吧[xkl转圈]

我也要

分母

Python~

恭喜    @Linux中国:第六本书的中奖用户诞生，恭喜微博用户@yanqingquan_kin 获赠《嗨翻C语言》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[哈哈]

//@晓风主页君:转发微博

无聊转转

我要C语言书。

这本c#我要拿走啦。。@Linux中国

唉，嗨翻C语言没了没了只能上京东了

@图灵教育 @Linux中国

第一次学汇编语言，现在已经习惯了它。恭喜微博用户@yanqingquan_kin 获赠《嗨翻C语言》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[哈哈]

不知道ruby还在吗？主页君 给跪了啊

bug不可怕，项目没有才可怕[doge]

依然是c！

怎么不是我//@Linux中国:第六本书的中奖用户诞生，恭喜微博用户@yanqingquan_kin 获赠《嗨翻C语言》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[哈哈]

中

要。。

阿门，难道我就知能买不能中一本吗？希望来个人品大爆发想要中本：精通C#(第六版)！！！必中必中！！！@Linux中国

求送！！

给我吧

想要

求书…

求送~！

恭喜微博用户@坡小西 获赠《精通C#》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶]

恭喜恭喜……还有两天，希望我也有好运气吧！ //@Linux中国:恭喜微博用户@坡小西 获赠《精通C#》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶]

至今没中。。。为啥。。。//@Linux中国:恭喜微博用户@坡小西 获赠《精通C#》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶]

C

学会的第一门语言是C，觉得编程好神奇，写的第一个程序是hello world，结果没通过编译，include打错了[汗]目前在学R，感觉R才是我的菜，太好用了，相见恨晚啊@Linux中国

求送！

还剩2本啊

只会c,c++和python

每学一门语言，都会觉得自己选错专业了，快毕业了~老师才说：会perl和R就够用了[委屈][委屈]有趣儿不？[哼]

c

[给力]

C  ccc     next one Phython[钟]

C  ccc    [偷笑] next one Phython[钟]

还有python吗？

python、swift

JAVA,  C#,winform,wpf,swing,javascript,jquery,ajax,c++,VB,SqlServer,oracle,MySQL,hibernate,spring,struts,mybatis,HTML,css,JSP,servlet,.........学了太多了

程序员成长之路必备品[嘻嘻]

帮大威神要个go//@Linux中国:恭喜微博用户@坡小西 获赠《精通C#》，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[耶]

Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。9点一直弄到半夜三点，我拿着与运算结果一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样在房间里忘我仰天长笑，并把睡梦中母上惊醒当成不务正业暴打了一顿…真的很痛呢(笑)哈哈哈好久都没有那样开心的笑过了。

好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上惊醒当成不务正业暴打了一顿…真的很痛呢。哈哈哈好久都没有那样开心的笑过了。

[doge][doge]虽然是C，但好想问 有汇编的大神吗

小霸王和文曲星上的BASIC

学VB最大的动力是为了泡妹子。 //@Linux中国:[威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上惊醒当成不务正业暴打

go并发编程实战

必须是C啊 被坑很久的指针[好囧]

必然是C呀。大一的必修课。学到现在唯一一个上90分的科目。我的专业是做硬件的，但是我就是从C语言开始喜欢上了编程，开始了业余程序员生活。等工作的时候专心写代码[呵呵]

我比较淘气 那时刚学会clock（） 就编了个下课计时程序 一节课100分钟 计时换算成毫秒 到时间了就用ascII的蜂鸣符号让电脑不听响。后来同学从我这拷走了程序 于是班里的电脑就都得了种怪病——一到下课点就坏了。。。

Pascal语言吧，高一进校听说有信息学竞赛虽然不知道是干啥的，但据说能翘掉晚自习去机房玩电脑，当时我就果断去了...还深深地记得刚开始学递归的时候老师举了个汗诺塔的例子，单步人肉跟踪，最后弄明白时那个激动啊！结果第二天8皇后问题依然不会[笑cry][笑cry]

可以呀！大学开始才学的c语言！！刚接触的时候，那老师像讲天书一样啊！完全听不懂！后门才发现，也不是很难！熟能生巧吧[笑cry][笑cry]

C  就是这么简洁，就是这么任性

换用Smooth心情大好

R是什么语言

……我只听说过为了妹子去学编程的，还真没听说过，学编程为泡妹子的。//@jeff2229:学VB最大的动力是为了泡妹子。 //@Linux中国:[威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出

第一种是C语言。是在高中时代。当时学习的动力很简单，就是为了看懂那些漏洞的Exploit，能够编译和使用。如果送的话，《精通C#》，谢谢。

一直用c做嵌入式，偶然的机会接触了JAVA和C++，发现面向对象的东西还是更适合自己，现在还是在努力的学习中[哈哈]

→_→右右走上了不归路 //@Aniki_MaiCha:……我只听说过为了妹子去学编程的，还真没听说过，学编程为泡妹子的。//@jeff2229:学VB最大的动力是为了泡妹子。 //@Linux中国:[威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。

还剩啥？

[doge][doge]虽然是C，但好想问 有汇编的大神吗

小霸王和文曲星上的BASIC

go并发编程实战

必须是C啊 被坑很久的指针[好囧]

C  就是这么简洁，就是这么任性

换用Smooth心情大好

R是什么语言

还剩啥？

羡慕啊@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上惊醒当成不务正业暴打了一顿…真的很痛呢。

vb...//@OH_RX_素质吃鳖:第一个好像是basic//@Aniki_MaiCha: ……我只听说过为了妹子去学编程的，还真没听说过，学编程为泡妹子的。//@jeff2229:学VB最大的动力是为了泡妹子。 //@Linux中国:[威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。

为了参加数学建模比赛在3天通宵中学完Python，后来就喜欢上了

vb吧，高二计算机会考的时候要考，从此沉迷在打印各种图案，等腰三角形，菱形，解二元一次方程组中，如果高二能写简历的话，也算是熟悉if语句，精通for循环了

说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]//@笨蛋的黑子樣:vb...//@OH_RX_素质吃鳖//@jeff2229:学VB最大的动力是为了泡妹子。 //@Linux中国:

欸，好像是初中学的，记不太清除了，大概就是那个时间的点脑课有教VB编写计算器程序。关机命令是否正确我也忘了，别介意。那时候大部分人都是应付作业，然后女生逛淘宝，男生玩游戏

至今一门都没学会[笑cry]//@DeenJun:Pascal语言吧，高一进校听说有信息学竞赛虽然不知道是干啥的，但据说能翘掉晚自习去机房玩电脑，当时我就果断去了...还深深地记得刚开始学递归的时候老师举了个汗诺塔的例子，单步人肉跟踪，最后弄明白时那个激动啊！结果第二天8皇后问题依然不会[笑cry][笑cry]

只会Delphi的路过→_→最近在学php。。。

basic高中电脑课学习的，还是拖控件，自己照着写代码，编写计算器，现在想想，当时的代码bug比较恐怖

转一个

人家要嘛。

ruby[亲亲][亲亲][亲亲]//@Linux中国:[威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上惊醒

老早看到这个活动，一直忍住没有参与，就是等到今天，想要R的书……小学末和初中时接触电脑，父亲做土木的，写程序，遂始看QuickBasic，到函数就不行了，理解不能（觉着还是那教材烂）…高中遇到Pascal…大学学点C就信奉C++，天天看STL，现在喜欢Octave，python，主用R/Bioconductor，求赐予我这书吧！

现在在学c，因为要考二级，为了玩树莓派在学python

大约10年前，电视报社有个活动需要现场摇奖，刚毕业的我用C++Builder花了半天写了一个。之后2年是Perl，大多是POE的应用。接着到现在，主要是TclTk，但几乎什么都信手拈来了，Python写的电视响度监控调整，Node的几个微信接口，当然有Java了，Android无处不在嘛，哈哈哈

Delphi...四五岁的时候 每个周末爸爸都教我 [害羞]//@Linux中国: [威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上..

还是要go相关的吧。

第一次学的语言是php，那时候还是高三，学校不让带手机，但是当时对php特别迷恋，问我哥借了钱，买了一个手机，没到上英语课的时候，总是在下面偷偷看着pdf书，有一次在班主任课上，觉的实在是太无聊，就拿出手机看，看的太入迷，没想到他就站在我的旁边，然后手机就被没收了，不过学到了还是挺开心的

@Linux中国 第一次学的是php，那时候还是高三，学校不让带手机，但是当时对php特别迷恋，问我哥借了钱，买了手机，每到上英语课的时候，总是在下面偷偷看着pdf书，有一次班主任课上，觉的实在是太无聊，就拿出手机看，看的太入迷，没想到他就站在我的旁边，然后手机就被没收了，不过学到了还是挺开心的

[好爱哦]

[好爱哦]

学过的第一个是C，第二个是Fortran，第三个是Python，后两个用的少，现在快忘光了。

美好的时光[威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上惊醒当成不务正业暴打了一顿…真的很痛呢。哈哈哈

大一学c语言，第一次做实验，老师让写个helloworld，我写了个printf老大是sb，让宿舍老大看，被老师发现了，老师笑了说我天赋异禀，一定能学好c语言。后来学了51c，现在想自学c加加。

居然不是抽奖平台选的。内幕？

//@Linux中国: [威武]//@Aniki_MaiCha: 好像是Python吧,.那时正面临中考升学的前三个星期，好像学到递归…脑子笨。半夜3点我拿着与运算结果与计算机一样的草稿纸像某个疯子科学家解出来一道困扰已久的问题一样,在房间里忘我仰天长笑，并把睡梦中母上惊醒当成不务正业暴打了一顿…真的很痛呢。哈哈哈

→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

用 Foxbase 编写了一个木马，现在用 Java 了

同学你中国时间哪年出生的?@Aniki_Maicha//@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

→_→//@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

初中开始学C和C++，高中开始学php，pascal，为了玩OD还学过一阵子 i386 汇编。

乡下人，高中才接触电脑，大学才开始了解语言。反正已经敲了好多个hello world了。不过还是喜欢printk出来的。

就不能给我一本？

在邊境一個偏僻的小山村長大，上大學之前都不知道有編程，寫代碼這回事，上了大學第一次上C語言課時候才發現代碼都是由一些字母，數字及符號組成的，上課實驗課的時候連運行程序都不會[泪]

都是很潮的的语言哇~

适合初学者，能让初学者轻松入门，很快培养python兴趣。 如果你没有linux基础，没有编程基础，你可以从中找到基础的方法； 如果你有基础，你能轻松掌握本书内容。 这本书是智普教育python教学推荐教材，不错！

最开始就是c了，要学数据结构，当初是C语言版，所以。。。

最右干的漂亮 //@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

以后交作业的时候，写一个manifest要来管理员权限，然后删文件！//@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

→_→//@Linux中国: →_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

回复@丛凤翔CMH:[衰]囧[汗]//@丛凤翔CMH:多打个h//@小裁缝累了:C  ccc    [偷笑] next one Phython[钟]

丛老师揭发了我，好吧 重来一遍C  ccc    [偷笑] next one Python[钟]

学的第一门语言是C，现在求一本python[害羞]

说好的书呢

哎，PHP啊，这里木有，C#

我想要 ruby的书籍，希望能中奖 O(∩_∩)O谢谢

ruby//@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

[泪流满面][泪流满面][泪流满面]我转下吧，虽然已经连续一周了没中过

@程序员幽默  →_→ //@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

概率相当低//@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

→_→//@图灵教育: [最右]//@公民迈克: 哦…还好你没rm -rf…[偷笑]//@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电]

C语言啊，永远的初恋啊。当初就是用C秒杀了我一直单恋的那个男生，从此脱离了单恋的苦海╭(╯ε╰)╮

哈哈，远程连接windows主机就是用这个命令关机的。 //@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学的电脑老师都很凶[拜拜]

初中写了个点图片就切图放歌的FLASH，发给小伙伴秀优越，没想到他顿时手舞足蹈，喜笑颜开，说这是泡妞神器，要我弄上他女神照片再来一发……我的脑洞啊……

[爱你]c#

當年網頁設計課用win95，有個鏈接我寫“別點”指向了copy con con //@Linux中国:→_→//@Aniki_MaiCha:说到这个，小学的时候老师叫写计算器的小程序嘛！脑洞一开我就把计算按钮写Shutdown -S -t 0交完作业老师控制机器播放展示我们的作业成果的时候正好抽到我的作业…不说了，小学电脑老师都很凶[拜拜]

求送~！

for1 for2 link

Go语言是开发并发编程的未来之星，非常看好。

学会的第一种编程语言LOGO，第一种可用于实际工作的是C

[嘻嘻]@图灵教育 为什么每次都没我，是不是没@图灵教育

求@Linux中国 [求关注]

自学python、就是深入浅出那个系列的[害羞][害羞]讲的真的很棒！编程还是得实践、来回改里面的内容去理解每行的意思，挺好玩的…虽然我很菜[纠结][纠结]不过解决一个小问题可以带来好多天的幸福感！[噢耶][噢耶]算算日子今天赠的是R吧、和我所学专业很对口呢、希望可以抽中～不抽中我也可以买[羞嗒嗒]

我想要[可怜]

那时还在上高中[挖鼻屎]那天我跟小伙伴去学校机房玩红警，打开电脑之后，上了个厕所回来之后红警的图标变了个样，也没在意，不料一点图标，出来个框提示电脑中病毒了下面还有个倒计时关机，瞬间蒙住了，一扭头，旁边的小伙伴正笑得欢，一问才知道是他搞得鬼，顿时兴趣大增，那天就玩了一下午[笑cry]

//@想昵称是个伤脑的事:转发微博

恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

Python基础教程来一本，转业开始写代码了

最开始学c然后c++到现在的php.最后一本抽我。

最后一部书，给我！！！！！

都想要，虽然我是学电气的，但是我更喜欢计算机

专业做分母 //@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

我！现在学c加加！ //@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

我要c++

谢谢！[耶]//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

我也要  哈哈  我//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

//@老刀IBM:谢谢！[耶]//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

每次都抽不到我。。。所以拉低中奖率来平衡下

我要ruby那本，选我选我选我

最后一本。。

最近运气一直不错的

你么？。。。我都木得到啥奖品的//@ATHOOK:最近运气一直不错的

我转发的少，记得几年前有一次中过20元话费//@_nycode_:你么？。。。我都木得到啥奖品的//@ATHOOK:最近运气一直不错的

之前转发微博还中过t恤卫衣什么的。。现在啥都没中，希望能中本书呢～～//@ATHOOK:我转发的少，记得几年前有一次中过20元话费//@_nycode_:你么？。。。我都木得到啥奖品的//@ATHOOK:最近运气一直不错的

只需要 3  [拜拜]

学生党求抽！//@Linux中国: 恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

这也可以//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

[爱你] //@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

还缺C++方面书呢[可怜][可怜]//@Linux中国: 恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

我举手有戏ma//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

给我吧[害羞]//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

[得意地笑][得意地笑][得意地笑][得意地笑][得意地笑][得意地笑][得意地笑][得意地笑]

终于等到C++

C++！！！

万般皆下品，唯有C++，求啊～//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

[生病]快来

我要我要[抓狂][抓狂][抓狂][抓狂]

时间匆匆，要学的还很多//@onigiri小星:转发微博

[肥皂]举手//@Linux中国: 恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

C＋＋

给我

给我

我能说某宝的C++还在加印么。我才不是为了C++转发的呢[阴险][阴险][阴险][阴险]//@Linux中国: 恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

go//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

@Linux中国 第一学的语言就是C++了，以前第一次接触不知道再讲什么，那时本来感觉英语是世界最难的语言，自从遇到c++语言，就不再有这种感觉了[呵呵]

@Linux中国 怒转！//@早安_早安:@Linux中国 第一学的语言就是C++了，以前第一次接触不知道再讲什么，那时本来感觉英语是世界最难的语言，自从遇到c++语言，就不再有这种感觉了[呵呵]

谁还记得小霸王学习机里的vb。。。

给我

给我吧

最后一本[可怜]

要

求送一本C++呀。。。

关注这么久一直没我的份啊[泪]//@Linux中国:恭喜微博用户@老刀IBM 获赠《学习R》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[鼓掌]最后一本C++谁想要，举手~[哈哈]

恭喜微博用户@郭子尧XD 获赠《C++程序设计：现代方法》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[礼物]下周一将会有新的活动上线，敬请关注~

ruby[抓狂][抓狂][抓狂][抓狂]//@Linux中国:恭喜微博用户@郭子尧XD 获赠《C++程序设计：现代方法》图书一本，请把您的姓名、地址、邮编、电话以及获赠图书名称私信发送给小编@Linux中国_笑语彦然 图书将于活动结束后一周内发出。[礼物]下周一将会有新的活动上线，敬请关注~

不知道一个新手怎么开始！

NB

# [微博活动]那些年，我们追过的编程语言

作为开发人员的你们，还记得你学会的第一种编程语言吗？跟大家聊聊你最爱的编程语言，或者分享一下你在敲代码过程中遇到过的趣事儿。小编为大家准备了9本编程语言图书，转发微博参与互动（微博地址见活动详情），11月21-11月29每天从参与活动的用户中抽取一位中奖用户，赠送图书一本（图书按照图片顺序）

### 活动详情：

**活动时间：**2014年11月21日-2014年11月29日

**活动内容：**在新浪微博转发微博参与互动，活动期间每天从参与活动的用户中抽取一位中奖用户，赠送图书一本（图书按照图片顺序）。

微博地址：<http://weibo.com/1772191555/Bxh8CkGac>

**特此注意：**

**微博用户参与活动，注意查看[@LINUX中国](http://linux.cn/home.php?mod=space&uid=16101) 官方微博公布的中奖名单或留意您的微博私信。我们会通过微博私信的方式获取您的邮寄信息。**

**1、《Go并发编程实战》**

试读地址：<http://www.ituring.com.cn/book/1525>

**2、《Python基础教程（第2版•修订版）》**

试读地址：<http://www.ituring.com.cn/book/1396>

**3、《Ruby基础教程（第4版）》**

试读地址：<http://www.ituring.com.cn/book/1237>

**4、《Groovy程序设计》**

试读地址：<http://www.ituring.com.cn/book/1294>

**5、《Swift开发指南（修订版）》**

试读地址：<http://www.ituring.com.cn/book/1517>

**6、《嗨翻C语言》**

试读地址：<http://www.ituring.com.cn/book/1004>

**7、《精通C#》**

试读地址：<http://www.ituring.com.cn/book/1046>

**8、《学习R》**

试读地址：<http://www.ituring.com.cn/book/1187>

**9、《C++程序设计：现代方法》**

试读地址：<http://www.ituring.com.cn/book/1263>

**更多图灵图书：请点击：**<http://jmall.jd.com/p151429.html>


安卓编年史（3）：Android 0.9 Beta——嘿，这看起来很眼熟！

Summary: Milestone 5 发布后六个月，2008 年 8 月， 安卓 0.9 发布。尽管安卓 0.5 milestone 版看起来“很早期”，而此时距离 1.0 发布也只有两个月时间了。因此，安卓 0.9 被打上了“beta”的标签。

# 安卓编年史（3）：Android 0.9 Beta——嘿，这看起来很眼熟！

*从左到右：安卓 0.9 的主屏幕，添加的应用抽屉，以及快捷方式删除界面 [Ron Amadeo供图]*

### Android 0.9, Beta——嘿，这看起来很眼熟！

Milestone 5 发布后六个月，2008 年 8 月， [安卓 0.9 发布](http://arstechnica.com/information-technology/2008/08/robotripping-hands-on-with-the-android-sdk-beta/)。尽管安卓 0.5 milestone 版看起来“很早期”，而此时距离 1.0 发布也只有两个月时间了。因此，安卓 0.9 被打上了“beta”的标签。在移动操作系统之路的另一边，苹果在一个月前已经发布了iPhone 的第二代产品——iPhone 3G。第二代的 iPhone 搭载了第二代 iPhone OS。苹果同样发布了 App Store 应用商店并且已经开始接受应用提交。谷歌在追赶的道路上还有很多事情要做。

谷歌抛弃了很多在 Milestone 5 中引入的 UI 设计。所有设计都回炉重造，采用全彩设计，白色方形图标背景被抛弃。尽管 0.9 还是一个模拟器版本，相比与安卓发布版来说看起来还是有点熟悉。安卓 0.9 有一个可用的桌面式主屏幕，一个特有的应用抽屉，多主屏，更多的应用程序，以及全功能（仅是它自身的）小部件。

Milestone 5 中似乎没有计划支持安装 21 个以上的应用，但在安卓 0.9 中有一个垂直滚动的应用抽屉，可以通过屏幕底部的灰色标签打开。那时候，应用抽屉真的只是个抽屉。除了作为一个按钮使用，灰色标签还可以跟随你的手指被向上拉起，就像通知面板被拉下来那样。还额外添加了一些应用，像闹钟，计算器，图片，信息，以及照相机。

这是第一个可以完全自定义主屏幕的版本。长按应用或小部件可以拖动它们。你可以把应用从抽屉中拖出到主屏幕快捷方式，或长按一个已经存在的主屏幕快捷方式来移动它。

安卓 0.9 提醒我们谷歌那时候并不像今天这样擅长设计。实际上，当时安卓的部分设计工作外包给了其它公司。你可以从时钟小插件看出一点端倪，它包含了“MALMO”字样，它是设计公司 [The Astonishing Tribe](http://www.tat.se/) 的所在地。

*安卓 0.9 的“添加到主屏幕”对话框 [Ron Amadeo供图]*

安卓 0.9 中只有三个小部件：时钟，相框和搜索。搜索小部件在列表中甚至没有一个自己的图标——它用的是图片的图标。也许这里面最有趣的选项是壁纸选项中的“购买的图片”——一个“在非智能机时购买铃声是个普遍的现象”的遗留产物。谷歌要么准备出售壁纸，要么在某时已经加入了一个运营商。不过这家公司最终从未实现这个计划。

*小部件集合，打开的文件夹，重命名文件夹，以及一个复制/粘贴菜单 [Ron Amadeo供图]*

在上面左侧的截图展示了谷歌搜索和图片小部件。除了给你一个框进行输入之外，搜索小部件做不了其它事情——它没有自动补全或是附加的 UI 界面。在框里输入并点击“Go”会启动浏览器。底部的一排图标显示了一些菜单中通过长按得到的“快捷方式”，它会创建图标并将应用启动到特定屏幕。独立的联系人，浏览器书签，以及音乐播放列表都是 0.9 中可以被添加到主屏幕上的快捷方式。

“文件夹”是快捷方式标题下的一个选项，尽管它并不是任何东西的快捷方式。一旦创建了一个空文件夹，图标就可以被移动进去并重新排列。不像今天，那时候的文件夹里有什么并不反映在文件夹图标上，它一直是一个简单的，白色的，看起来空空的文件夹图标。

0.9 同样是第一个拥有系统级别复制/粘贴支持的安卓版本。长按任意文本框会唤出一个对话框，从而让你保存或撤销剪贴板中的文本。iOS 直到近两年后才支持复制/粘贴，所以在一段时间内，这是安卓的特色之一——以及许多网络争议的源头。

*从左到右：安卓 0.9 的新菜单，最近使用应用，电源选项，以及锁屏 [Ron Amadeo供图]*

安卓 0.9 真正地开始显示出了它的成熟。主屏幕有完整的菜单选项，包括设置（尽管它还不能正常运作）以及搜索按钮（谷歌肯定很喜欢你去搜索）。从那时起菜单的设计便已经最终成型，直到安卓 2.3 它转变成了黑色。

长按实体 Home 键会唤出一个 3x2 方格的“最近使用应用”的菜单，这是一个一直持续到安卓 3.0 的设计。“最近使用应用”菜单会将背景显示模糊化，但这个设计用在这里显得有些奇怪，在其它弹窗比如“添加到主屏幕”对话框或是主屏幕文件夹视图之中并没有用到该设计。电源菜单至少包含在了背景模糊设计组之中，它的图标经过了重新设计，并且功能的对应名称更改得更容易让人接受。不过电源菜单图标缺乏填充，显得有些拥挤和不雅观。

安卓 0.9 以其锁屏为特色，虽然是非常基础的样子。黑色和灰色的锁屏没有任何屏幕解锁的选项——你需要点击实体菜单键。

---

[Ron Amadeo](http://arstechnica.com/author/ronamadeo) / Ron 是 Ars Technica 的评论编缉，专注于安卓系统和谷歌产品。他总是在追寻新鲜事物，还喜欢拆解事物看看它们到底是怎么运作的。[@RonAmadeo](https://twitter.com/RonAmadeo)

---

via: <http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/3/>

译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


修复了60个bug的LibreOffice 4.3.4正式发布

Summary: 前一段时间, 文档基金会带着它的开源LibreOffice生产力套件的又一个小版本更新回来了。 LibreOffice 4.3.4，新系列中的第四个次版本，该版本只包含 BUG 修复，按计划发布了。 可以看到的变化是，如基金会所说的在developers butterfly net上被揪出来并且修复的bug数量大概有：60个左右。  排序操作现在还是默认为旧式风格(Calc) 在预览后恢复焦点窗口(Impress) 图表向导对话框不再是切除式 修复了记录改变时的字数统计问题 (Writer) 各种各样的RTF修复，包括图像边框导入(Writer)  完整列表可以在 LibreOffice Wiki 页面查看。 下载 许多

依然很难用，跟MS-office差远啦

其实还不错啦，但是常常只能在闭门造车的时候才能舒服的用起来

寡人的libreoffice可以更新了

支持，請不要再用盜版的微軟office。

LibreOffice现在都在瞎折腾些什么啊！

刚把ubuntu上的更新了。

Libre还挺好用的。。。

# 修复了60个bug的LibreOffice 4.3.4正式发布

**[前一段时间](http://www.omgubuntu.co.uk/2014/10/libreoffice-4-3-3-released-62-bug-fixes), 文档基金会带着它的开源LibreOffice生产力套件的又一个小版本更新回来了。**

LibreOffice 4.3.4，新系列中的第四个次版本，该版本只包含 BUG 修复，按计划发布了。

可以看到的变化是，如基金会所说的在developers’ butterfly net上被揪出来并且修复的bug数量大概有：60个左右。

* 排序操作现在还是默认为旧式风格(Calc)
* 在预览后恢复焦点窗口(Impress)
* 图表向导对话框不再是‘切除’式
* 修复了记录改变时的字数统计问题 (Writer)
* 各种各样的RTF修复，包括图像边框导入(Writer)

完整列表可以在 [LibreOffice Wiki 页面](https://wiki.documentfoundation.org/Releases/4.3.4/RC1)查看。

### 下载

许多家伙有完整的LibreOffice安装程序但是从来没用过它。如果你是其中一份子，你就当做没看到。

如果你喜欢升级，你可以在官方网站上找到所有相关的下载链接。

* [下载LibreOffice 4.3.4](http://www.libreoffice.org/download/libreoffice-fresh/)

### 预测一下LibreOffice 4.4

*来自LibreOffice 4.4的信息栏*

LibreOffice 4.4应该会让大家更多期望。

[维基上讲述了](https://wiki.documentfoundation.org/ReleaseNotes/4.4#GUI)正在进行中的不间断大范围GUI调整，包括一个新的颜色选择器，重新设计的段落行距选择器和一个在凸显部位表示该文件是否为只读模式的信息栏。

虽然我知道一些桌面社区对这些大规模的界面变动的抗议声不断，但是他们还是朝着正确的方向稳步前进。

要记住，在一些必要情况下，LibreOffice对于企业和机构来说是一款非常重要的软件。在外观和布局上有任何引人注目的修改都会引发一串连锁效应。

感谢Tim W！

---

via: <http://www.omgubuntu.co.uk/2014/11/libreoffice-4-3-4-arrives-bundle-bug-fixes>

作者：[Joey-Elijah Sneddon](https://plus.google.com/117485690627814051450/?rel=author) 译者：[ZTinoZ](https://github.com/ZTinoZ) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux 下易用的光盘镜像管理工具

Repost

摸索了好长时间，费劲的用系统功能，为什么你们没早点出来！[泪]

[互粉]

早没看到这篇，AcetoneISO神器呀～

# Linux 下易用的光盘镜像管理工具

磁盘镜像包括了整个磁盘卷的文件或者是全部的存储设备的数据，比如说硬盘，光盘（DVD,CD,蓝光光碟），磁带机，USB闪存，软盘。一个完整的磁盘镜像应该包含与原来的存储设备上一样完整、准确，包括数据和结构信息。

磁盘镜像文件格式可以是采用开放的标准，像ISO格式的光盘镜像，或者是专有的软件应用程序的特定格式。"ISO"这个名字来源于用CD存储的ISO 9660文件系统。但是，当用户转向Linux的时候，经常遇到这样的问题，需要把专有的的镜像格式转换为开放的格式。

磁盘镜像有很多不同的用处，像烧录光盘，系统备份，数据恢复，硬盘克隆，电子取证和提供操作系统（即LiveCD/DVDs）。

有很多不同的方法可以把ISO镜像挂载到Linux系统下。强大的mount 命令给我们提供了一个简单的解决方案。但是如果你需要很多工具来操作磁盘镜像，你可以试一试下面的这些强大的开源工具。

很多工具还没有看到最新的版本，所以如果你正在寻找一个很好用的开源工具，你也可以加入，一起来为开源做出一点贡献。

### Furius ISO Mount

Furius ISO Mount是一个简单易用的开源应用程序，可以用来挂载镜像文件，它支持直接打开ISO,IMG,BIN,MDF和NRG格式的镜像而不用把他们烧录到磁盘。

特性：

* 支持自动挂载ISO, IMG, BIN, MDF and NRG镜像文件
* 支持通过 loop 方式挂载 UDF 镜像
* 自动在根目录创建挂载点
* 自动解挂镜像文件
* 自动删除挂载目录，并返回到主目录之前的状态
* 自动记录最近10次挂载历史
* 支持挂载多个镜像文件
* 支持烧录ISO文件及IMG文件到光盘
* 支持MD5校验和SHA1校验
* 自动检索之前解挂的镜像
* 自动创建手动挂载和解挂的日志文件
* 语言支持（目前支持保加利亚语，中文（简体），捷克语，荷兰语，法语，德语，匈牙利语，意大利语，希腊语，日语，波兰语，葡萄牙语，俄语，斯洛文尼亚语，西班牙语，瑞典语和土耳其语）

---

* 项目网址： [launchpad.net/furiusisomount/](https://launchpad.net/furiusisomount/)
* 开发者: Dean Harris (Marcus Furius)
* 许可： GNU GPL v3
* 版本号： 0.11.3.1

### fuseiso

fuseiso 是用来挂载ISO文件系统的一个开源的安全模块。

使用FUSE，我们完全可以在用户空间里运行一个完整的文件系统。

特性：

* 支持读ISO,BIN和NRG镜像，包括ISO 9660文件系统
* 支持普通的ISO 9660级别1和级别2
* 支持一些常用的扩展，想Joliet，RockRidge和zisofs
* 支持非标准的镜像，包括CloneCD's IMGs 、Alcohol 120%'s MDFs 因为他们的格式看起来恰好像BIN镜像一样

---

* 项目网址： [sourceforge.net/projects/fuseiso](http://sourceforge.net/projects/fuseiso/)
* 开发者： Dmitry Morozhnikov
* 许可： GNU GPL v2
* 版本号： 20070708

### iat

iat（Iso 9660分析工具）是一个通用的开源工具，能够检测很多不同镜像格式文件的结构，包括BIN,MDF,PDI,CDI,NRG和B5I,并转化成ISO 9660格式.

特性：

* 支持读取（输入）NRG,MDF,PDI,CDI,BIN,CUE 和B5I镜像
* 支持用 cd 刻录机直接烧录光盘镜像
* 输出信息包括：进度条，块大小，ECC扇形分区（大小），头分区（大小），镜像偏移地址等等

---

* 项目网址： [sourceforge.net/projects/iat.berlios](http://sourceforge.net/projects/iat.berlios/)
* 开发者： Salvatore Santagati
* 许可： GNU GPL v2
* 版本号： 0.1.3

### AcetoneISO

AcetoneISO 是一个功能丰富的开源图形化应用程序，用来挂载和管理CD/DVD镜像。

当你打开这个程序，你就会看到一个图形化的文件管理器用来挂载镜像文件，包括专有的镜像格式，也包括像ISO, BIN, NRG, MDF, IMG 等等，并且允许您执行一系列的操作。

AcetoneISO是用QT 4写的，也就是说，对于基于QT的桌面环境能很好的兼容，像KDE，LXQT或是Razor-qt。

这个软件适用于所有正在寻找Linux版本的Daemon Tools的人。

特性：

* 支持挂载大多数windows 镜像，界面简洁易用
* 可以将其所有支持镜像格式转换到ISO,或者是从中提取内容
* 加密，压缩，解压任何类型的镜像
* 转换DVD成xvid avi，支持将各种常规视频格式转换成xvid avi
* 从视频里提取声音
* 从不同格式中提取镜像中的文件，包括bin mdf nrg img daa dmg cdi b5i bwi pdi
* 用Kaffeine / VLC / SMplayer播放DVD镜像，可以从Amazon 自动下载封面。
* 从文件夹或者是CD/DVD生成ISO镜像
* 可以做镜像的MD5校验，或者是生成镜像的MD5校验码
* 计算镜像的ShaSums（128,256和384位）
* 支持加密，解密一个镜像文件
* 按兆数分拆和合并镜像
* 以高压缩比将镜像压缩成7z 格式
* 翻录PSX CD成BIN格式，以便在ePSXe/pSX模拟器里运行
* 为BIN和IMG格式恢复丢失的 CUE 文件
* 把MAC OS的DMG镜像转换成可挂载的镜像
* 从指定的文件夹中挂载镜像
* 创建数据库来管理一个大的镜像集合
* 从CD/DVD 或者是ISO镜像中提取启动文件
* 备份CD成BIN镜像
* 简单快速的把DVD翻录成Xvid AVI
* 简单快速的把常见的视频（avi, mpeg, mov, wmv, asf）转换成Xvid AVI
* 简单快速的把FLV 换换成AVI 格式
* 从YouTube和一些视频网站下载视频
* 提取一个有密码的RAR存档
* 支持转换任何的视频到PSP上
* 国际化的语言支持支持（英语，意大利语，波兰语，西班牙语，罗马尼亚语，匈牙利语，德语，捷克语和俄语）

---

* 项目网址: [sourceforge.net/projects/acetoneiso](http://sourceforge.net/projects/acetoneiso/)
* 开发者: Marco Di Antonio
* 许可: GNU GPL v3
* 版本号: 2.3

### ISO Master

ISO Master是一个开源、易用的、图形化CD 镜像编辑器，适用于Linux 和BSD 。可以从ISO 里提取文件，给ISO 里面添加文件，创建一个可引导的ISO，这些都是在一个可视化的用户界面完成的。可以打开ISO，NRG 和一些MDF文件，但是只能保存成ISO 格式。

ISO Master 是基于bkisofs 创建的，这是一个简单、稳定的阅读，修改和编写ISO 镜像的软件库，支持Joliet, RockRidge 和EL Torito扩展，

特性：

* 支持读ISO 格式文件（ISO9660, Joliet, RockRidge 和 El Torito），大多数的NRG 格式文件和一些单轨道的MDF文件，但是，只能保存成ISO 格式
* 创建和修改一个CD/DVD 格式文件
* 支持CD 格式文件的添加或删除文件和目录
* 支持创建可引导的CD/DVD
* 国际化的支持

---

* 项目网址: [www.littlesvr.ca/isomaster/](http://www.littlesvr.ca/isomaster/)
* 开发者: Andrew Smith
* 许可: GNU GPL v2
* 版本号: 1.3.11

---

via: <http://www.linuxlinks.com/article/20141025082352476/DiskImageTools.html>

作者：Frazer Kline 译者：[barney-ro](https://github.com/barney-ro) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在LVM中设置精简资源调配卷（第四部分）

Summary: 逻辑卷管理有许多特性，比如像快照和精简资源调配。在先前（第三部分中），我们已经介绍了如何为逻辑卷创建快照。在本文中，我们将了解如何在LVM中设置精简资源调配。  在LVM中设置精简资源调配 精简资源调配是什么？ 精简资源调配用于LVM以在精简池中创建虚拟磁盘。我们假定我服务器上有15GB的存储容量，而我已经有2个客户各自占去了5GB存储空间。你是第三个客户，你也请求5GB的存储空间。在以前，我们会提供整个5GB的空间（富卷）。然而，你可能只使用5GB中的2GB，其它3GB以后再去填满它。 而在精简资源调配中我们所做的是，在其中一个

不错

技术要学的太多了，有点学不过来了！[抓狂]

@有道云笔记收藏

@我的印象笔记

# 在LVM中设置精简资源调配卷（第四部分）

逻辑卷管理有许多特性，比如像快照和精简资源调配。在先前（[第三部分](http://linux.cn/article-4145-1.html)中），我们已经介绍了如何为逻辑卷创建快照。在本文中，我们将了解如何在LVM中设置精简资源调配。

*在LVM中设置精简资源调配*

### 精简资源调配是什么？

精简资源调配用于LVM以在精简池中创建虚拟磁盘。我们假定我服务器上有**15GB**的存储容量，而我已经有2个客户各自占去了5GB存储空间。你是第三个客户，你也请求5GB的存储空间。在以前，我们会提供整个5GB的空间（富卷）。然而，你可能只使用5GB中的2GB，其它3GB以后再去填满它。

而在精简资源调配中我们所做的是，在其中一个大卷组中定义一个精简池，再在精简池中定义一个精简卷。这样，不管你写入什么文件，它都会保存进去，而你的存储空间看上去就是5GB。然而，这所有5GB空间不会全部铺满整个硬盘。对其它客户也进行同样的操作，就像我说的，那儿已经有两个客户，你是第三个客户。

那么，让我们想想，我到底为客户分配了总计多少GB的空间呢？所有15GB的空间已经全部分配完了，如果现在有某个人来问我是否能提供5GB空间，我还可以分配给他么？答案是“可以”。在精简资源调配中，我可以为第四位客户分配5GB空间，即使我已经把那15GB的空间分配完了。

**警告**：从那15GB空间中，如果我们对资源调配超过15GB了，那就是过度资源调配了。

### 它是怎么工作的？我们又是怎样为客户提供存储空间的？

我已经提供给你5GB空间，但是你可能只用了2GB，而其它3GB还空闲着。在富资源调配中，我们不能这么做，因为它一开始就分配了整个空间。

在精简资源调配中，如果我为你定义了5GB空间，它就不会在定义卷时就将整个磁盘空间全部分配，它会根据你的数据写入而增长，希望你看懂了！跟你一样，其它客户也不会使用全部卷，所以还是有机会为一个新客户分配5GB空间的，这称之为过度资源调配。

但是，必须对各个卷的增长情况进行监控，否则结局会是个灾难。在过度资源调配完成后，如果所有4个客户都尽量写入数据到磁盘，你将碰到问题了。因为这个动作会填满15GB的存储空间，甚至溢出，从而导致这些卷下线。

### 前置阅读

* [在Linux中使用LVM构建灵活的磁盘存储（第一部分）](http://linux.cn/article-3965-1.html)
* [在Linux中扩展/缩减LVM（第二部分）](http://linux.cn/article-3974-1.html)
* [在 LVM中 录制逻辑卷快照并恢复（第三部分）](http://linux.cn/article-4145-1.html)

#### 我的服务器设置

```
操作系统 — 安装有LVM的CentOS 6.5
服务器IP — 192.168.0.200

```

### 步骤1： 设置精简池和卷

理论讲太多了，让我们还是来点实际的吧，我们一起来设置精简池和精简卷。首先，我们需要一个大尺寸的卷组。这里，我创建了一个**15GB**的卷组用于演示。现在，用下面的命令来列出卷组。

```
# vgcreate -s 32M vg_thin /dev/sdb1

```

*列出卷组*

接下来，在创建精简池和精简卷之前，检查逻辑卷有多少空间可用。

```
# vgs
# lvs

```

*检查逻辑卷*

我们可以在上面的lvs命令输出中看到，只显示了一些默认逻辑用于文件系统和交换分区。

### 创建精简池

使用以下命令在卷组（vg\_thin）中创建一个15GB的精简池。

```
# lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin

```

* **-L** – 卷组大小
* **–thinpool** – 创建精简池
* **tp\_tecmint\_poolThin** - 精简池名称
* **vg\_thin** – 我们需要创建精简池的卷组名称

*创建精简池*

使用‘lvdisplay’命令来查看详细信息。

```
# lvdisplay vg_thin/tp_tecmint_pool

```

*逻辑卷信息*

这里，我们还没有在该精简池中创建虚拟精简卷。在图片中，我们可以看到分配的精简池数据为**0.00%**。

### 创建精简卷

现在，我们可以在带有-V（Virtual）选项的‘lvcreate’命令的帮助下，在精简池中定义精简卷了。

```
# lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool

```

我已经在我的**vg\_thin**卷组中的**tp\_tecmint\_pool**内创建了一个精简虚拟卷，取名为**thin\_vol\_client1**。现在，使用下面的命令来列出逻辑卷。

```
# lvs

```

*列出逻辑卷*

刚才，我们已经在上面创建了精简卷，这就是为什么没有数据，显示为**0.00%M**。

好吧，让我为其它2个客户再创建2个精简卷。这里，你可以看到在精简池（**tp\_tecmint\_pool**）下有3个精简卷了。所以，从这一点上看，我们开始明白，我已经使用所有15GB的精简池。

### 创建文件系统

现在，使用下面的命令为这3个精简卷创建挂载点并挂载，然后拷贝一些文件进去。

```
# mkdir -p /mnt/client1 /mnt/client2 /mnt/client3

```

列出创建的目录。

```
# ls -l /mnt/

```

*创建挂载点*

使用‘mkfs’命令为这些创建的精简卷创建文件系统。

```
# mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3

```

*创建文件系统*

使用‘mount’命令来挂载所有3个客户卷到创建的挂载点。

```
# mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/

```

使用‘df’命令来列出挂载点。

```
# df -h

```

*显示挂载点*

这里，我们可以看到所有3个客户卷已经挂载了，而每个客户卷只使用了3%的数据空间。那么，让我们从桌面添加一些文件到这3个挂载点，以填充一些空间。

*添加文件到卷*

现在列出挂载点，并查看每个精简卷使用的空间，然后列出精简池来查看池中已使用的大小。

```
# df -h
# lvdisplay vg_thin/tp_tecmint_pool

```

*检查挂载点大小*

*检查精简池大小*

上面的命令显示了3个挂载点及其使用大小百分比。

```
13% of datas used out of 5GB for client1
29% of datas used out of 5GB for client2
49% of datas used out of 5GB for client3

```

在查看精简池时，我们看到总共只有**30%**的数据被写入，这是上面3个客户虚拟卷的总使用量。

### 过度资源调配

现在，**第四个**客户来申请5GB的存储空间。我能给他吗？因为我已经把15GB的池分配给了3个客户。能不能再给另外一个客户分配5GB的空间呢？可以，这完全可能。在我们使用**过度资源调配**时，就可以实现。过度资源调配可以给我们比我们所拥有的更大的空间。

让我来为第四位客户创建5GB的空间，然后再验证一下大小吧。

```
# lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
# lvs

```

*创建精简存储*

在精简池中，我只有15GB大小的空间，但是我已经在精简池中创建了4个卷，其总量达到了20GB。如果4个客户都开始写入数据到他们的卷，并将空间填满，到那时我们将面对严峻的形势。如果不填满空间，那不会有问题。

现在，我已经创建在**thin\_vol\_client4**中创建了文件系统，然后挂载到了**/mnt/client4**下，并且拷贝了一些文件到里头。

```
# lvs

```

*验证精简存储*

我们可以在上面的图片中看到，新创建的client 4总计使用空间达到了**89.34%**，而精简池的已用空间达到了**59.19**。如果所有这些用户不再过度对卷写入，那么它就不会溢出，下线。要避免溢出的话，我们需要扩展精简池大小。

**重要**：精简池只是一个逻辑卷，因此，如果我们需要对其进行扩展，我们可以使用和扩展逻辑卷一样的命令，但我们不能缩减精简池大小。

```
# lvextend

```

这里，我们可以看到怎样来扩展逻辑精简池（**tp*tecmint*pool**）。

```
# lvextend -L +15G /dev/vg_thin/tp_tecmint_pool

```

*扩展精简存储*

接下来，列出精简池大小。

```
# lvs

```

*验证精简存储*

前面，我们的**tp*tecmint*pool**大小为15GB，而在对第四个精简卷进行过度资源配置后达到了20GB。现在，它扩展到了30GB，所以我们的过度资源配置又回归常态，而精简卷也不会溢出下线了。通过这种方式，我们可以添加更多的精简卷到精简池中。

在本文中，我们已经了解了怎样来使用一个大尺寸的卷组创建一个精简池，以及怎样通过过度资源配置在精简池中创建精简卷和扩着精简池。在下一篇文章中，我们将介绍怎样来移除逻辑卷。

---

via: <http://www.tecmint.com/setup-thin-provisioning-volumes-in-lvm/>

作者：[Babin Lonston](http://www.tecmint.com/author/babinlonston/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在Debian上安装配置ownCloud

@我的印象笔记

社区版有没有什么限制。请告知。谢谢

# 如何在Debian上安装配置ownCloud

据其官方网站，ownCloud可以让你通过一个Web界面或者WebDAV访问你的文件。它还提供了一个平台，可以轻松地查看、编辑和同步您所有设备的通讯录、日历和书签。尽管ownCloud与广泛使用Dropbox非常相似，但主要区别在于ownCloud是免费的，开源的，从而可以自己的服务器上建立与Dropbox类似的云存储服务。使用ownCloud你可以完整地访问和控制您的私人数据，而对存储空间（除了硬盘容量）或客户端的连接数量没有限制。

ownCloud提供了社区版（免费）和企业版（面向企业的有偿支持）。预编译的ownCloud社区版可以提供了CentOS、Debian、Fedora、openSUSE、，SLE和Ubuntu版本。本教程将演示如何在Debian Wheezy上安装和在配置ownCloud社区版。

### 在Debian上安装 ownCloud

进入官方网站：[http://owncloud.org](http://owncloud.org/)，并点击‘Install’按钮（右上角）。

为当前的版本选择“Packages for auto updates”（下面的图是v7）。这可以让你轻松的让你使用的ownCloud与Debian的包管理系统保持一致，包是由ownCloud社区维护的。

在下一屏中点击继续：

在可用的操作系统列表中选择Debian 7 [Wheezy]：

加入ownCloud的官方Debian仓库：

```
 # echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list

```

加入仓库密钥到apt中：

```
# wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
# apt-key add - < Release.key

```

继续安装ownCLoud：

```
# aptitude update
# aptitude install owncloud

```

打开你的浏览器并定位到你的ownCloud实例中，地址是 http://服务器 IP/owncloud:

注意ownCloud可能会包一个Apache配置错误的警告。使用下面的步骤来解决这个错误来解决这些错误信息。

a) 编辑 the /etc/apache2/apache2.conf (设置 AllowOverride 为 All):

```
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

```

b) 编辑 the /etc/apache2/conf.d/owncloud.conf

```
<Directory /var/www/owncloud>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

```

c) 重启web服务器:

```
# service apache2 restart

```

d) 刷新浏览器，确认安全警告已经消失

### 设置数据库

这时可以为ownCloud设置数据库了。

首先登录本地的MySQL/MariaDB数据库：

```
$ mysql -u root -h localhost -p

```

为ownCloud创建数据库和用户账户。

```
mysql> CREATE DATABASE owncloud_DB;
mysql> CREATE USER ‘owncloud-web’@'localhost' IDENTIFIED BY ‘whateverpasswordyouchoose’;
mysql> GRANT ALL PRIVILEGES ON owncloud_DB.* TO ‘owncloud-web’@'localhost';
mysql> FLUSH PRIVILEGES;

```

通过http://服务器 IP/owncloud 进入ownCloud页面，并选择‘Storage & database’ 选项。输入所需的信息（MySQL/MariaDB用户名，密码，数据库和主机名），并点击完成按钮。

### 为ownCloud配置SSL连接

在你开始使用ownCloud之前，强烈建议你在ownCloud中启用SSL支持。使用SSL可以提供重要的安全好处，比如加密ownCloud流量并提供适当的验证。在本教程中，将会为SSL使用一个自签名的证书。

创建一个储存服务器密钥和证书的目录：

```
# mkdir /etc/apache2/ssl

```

创建一个证书（并有一个密钥来保护它），它有一年的有效期。

```
 # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

```

编辑/etc/apache2/conf.d/owncloud.conf 启用HTTPS。对于重写规则中的NC、R和L的意义，你可以参考[Apache 文档](http://httpd.apache.org/docs/2.2/rewrite/flags.html):

```
Alias /owncloud /var/www/owncloud

<VirtualHost 192.168.0.15:80>
    RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

<VirtualHost 192.168.0.15:443>
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    DocumentRoot /var/www/owncloud/
<Directory /var/www/owncloud>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

```

启用重写模块并重启Apache：

```
# a2enmod rewrite
# service apache2 restart

```

打开你的ownCloud实例。注意一下，即使你尝试使用HTTP，你也会自动被重定向到HTTPS。

注意，即使你已经按照上述步骤做了，在你启动ownCloud你仍将看到一条错误消息，指出该证书尚未被受信的机构颁发（那是因为我们创建了一个自签名证书）。您可以放心地忽略此消息，但如果你考虑在生产服务器上部署ownCloud，你可以从一个值得信赖的公司购买证书。

### 创建一个账号

现在我们准备创建一个ownCloud管理员帐号了。

欢迎来自你的个人云！注意你可以安装一个桌面或者移动端app来同步你的文件、日历、通讯录或者更多了。

在右上叫，点击你的用户名，会显示一个下拉菜单：

点击Personal来改变你的设置，比如密码，显示名，email地址、头像还有更多。

### ownCloud 使用案例：访问日历

让我开始添加一个事件到日历中并稍后下载。

点击左上角的下拉菜单并选择日历。

添加一个时间并保存到你的日历中。

通过 'Event and Tasks' -> 'Import...' -> 'Select file' 下载你的日历并添加到你的Thunderbird日历中：

提示：你还需要设置你的时区以便在其他程序中成功地导入你的日历（默认情况下，日历程序将使用UTC+00：00时区）。要更改时区在左下角点击小齿轮图标，接着日历设置菜单就会出现，你就可以选择时区了：

### ownCloud 使用案例：上传一个文件

接下来，我们会从本机上传一个文件

进入文件菜单（左上角）并点击向上箭头来打开一个选择文件对话框。

选择一个文件并点击打开。

接下来你就可以打开/编辑选中的文件，把它移到另外一个文件夹或者删除它了。

### 总结

ownCloud是一个灵活和强大的云存储，可以从其他供应商快速、简便、无痛的过渡。此外，它是开源软件，你只需要很少有时间和精力对其进行配置以满足你的所有需求。欲了解更多信息，可以随时参考[用户](http://doc.owncloud.org/server/7.0/ownCloudUserManual.pdf)、[管理](http://doc.owncloud.org/server/7.0/ownCloudAdminManual.pdf)或[开发](http://doc.owncloud.org/server/7.0/ownCloudDeveloperManual.pdf)手册。

---

via: <http://xmodulo.com/2014/08/install-configure-owncloud-debian.html>

作者：[Gabriel Cánepa](http://www.gabrielcanepa.com.ar/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ansible和Docker的作用和用法

Summary: 在 Docker 和 Ansible 的技术社区内存在着很多好玩的东西，我希望在你阅读完这篇文章后也能像我们一样热爱它们。当然，你也会收获一些实践知识，那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整的服务器环境。 也许有人会问：你怎么不去用 Heroku？首先，我可以在任何供应商提供的主机上运行 Docker 和 Ansible；其次，相比于方便性，我更偏向于喜欢灵活性。我可以在这种组合中运行任何程序，而不仅仅是 web 应用。最后，我骨子里是一个工匠，我非常了解如何把零件拼凑在一起工作。Heroku 的基础模块是 Linux Containe

@我的印象笔记

DevOps 持续火热哈。

# Ansible和Docker的作用和用法

在 [Docker](https://www.docker.io/) 和 [Ansible](https://github.com/ansible/ansible) 的技术社区内存在着很多好玩的东西，我希望在你阅读完这篇文章后也能像我们一样热爱它们。当然，你也会收获一些实践知识，那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整的服务器环境。

也许有人会问：你怎么不去用 Heroku？首先，我可以在任何供应商提供的主机上运行 Docker 和 Ansible；其次，相比于方便性，我更偏向于喜欢灵活性。我可以在这种组合中运行任何程序，而不仅仅是 web 应用。最后，我骨子里是一个工匠，我非常了解如何把零件拼凑在一起工作。Heroku 的基础模块是 Linux Container，而 Docker 表现出来的多功能性也是基于这种技术。事实上，Docker 的其中一个座右铭是：容器化是新虚拟化技术。

<img src="content_image/album_201411_24_153029kpg1olikdiokidzd.png" alt="" title="">

### 为什么使用 Ansible？

我重度使用 Chef 已经有4年了（LCTT：Chef 是与 puppet 类似的配置管理工具），**基础设施即代码**的观念让我觉得非常无聊。我花费大量时间来管理代码，而不是管理基础设施本身。不论多小的改变，都需要相当大的努力来实现它。使用 [Ansible](http://ansible.com/)，你可以一手掌握拥有可描述性数据的基础架构，另一只手掌握不同组件之间的交互作用。这种更简单的操作模式让我把精力集中在如何将我的技术设施私有化，提高了我的工作效率。与 Unix 的模式一样，Ansible 提供大量功能简单的模块，我们可以组合这些模块，达到不同的工作要求。

除了 Python 和 SSH，Ansible 不再依赖其他软件，在它的远端主机上不需要部署代理，也不会留下任何运行痕迹。更厉害的是，它提供一套内建的、可扩展的模块库文件，通过它你可以控制所有的一切：包管理器、云服务供应商、数据库等等等等。

### 为什么要使用 Docker？

[Docker](http://docker.io/) 的定位是：提供最可靠、最方便的方式来部署服务。这些服务可以是 mysqld，可以是 redis，可以是 Rails 应用。先聊聊 git 吧，它的快照功能让它可以以最有效的方式发布代码，Docker 的处理方法与它类似。它保证应用可以无视主机环境，随心所欲地跑起来。

一种最普遍的误解是人们总是把 Docker 容器看成是一个虚拟机，当然，我表示理解你们的误解。Docker 满足[单一功能原则](http://en.wikipedia.org/wiki/Single_responsibility_principle)，在一个容器里面只跑一个进程，所以一次修改只会影响一个进程，而这些进程可以被重用。这种模型参考了 Unix 的哲学思想，当前还处于试验阶段，并且正变得越来越稳定。

### 设置选项

不需要离开终端，我就可以使用 Ansible 来在这些云平台中生成实例：Amazon Web Services，Linode，Rackspace 以及 DigitalOcean。如果想要更详细的信息，我于1分25秒内在位于阿姆斯特丹的2号数据中心上创建了一个 2GB 的 DigitalOcean 虚拟机。另外的1分50秒用于系统配置，包括设置 Docker 和其他个人选项。当我完成这些基本设定后，就可以部署我的应用了。值得一提的是这个过程中我没有配置任何数据库或程序开发语言，Docker 已经帮我把应用所需要的事情都安排好了。

Ansible 通过 SSH 为远端主机发送命令。我保存在本地 ssh 代理上面的 SSH 密钥会通过 Ansible 提供的 SSH 会话分享到远端主机。当我把应用代码从远端 clone 下来，或者上传到远端时，我就不再需要提供 git 所需的证书了，我的 ssh 代理会帮我通过 git 主机的身份验证程序的。

### Docker 和应用的依赖性

我发现有一点挺有意思的：大部分开发者非常了解他们的应用需要什么版本的编程语言，这些语言依赖关系有多种形式：Python 的包、Ruby 的打包系统 gems、node.js 的模块等等，但与数据库或消息队列这种重要的概念相比起来，这些语言就处于很随便的境地了——随便给我个编程语言环境，我都能把数据库和消息队列系统跑起来。我认为这是 DevOps 运动（它旨在促进开发与运维团队的和谐相处）的动机之一，开发者负责搭建应用所需要的环境。Docker 使这个任务变得简单明了直截了当，它为现有环境加了实用的一层配置。

我的应用依赖于 MySQL 5.5和 Redis 2.8，依赖关系放在“.docker*container*dependencies”文件里面：

```
gerhard/mysql:5.5
gerhard/redis:2.8

```

Ansible 会查看这个文件，并且通知 Docker 加载正确的镜像，然后在容器中启动。它还会把这些服务容器链接到应用容器。如果你想知道 Docker 容器的链接功能是怎么工作的，可以参考[Docker 0.6.5 发布通知](http://blog.docker.io/2013/10/docker-0-6-5-links-container-naming-advanced-port-redirects-host-integration/).

我的应用包括一个 Dockerfile，它详细指定了 Ruby Docker 镜像的信息，这里面的步骤能够保证把正确的 Ruby 版本加载到镜像中。

```
FROM howareyou/ruby:2.0.0-p353

ADD ./ /terrabox

RUN \
  . /.profile ;\
  rm -fr /terrabox/.git ;\
  cd /terrabox ;\
  bundle install --local ;\
  echo '. /.profile && cd /terrabox && RAILS_ENV=test bundle exec rake db:create db:migrate && bundle exec rspec' > /test-terrabox ;\
  echo '. /.profile && cd /terrabox && export RAILS_ENV=production && rake db:create db:migrate && bundle exec unicorn -c config/unicorn.rails.conf.rb' > /run-terrabox ;\
# END RUN

ENTRYPOINT ["/bin/bash"]
CMD ["/run-terrabox"]

EXPOSE 3000

```

第一步是复制应用的所有代码到 Docker 镜像，加载上一个镜像的全局环境变量。这个例子中的 Ruby Docker 镜像会加载 PATH 配置，这个配置能确保镜像加载正确的 Ruby 版本。

接下来，删除 git 历史，Docker 容器不需要它们。我安装了所有 Ruby 的 gems，创建一个名为“/test-terrabox”的命令，这个命令会被名为“test-only”的容器执行。这个步骤的目的是能正确解决应用和它的依赖关系，让 Docker 容器正确链接起来，保证在真正的应用容器启动前能通过所有测试项目。

CMD 这个步骤是在新的 web 应用容器启动后执行的。在测试环节结束后马上就执行/run-terrabox命令进行编译。

最后，Dockerfile 为应用指定了一个端口号，将容器内部端口号为3000的端口映射到主机（运行着 Docker 的机器）的一个随机分配的端口上。当 Docker 容器里面的应用需要响应来自外界的请求时，这个端口可用于反向代理或负载均衡。

### Docker 容器内运行 Rails 应用

没有本地 Docker 镜像，从零开始部署一个中级规模的 Rails 应用大概需要100个 gems，进行100次整体测试，在使用2个核心实例和2GB内存的情况下，这些操作需要花费8分16秒。装上 Ruby、MySQL 和 Redis Docker 镜像后，部署应用花费了4分45秒。另外，如果从一个已存在的主应用镜像编译出一个新的 Docker 应用镜像出来，只需花费2分23秒。综上所述，部署一套新的 Rails 应用，解决其所有依赖关系（包括 MySQL 和 Redis），只需花我2分钟多一点的时间就够了。

需要指出的一点是，我的应用上运行着一套完全测试套件，跑完测试需要花费额外1分钟时间。尽管是无意的，Docker 可以变成一套简单的持续集成环境，当测试失败后，Docker 会把“test-only”这个容器保留下来，用于分析出错原因。我可以在1分钟之内和我的客户一起验证新代码，保证不同版本的应用之间是完全隔离的，同操作系统也是隔离的。传统虚拟机启动系统时需要花费好几分钟，Docker 容器只花几秒。另外，一旦一个 Dockedr 镜像编译出来，并且针对我的某个版本的应用的测试都被通过，我就可以把这个镜像提交到一个私有的 Docker Registry 上，可以被其他 Docker 主机下载下来并启动一个新的 Docker 容器，而这不过需要几秒钟时间。

### 总结

Ansible 让我重新看到管理基础设施的乐趣。Docker 让我有充分的信心能稳定处理应用部署过程中最重要的步骤——交付环节。双剑合璧，威力无穷。

从无到有搭建一个完整的 Rails 应用可以在12分钟内完成，这种速度放在任何场合都是令人印象深刻的。能获得一个免费的持续集成环境，可以查看不同版本的应用之间的区别，不会影响到同主机上已经在运行的应用，这些功能强大到难以置信，让我感到很兴奋。在文章的最后，我只希望你能感受到我的兴奋！

我在2014年1月伦敦 Docker 会议上讲过这个主题，[已经分享到 Speakerdeck](https://speakerdeck.com/gerhardlazu/ansible-and-docker-the-path-to-continuous-delivery-part-1)了。

如果想获得更多的关于 Ansible 和 Docker 的内容，请订阅 [changlog 周报](http://thechangelog.com/weekly/)，它会在每周六推送一周最有价值的关于这两个主题的新闻链接。

如果你想为我们的 Changlog 写一篇文章，请[使用 Draft repo](https://github.com/thechangelog/draft)，他们会帮到你的。

下次见，[Gerhard](https://twitter.com/gerhardlazu)。

---

via: <http://thechangelog.com/ansible-docker/>

作者：[Gerhard Lazu](https://twitter.com/gerhardlazu) 译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux下的6个扫雷游戏的翻版

Summary: Windows 下的扫雷游戏还没玩够么？那么来 Linux 下继续扫雷吧这是一个雷的时代 :D GNOME Mines 这是GNOME扫雷复制品，允许你从3个不同的预定义表大小（88, 1616, 3016）中选择其一，或者自定义行列的数量。它能以全屏模式运行，带有高分值、耗时和提示。游戏可以暂停和继续。  ace-minesweeper 这是一个大的软件包中的游戏，此包中也包含有其它一些游戏，如ace-freecel，ace-solitaire或ace-spider。它有一个以小企鹅为特色的图形化界面，但好像不能调整表的大小。该包在Ubuntu中名为ace-of-penguins。  XBomb XBomb是针对X Windows系统扫

还有wine里边的winemine。

扫雷什么的最好玩了，还有俄罗斯方块坦克大战什么的，再不出来就自己写了[思考]

数独才是我的最爱!

# Linux下的6个扫雷游戏的翻版

Windows 下的扫雷游戏还没玩够么？那么来 Linux 下继续扫雷吧——这是一个雷的时代 :D

### GNOME Mines

这是GNOME扫雷复制品，允许你从3个不同的预定义表大小（8×8, 16×16, 30×16）中选择其一，或者自定义行列的数量。它能以全屏模式运行，带有高分值、耗时和提示。游戏可以暂停和继续。

### ace-minesweeper

这是一个大的软件包中的游戏，此包中也包含有其它一些游戏，如ace-freecel，ace-solitaire或ace-spider。它有一个以小企鹅为特色的图形化界面，但好像不能调整表的大小。该包在Ubuntu中名为ace-of-penguins。

### XBomb

XBomb是针对X Windows系统扫雷游戏，它有三种不同的表尺寸和卡牌风格，包含有不同的外形：六角形、矩形（传统）或三角形。不幸的是，在Ubuntu 14.04中的版本会出现程序分段冲突，所以你可能需要安装另外一个版本。 [首页](http://www.gedanken.org.uk/software/xbomb/)。

([图像来源](http://www.gedanken.org.uk/software/xbomb/))

### KMines

KMines是一个KDE游戏，和GNOME Mines类似，有三个内建表尺寸（简易、中等、困单），也可以自定义，支持主题和高分。

### freesweep

Freesweep是一个针对终端的扫雷复制品，它可以配置表行列、炸弹比例、颜色，也有一个高分表。

### xdemineur

另外一个针对X的图形化扫雷Xdemineur，和Ace-Minesweeper十分相像，带有一个预定义的表尺寸。

---

via: <http://www.tuxarena.com/2014/10/6-minesweeper-clones-for-linux/>

作者：Craciun Dan 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在Github和Git上fork之简单指南

Summary: 以我的经验来看，刚接触Git和GitHub时，最困扰的一件事情就是尝试解决下面的问题：在Git和GitHub上，我能做什么？ Git教程往往不会解决这个问题，因为它集中篇幅来教你Git命令和概念，并且不认为你会使用GitHub。GitHub帮助教程一定程度上弥补了这一缺陷，但是它每篇文章的关注点都较为狭隘，而且没有提供关于"Git vs GitHub"问题的概念性概述。 如果你是习惯于先理解概念，再着手代码的学习者，而且你也是Git和GitHub的初学者，我建议你先理解清楚什么是fork。为什么呢 ？  Fork是在GitHub起步最普遍的方式。 Fork只需要很少的Git命令，

中科软还挺喜欢考git…………

转发微博.

Repost

Repost

@我的印象笔记

马克

@石头也疯癫儿 //@LUPA开源社区:转发微博

不错的教程[噢耶]

@我的印象笔记

repost

马

git fork,

@XTT是纯纯的牛奶巧克力 我翻译的其中一篇

回复@谁抢了我苏苏的昵称:又不是你写的[拜拜]

回复@XTT是纯纯的牛奶巧克力:噢

回复@谁抢了我苏苏的昵称:以后你也能写

简单易懂

受教了,刚看完pro git,再加上这个,概念清晰多了

你使我的一天

{{MmVhZGFkMmQ2NGM2YzYwNTA0NjVlNjY1NjVjNWU2MDUyNDA1ZTYwNTA0YzVjNmVlOGY0ZDZmMmU2ZGM2Y2YyZTRkZWVhZTRkZTYyZDJlMmQyMw==}}

-Sent from Iphone

what ?

@我的印象笔记

defasdfasdf

总结得非常清楚，感谢！

感谢作者与译者，很清晰，很有帮助

# 在Github和Git上fork之简单指南

以我的经验来看，刚接触Git和GitHub时，最困扰的一件事情就是尝试解决下面的问题：**在Git和GitHub上，我能做什么？**

Git教程往往不会解决这个问题，因为它集中篇幅来教你Git命令和概念，并且不认为你会使用GitHub。[GitHub帮助教程](https://help.github.com/)一定程度上弥补了这一缺陷，但是它每篇文章的关注点都较为狭隘，而且没有提供关于"Git vs GitHub"问题的概念性概述。

**如果你是习惯于先理解概念，再着手代码的学习者**，而且你也是Git和GitHub的初学者，我建议你先理解清楚什么是fork。为什么呢 ？

1. Fork是在GitHub起步最普遍的方式。
2. Fork只需要很少的Git命令，但是起得作用却非常大。
3. Fork提供了对Git和GitHub最基础的了解，有益于你之后的工作。

**本篇指南使用两张简单的图表，来教会你fork的两种主要工作流程。**我并不打算涉及任何代码，但是在结论中，我会把你需要使用的代码的链接给你。

### fork并且更新一个仓库

现在有这样一种情形：有一个叫做Joe的程序猿写了一个游戏程序，而你可能要去改进它。并且Joe将他的代码放在了GitHub仓库上。下面是你要做的事情：

**fork并且更新GitHub仓库的图表演示**

1. **Fork他的仓库**：这是GitHub操作，这个操作会复制Joe的仓库（包括文件，提交历史，issues，和其余一些东西）。复制后的仓库在你自己的GitHub帐号下。目前，你本地计算机对这个仓库没有任何操作。
2. **Clone你的仓库**：这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。
3. **更新某些文件**：现在，你可以在任何程序或者环境下更新仓库里的文件。
4. **提交你的更改**：这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。
5. **将你的更改push到你的GitHub仓库**：这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成，所以直到你做了push操作，GitHub才知道你的提交。
6. **给Joe发送一个pull request**：如果你认为Joe会接受你的修改，你就可以给他发送一个pull request。这是GitHub操作，使用此操作可以帮助你和Joe交流你的修改，并且询问Joe是否愿意接受你的"pull request"，当然，接不接受完全取决于他自己。

如果Joe接受了你的pull request，他将把那些修改拉到自己的仓库。胜利！

### 同步一个fork

Joe和其余贡献者已经对这个项目做了一些修改，而你将在他们的修改的基础上，还要再做一些修改。在你开始之前，你最好"同步你的fork"，以确保在最新的复制版本里工作。下面是你要做的：

*同步GitHub fork的图表示意图*

1. **从Joe的仓库中取出那些变化的文件**：这是Git操作，使用该命令让你可以从Joe的仓库获取最新的文件。
2. **将这些修改合并到你自己的仓库**：这是Git操作，使用该命令使得那些修改更新到你的本地计算机（那些修改暂时存放在一个"分支"中）。记住：步骤1和2经常结合为一个命令使用，合并后的Git命令叫做"pull"。
3. **将那些修改更新推送到你的GitHub仓库**（可选）：记住，你本地计算机不会自动更新你的GitHub仓库。所以，唯一更新GitHub仓库的办法就是将那些修改推送上去。你可以在步骤2完成后立即执行push，也可以等到你做了自己的一些修改，并已经本地提交后再执行推送操作。

**比较一下fork和同步工作流程的区别**：当你最初fork一个仓库的时候，信息的流向是从Joe的仓库到你的仓库，然后再到你本地计算机。但是最初的过程之后，信息的流向是从Joe的仓库到你的本地计算机，之后再到你的仓库。

### 结论

我希望这是一篇关于GitHub和Git 的 [fork](https://help.github.com/articles/fork-a-repo)有用概述。现在，你已经理解了那些概念，你将会更容易地在实际中执行你的代码。GitHub关于fork和[同步](https://help.github.com/articles/syncing-a-fork)的文章将会给你大部分你需要的代码。

如果你是Git的初学者，而且你很喜欢这种学习方式，那么我极力推荐书籍[Pro Git](http://git-scm.com/book)的前两个章节，网上是可以免费查阅的。

如果你喜欢视频学习，我创建了一个[11部分的视频系列](http://www.dataschool.io/git-and-github-videos-for-beginners/)（总共36分钟），来向初学者介绍Git和GitHub。

---

via: <http://www.dataschool.io/simple-guide-to-forks-in-github-and-git/>

作者：[Kevin Markham](https://disqus.com/home/user/justmarkham/)  译者：[su-kaiyao](https://github.com/su-kaiyao) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何用Puppet和Augeas管理Linux配置

Summary: 虽然Puppet是一个真正独特的有用工具，但在有些情况下你可以使用一点不同的方法来用它。比如，你要修改几个服务器上已有的配置文件，而且它们彼此稍有不同。Puppet实验室的人也意识到了这一点，他们在 Puppet 中集成了一个叫做Augeas的伟大的工具，它是专为这种使用情况而设计的。 Augeas可被认为填补了Puppet能力的空白，比如在其中一个指定对象的资源类型（例如用于维护/etc/hosts中的条目的主机资源）还不可用时。在这个文档中，您将学习如何使用Augeas来减轻你管理配置文件的负担。 Augeas是什么?  Augeas基本上就是一个配置编辑工具

没用过，不觉明厉！

谢谢分享，@我的印象笔记 linux

# 如何用Puppet和Augeas管理Linux配置

虽然[Puppet](http://linux.cn/article-3959-1.html)是一个真正独特的有用工具，但在有些情况下你可以使用一点不同的方法来用它。比如，你要修改几个服务器上已有的配置文件，而且它们彼此稍有不同。Puppet实验室的人也意识到了这一点，他们在 Puppet 中集成了一个叫做[Augeas](http://augeas.net/)的伟大的工具，它是专为这种使用情况而设计的。

Augeas可被认为填补了Puppet能力的空白，比如在其中一个指定对象的资源类型（例如用于维护/etc/hosts中的条目的主机资源）还不可用时。在这个文档中，您将学习如何使用Augeas来减轻你管理配置文件的负担。

### Augeas是什么?

<img src="content_image/album_201411_25_163727yz7ejia7eic969i3.png" alt="" title="">

Augeas基本上就是一个配置编辑工具。它以他们原生的格式解析配置文件并且将它们转换成树。配置的更改可以通过操作树来完成，并可以以原生配置文件格式保存配置。

### 这篇教程要达成什么目的？

我们会针对[我们之前构建的Puppet服务器](http://linux.cn/article-3959-1.html)安装并配置Augeas。我们会使用这个工具创建并测试几个不同的配置文件，并学习如何适当地使用它来管理我们的系统配置。

### 前置阅读

我们需要一台工作的Puppet服务器和客户端。如果你还没有，请先按照我先前的[教程](http://linux.cn/article-3959-1.html)来。

Augeas安装包可以在标准CentOS/RHEL仓库中找到。不幸的是，Puppet用到的Augeas的ruby封装只在puppetlabs仓库中（或者[EPEL](http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html)）中才有。如果你系统中还没有这个仓库，请使用下面的命令：

在CentOS/RHEL 6.5上:

```
 # rpm -ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabsrelease610.noarch.rpm

```

在CentOS/RHEL 7上:

```
 # rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabsrelease710.noarch.rpm

```

在你成功地安装了这个仓库后，在你的系统中安装RubyAugeas：

```
 # yum install rubyaugeas

```

或者如果你是从我的[上一篇教程中继续](http://linux.cn/article-3959-1.html)的，使用puppet的方法安装这个包。在/etc/puppet/manifests/site.pp中修改你的custom\_utils类，在packages这行中加入“rubyaugeas”。

```
class custom_utils {
        package { ["nmap","telnet","vimenhanced","traceroute","rubyaugeas"]:
                ensure => latest,
                allow_virtual => false,
        }
}

```

### 不带Puppet的Augeas

如我先前所说，最初Augeas并不是来自Puppet实验室，这意味着即使没有Puppet本身我们仍然可以使用它。这种方法可在你将它们部署到Puppet环境之前，验证你的修改和想法是否是正确的。要做到这一点，你需要在你的系统中安装一个额外的软件包。请执行以下命令：

```
# yum install augeas

```

### Puppet Augeas 示例

用于演示，这里有几个Augeas使用案例。

#### 管理 /etc/sudoers 文件

1. 给wheel组加上sudo权限。

这个例子会向你展示如何在你的GNU/Linux系统中为%wheel组加上sudo权限。

```
# 安装sudo包
package { 'sudo':
    ensure => installed, # 确保sudo包已安装
}

# 允许用户属于wheel组来使用sudo
augeas { 'sudo_wheel':
    context => '/files/etc/sudoers', # 目标文件是 /etc/sudoers
    changes => [
        # 允许wheel用户使用sudo
        'set spec[user = "%wheel"]/user %wheel',
        'set spec[user = "%wheel"]/host_group/host ALL',
        'set spec[user = "%wheel"]/host_group/command ALL',
        'set spec[user = "%wheel"]/host_group/command/runas_user ALL',
    ]
}

```

现在来解释这些代码做了什么：**spec**定义了/etc/sudoers中的用户段，**[user]**定义了数组中给定的用户，所有的定义放在该用户的斜杠( / ) 后那部分。因此在典型的配置中这个可以这么表达：

```
user host_group/host host_group/command host_group/command/runas_user

```

这个将被转换成/etc/sudoers下的这一行：

```
%wheel ALL = (ALL) ALL

```

1. 添加命令别称

下面这部分会向你展示如何定义命令别名，它可以在你的sudoer文件中使用。

```
# 创建新的SERVICE别名，包含了一些基本的特权命令。
augeas { 'sudo_cmdalias':
    context => '/files/etc/sudoers', # 目标文件是 /etc/sudoers
    changes => [
      "set Cmnd_Alias[alias/name = 'SERVICES']/alias/name SERVICES",
      "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[1] /sbin/service",
      "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[2] /sbin/chkconfig",
      "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[3] /bin/hostname",
      "set Cmnd_Alias[alias/name = 'SERVICES']/alias/command[4] /sbin/shutdown",
    ]
}

```

sudo命令别名的语法很简单：**Cmnd\_Alias**定义了命令别名字段，**[alias/name]**绑定所有给定的别名，/alias/name **SERVICES** 定义真实的别名，alias/command 是属于该别名的所有命令的数组。以上将被转换如下：

```
Cmnd_Alias SERVICES = /sbin/service , /sbin/chkconfig , /bin/hostname , /sbin/shutdown

```

关于/etc/sudoers的更多信息，请访问[官方文档](http://augeas.net/docs/references/lenses/files/sudoers-aug.html)。

#### 向一个组中加入用户

要使用Augeas向组中添加用户，你也许要添加一个新用户，不管是排在 gid 字段还是最后的用户 uid 之后。我们在这个例子中使用SVN组。这可以通过下面的命令达成：

在Puppet中:

```
augeas { 'augeas_mod_group:
    context => '/files/etc/group', #目标文件是 /etc/group
    changes => [
        "ins user after svn/*[self::gid or self::user][last()]",
        "set svn/user[last()] john",
    ]
}

```

使用 augtool:

```
 augtool> ins user after /files/etc/group/svn/*[self::gid or self::user][last()] augtool> set /files/etc/group/svn/user[last()] john

```

### 总结

目前为止，你应该对如何在Puppet项目中使用Augeas有点明白了。随意地试一下，你肯定需要浏览官方的Augeas文档。这会帮助你了解如何在你的个人项目中正确地使用Augeas，并且它会让你知道可以用它节省多少时间。

如有任何问题，欢迎在下面的评论中发布，我会尽力解答和向你建议。

### 有用的链接

* <http://www.watzmann.net/categories/augeas.html>: 包含许多关于 Augeas 使用的教程。
* <http://projects.puppetlabs.com/projects/1/wiki/puppet_augeas>: Puppet wiki 带有许多实例。

---

via: <http://xmodulo.com/2014/09/manage-configurations-linux-puppet-augeas.html>

作者：[Jaroslav Štěpánek](http://xmodulo.com/author/jaroslav) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


使用GDB命令行调试器调试C/C++程序

Summary: 没有调试器的情况下编写程序时最糟糕的状况是什么？编译时跪着祈祷不要出错？用血祭召唤恶魔帮你运行程序？或者在每一行代码间添加printf("test")语句来定位错误点？如你所知，编写程序时不使用调试器的话是不方便的。幸好，linux下调试还是很方便的。大多数人使用的IDE都集成了调试器，但 linux 最著名的调试器是命令行形式的C/C++调试器GDB。然而，与其他命令行工具一致，DGB需要一定的练习才能完全掌握。这里，我会告诉你GDB的基本情况及使用方法。  安装GDB 大多数的发行版仓库中都有GDB Debian 或 Ubuntu $ sudo apt-get install gdb

南望Visual Studio王师又一年

GDB是个有好工具，有了GDB让我觉得自己当年printf("123\n");是一种多么SB的行为[偷笑][偷笑][偷笑]

直接attach进程

回复@施先进:嗯，直接 attach 进程，这个是神器啊，这篇只是给小白看的。

感觉自己不会用gdb

@比尔盖子V //@马鹿峻鋒連聊C: 感觉自己不会用gdb

Repost

Mark

w

@我的印象笔记

[doge]

@我的印象笔记

[思考]

马克

GBD调试core[熊貓] //@比尔盖子V:简单调试只记住 b, r, w, bt, next, step 就行了 //@Murakumo叢雲: @比尔盖子V //@马鹿峻鋒連聊C: 感觉自己不会用gdb

GBD调试core[熊貓]

@我的印象笔记

好难。

这个Po我感觉来得很是时候~ //@尼可熊吉:转发微博

感觉是有帮助的，调试一定离不开，和gcc一起让我对Linux开发有了信心

来自 - 山东青岛青岛职业技术学院 的 MSIE/Windows 用户

像Lua这样的脚本语言就只能print调试了

→_→//@比尔盖子V: →_→//@Cth_framebuffer: →_→//@Linux中国:→_→//@游荡的坎德人: 用客户做祭品血祭恶魔之后一切都运行的丝滑流畅……//@比尔盖子V: 简单调试只记住 b, r, w, bt, next, step 就行了//@Murakumo叢雲: @比尔盖子V //@马鹿峻鋒連聊C: 感觉自己不会用gdb

如果和Vim搞一块也是极好的。。。至少，我可以一次性完成写完代码后的所有工作了

对初步熟悉GDB的人很合适，但是在实际项目中很多人都比较迷茫啦，要是能结合实际项目来讲解可能实用性会更强

很不错，言简意赅，特别喜欢Linux中国的代码风格

简单明了，赞一个。

# 使用GDB命令行调试器调试C/C++程序

没有调试器的情况下编写程序时最糟糕的状况是什么？编译时跪着祈祷不要出错？用血祭召唤恶魔帮你运行程序？或者在每一行代码间添加printf("test")语句来定位错误点？如你所知，编写程序时不使用调试器的话是不方便的。幸好，linux下调试还是很方便的。大多数人使用的IDE都集成了调试器，但 linux 最著名的调试器是命令行形式的C/C++调试器GDB。然而，与其他命令行工具一致，DGB需要一定的练习才能完全掌握。这里，我会告诉你GDB的基本情况及使用方法。

### 安装GDB

大多数的发行版仓库中都有GDB

Debian 或 Ubuntu

```
$ sudo apt-get install gdb

```

Arch Linux

```
$ sudo pacman -S gdb

```

Fedora,CentOS 或 RHEL：

```
$sudo yum install gdb

```

如果在仓库中找不到的话，可以从[官网中下载](https://www.gnu.org/software/gdb/)。

### 示例代码

当学习GDB时，最好有一份代码，动手试验。下列代码是我编写的简单例子，它可以很好的体现GDB的特性。将它拷贝下来并且进行实验——这是最好的方法。

```
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    int i;
    int a=0, b=0, c=0;
    double d;
    for (i=0; i<100; i++)
    {
        a++;
        if (i>97)
            d = i / 2.0;
        b++;
    }
    return 0;
}

```

### GDB的使用

首先最重要的，你需要使用编译器的 “-g“选项来编译程序，这样可执行程序才能通过GDB来运行。通过下列语句开始调试：

```
$ gdb -tui [可执行程序名]

```

使用”-tui“选项可以将代码显示在一个漂亮的交互式窗口内（所以被称为“文本用户界面 TUI”），在这个窗口内可以使用光标来操控，同时在下面的GDB shell中输入命令。

现在我们可以在程序的任何地方设置断点。你可以通过下列命令来为当前源文件的某一行设置断点。

```
break [行号]

```

或者为一个特定的函数设置断点：

```
break [函数名]

```

甚至可以设置条件断点

```
break [行号] if [条件]

```

例如，在我们的示例代码中，可以设置如下：

```
break 11 if i > 97

```

这样，程序循环97次之后停留在“a++”语句上。这样是非常方便的，避免了我们需要手动循环97次。

最后但也是很重要的是，我们可以设置一个“观察断点”，当这个被观察的变量发生变化时，程序会被停止。

```
watch [变量]

```

这里我们可以设置如下：

```
watch d

```

当d的值发生变化时程序会停止运行（例如，当i>97为真时）。

当设置断点后，使用"run"命令开始运行程序，或按如下所示：

```
r [程序的输入参数（如果有的话）]

```

gdb中，大多数的命令单词都可以简写为一个字母。

不出意外，程序会停留在11行。这里，我们可以做些有趣的事情。下列命令：

```
bt

```

回溯功能（backtrace）可以让我们知道程序如何到达这条语句的。

```
info locals

```

这条语句会显示所有的局部变量以及它们的值（你可以看到，我没有为ｄ设置初始值，所以它现在的值是任意值）。

当然：

```
p [变量]

```

这个命令可以显示特定变量的值，而更进一步：

```
ptype [变量]

```

可以显示变量的类型。所以这里可以确定d是double型。

既然已经到这一步了，我么不妨这么做：

```
set var [变量] = [新的值]
```

这样会覆盖变量的值。不过需要注意，你不能创建一个新的变量或改变变量的类型。我们可以这样做：

```
set var a = 0
```

如其他优秀的调试器一样，我们可以单步调试：

```
step

```

使用如上命令，运行到下一条语句，有可能进入到一个函数里面。或者使用：

```
next

```

这可以直接运行下一条语句，而不进入子函数内部。

结束测试后，删除断点：

```
delete [行号]

```

从当前断点继续运行程序：

```
continue

```

退出GDB：

```
quit

```

总之，有了GDB，编译时不用祈祷上帝了，运行时不用血祭了，再也不用printf(“test“）了。当然，这里所讲的并不完整，而且GDB的功能远远不止于此。所以我强烈建议你自己更加深入的学习它。我现在感兴趣的是将GDB整合到Vim中。同时，这里有一个[备忘录](http://users.ece.utexas.edu/%7Eadnan/gdb-refcard.pdf)记录了GDB所有的命令行，以供查阅。

你对GDB有什么看法？你会将它与图形调试器对比吗，它有什么优势呢？对于将GDB集成到Vim有什么看法呢？将你的想法写到评论里。

---

via: <http://xmodulo.com/gdb-command-line-debugger.html>

作者：[Adrien Brochard](http://xmodulo.com/author/adrien) 译者：[SPccman](https://github.com/SPccman) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何将 Ubuntu14.04 Server 安全的升级到14.10

Summary: 你可能已经知道如何将你的 Ubuntu 桌面升级到最新版本了，不过如果你用的 Ubuntu Server，而且也正好又希望升级一下的话（前提是，不会影响你的应用。一般来说，对于服务器操作系统，应该采用保守态度。如果不是必须升级才能解决的安全问题，最好不要升级，而是采用各种外部手段来解决。）  如果想从Ubuntu14.04/13.10/13.04/12.10/12.04或者更老的版本升级到14.10，只要遵循下面给出的步骤。注意，你不能直接从13.10升级到14.10。你应该先将13.10升级到14.04在从14.04升级到14.10。下面是详细步骤。 下面的步骤不仅能用于14.10，也兼容于

新版本来了？

Ubuntu半年一个版本对服务器来说太快了

回复@开源新闻发布台:是的，而且还不是 LTS，基本上没人会升级的吧。。。

只用LTS版

LTS五年的支持对服务器来说都不算长，何况14.10这样的短期试验版本

# 如何将 Ubuntu14.04 Server 安全的升级到14.10

你可能已经知道如何将你的 Ubuntu 桌面升级到最新版本了，不过如果你用的 Ubuntu Server，而且也正好又希望升级一下的话（前提是，不会影响你的应用。一般来说，对于服务器操作系统，应该采用保守态度。如果不是必须升级才能解决的安全问题，最好不要升级，而是采用各种外部手段来解决。）

<img src="content_image/album_201411_25_221920hbqtmusynu7aa8qb.png" alt="" title="">

如果想从Ubuntu14.04/13.10/13.04/12.10/12.04或者更老的版本升级到14.10，只要遵循下面给出的步骤。注意，你不能直接从13.10升级到14.10。你应该先将13.10升级到14.04在从14.04升级到14.10。下面是详细步骤。

下面的步骤不仅能用于14.10，也兼容于一些像Lubuntu14.10，Kubuntu14.10和Xubuntu14.10等的Ubuntu衍生版本

**重要**：在升级之前，保险起见，不要忘了将你的数据在U盘或外部硬盘上保存一下。

### 服务器升级

从ubuntu14.04的服务器升级到14.10的服务器，采用下面的步骤。

安装update-manager-core 这个包如果之前没唷安装的话：

```
sudo apt-get install update-manager-core

```

编辑 /etc/update-manager/release-upgrades这个文件。

```
sudo nano /etc/update-manager/release-upgrades

```

像下面那样设置Prompt=normal或者Prompt=lts

```
# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the release that immediately succeeds the currently-running
#           release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that this option should not be
#           used if the currently-running release is not itself an LTS
#           release, since in that case the upgrader won't be able to
#           determine if a newer release is available.
Prompt=normal

```

现在可以通过下面的命令来更新你的服务系统了。

```
sudo do-release-upgrade -d

```

直到屏幕提示你已完成。

---

via: <http://www.unixmen.com/upgrade-ubuntu-14-04-trusty-ubuntu-14-10-utopic/>

作者：SK 译者：[johnhoow](https://github.com/johnhoow) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary: 提问： 当我尝试在虚拟机中安装一个新的Linux时，虚拟机不能启动且报了下面这个错误："unsupported configuration: hda-duplex not supported in this QEMU binary."（不支持的配置：hda-duplex在此QEMU文件中不支持。） 我该如何修复？   这个错误可能来自一个当默认声卡型号不能被识别时的一个qemu bug。  无法完成安装：不支持的配置：hda-duplex在此QEMU文件中不支持  要解决这个问题，按照下面的做。 方案一: virt-manager 在virt-manager中，打开虚拟机的虚拟硬件详细菜单，进入声卡选项，改变默认的设备型号为ac97。  点击应用按钮

回答：我不用虚拟机

[思考]

# Linux 有问必答：如何修复“hda-duplex not supported in this QEMU binary”

>
> **提问**： 当我尝试在虚拟机中安装一个新的Linux时，虚拟机不能启动且报了下面这个错误："unsupported configuration: hda-duplex not supported in this QEMU binary."（“不支持的配置：hda-duplex在此QEMU文件中不支持。”） 我该如何修复？
>
>
>

这个错误可能来自一个当默认声卡型号不能被识别时的一个qemu bug。

```
无法完成安装：‘不支持的配置：hda-duplex在此QEMU文件中不支持’

```

要解决这个问题，按照下面的做。

### 方案一: virt-manager

在**virt-manager**中，打开虚拟机的虚拟硬件详细菜单，进入声卡选项，改变默认的设备型号为ac97。

点击“应用”按钮并保存设置。看一下虚拟机现在是否可以启动了。

### 方案二: Virsh

如果你使用的是**virsh** 而不是**virt-manager**， 你可以编辑VM相应的配置文件。在节点中查找**sound**节点，并按照下面的默认声卡型号改成**ac97**。

```
<devices>
  . . .
  <sound model='ac97'>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
  </sound>
  . . .
</device>

```

---

via: <http://ask.xmodulo.com/hda-duplex-not-supported-in-this-qemu-binary.html>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux 有问必答：如何在wget中禁用HTTP转发

Summary: 提问： 当我用wget获取一个重定向到URL Y的URL X的时候，wget默认会自动获取URL Y。然而我想要强制获取不带重定向的URL X。我该如何禁用wget重定向URL的功能。  在HTTP标准中，重定向响应（带3XX的HTTP响应）说明请求的URL被移到了新的位置。重定向相应接着包含了目标重定向的URL。  像常规的HTTP客户端，wget支持URL重定向（也叫URL转发），意味着当你尝试下载一个重定向的URL时，wget会自动跟随URL重定向获取重定向后的资源。如果你由于一些原因想要禁用URL重定向，并停止3XX的状态码，你可以使用wget的--max-redirect=number选项。这个

[呵呵]

Curl和wget在处理url跳转的不同！

腻害

@老坛酸醋面

我怎么了....

Repost

# Linux 有问必答：如何在wget中禁用HTTP转发

>
> **提问**： 当我用wget获取一个重定向到URL Y的URL X的时候，wget默认会自动获取URL Y。然而我想要强制获取不带重定向的URL X。我该如何禁用wget重定向URL的功能。
>
>
>

在HTTP标准中，重定向响应（带3XX的HTTP响应）说明请求的URL被移到了新的位置。重定向相应接着包含了目标重定向的URL。

<img src="content_image/album_201411_26_224721v4w6u5e44h400h4e.png" alt="" title="">

像常规的HTTP客户端，wget支持URL重定向（也叫URL转发），意味着当你尝试下载一个重定向的URL时，wget会自动跟随URL重定向获取重定向后的资源。如果你由于一些原因想要禁用URL重定向，并停止3XX的状态码，你可以使用wget的“--max-redirect=number”选项。这个选项用来指定最大（递归）重定向的数字，默认是20。

如果你想要禁用wget中的HTTP重定向，使用“--max-redirect=0”

```
$ wget --max-redirect=0 http://www.aaa.com/a.html

```

---

```
--2014-10-31 23:08:58--  http://www.aaa.com/a.html
Resolving aaa.com (aaa.com)... 1.2.3.4
Connecting to aaa.com (aaa.com)|1.2.3.4|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.bbb.com/b.html [following]
0 redirections exceeded.

```

如你所见，当wget遇到HTTP重定向响应时，它不会跟着重定向，并以“0 redirections exceeded”（超出0次重定向）的错误信息停止。它同样会显示一个HTTP的状态码（比如301）。

注意一下curl，另外一个类似的HTTP客户端，行为正好相反。默认上，curl并不会跟随URL重定向。要强制使cutl重定向到一个URL，你要使用“-L”选项。

---

via: <http://ask.xmodulo.com/disable-http-redirect-wget.html>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


教你在 Ubuntu 上使用 LXC 容器

Summary: 使用容器来保证主机环境的安全性，这个概念早在十年前就已经存在（例如 FreeBSD 的 jail 虚拟化技术），但是直到最近，随着部署云架构需求越来越多，像 LXC 和 Docker 这种 Linux 下的容器才成为被关注的焦点。当然，由于主流厂商（云服务商如亚马逊主推 AWS，微软主推 Azure；发行版如红帽、Ubuntu等）组成的强大靠山，Docker 已经被放在媒体的聚光灯下面，其实，Docker 里面所谓的容器技术是由 LXC 提供的。 你只是一个普通的 Linux 用户，那 Docker/LXC 能为你带来什么好处呢？容器可以将你的应用在不同的 Linux 发行版之间迁移。想像

openVZ？

mark

赞一个

赞！！！

# 教你在 Ubuntu 上使用 LXC 容器

使用“容器”来保证主机环境的安全性，这个概念早在十年前就已经存在（例如 FreeBSD 的 jail 虚拟化技术），但是直到最近，随着部署云架构需求越来越多，像 LXC 和 [Docker](http://xmodulo.com/docker-containers-centos-fedora.html) 这种 Linux 下的容器才成为被关注的焦点。当然，由于主流厂商（云服务商如亚马逊主推 AWS，微软主推 Azure；发行版如红帽、Ubuntu等）组成的强大靠山，[Docker](http://xmodulo.com/manage-linux-containers-docker-ubuntu.html) 已经被放在媒体的聚光灯下面，其实，Docker 里面所谓的“容器”技术是由 LXC 提供的。

你只是一个普通的 Linux 用户，那 Docker/LXC 能为你带来什么好处呢？容器可以将你的应用在不同的 Linux 发行版之间迁移。想像一下这个场景：你正在用的发行版是 Debian，你喜欢它的稳定性，同时你又想玩一款最新的 Ubuntu 游戏，你不需要在电脑上装双系统然后重启进入 Ubuntu，也不需要在 Debian 上跑一个耗资源的 Ubuntu 虚拟机，你只需要简单地生成一个 Ubuntu 容器就够了。

抛开 Docker 的好处不谈，让我们聊一下 LXC 容器的好处：我可以使用 libvirt 提供的接口来管理 LXC，这些接口和 Docker 没有任何关系。如果你有使用基于 libvirt 库的管理工具（例如 virt-manager 和 virsh），你就可以使用它们来管理 LXC 容器。

在这篇教程中，我只介绍标准 LXC 容器管理工具的命令行操作，来教你**如何在 Ubuntu 下创建和管理 LXC 容器**。

### Ubuntu 下安装 LXC

使用下面的命令安装 LXC 在用户态的工具：

```
$ sudo apt-get install lxc

```

然后检查当前内核是否支持 LXC。如果所有结果都是“enable”，说明内核支持：

```
$ lxc-checkconfig

```

安装完 LXC 工具后，就能看到 LXC 自动创建了一块桥接网卡（lxcbr0，可以在 /etc/lxc/default.conf 中设置）。

当你创建了 LXC 容器后，它的网口会自动链接到这个桥接网卡上，然后这个容器就能和外部世界通信了。

### 创建 LXC 容器

为了在指定环境下（比如 Debian Wheezy 64位）创建 LXC 容器，你需要一个相应的 LXC 模板。幸运的是 LXC 提供的工具集成了一整套现成的 LXC 模板，你可以在 /usr/share/lxc/templates 目录下找到它们。

```
 $ ls /usr/share/lxc/templates

```

一个 LXC 模板实质上就是一个脚本，用于创建指定环境下的容器。当你创建 LXC 容器时，你需要用到它们。

比如你要新建 Ubuntu 容器，使用下面的命令即可：

```
$ sudo lxc-create -n <container-name> -t ubuntu

```

默认情况下，这个命令会创建一个最小的 Ubuntu 环境，版本号与你的宿主机一致，我这边是“活泼的蝾螈”（版本号是13.10），64位。

当然你也可以创建任何你喜欢的版本，只要在命令里面加一个版本参数即可。举个例子，创建 Ubuntu 14.10 的容器：

```
$ sudo lxc-create -n <container-name> -t ubuntu -- --release utopic

```

这个命令就会下载安装指定环境下的软件包，创建新容器。整个过程需要几分钟时间，与容器的类型有关，所以，你可能需要耐心等待。

下载安装完所有软件包后，LXC 容器镜像就创建完成了，你可以看到默认的登录界面。容器被放到 /var/lib/lxc/<容器名> 这个目录下，容器的根文件系统放在 /var/lib/lxc/<容器名>/rootfs 目录下。

创建过程中下载的软件包保存在 /var/cache/lxc 目录下面，当你想另外建一个一样的容器时，可以省去很多下载时间。

用下面的命令看看主机上所有的 LXC 容器：

```
$ sudo lxc-ls --fancy

```

---

```
NAME  STATE    IPV4  IPV6  AUTOSTART
------------------------------------
test-lxc   STOPPED  -     -     NO

```

使用下面的命令启动容器。参数“-d”将容器作为后台进程打开。如果没有指定这个参数，你可以在控制台界面上直接把容器的运行程序关闭（LCTT译注：Ctrl+C组合键）。

```
$ sudo lxc-start -n <container-name> -d

```

打开容器后，看看状态：

```
$ sudo lxc-ls --fancy

```

---

```
NAME  STATE    IPV4       IPV6  AUTOSTART
-----------------------------------------
lxc   RUNNING  10.0.3.55  -     NO

```

容器状态是“运行中”，容器 IP 是10.0.3.55。

你也可以看到容器的网络接口（比如我这里是 vethJ06SFL）自动与 LXC 内部网桥（lxcbr0）连上了：

```
$ brctl show lxcbr0

```

### 管理 LXC 容器

我们已经学习了怎么创建和启动 LXC 容器，现在来看看怎么玩一个正在运行着的容器。

第一步：打开容器控制台：

```
$ sudo lxc-console -n <container-name>

```

使用“Crtl+a q”组合键退出控制台。

停止、删除容器：

```
$ sudo lxc-stop -n <container-name>
$ sudo lxc-destroy -n <container-name>

```

复制容器，用下面的命令：

```
$ sudo lxc-stop -n <container-name>
$ sudo lxc-clone -o <container-name> -n <new-container-name>

```

### 常见问题

这个小节主要介绍你们在使用 LXC 过程中碰到过的问题。

1. 创建 LXC 容器时遇到下面的错误：

$ sudo lxc-create -n test-lxc -t ubuntu

---

```
lxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync

```

错误的原因是你运行了最新的 LXC，但是它所依赖的 libcgmanager 版本较老，两者不兼容。升级下 libcmanager 即可解决问题：

```
$ sudo apt-get install libcgmanager0

```

---

via: <http://xmodulo.com/lxc-containers-ubuntu.html>

作者：[Dan Nanni](http://xmodulo.com/author/nanni) 译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary: LEMP 组合包是一款日益流行的网站服务组合软件包，在许多生产环境中的核心网站服务上起着强有力的作用。正如其名称所暗示的， LEMP 包是由 Linux、nginx、MariaDB/MySQL 和 PHP 组成的。在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群，相比来说 nginx 的高性能及轻量级等特性，正是其的替代方案。 MariaDB 是一款社区支持驱动的 MySQL 数据库的分支，其功能更多性能更佳。PHP，服务端编程语言，具体是由 PHP FastCGI 的增强版 PHP-FPM 组件来处理，生成网页动态内容。 这篇文章里，我们示范如何在 CentOS

为什么不叫lnmp组合

学学先

不要瞎起名字啊

@Linux中国 人家是首字母组合，哪有把音标写上去的，不要杜撰好吗！你也不是权威

是lnmp

很及时 很有用

不是LNMP吗

有空看！

LEMP是LNMP的小号吗？

回复@火云仙圣:又不是我杜撰的。

微博不是人工发的吧

回复@Linux中国:@Linux中国 即便不是你杜撰的，你也最好改正，错误的东西你也要传播吗？百度都没有，这不是理由！lemp  lnmp希望你百度下

@有道云笔记收藏

不知道何时出现了一个LEMP的缩写法，究竟应该称之为LNMP还是LEMP？支持LNMP的点"支持"，支持LEMP的请"评论"。//@RSnoder:LEMP是LNMP的小号吗？

每次在openSUSE上部署都会有问题。到底是英语不过关。

是LNMP吧？

回复@火云仙圣:国外原文如此，而且不是一个地方这样说，话说好像lnmp才是我们国内杜撰的。

回复@Linux中国:好吧，尊重原文也对。

@我的印象笔记

Repost

哇，LEMP这个高端呀，有时间要测试研究一下！

LEMP?LNMP?大家弄明白再评论吧，反正小编没乱搞

百度了,lemp也可以这么叫,Nginx 发音为 Engine X....

谢谢分享

@蓝蓝小脚丫 挺好的！

最后放test.php的文件夹位置错了~~~nginx配置文件里面是/usr/share/nginx/html，小编你写放在 /var/www/html/ 目录~~~~

谢谢指正！我修改啦~~

配置nginx的default.conf文件完成后，重启出现如下错误：

nginx.service - nginx - high performance web server

   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)

   Active: failed (Result: exit-code) since 日 2015-06-14 21:30:10 CST; 45s ago

     Docs: http://nginx.org/en/docs/

  Process: 4954 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)

  Process: 6469 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)

 Main PID: 1695 (code=exited, status=0/SUCCESS)

6月 14 21:30:10 localhost.localdomain systemd[1]: Starting nginx - high performance web server...

6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: [emerg] invalid number of arguments in "try_files" directive in /e...onf:34

6月 14 21:30:10 localhost.localdomain nginx[6469]: nginx: configuration file /etc/nginx/nginx.conf test failed

6月 14 21:30:10 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1

6月 14 21:30:10 localhost.localdomain systemd[1]: Failed to start nginx - high performance web server.

6月 14 21:30:10 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.

Hint: Some lines were ellipsized, use -l to show in full.

当我去除不是很理解的：try_files $uri =404;这行后，重启正常。请问这行是怎么意思呢？

有关 try_files 的解释可参见： http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files<br />
在 0.7.51 之后，才支持 =404 这样的数字参数，所以请确认你没写错，你的 nginx 版本足够新。

$ sudo yum php php-fpm php-mysql    此处命令是不是少了个install？？

确实

原文，作者也是少了，挺粗心的哈...新手安装，肯定会莫名其妙。^_^

学习

# CentOS 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

LEMP 组合包是一款日益流行的网站服务组合软件包，在许多生产环境中的核心网站服务上起着强有力的作用。正如其名称所暗示的， LEMP 包是由 Linux、nginx、MariaDB/MySQL 和 PHP 组成的。在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群，相比来说 nginx 的高性能及轻量级等特性，正是其的替代方案。 MariaDB 是一款社区支持驱动的 MySQL 数据库的分支，其功能更多性能更佳。PHP，服务端编程语言，具体是由 PHP FastCGI 的增强版 PHP-FPM 组件来处理，生成网页动态内容。

（LCTT 译注：为何采用 LEMP 而不是 LNMP 的缩写？据 <https://lemp.io/> 的解释：Nginx 的发音是 Engine-X，重要的发音而不是首字母，而且 LEMP 实际上是可读的，而 LNMP 看起来只是字母表。）

这篇文章里，我们示范**如何在 CentOS 操作平台上安装 LEMP 包**。我们安装的目标是 CentOS 6 和 CentOS 7 两个操作平台，如有必要会指出它们的不同。

### 第一步: Nginx

让我们在 CentOS 上安装 nginx 作为第一步，然后对它作些基本的配置，比如使其能引导时启动和[对防火墙做个性化设置](http://linux.cn/article-4243-1.html)。

#### 安装 Nginx

让我们从它的官方的 RPM 源来安装一个预构建的稳定版本的 nginx 包。

在 CentOS 7 系统上:

```
$ sudo rpm --import http://nginx.org/keys/nginx_signing.key
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ sudo yum install nginx

```

在 CentOS 6 系统上:

```
$ sudo rpm --import http://nginx.org/keys/nginx_signing.key
$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
$ sudo yum install nginx

```

注意在安装 nginx RPM 包之前，如果您没有导入 nginx 的官方 GPG 密钥的话，会出一如下所示的警告:

```
warning: /var/tmp/rpm-tmp.KttVHD: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY

```

#### 启动 Nginx

安装完成后，nginx 是不会自动启动的。现在让我们来启动它吧，还要做些配置让其可以随着操作系统启动而启动。我们也需要在防火墙里打开 TCP/80 端口，以使得可以远程访问 nginx 的 web 服务。所有这些操作、设置都只需要输入如下命令就可实现。

在 CentOS 7 系统上:

```
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
$ sudo firewall-cmd --reload

```

在 CentOS 6 系统上:

```
$ sudo service nginx start
$ sudo chkconfig nginx on
$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo service iptables save

```

#### 测试 Nginx

nginx 的默认文档要目录是 /usr/share/nginx/html。默认的 index.html 文件一定已经在这目录下了。让我们检测下是否可以访问到这个测试 web 页，输入 http://nginx的ip地址/ 访问。

如果您看到的是如上所示的页面的话，说明 nginx 已经正常启动。继续往下。

### 第二步: MariaDB/MySQL

下一步就是安装 LEMP 包的数据库组件。CentOS/RHEL 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包，但 CentOS/RHEL 7 已使用了 MariaDB 替代了默认的 MySQL。作为 MySQL 的简单替代品，MariaDB 保证了与 MySQL 的 API 和命令行用法方面最大的兼容性。下面是关于怎么在 CentOS 上安装和配置 MaraDB/MySQL 的操作示例。

在 CentOS 7 系统上:

如下所示操作来安装 MariaDB 服务/客户端包以及启动 MariaDB 服务。

```
$ sudo yum install mariadb-server
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

```

在 CentOS 6 系统上:

如下示，安装 MySQL 服务/客户端包并且启动 MySQL 服务。

```
$ sudo yum install mysql-server
$ sudo service mysqld start
$ sudo chkconfig mysqld on

```

在成功启动 MariaDB/MySQL 服务后，执行在 MariaDB/MySQL 服务包中的脚本。这一次的运行会为为数据库服务器进行一些安全强化措施，如设置（非空）的 root 密码、删除匿名用户、锁定远程访问。

```
 $ sudo mysql_secure_installation

```

这就是数据库的设置。现在进行下一步。

### 第三步: PHP

PHP 是 LEMP 包中一个重要的组件，它负责把存储在 MariaDB/MySQL 服务器的数据取出生成动态内容。为了 LEMP 需要，您至少需要安装上 PHP-FPM 和 PHP-MySQL 两个模块。PHP-FPM（FastCGI 进程管理器）实现的是 nginx 服务器和生成动态内容的 PHP 应用程序的访问接口。PHP-MySQL 模块使 PHP 程序能访问 MariaDB/MySQL 数据库。

#### 安装 PHP 模块

在 CentOS 7 系统上:

```
$ sudo yum install php php-fpm php-mysql

```

在 CentOS 6 系统上:

首先，您需要从仓库中安装 REMI 库（参见[本指南](http://linux.cn/article-4192-1.html)），并安装软件包。

```
$ sudo yum --enablerepo=remi install php php-fpm php-mysql

```

在安装 PHP 时，得注意两个地方:

在 CentOS 6 系统中，安装 REMI仓库中最新的 php-mysql 模块时，MySQL 的服务端包和客户端包会被当做一部分依赖包而自动的更新。

在 CentOS 6 和 CentOS 7 中，在安装 PHP 包的同时会把 Apache web 服务器（即 httpd）当做它的依赖包一起安装。这会跟 nginx web 服务器起冲突。这个问题会在下一节来讨论。

取决于您的使用情况，可以使用 yum 命令来定制您的 PHP 引擎，也许会想安装下面的任意一个扩展 PHP 模块包。

* **php-cli**: PHP 的命令行界面。从命令行里测试 PHP 时非常有用。
* **php-gd**: PHP 的图像处理支持。
* **php-bcmath**: PHP 的数学支持。
* **php-mcrypt**: PHP 的加密算法支持 (例如 DES、Blowfish、CBC、 CFB、ECB ciphers 等)。
* **php-xml**: PHP 的 XML 解析和处理支持。
* **php-dba**: PHP 的数据抽象层支持。
* **php-pecl-apc**: PHP 加速器/缓存支持。

安装时，要查看可用的 PHP 模块的完整列表的话，可以运行：

```
$ sudo yum search php- (CentOS 7)
$ sudo yum --enablerepo=remi search php- (CentOS 6)

```

#### 启动 PHP-FPM

您需要启动 PHP-FPM ，然后把它放到自动启动服务列表。

在 CentOS 7 系统上:

```
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm

```

在 CentOS 6 系统上:

```
$ sudo chkconfig php-fpm on
$ sudo service php-fpm start

```

### 第四步: 配置 LEMP 组合包

本教程的最后一步是调整 LEMP 组合包的配置。

#### 使 Httpd 不可用

首先，让我们把早先随 PHP 包安装的 httpd 服务给禁用掉。

在 CentOS 7 系统上:

```
$ sudo systemctl disable httpd

```

在 CentOS 6 系统上:

```
$ sudo chkconfig httpd off

```

#### 配置 Nginx

接下来，让我们配置 nginx 虚拟主机，使得 nginx 可以通过 PHP-FPM 来处理 PHP 的任务。用文本编辑器打开 /etc/nginx/conf.d/default.conf ，然后按如下所示修改。

```
 $ sudo vi /etc/nginx/conf.d/default.conf

```

---

```
server {
    listen       80;
    server_name  www.server_domain.com;
    root   /usr/share/nginx/html;
    index  index.php index.html index.htm;

    location / {
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    }

    # nginx passes PHP scripts to FastCGI server via a TCP/9000 socket
    # this setting much be consistent with /etc/php-fpm.d/www.conf
    # try_files prevents nginx from passing bad scripts to FastCGI server
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

```

nginx 的默认工作线程数（在 /etc/nginx/nginx.conf 文件中指定的）是 1，让我们也来调整一下这个数字。通常来说我们创建的工作线程数应该和 CPU 核数相同。要确信您的 CPU 的核数，请运行下面这命令：

```
$ grep processor /proc/cpuinfo | wc -l

```

如果您的 CPU 是 4 核的，就如下所示修改 /etc/nginx/nginx.conf 文件。

```
$ sudo vi /etc/nginx/nginx.conf

```

---

```
worker_processes  4;

```

#### 配置 PHP

接下来，让我们对 PHP 的配置文件 /etc/php.ini 做自定义设置。更具体的就是在 /etc/php.ini 文件中增加以下两行。

```
cgi.fix_pathinfo=0
date.timezone = "PRC"

```

为了安全起见，我们希望的是 PHP 解释器只是处理指定文件路径的文件任务，而不是预测搜索一些并不存在的文件任务。上面的第一行起的就是这个作用。（LCTT 译注：原文用的时区是“America/New York”，根据国内情况，应该用 PRC或 Asia 下的中国城市。）

第二行定义的是 PHP 中日期/时间相关函数使用相关的默认时区。使用[本指南](http://ask.xmodulo.com/set-default-timezone-php.html)，找出您所在的时区，并设置相应 **date.timezone 的值**。

#### 测试 PHP

最后，让我们来测试下 nginx 是否能处理 PHP 页面。在测试之前，请确保重启 nginx 和 PHP-FPM。

在 CentOS 7 系统上:

```
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

```

在 CentOS 6 系统上:

```
$ sudo service nginx restart
$ sudo service php-fpm restart

```

创建一个叫名叫 test.php 的文件，然后写入如下内容，并放入 /usr/share/nginx/html 目录。

```
<?php phpinfo(); ?>

```

打开浏览器，输入 http://nginx的IP地址/test.php 。

如果您能看到如上所示的页面，说明设置的 LEMP 完全成功！

---

via: <http://xmodulo.com/install-lemp-stack-centos.html>

作者：[Dan Nanni](http://xmodulo.com/author/nanni) 译者：[runningwater](https://github.com/runningwater) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


小技巧：如何修复Lubuntu中的Docky混合错误

Summary: 总所周知，Docky是Unix/Linux类系统中的轻量级应用启动器。我是 Lubuntu 和 Docky 的忠实粉丝，因为它们不需要占用我的所有系统资源，这样就可以同时运行更多应用。我在笔记本上使用Docky应用启动器，系统为Lubuntu 14.04. 但是，如果你使用LXDE发行版，你也许肯定遇到过使用Docky时报混合的错误。看下面的截图。  如果不开启混合功能，就不能使用Docky一些特别功能，如3D背景、自动隐藏。如果你想开启这些Docky的功能，那么你需要在你的LXDE系统中开启混合功能。 就像这样，首先安装 xcompmgr包： sudo apt-get install xcompmgr  然后，

# 小技巧：如何修复Lubuntu中的Docky混合错误

总所周知，**Docky**是Unix/Linux类系统中的轻量级应用启动器。我是 Lubuntu 和 Docky 的忠实粉丝，因为它们不需要占用我的所有系统资源，这样就可以同时运行更多应用。我在笔记本上使用Docky应用启动器，系统为Lubuntu 14.04.

但是，如果你使用LXDE发行版，你也许肯定遇到过使用Docky时报混合的错误。看下面的截图。

如果不开启混合功能，就不能使用Docky一些特别功能，如3D背景、自动隐藏。如果你想开启这些Docky的功能，那么你需要在你的LXDE系统中开启混合功能。

就像这样，首先安装 **xcompmgr**包：

```
sudo apt-get install xcompmgr

```

然后，选择**菜单（Menu） -> 偏好（Preferences） -> LXSession默认程序（Default applications for LXSession）**。选择自动开始（Autostart）选项卡。 在**（+增加）+Add**框中输入“**@xcompmgr -n**”不带引号。最后点击增加按钮。

这样就搞定了。关掉LXSession配置窗口，注销或重启系统。之后，你就可以看见混合功能已经打开。

这时，你就可以使用3D背景和隐藏功能，如自动隐藏（Auto-hide），Intellihide和窗口闪烁（Window dodge）等。

搞定！干杯！

---

via: <http://www.unixmen.com/quick-tip-fix-docky-compositing-error-lubuntu/>

作者：[SK](http://www.unixmen.com/author/sk/) 译者：[Vic020/VicYu](http://www.vicyu.net) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ubuntu也许能在中国给Windows以致命打击

开源加油……

Ubuntu听说很好用，但现在的笔记本电脑ThinkPAd，怕找不到驱动。在官网上也没有看对支持Ubuntu的驱动。不知道这点，Ubuntu的公司考虑了没有。硬盘太小了，只有100多G，装两个系统，几乎就没有空间了。

别扯淡了， 欧洲那么高的素质和教育水平，linux都不能成主流；韩国的实验也失败了。我看这些人是受大忽悠倪光南的影响。倪光南就像苏联的李森科一样

竞争是好，希望不要闭关[挖鼻屎]

ubuntu垃圾

力挺linux，开源加油！！

回复@小罗KeyBoy:现在这墙的高度，还有一批一批的屏蔽节奏不是闭关么[汗]

校园网客户端都用不了，你让我们学生怎么爱

不现实，桌面版不稳定，小白用户用不来。

Ubuntu？呵呵！Ubuntu！

别闹了，不可能。

你要说LinuxDeepin，我还能稍微相信一下（如果你说Fedora我一定信了）。Ubuntu？ //@火志溟:Ubuntu？呵呵！Ubuntu！

要是有linux版QQ就齐了

想多了

不太可能吧。。各种问题。

我只转发~~~~

不现实

呵呵，对于各种意见，智者见智吧。[嘻嘻]

感觉想多了。。。

这是说，“国产”搞不出来了？？//@Linux中国:呵呵，对于各种意见，智者见智吧。[嘻嘻]

感觉Ubuntu Kylin太渣了，根本没有deepin做得好。@Deepin官方微博 //@Linux中国: 呵呵，对于各种意见，智者见智吧。[嘻嘻]

@校长Ubuntu

使用哪种发行版不重要，重要的是如果政府要推行替代政策就要找准方向，应用为王，你有了linux或其它系统的应用，还怕没有人换系统？换了系统没有应用，我傻啊？换它干嘛？？？政府不是喜欢一刀切么？统一规定，国内出的应用，都要有除了WIN系统之外的版本，先从政府内部的应用开始！

转发微博.

那些院士太高调了，这个事情应该悄悄的来，学校开始。。。

虽然不确定成不成功，但这个事情至少听起来觉得很顺心，不像之前那个。

你们楼下的说Ubuntu不好的是怎么回事？！[挖鼻屎][哼]

//@Linux中国:呵呵，对于各种意见，智者见智吧。[嘻嘻]

桌面系统，除了苹果对抗微软。其他还是要谦虚的//@Linux中国:呵呵，对于各种意见，智者见智吧。[嘻嘻]

deepin!@Deepin官方微博 //@Linux中国:呵呵，对于各种意见，智者见智吧。[嘻嘻]

只要有更多的应用，完全不是问题

先转发，让时间去验证一切

就两点感觉ubuntu还是比较靠谱，1，他是一个公司在运作而不是社区，2，他在做自己的显示服务器。

最近也在装，只不过很麻烦，下载还要分几次，无语了，要下载torrent类型文件。到现在还没有安装成功。。。。不过近期会安装好，体验一下！

国内那些互联网公司会允许Linux取代windows吗

这是一个持久战，想要胜利要从娃娃抓起！想一下，我们刚开始接触计算机的操作系统，应该大多数都是诸如win98，winxp，win7之类的微软操作系统，其中XP更是经典的不败神话；如果孩提时代刚开始接触就是Linux的发行版，这样的话就会有无限遐想了。。。

中国也有许多linux的桌面版了，不过真的好烂啊 //@京葛:这样又会有官方的qq了。 //@Linux中国:呵呵，对于各种意见，智者见智吧。[嘻嘻]

@红旗Linux 不统一吧~就算用linux，好多选乌班图！红旗什么东西留着普通用户？当初就弄得好像政府才可以用的样子~没人其他人第三方支援红旗？？？？好像俺都是用Deepin来玩玩而已！好多菜鸟不会安装的......

引狼入室

Ubuntu 里面有第三方软件

还是搞自己有自主知识产权的系统，用别人的系统都是养肥别人，也容易被别人掌控，可以随便给你安个后门，结果是一样的危险，到时候，还不是又要回到开发自己系统的问题上

禁止微软进入中国市场，LINUX就会很快在中国流行起来。

脑子有病

感觉这辈子是见不到那一天了。

mirrors.163.com，mirrors.aliyun.com等都是比较好的镜像源。还有mirrors.ustc.edu.cn等教育网镜像站。如果是教育网用户，推荐选择这样的镜像站，速度非常非常快。推荐直接下载.iso镜像文件，u盘安装（ultraiso, unetbootin, Win32DiskImager）。也可以在线安装。还可以用easybcd等引导.iso。或者grub2 loopback，或者grub4dos map。

并不需要分几次的

# Ubuntu也许能在中国给Windows以致命打击

>
> Ubuntu Kylin也许能在中国用来替代Windows
>
>
>

**Windows操作系统将退出中国的前门，而它的位置将由一个Linux发行版替代，用于官方和政府部门。问题是目前还没有一个真正的可替代系统，尽管还是有一款操作系统也许已经准备接下这个任务，它就是Ubuntu Kylin。**

**<img src="content_image/album_201411_27_132844ds3umub83iyaajc6.jpg" alt="" title="">**

至少可以这么说，中国政府和微软目前的关系很紧张。[就像新闻里说的](http://news.softpedia.com/news/China-Starts-Windows-Eradication-15-of-Govt-PCs-to-Switch-to-Linux-Every-Year-463393.shtml)，一个用Linux类似系统在全国逐步替换Windows的计划已经在准备了。还不清楚具体会采用哪个系统，因为情况很复杂而且这是一个非常大的国家。

通常，这种问题没有一个普适的解决方案，而且中国的行动确实看起来有点呆板。不管怎样，这为Ubuntu Keylin打开了一扇巨大的机会之窗，它是一个基于Ubuntu由中国开发者和Canonical共同开发的发行版。它已经稳定一段时间了，而且已经发布了几个连续版本。

### Ubuntu Kylin在敲Windows的大门

有趣的是，在这个关于中国意图的新闻冒出来的同一天里，发布了一篇对国防科技大学（NUDT）副教授Dr. Jonas Zhang的采访，关于[最新的14.10分支开发计划](http://news.softpedia.com/news/Ubuntu-Kylin-14-10-Utopic-Unicorn-Consolidates-Its-Position-in-China-463068.shtml)。

“在这次的14.10版本中，有许多很好的功能。比如，新手也可以轻松地通过Ubuntu Kylin软件中心找到Windows软件的替代；用户可以使用Ubuntu Kylin的SSO（Ubuntu Kylin的单一登录系统，我们叫它UKID）来登录到Ubuntu Kylin的软件和社区；Sogou输入法（一款世界知名的中文输入法，上个月已经在苹果的应用市场上线了）减少了40%的CPU和内存占用。”

“来自CSIP（中国政府的一个部门），超过50个 Canonical 和 NUDT（国防科技大学）的项目经理、工程师和社区管理员在为 Ubuntu Kylin 工作。大部分全职工程师来自NUDT。许多来自Ubuntu，Debian和其他社区的开发者也参与到Ubuntu Kylin的开发中了。”Dr. Jonas Zhang[说](http://news.softpedia.com/news/Ubuntu-Kylin-14-10-Utopic-Unicorn-Consolidates-Its-Position-in-China-463068.shtml)。

中国政府也许自己也正想办法搭建另一个Linux发行版（不是第一次尝试了），但是目前看来已经有一个很好的用来替代Windows的候选者了。这对于Canonical也是很好的商机，至少从被承认这个角度看。

如果Ubuntu，通过它和Kylin的联系，想在像中国这样的大国里取代Windows，对这家公司将会是个巨大的促进。让我们拭目以待，看看开发者们让Ubuntu Kylin变成一个有竞争力的操作系统所花费的努力是不是白费力气。

---

via: <http://news.softpedia.com/news/Ubuntu-Could-Give-a-Fatal-Blow-to-Windows-in-China-463500.shtml>

作者：[Silviu Stahie](http://news.softpedia.com/editors/browse/silviu-stahie) 译者：[zpl1025](https://github.com/zpl1025) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在 Linux 中使用"avconv"工具录制计算机桌面视频和音频

Summary: Libav是一款跨平台的工具库，能够用来处理多媒体文件、流和协议。它最初是源自ffmpeg。Libav带有一些工具，比如：  Avplay： 一款视频音频播放器。 Avconv： 能够记录多个设备输入源的一个多媒体转换器和视频音频录制器。 Avprobe： 一个连接多媒体文件流并且返回关于这个文件流的统计信息的工具。 Libavfilter： 一个Libav工具的过滤器(filtering)API。  在这篇文章里面，我们就要展示如何通过'Avconv'程序在Debian/Ubuntu/Linux Mint发行版上录制Linux桌面视频音频。  第一步：下载 Avconv 工具 1. avconv是 libav-tools 的一部分， 可

转需

很赞得说,已安装,源码93M,编译时间不太长.学习试用中...

# 在 Linux 中使用"avconv"工具录制计算机桌面视频和音频

**Libav**是一款跨平台的工具库，能够用来处理多媒体文件、流和协议。它最初是源自ffmpeg。Libav带有一些工具，比如：

* **Avplay**： 一款视频音频播放器。
* **Avconv**： 能够记录多个设备输入源的一个多媒体转换器和视频音频录制器。
* **Avprobe**： 一个连接多媒体文件流并且返回关于这个文件流的统计信息的工具。
* **Libavfilter**： 一个Libav工具的过滤器(filtering)API。

在这篇文章里面，我们就要展示如何通过'Avconv'程序在**Debian/Ubuntu/Linux Mint**发行版上录制Linux桌面视频音频。

### 第一步：下载 Avconv 工具

**1.** **avconv**是 “**libav-tools**” 的一部分， 可以通过官方的基于debian的仓库下载，比如Mint、Ubuntu。输入下面命令即可：

```
$ sudo apt-get update
$ sudo apt-get install libav-tools

```

*下载Avconv工具*

**注意**： 如果从默认仓库下载的话， ‘**avconv**’ 的版本可能比较老。 因此我们推荐你拉取最新的git官方版本。

```
$ sudo apt-get install yasm
$ git clone git://git.libav.org/libav.git
$ cd libav
$ ./configure
$ make
$ sudo make install

```

**注意**： 你应该运行 ‘**./configure –help**’ 来列出所有的可选配置选项并且安装相应的解码器和库，你还需要做很多工作来解决依赖问题。

也要注意，如果你是从源代码编译的，就需要使用**sudo avconv**而不是**avconv**来运行这个工具。

### 第二步：开始录制桌面视频

**2.**一切就绪，现在可以通过运行下面的命令录制你的视频了：

```
$ avconv -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 $HOME/output.avi

```

简单解释一下这个命令:

* **avconv -f x11grab** 默认从X服务捕捉画面。
* **-r 25** 这是你需要的视频帧率，可以自行设置。
* **-s 1920×1080** 是你的系统的桌面分辨率，要设置成你当前桌面的分辨率，这一点非常重要。
* **-i :0.0** 我们要记录的位置（X 服务输出端口），设置成这样就可以了。
* **-vcodec libx264** 我们用来录制视频的编码器。
* **-threads 4** 线程数，可以根据情况更改。
* **$HOME/output** 输出的目标文件路径。
* **.avi** 使用的视频格式，可以换成 “flv”、“mp4″、 “wmv”、 “mov”、 “mkv”等。

**3.**在运行命令之后，就会在terminal上自动运行一个进程进行记录，按"Ctrl+C"键来终止记录。

*录制桌面视频*

**4.** 现在，你可以使用VLC或者其他的播放器，或者使用来自Libav包里的播放器"avplay"来播放你录制的视频。

```
$ avplay $HOME/output.avi

```

**注意:** 别忘了替换输出文件的路径为你自己的，录制效果还是很好的。

*播放录制的文件*

这有一段我用 “**avconv**” 录制的[视频](http://www.youtube.com/embed/g1FEh4wByGE) （墙外）。

### 第三步： 开始录制桌面的音频和视频

**5.** 如果也想同时录制音频，先运行这个命令，列出所有的音频输入源：

```
$ arecord -l

```

结果类似这样：

*检查音频输入源*

在我这里，我只有一个音频输入源，所以数量是**1**，这就是我使用如下命令来捕捉我的视频以及麦克风的音频的原因。

```
$ avconv -f alsa -i hw:1 -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -threads 4 output-file2.avi

```

我修改了部分地方，下面做个简短的解释：

* **-f** alsa 一个从alsa设备捕捉声音的选项。
* **-i** hw:1 是一个从 “hw:1” 设备捕捉音频的选项，这个设备是我电脑上仅有的一个音频输入设备。

**注意**: 如果你想用**arecord -l**显示的**1**之外的设备的话，别忘了替换 “**1**”。

结束录制，再来一次“**Ctrl + C**” 就可以。

### 第四步： 开始录制桌面音频

**6.** 如果只想录制音频的话，使用下面的命令。

```
$ avconv -f alsa -i hw:1 out.wav

```

**7.** 替换成 **.mp3** 等Libav支持的格式都可以，播放 **out.wav**就能听到你自己的声音了。

*录制桌面音频*

### 最后

“**avconv**” 工具可以用来做很多其他事情，不仅仅是录制桌面视频，更多的教程和文档请移步到官网。

* <https://libav.org/avconv.html>

你对"avconv"的体验如何，你使用过其他工具录制桌面视频么？在评论里面和我们分享吧。

---

via: <http://www.tecmint.com/record-ubuntu-desktop-screen-using-avconv/>

作者：[Hanny Helal](http://www.tecmint.com/author/hannyhelal/) 译者：[ggaaooppeenngg](https://github.com/ggaaooppeenngg) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出