归档201407

This commit is contained in:
wxy
2014-08-01 23:35:01 +08:00
parent 6dc83b673c
commit cc0215644a
58 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
如何将Vim打造成一个成熟的IDE
================================================================================
如果你稍微写过一点代码就能知道“集成开发环境”IDE是多么的便利。不管是Java、C还是Python当IDE会帮你检查语法、后台编译或者自动导入你需要的库时写代码就变得容易许多。另外如果你工作在Linux上你也会知道Vim在进行文本编辑的时候是多么的方便。所以你可能会想从Vim中也获取这些IDE特性。
事实上很少有方法可以帮你做到。有些人可能会想到试着把Vim打造成C语言IDE的比如[c.vim][1]也有把Vim集成到Eclipse里的 [Eclim][2] 。但是我想要告诉你的是一个更加通用的只用插件实现的方案。你肯定不想因为安装了太多的面板和特性而让你的编辑器变得臃肿不堪。只用插件实现的方案可以让你只选择那些你想要集成到Vim的特性。这样做的额外的一个好处是这个IDE不是专门针对某一种语言的可以让你写任何类型的代码。下面就来看一下我的 **把IDE特性带进Vim的前10款插件** 吧。
### 先来个福利: Pathogen ###
首先可能不是所有人都熟悉Vim的插件并知道该怎么安装这些插件。所以我推荐的第一个插件就是[Pathogen][3]因为这个插件会让你更容易安装其他插件。如果你要安装另外的没有在这里列出来的插件用Pathogen会变得非常简单。它的[官方页面][3]的文档写的非常好,去下载安装一个吧。接下来插件的安装也会变得容易很多。
### 1. SuperTab ###
![](https://c2.staticflickr.com/6/5158/14332189422_34aeb086ed_z.jpg)
我们习惯于IDE的第一个原因就是它的自动补全功能。所以我喜欢这个非常方便的给了Tab键“超能力”的 [SuperTab][5] 插件。
### 2. Syntastic ###
![](https://farm4.staticflickr.com/3894/14354095583_ce9b112b97_z.jpg)
如果你需要使用一种以上的语言进行编程,有时候是非常容易混淆不同语言之间的语法的。幸运的是,[syntastic][6] 会帮你检查,然后告诉你是否应该加上圆括号或者方括号,或者告诉你在某个地方,你忘了一个分号。
### 3. Auto Pairs ###
另外一件让程序员们抓狂的事是:我是不是少加了最后一个括号?!每个人都讨厌用手指去数那些隔的非常远的括号。为了处理这个问题,我用 [Auto Pairs][7] 插件,这个插件会自动插入和格式化方括号和圆括号。
### 4. NERD Commenter ###
如果你在找一个可以支持多种程序语言的注释代码的快捷键,你可以试试 [NERD Commenter][8]。即使你不是程序员我也非常非常推荐这款插件因为它会让你在注释bash脚本或者其他任何东西的时候都会变得非常高效。
### 5. Snipmate ###
任何一个程序员都知道,好的码农写代码,杰出的码神重用代码。[snipmate][9]可以容易的插入代码片段到你的文件里面,大大的减少了你敲键盘的次数。它默认的包含了很多各种语言的代码片段,你也可以非常容易的添加你自己的。
### 6. NERDTree ###
![](https://farm4.staticflickr.com/3899/14332189462_d66b71cf7c_z.jpg)
管理一个大的项目时,把代码分散到不同的文件里面是非常好的主意。也是一个基本的编码原则。[NERDTree][10] 是一个不错的可以直接在Vim里使用的文件浏览器它可以让你随时想到所有的文件。
### 7. MiniBufferExplorer ###
![](https://farm4.staticflickr.com/3904/14332189492_209a3ee2dc_z.jpg)
为了打造一个文件浏览器,支持同时打开多个文件,没有什么比一个好的缓冲区管理器更重要了。[MiniBufferExplorer][11] 就可以非常漂亮和高效地完成这个工作。它甚至为你的缓冲区设置了不同的颜色和切换快捷键。
### 8. Tag List ###
![](https://farm4.staticflickr.com/3889/14147244138_c04731826a_z.jpg)
当你同时有多个文件打开时,很容易忘了你都在这些文件里添加了什么。为了防止你忘记,[Tag List][12] 这个代码查看器将会用一种漂亮简洁的格式展示其中的的变量和函数。
### 9. undotree ###
![](https://farm3.staticflickr.com/2913/14354095453_8bb87a3e31_z.jpg)
对于我们之中那些喜欢undoredo然后又undo某些更改然后依据这些来查看整个编辑完成过程的人来说 [undotree][13] 是一个不错插件可以以一棵树的形式看到你的undo和redo历史。这个功能跟代码完全没有关系所以这是我非常喜欢的一个插件。
### 10. gdbmgr ###
最后但并非不重要每个人都在某个时刻需要一个调试器。如果你喜欢gdb那么[gbdmgr][14]就是为你准备的因为它集成了那个著名的调试器到Vim中。
总结一下不管你是不是一个疯狂的coder能有一些额外的Vim功能在手总是非常方便的。像我在简介里说到的如果你不需要你不用安装这里所有的这些插件。或者你想要安装另外的也行这些其实只是一个基础入门级的插件。
你在用Vim的什么插件或者你想完善这个前10列表么请在评论里告诉我们吧。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/06/turn-vim-full-fledged-ide.html
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.vim.org/scripts/script.php?script_id=213
[2]:http://eclim.org/
[3]:https://github.com/tpope/vim-pathogen
[4]:https://www.flickr.com/photos/xmodulo/14332189422/
[5]:https://github.com/ervandew/supertab
[6]:https://github.com/scrooloose/syntastic
[7]:https://github.com/jiangmiao/auto-pairs
[8]:https://github.com/scrooloose/nerdcommenter
[9]:https://github.com/garbas/vim-snipmate
[10]:https://github.com/scrooloose/nerdtree
[11]:http://www.vim.org/scripts/script.php?script_id=159
[12]:http://www.vim.org/scripts/script.php?script_id=273
[13]:https://github.com/mbbill/undotree
[14]:http://vim.sourceforge.net/scripts/script.php?script_id=4104

View File

@@ -0,0 +1,81 @@
微软真的改变对开源软件的态度了吗?
================================================================================
> **在今天的开源软件摘要中微软或许没有对开源软件有一个新的态度就像安卓和windows的对抗Cinnamon和Unity在Ubuntu14.04的对抗。**
微软因为以前对开源软件的态度而臭名昭著但是公司改建后对开源软件发出了积极的信号。CNet报道了微软对开源软件认知的行为的改变。
> [CNet][1]消息:
> 虽然微软资助开源软件有一些时间了,并且那些曾经反对开源软件的领导者们已经退出了或者不在位了。开源软件现在用在遍布全世界的公司当中,但这些与微软帝国无关。
> 一些新的想法反映了企业顶层的一些变化今年二月初Satya Nadella代替鲍尔默成为了微软CEONadella已经给微软带来了一些新的东西改变了微软以前的一些束缚。
>
> [更多报道][2]
>
> ![](http://www.itworld.com/sites/default/files/microsoft-open-source-communist_1.jpg)
>
> 微软和开源社区
> Image credit: [Curako's Blog][3]
我是一个持悲观态度的人但是我认为微软和开源软件之间的信任关系是有待确定的。一个新的CEO和些许改变或许会改变微软在开源世界中的存在状态但是对于微软这么大的企业来说改变并不容易所以对于开源的世界来说微软是否真的改变还有待确定。
我也从来不会忘记微软用“欢迎,扩大,压死”的策略来打翻其他的竞争软件,光这一条凡是微软参合的开源项目就必须瞪大眼睛,或许这家公司真的改了,但如果没有呢!我们还是用几年时间来观察下吧。
### 安卓对抗windows ###
ZDNet曾经报道过使用数量最多的Linux发行版本不过现在桌面环境仍然是windows的天下但是安卓今年很可能会是用户数量最大的用户终端操作系统。
> [ZDNet][4]报道:
>
> 如果桌面和平板依旧像预期增长的销量安卓平板渐渐蚕食苹果的市场PC市场继续萎缩安卓在2014年末很有可能成为终端用户数量最多的操作系统而且不算安卓PC。
>
> 总而言之安卓几乎统治了Linux终端用户。你可能不会想把它作为桌面使用尽管Intel和AMD努力在让它变成现实但是安卓正在变成使用量第一的终端操作系统。
>
> [更多消息][4]
>
> ![](http://www.itworld.com/sites/default/files/android-devices-versus-windows-pcs.jpg)
> Image credit: [ZDNet][4]
上面提到的并不算真的惊喜移动终端的革命发展了接近10年了。桌面依然还像原来那样重要微软也确实没有真正的在乎过移动设备。即使现在微软在艰难的推他的手机和平板他仍旧认为移动终端市场并不重要。
谷歌严重的破坏了微软在移动领域的努力而现在他在桌面市场又对微软发起了挑战。从chrome OS到安卓谷歌给微软一连串的打击如果你查看下Amazon最受欢迎的[台式机][5]和[笔记本][6]的话你会看到很多chrome OS的电脑甚至是装有安卓的PC。所以人们的购买需求在变得多样化并不局限在windows一家了。
### Cinnamon和Unity在Ubuntu14.04上的对抗 ###
Tech Republic发表了一篇文章介绍了如何在Ubuntu14.04上安装Cinnamon研究了一下Ubuntu14.04上用Cinnamon替换unity的可行性。
> [Tech Republic][7]报道:
>
> 如果你寻求性能为主不需要其他有特色的可自定义的桌面Cinnamon适合你。Cinnamon是一个直观简洁的桌面任何人都可以使用不论你是IT工作者还是你的老妈妈。它非常的简单易用。Cinnamon很平淡不会和你开什么玩笑也不会让你感到有惊奇的感觉但这就是它所注重的。它只会给桌面带来在标准层面上带来实用性它不求突破不耍花招不加条条框框。
>
> Cinnamon是一个很平凡的桌面它只集成了最好的功能并且把它们集成到一起完美整合到一块。如果你可以用一个看起来和用起来都点老掉牙但是性能很好的桌面的话Cinnamon完全适合你。如果你喜欢各种花哨的界面和看起来很现代的感觉Cinnamon可能就不适合你了。
> [ 更多消息][7]
>
> ![](http://www.itworld.com/sites/default/files/cinnamon-versus-unity-in-ubuntu-1404.jpg)
>
> Image credit: [Tech Republic][7]
我是站在Cinnamon这边的Unity有自己的长处但是我从来没用习惯过。Cinnamon更接近传统桌面我用起来不错
但是在别人眼里漂亮的桌面总是很受欢迎。Linux最大的特色就是提供很多很多不同的选择如果你真不知道Unity和Cinnamon该选择谁你就用自己最喜欢的就行了。
你赞成那些呢?请在下方留下你的评论吧
作者的观点和ITworld无关
--------------------------------------------------------------------------------
via: http://www.itworld.com/open-source/421894/has-microsoft-really-changed-its-attitude-toward-open-source
译者:[jiajia9linuxer](https://github.com/jiajia9linuxer) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.cnet.com/news/dead-and-buried-microsofts-holy-war-on-open-source-software/
[2]:http://www.cnet.com/news/dead-and-buried-microsofts-holy-war-on-open-source-software/
[3]:http://curako.wordpress.com/2010/12/06/the-uneasy-alliance-free-software-vs-open-source/
[4]:http://www.zdnet.com/the-five-most-popular-end-user-linux-distributions-7000030058/http://www.zdnet.com/the-five-most-popular-end-user-linux-distributions-7000030058/
[5]:http://www.amazon.com/Best-Sellers-Electronics-Desktop-Computers/zgbs/electronics/565098/?_encoding=UTF8&camp=1789&creative=390957&linkCode=ur2&tag=fnh-20&linkId=REWXUPB7SQXPDSOL
[6]:http://www.amazon.com/Best-Sellers-Computers-Accessories-Laptop/zgbs/pc/565108/?_encoding=UTF8&camp=1789&creative=390957&linkCode=ur2&tag=fnh-20&linkId=POG3J2CFBHDWBAVL
[7]:http://www.techrepublic.com/article/is-cinnamon-a-worthy-replacement-for-ubuntu-unity/

View File

@@ -0,0 +1,159 @@
适合新用户的最佳的Linux发行版
================================================================================
这个争论无疑给许多Linux用户带来了麻烦。争论的焦点一般不是哪个发行版是真正最适合新用户的而是哪个发行版受这些争论者的喜爱。如果我们撇开个人喜爱我们会看到更清楚的一面。但即使这样明确的结论也会受到被新用户的需求和期望的影响。考虑到这点我决定采取一个不同的方法来找出“对新用户来说最好的发行版”。我评判最好发行版的标准不仅是易用而且还要具有由日益增长的移动界面风格所带来的现代设计理念。
对于这次评测,我们对发行版有如下要求:
- 非常友好
- 包括,开箱即用,所有常用的应用程序
- 包括某个形式的应用程序商店
- 提供一个时尚的用户界面
让我解释一下各个标准
### 用户友好 ###
这是一个备受争议的话题。但事实的真相是——新用户必须能够选择某种风格的Linux并开始使用只需要很少或不需要解释。如果必须很出太多解释那么这个发行版便不是用户友好的。我不喜欢那些操作系统但是几乎任何用户都可以在近乎零指导的情况下坐在Windows 7或OS X桌面前并开始使用它。这是每一个Linux桌面都应当争取去做的。
### 常用应用程序 ###
安装好系统后用户不应该再去安装必需的程序。那么什么是必需的呢?每年列表都会变短。目前,必备的程序列表如下:
- 网页浏览器Chrome或者Firefox对不起根本不需要其他的浏览器
- 电子邮件客户端Thunderbird是显而易见的选择。
- Office办公套件LibreOffice。就这样。
- 音乐播放器播放本地文件以及连接到流媒体服务比如Spotify
这是几乎所有用户需要的应用程序的简表。
### 应用程序商店 ###
由于移动设备需求的日益增长用户已经习惯了应用商店。Linux有应用商店很长时间了Synaptic是最古老的一个。没有一个经深思熟虑做的应用商店用户将会挣扎于在Linux环境中添加软件。毫无疑问这一点至关重要。
### 时尚的界面 ###
我已经多次提到移动设备的美化。由于iOS和Android用户越来越喜欢时尚的界面。Linux的桌面需要进行效仿并且用独特的、时尚的和易用的界面来吸引用户注意力。旧的风格在支持多触控的移动世界里不再有影响力。
## 排名前三的发行版 ##
以文中的标准,哪个发行版本满足了(或超过)我们的需求?首先,让我们来审查一下前三名的候选者。以下哪个满足了(或超过)标准。
### Ubuntu ###
[Ubuntu Linux][1]一直是用户友好型Linux的王者。开箱即用寻找一个比它更迷人和易用的桌面Unity有点困难甚至是对于那些对平台不熟悉的人也是这样的。它的桌面布局虽然与众不同但却是合乎逻辑和很直观的。对于在桌面环境中添加一个最强大的搜索工具在Linux中Ubuntu Unity应当获得最高成就。
### Linux Mint ###
如果认为有一个篡夺王位的发行版,那它就是[Linux Mint][2]。Linux Mint做了更多桌面的标准方法但是图层华丽且多变使其从老旧的桌面隐喻中脱颖而出。Linux Mint基于Ubuntu所以它得益于“老大哥”Ubuntu的稳定性和可靠性。
### Linux Deepin ###
用户友好型列表中的新成员是[Linux Deepin][3]。这个相对较新的受欢迎的发行版来自中国而且应该正视它所带来的成就。为什么这样说因为它使得Linux桌面转变为艺术美同时也保持了高水平的用户友好性。我期待它的新版本发布将是个大事件。Linux Deepin使用的是GNOME 3桌面并将它重组得完全不同的完全不可思议。
## 各发行版的比分 ##
在最佳的竞争者名单中,我们来比较一下每一个标准和等级。每个发行版的比分如下:对于每个标准,发行版排名从高到底(第一名得一分,最后一名得三分)。最后,总分决定谁是冠军——最低得分获胜。
### 用户友好性 ###
这可能是最严密的分类和最艰难的判别。每个发行版以不同的方法在用户友好性上都各有优势。最后,我的排名是:
1. Linux Mint
2. Ubuntu Linux
3. Linux Deepin
为什么是这样呢Mint仅有微小的优势因为它的开始按钮任务栏和桌面图标仍然使用旧的桌面风格。胜者的优势很微小Ubuntu和Linux Deepin要求的学习曲线近乎为零——甚至是对于小白们。
### 常用的应用程序 ###
这一类别难以判断的唯一原因是因为每个发行版都包括所有必要的应用程序。虽然Linux Deepin目前提供的是金山Office一个最好的移动办公套件解决方案之一它计划在2014发行版本中默认使用LibreOffice。
关于常用程序的我的一个问题是音乐播放器。虽然我在线听过很多音乐使用Spotify客户端但当我播放本地音乐时总是使用Clementine。他们的默认播放器是
- Ubuntu: Rhythmbox
- Linux Mint: Banshee
- Linux Deepen: DMusic.
三者中Banshee图1提供了最多的功能DMusic图2提供了最好的界面令人惊讶的Rhythmbox图3目前最不稳定。
![](http://www.linux.com/images/stories/41373/banshee.png)
banshee
![](http://www.linux.com/images/stories/41373/dmusic.png)
dmusic
![](http://www.linux.com/images/stories/41373/rhythmbox.png)
rhythmbox
所以,他们得分多少?如下:
1. Linux Mint
2. Ubuntu Linux
3. Linux Deepin
### 应用程序商店 ###
如果不分析这部分将难进行。为什么呢因为对于新用户应用商店可以轻易成就或是毁掉一个Linux发行版。总会有应用需求而且没有用户想经过命令行的重重考验。每个发行版都有自己的应用商店。
- Ubuntu: Ubuntu软件中心
- Mint: 软件管理器
- Linux Deepin: Deepin软件中心
应该说这些工具中的每一个都是基于Ubuntu软件中心的。奇怪的是Ubuntu软件中心却正好排在最底。主要原因是Ubuntu软件中心太慢了——甚至在一个非常强大的机器上。
我将应用商店排名设为如下:
1. Linux Deepin
2. Linux Mint
3. Ubuntu Linux
每个应用商店有非常相似的功能。Linux Deepin获得第一的原因有两个界面易于控制而且程序开启速度远远快于Ubuntu软件中心和Mint软件管理器。
### 时尚的界面 ###
在这部分Linux Mint远远落后。尽管它提供了一个华美的界面和有很浅的学习曲线但相比之下它仍然是一个非常过时的桌面。甚至在强大的硬件有强大的显卡Linux Mint仍然很容易被看成是来自90年代末的桌面。为了评判结果我们必须看看是Ubuntu Linux还是Linux Deepin能带我们走进未来。胜者是
1. Linux Deepin
2. Ubuntu Linux
3. Linux Mint
Linux Deepin使用GNOME 3来制作一个使用起来很漂亮的GNOME和OSX的混合体你会认为你在处理一件互动的艺术品。
## 总冠军 ##
虽然这是很初步的对新用户来说最好的Linux发行版顺序应该是
1. Linux Mint的总得分是7
2. Linux Deepin的总得分是8
3. Ubuntu Linux的总得分是9
如果你想知道关于这篇文章的作者观点要知道我已经使用Ubuntu Linux很多年了而且仍在用。我最近一直在说“如果有一个Linux发行版能动摇我使用Ubuntu的想法它便是Linux Deepin。”虽然我很欣赏Linux Mint但我只是用它来进行测试。当说到对新用户最好的Linux发行版Linux Mint是显而易见的赢家。
这件事真正的真相是——你在使用这些桌面中任何一个都不会错。他们都各有所长。如果你追求真正的美丽使用Linux Deepin吧。如果你想要漂亮外观与易用结合那就使用Ubuntu Linux。如果你只想要简单而且并不在乎漂亮的外观那就用Linux Mint。不管你选哪一个这都是三赢的局面。
你怎么认为你会如何排这三个桌面的名次或者你是否会写一个不同的Linux发行版该发行版在外表上来说对新用户最好的还有原因是什么
--------------------------------------------------------------------------------
via: http://www.linux.com/news/software/applications/775873-the-best-linux-distribution-for-new-users/
译者:[linuhap](https://github.com/linuhap) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.ubuntu.com/
[2]:http://www.linuxmint.com/
[3]:http://www.linuxdeepin.com/index.en.html

View File

@@ -0,0 +1,74 @@
什么是Unix以及它为什么这么重要
================================================================================
![](http://cdn.howtogeek.com/wp-content/uploads/2014/02/ken-thompson-and-dennis-richie-at-pdp-11.jpg)
大多数操作系统可以被划分到两个不同的家族。除了微软的基于Windows NT的操作系统外几乎所有其他的都可以追溯到Unix。
LinuxMac OS XAndroidiOSChrome OSPlayStaion 4上运行的Orbis OS运行在路由器上的各种固件所有这些操作系统通常都被称为“类Unix”操作系统。
### Unix的设计现在都还在应用 ###
Unix在20世纪60年代中晚期诞生于AT&T的贝尔实验室中。最初发布的Unix中的一些重要设计因素到如今都还在使用。
其中一个设计是“Unix哲学”建立小的模块化的应用只做一件事情并把它做好。如果你对Linux终端很熟悉的话应该对这个不陌生系统提供了大量的应用可以通过[管道或其他特性][1]形成不同的组合来完成更复杂的任务。甚至图形界面程序也经常会在后台调用更简单的应用去做比较耗时的任务。这种模式也让[建立终端脚本][2]更为简单,通过文本把一些简单工具结合起来去做复杂的事情。
Unix还设计了一个单一的文件系统程序可以通过它互相通讯。这也是[为什么在Linux里说“一切都是文件”][3]包括硬件设备文件和提供系统信息及其他数据的特殊文件。这也是为什么只有Windows系统中才有磁盘盘符这是从DOS继承过来的在其他操作系统中所有文件都是一个单一目录结构中的一部分。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/02/unix-bell-labs.jpg)
### 那些从Unix派生出的系统 ###
类似任何可以往前追溯40年的历史Unix的历史和它的派生系统一片混乱。为了简单我们把Unix的派生系统大致分成两组。
一组Unix派生系统是学术界开发的。
首先是BSD伯克利软件发布版一个开源的类Unix操作系统。BSD如今还存在于FreeBSDNetBSD和OpenBSD等系统中。NeXTStep基于最初版的BSD开发苹果的Mac OS X基于NeXTStepiOS基于Mac OS X。许多其他操作系统包括运行在PlayStation 4上的Orbis OS也源于各种BSD操作系统。
Richard Stallman建立GNU项目的目的是为了反对AT&T的Unix软件协议条款日渐严格的限制。MINIX是一个类Unix操作系统为教育目的而实现的而Linux则是受到了MINIX的启发。[我们今天所熟悉的Linux其实应该叫GNU/Linux][4]因为它是由Linux内核和大量GNU应用组成的。GNU/Linux不是直接从BSD继承下来的但是它继承了Unix的设计而且根植于学术界。如今许多操作系统包括AndroidChrome OSSteam OS以及数量巨大的在各种设备上使用的嵌入式操作系统都基于Linux。
另一组是商用的Unix操作系统。AT&T UNIXSCO UnixWareSun Microsystem SolarisHP-UXIBM AIXSGI IRIX许多大型企业都希望建立并授权自己版本的Unix。它们如今并不常见但其中一些仍然存在。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/02/history-of-unix.png)
图片致谢: [Wikimedia Commons][5]
### DOS和Windows NT的崛起 ###
许多人希望Unix能够成为工业标准操作系统但是DOS和“IBM PC兼容”计算机却最终人气爆发而普及开来。微软的DOS也成为众多DOS系统中最成功的一个。DOS完全没有参照Unix这也是[为什么Windows使用反斜杠划分文件路径而其他所有系统都使用正斜杠][6]。这个决定是在早期的DOS系统中做出的而之后的Windows版本继承了这一设定就像BSDLinuxMac OS X和其他类Unix操作系统继承了许多Unix设计因素一样。
Windows 3.1Windows 95Windows 98和 Windows ME都是建立在DOS的基础上。当时微软已经在开发一个更现代更稳定的操作系统叫做Windows NT意思是“Windows新技术”。Windows NT最终通过Windows XP应用到普通计算机用户中但是之前它都只用于针对企业用户的Windows 2000和Windows NT。
如今所有微软的操作系统都基于Windows NT内核。Windows 7Windows 8Windows RTWindows Phone 8Windows Server以及Xbox One上的操作系统都在使用Windows NT内核。不像其他大多数操作系统那样Windows NT没有被开发成一个类Unix操作系统。
当然微软也不是完全从零开始的。为了维护DOS和旧版本Windows软件的兼容性Windows NT继承了许多DOS里的设定比如磁盘盘符反斜杠区分文件路径正斜杠作为命令行参数开关。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/02/windows-2000-professional-built-on-nt-technology.jpg)
### 为什么它影响很大 ###
不知道你有没有看过Mac OS X终端或是文件系统有没有注意到它们和Linux是如此相似而又和Windows是如此不同好吧原因是Mac OS X和Linux两个都是类Unix操作系统。
了解了这点历史就可以帮助你理解什么是“类Unix”操作系统以及为什么这么多操作系统看起来都差不多而Windows却那么与众不同。这也可以解释为什么Linux极客对Mac OS X上的终端会感觉如此熟悉而[Windows 7上的Command Prompt和PowerShell][7]相对于其他命令行环境显得格格不入。
这只是一点快速掠过的历史帮助了解是如何发展到今天的而不用陷入到细节中。如果你想了解更多可以找到许多关于Unix历史的整本的书籍。
图片致谢: [Peter Hamer on Flickr][8], [Takuya Oikawa on Flickr][9], [CJ Sorg on Flickr][10]
--------------------------------------------------------------------------------
via: http://www.howtogeek.com/182649/htg-explains-what-is-unix/
译者:[zpl1025](https://github.com/zpl1025) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.howtogeek.com/110150/become-a-linux-terminal-power-user-with-these-8-tricks/
[2]:http://www.howtogeek.com/107217/how-to-manage-processes-from-the-linux-terminal-10-commands-you-need-to-know/
[3]:http://www.howtogeek.com/117939/htg-explains-what-everything-is-a-file-means-on-linux/
[4]:http://www.howtogeek.com/139287/the-great-debate-is-it-linux-or-gnulinux/
[5]:http://en.wikipedia.org/wiki/File:Unix_history.svg
[6]:http://www.howtogeek.com/181774/why-windows-uses-backslashes-and-everything-else-uses-forward-slashes/
[7]:http://www.howtogeek.com/163127/how-powershell-differs-from-the-windows-command-prompt/
[8]:http://www.flickr.com/photos/peter-hamer/2876612463/
[9]:http://www.flickr.com/photos/takuyaoikawa/2060554607/
[10]:http://www.flickr.com/photos/cjsorg/2726088549/

View File

@@ -0,0 +1,84 @@
优秀的Linux文本编辑器
================================================================================
想要挑起狂热Linux爱好者之间的激烈争辩吗那就问问他们最喜欢的文本编辑器是什么吧。在开源社区中选择一个用来写文本或者更进一步用来写代码的编辑器比选择一个球队或者游戏控制器还要重要。但是任何一个Linux新手都不该为过多的建议和各种各样的煽动而感到焦虑不安取而代之先去试着熟悉熟悉一堆不同的文本编辑器吧。所以今天我将要给你建议一个简单主题的列表里面的编辑器都可以在Linux下编辑文本。这个列表不包括那些成熟的只用来编程的IDE也不包括那些专门进行LaTex排版的编辑器。如果你对后者感兴趣我可以建议你去看看[这里][1].
### 1. Vim & Emacs ###
![](https://farm3.staticflickr.com/2936/14371977196_1a4522359b_z.jpg)
让我们直接从这两个“大咖”开始。当有人在一个聊天室里问关于Linux下的编辑器时会有一个人立马回答[Vim][2],然后会有另外一个说[Emacs][3]。LCTT译注这就是V党和E党啊~)之所以会这样,理由很充分。这两个都是非常强大的编辑器,有很多的特性,很多插件,很强大的社区支持。如果你一点都不熟悉它们的话,要描述清楚它们强大的功能是有点困难。但是简单来讲,它们允许你在文本中快速移动,简单地做出大量的修改,记录宏以及你能想到基本上任何疯狂的编辑方式。这两个编辑器共同的缺点是,不可避免地花时间去学习。讲完这点之后,我不会陷入到哪一个更好的争论中去,但是我真的想建议每一个人至少学习这两者之一。
![](https://farm4.staticflickr.com/3916/14393718612_a880b86a52_z.jpg)
### 2. Sublime Text & Lime & Atom ###
![](https://farm3.staticflickr.com/2917/14391734181_0f0ec76e4f_z.jpg)
一款叫做[Sublime Text][4]的文本编辑器在过去几年逐渐兴起。一些人可能会将它视为Vim或者Emacs的友好版专为编程而设计的。事实上它保持了一些与Vim和Emacs的相似特性。比如批量编辑和函数跳转都会让人或多或少想起Emacs或者[一个充满活力的Vim][5]。然而它保留了更多的可视性并且更加容易使用。同样大量的插件吸引大家进行个性化定制。LCTT译注实际上译者认为Sublime Text与其说是像Vim或Emacs不如说更像是Mac上的编辑器神器textmate。另外Sublime Text的发展最近已经陷入停滞了。
Sublime Text唯一的“污点”是它的许可证如果你只使用开源软件的话你可以放弃它了。LCTT译注但是Sublime Text可以全功能一直试用下去没有一点区别只是如果你觉得应该支持的话付费比较好虽然挺贵。为此最近出现了一个雄心勃勃的克隆版 [Lime][6] 。这个软件正处在重度开发当中但是它的理念是跟Sublime Text相似的用户体验但是带着开源的韵味。对于Lime除了满满的期待没有更多要说的了。
距现在更近的GitHub以开源形式发布了[Atom][7]展开了与Sublime Text正式的竞争。Atom打包了所有你想要的文件跳转代码片段使用等特性提供一个完整特性的编辑器而不是简单的编辑框。使用HTMLCSS和集成Node.js环境可以轻易地定制文本处理过程这正是它的魅力所在。这其实已经要涉及到IDE的定义了我们的列表最多会覆盖到这里。LCTT译注好吧我觉得从Sublime Text转移出来的最佳出口就是Atom。
![](https://farm4.staticflickr.com/3907/14395083745_469b7e49c9_z.jpg)
### 3. Gedit & Kate & Mousepad & Leafpad ###
![](https://farm3.staticflickr.com/2927/14371977076_c95a557233_z.jpg)
如果不谈这些超级厉害的神器我们可以转向我认为的“桌面环境经典版”编辑器。这些编辑器感觉上更加的传统有些也可以用插件进行强化但是它们的重点是输入简单。如果你头脑里有一些想法想要在忘记之前赶快记下来我必须怪罪那些视频游戏让我的注意力变得短暂。你不需要学习Vim或者Sublime Text的快捷键。你只需要一些空白的地方进行输入。这类编辑器的好处是它们或多或少的和你的桌面环境集成在一起。在这一类编辑器中Gnome 下的 [Gedit][8] 和 KDE下的 [Kate][9] 都很好的集成在桌面系统中可以通过插件进行个性化定制。比如更容易的进行LaTeX排版。[Mousepad][10] 和 [Leafpad][11] 更适合于轻量级的桌面比如Xfce和LXDE。它们在某种程度上很像Windows的记事本。所以如果你需要的是灵活和便捷请选择它们。
![](https://c2.staticflickr.com/6/5522/14415259703_d3885b3952_z.jpg)
### 4. Nano & Qute ###
![](https://farm3.staticflickr.com/2938/14208641327_49fc7286ba_z.jpg)
另外一个流行的文本编辑器“大家族”是“无打扰编辑器”。如果你喜欢在后台持续地开着Facebook或者Twitter或者每5分钟就收一次邮件你就会知道把注意力集中在那篇明天要交的散文或者这些还没编译通过的代码是多么困难的事。如果是这样你需要一个编辑器它可以占满整个屏幕空间并且屏蔽掉所有的其它事情。
也许这类编辑器里面最不受欢迎的是Nano。如果你想屏蔽所有分心的事关掉X serverLCTT译注关掉桌面只用文字终端界面Nano就是工作在这种模式下。实际上这时nano就是接管了X Server的工作。。这是最简单和直接的方式。事实上《权力游戏(Game of Thrones)》的作者Geogge R. R. Martin最近就在[一次采访][13]中说他使用一个类似DOS Word的文本处理程序写他的小说。
如果你想要一款更顺眼一点的编辑器,你可以试试我的最爱:[Qute][14]。没有酷炫的特性也许有一点LaTeX排版使它开起来更美观但是重点其实是在它的界面的。它提供了一个舒适的导航和编辑体验。如果你对终端感觉不太舒服Qute是个不错的选择。
![](https://farm3.staticflickr.com/2927/14395083485_7f8f0d6d59_z.jpg)
### 5. LibreOffice & Calligra & Abiword ###
![](https://farm4.staticflickr.com/3845/14395083565_b07b33abf0_z.jpg)
最后办公套件也是文本编辑器。我不确定你能否轻松使用办公套件编程但是它确实更适合纯文本编辑也比LaTeX更容易学习。在这类编辑器中[LibreOffice][15] 和 [Calligra][16] 不能避而不谈。这两个编辑器因为它们丰富的特性和响亮的名声成为这类编辑器中的巨兽。这两者我都喜欢但是很多人明确的偏向于前者。如果你怀念微软的Word处理软件你会有自己的选择。稍处下风的[Abiword][17]相对前面的两个是一个轻量级的选择。如果你的目的只是编辑一个文本文档不关心电子表格或者数据库Abiword的特性可以达到理想的效果。
![](https://farm3.staticflickr.com/2915/14371976966_4d252928ec_z.jpg)
简单总结一下如果我仅有一条建议给你那么就是选择你周围的人正在使用的编辑器。如果因为某些疯狂的理由每一个你周围的人都用LibreOffice写C程序或者用Sublime Text写小说而你也要做同样的事你应该跟随潮流。原因就是当你遇到一个问题需要帮助的时候他们可以更容易的给你提供帮助。
你最喜欢的文本编辑器是什么?你都用它来做什么?请在评论中和我们分享吧。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/06/good-text-editor-linux.html
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/2014/04/latex-editor-software-linux.html
[2]:http://www.vim.org/
[3]:https://www.gnu.org/software/emacs/
[4]:http://www.sublimetext.com/
[5]:http://xmodulo.com/2014/06/turn-vim-full-fledged-ide.html
[6]:http://limetext.org/
[7]:https://atom.io/
[8]:https://wiki.gnome.org/Apps/Gedit
[9]:http://kate-editor.org/
[10]:http://www.home.unix-ag.org/bmeurer/xfce/apps.html
[11]:http://tarot.freeshell.org/leafpad/
[12]:https://www.flickr.com/photos/xmodulo/14415259703/
[13]:https://www.youtube.com/watch?v=X5REM-3nWHg
[14]:http://www.inkcode.net/qute
[15]:https://www.libreoffice.org/
[16]:http://www.calligra-suite.org/
[17]:http://www.abisource.com/

View File

@@ -0,0 +1,127 @@
如何拯救一台GRUB 2启动失败的Linux电脑
================================================================================
![Figure 1: GRUB 2 menu with cool Apollo 17 background.](http://www.linux.com/images/stories/41373/grub-command-shell.jpg)
旧版GRUB我们使用了一段时间了这个重要的Linux通用引导器的版本已经到了0.97。尽管旧版GRUB有很多的优点但是它已经有点陈旧了并且它的开发者也希望添加更多的功能于是GRUB 2 时代就要来了。
GRUB 2 做了几个明显的改进。它可以从移动存储设备上启动并且可以通过配置一个选项来进入系统BIOS。相对于将所有的配置都放到一个配置文件`/boot/grub/menu.lst`中 (现在默认是`/boot/grub/grub.cfg `),使用各种脚本来配置会更复杂。你不要直接编辑这个文件,那不是人干的事,太复杂了,我们需要使用其它的脚本来改变。我们卑微的人类可以编辑修改`/etc/default/grub`文件它主要是控制Grub菜单的外观。我们还可以修改` /etc/grub.d/ `下的脚本这些脚本用于启动操作系统、控制外部应用程序如memtest 、os_prober和theming等等 。`./boot/grub/grub.cfg`是由`/etc/default/grub``/etc/grub.d/*`生成的。当你修改了某个地方你必须要运行update-grub命令来生成它。
好消息是update-grub脚本可以可靠的检测内核、启动文件并添加所有的操作系统自动生成你的启动菜单所以你不必手动的修改他们。
我们还要学习如何解决两个常见的故障。当启动系统时它会停在grub>提示上这是一个完整的GRUB 2命令界面所以不要惊慌。这意味着GRUB 2依旧可以正常启动和加载normal.mod模块它和其他模块分别位于/boot/grub/[架构]/ 下但没有找到你的grub.cfg文件。如果你看到grub rescue> 这意味着它无法找到normal.mod因此它有可能找不到你的启动文件。
这是如何发生的因为内核可能改变驱动器分区号码的分配或者您移动了您的硬盘驱动器或者你手动改变一些分区也有可能是安装一个新的操作系统或者移动一些文件。在这些情况下你的启动文件仍然存在但GRUB不能找到他们。所以你可以在GRUB提示符中找到启动文件设置它们的位置然后启动您的系统并修复GRUB配置。
### GRUB 2 命令行 ###
GRUB 2 的命令界面和上一代GRUB中的一样强大。你可以用它来找到引导镜像内核和根文件系统。事实上它可以让你避开权限和其它访问控制完全访问本地计算机上的所有文件。有些人可能会认为这是一个安全漏洞但是你知道古老的UNIX的名言有物理访问机器权限的人就是拥有它的人。
当你在` grub > `提示时你有许多类似命令行界面的功能如命令历史和tab补全。但是`grub rescue> `模式是受限的没有命令历史没有tab补全。
如果你是在一个正常运作的系统上练习那就当GRUB菜单出现时可以按下C来打开GRUB命令行界面。你可以通过向上和向下光标键滚动你的菜单条目来停止启动倒计时。在GRUB命令行下做实验是安全的因为做不了永久的修改一切都是暂时的。如果你已经看到`grub > ``grub rescue> `提示符,那就说明你的表现时刻到了。
接下来的几个命令可以在`grub>``grub rescue`模式下运行。你应该运行的第一个命令是设置一个分页器,将长的命令分页。如下:
grub> set pager=1
等号两侧必须不能出现空格。现在让我们做一点探索。输入`ls`来列出的GRUB识别的所有分区
grub> ls
(hd0) (hd0,msdos2) (hd0,msdos1)
msdos是什么这意味着该系统具有老式的MS-DOS分区表而不是全新的全局唯一标识符的分区表GPT。参见“[在Linux下使用新的GUID分区表和古老的MBR说再见][1]”。如果你正在运行的GPT它会出现(hd0GPT1)。现在让我们看看使用ls命令查看你的系统里面有什么文件
grub> ls (hd0,1)/
lost+found/ bin/ boot/ cdrom/ dev/ etc/ home/ lib/
lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/
srv/ sys/ tmp/ usr/ var/ vmlinuz vmlinuz.old
initrd.img initrd.img.old
太好了我们已经找到了根文件系统。你可以省略msdos和GPT的标签。如果没有加分区后面的斜杠/则只会列出分区的信息。你可以用cat命令显示文件系统上的任何文件
grub> cat (hd0,1)/etc/issue
Ubuntu 14.04 LTS \n \l
在一个多引导系统上,通过/etc/issue文件可以知道这是哪个Linux系统。
### 从 grub> 中启动###
下面讲述如何设置启动文件并从`grub >`提示下启动系统。我们已经知道如何从Linux根文件系统(hd0,1)下运行ls命令你可以一直寻找直到找到你的/boot/grub所在位置。然后运行以下命令记得使用您自己的根分区内核和initrd映像等参数
grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13.0-29-generic
grub> boot
第一行设置分区的根文件系统。第二行告诉GRUB您想要使用的内核位置。开始输入/boot/vmli然后使用tab补完填写。输入`root= /dev/sdX`设置根文件系统位置。是的这似乎是多余的但如果你忘记了输入你会得到一个kernel panic。你知道怎么找到正确的分区吗hd0,1 即 /dev/sda1hd1,1 即 /dev/sdb1hd3,2 即 /dev/ sdd2。我想你可以自己推算剩下的了。
第三行设置initrd文件必须是和内核相同的版本号。
最后一行启动系统。
在一些Linux系统上内核和initrd是被符号链接到当前的根文件系统的根目录就像
$ ls -l /
vmlinuz -> boot/vmlinuz-3.13.0-29-generic
initrd.img -> boot/initrd.img-3.13.0-29-generic
所以,你也可以这样输入命令:
grub> set root=(hd0,1)
grub> linux /vmlinuz root=/dev/sda1
grub> initrd /initrd.img
grub> boot
### 从grub rescue> 中启动 ###
如果你处在grub rescue> 命令界面下命令有所不同你必须要先加载两个模块normal.mod 和 linux.mod。
grub rescue> set prefix=(hd0,1)/boot/grub
grub rescue> set root=(hd0,1)
grub rescue> insmod normal
grub rescue> normal
grub rescue> insmod linux
grub rescue> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub rescue> initrd /boot/initrd.img-3.13.0-29-generic
grub rescue> boot
在你加载了这两个模块之后tab补完的功能就可以用了。
### 永久性的修复 ###
当你成功地启动你的系统运行这些命令来永久修复GRUB
# update-grub
Generating grub configuration file ...
Found background: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga
Found background image: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga
Found linux image: /boot/vmlinuz-3.13.0-29-generic
Found initrd image: /boot/initrd.img-3.13.0-29-generic
Found linux image: /boot/vmlinuz-3.13.0-27-generic
Found initrd image: /boot/initrd.img-3.13.0-27-generic
Found linux image: /boot/vmlinuz-3.13.0-24-generic
Found initrd image: /boot/initrd.img-3.13.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
当你运行 `grub-install`记得GRUB是安装到整个硬盘驱动器的主引导扇区而不是到一个具体分区所以不要加上像/dev/sda1一样的分区号。
### 如果还是不能使用 ###
如果你的系统是如此的倒霉,而且这个方式没有能起作用,那就尝试[超级GRUB2现场救援磁盘][2]吧。[官方GNU GRUB手册][3]也应该有所帮助。
--------------------------------------------------------------------------------
via: http://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux
译者:[MikeCoder](https://github.com/MikeCoder) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.linux.com/learn/tutorials/730440-using-the-new-guid-partition-table-in-linux-good-bye-ancient-mbr-
[2]:http://www.supergrubdisk.org/
[3]:https://www.gnu.org/software/grub/manual/grub.html

View File

@@ -0,0 +1,37 @@
Linux 截屏软件 Shutter
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/shutter.jpg)
**[Shutter][1]是一款Linux平台下广受欢迎的截屏软件。最近的更新中该软件修复了若干bug并且使用了新的应用图标。**
这款开源并且功能强大的截屏工具可以让你选择桌面的任意区域、指定应用窗口或者整个屏幕区域来进行截屏。此外,你还可以添加注释、文本或者特效。
0.91版本修复了若干明显的bug包括在Ubuntu 14.04中缩略图无法正常地在应用切换栏中显示的问题。由于'imm.io'在今年早期停止了服务所以此次更新还取消了将截图上传到Pixlr图像服务的选项。
最后,这次更新突出了由 Lucas Romero Di Benedetto 精心设计的相机快门式应用图标。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/compare-350x200.png)
### 在Ubuntu环境下安装Shutter 0.91版本 ###
升级到Shutter的最新版本是非常简单的——前提是你添加了该软件的PPA。[The Shutter PPA][2] 面向Ubuntu 12.04 LTS、13.10、14.04 LTS提供该软件最新稳定的发行版。
sudo add-apt-repository ppa:shutter/ppa
sudo apt-get update && sudo apt-get install shutter
不喜欢PPA那么你也可以从该项目的主页下载Debian安装包。如果你使用的是Ubuntu 14.04 LTS系统你可以点击下面的链接来下载安装包。
- [下载适用于Ubuntu 14.04 LTS系统的Shutter 0.91][3]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/06/shutter-0-91-new-icon
译者:[JonathanKang](https://github.com/JonathanKang) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://apps.ubuntu.com/cat/applications/shutter/
[2]:https://launchpad.net/~shutter/+archive/ppa
[3]:https://launchpad.net/~shutter/+archive/ppa/+files/shutter_0.91%7Eppa2%7Eubuntu14.04.1_all.deb

View File

@@ -0,0 +1,86 @@
教你用NeoBundle管理Vim插件
================================================================================
[NeoBundle][1] 是一个 [Vim][2] 的插件管理器,以 [Vundle][3] 为基础Vundle 是一个基于 [Pathogen][4] 的 Vim 插件管理器)。在之前的文章中,我[非常不推荐使用 Neobundle][5]原因是它当时还处于高速开发阶段LCTT意味着不稳定、变数大并且当时它的英文文档很少。现在已经过了一年多了这两个问题都早已不再是问题。
我们为什么要使用插件管理器Vim 支持大量插件但是由于它没有严格定义框架插件的文件可以胡乱分布在不同目录下导致用户管理起来会很困难LCTT当然前提是你有很多插件还有点小小的强迫症觉得理一理这些插件心里会舒服点。而一款插件管理器能让管理变得简单许多。Pathogen, Vundle 和 NeoBundle 的工作就是为不同插件建立一个目录,然后将这些目录扔到 ~/.vim/bundle 目录下。这个文件整理方法可以让你方便彻底地删除插件,使用 'rm -rf <插件目录>' 或直接在文件管理器里面把插件所在的目录删除就可以了,绝对绿色环保无残留。同时,这种方法还能最大程度避免插件与插件之间的不兼容性。
NeoBundle 是一个基于 Vundle 的项目,如同 Vundle它们都可以安装和升级插件。然而 NeoBundle 的说明文件上明确指出“NeoBundle 不是一个稳定的插件管理器,如果你想要一个稳定的,请选择 Vundle”。最新的 release-note 上也有警告“可能会造成兼容性问题”——这是一个开发者写的注解,说明这个管理器还不能让人放心使用。
所以,我们为什么要使用 NeoBundle它都不能保证稳定运行好吧它还是有可取之处的。Vundle 只支持 [Git][6] 这种版本控制系统,而 NeoBundle 可以支持 [Subversion][7] 和 [Mercurial][8]。另一个原因是如果你不想插件升级时破坏你的 Vim 生态环境,你可以锁住 NeoBundle让它只使用某个插件的固定版本。
另外NeoBundle 创建者Shougo MatsuishitaLCTT名字看着像日本人正在将它的命令接口添加到其他插件项目以便减少他们的命令使用量。现在 NeoBundle 支持3种插件[unite.vim][9]Vim 使用的文件和缓存管理器;[vimshell.vim][10]Vim 使用的脚本程序;[vimproc.vim][11],运行于 vimshell.vim 中,用于对异步事件的支持。上面说的都是特殊案例,缺少英文文档,所以用户希望有人能完善它们。在正式使用它们之前,我们需要把注意力先集中在一些基本操作上。
### 安装并初始化 NeoBundle ###
NeoBundle 支持 Vim 7.2.051 或更高版本,需要 git 和 [cURL][12](用于下载文件)。你可以手动下载 NeoBundle也可以使用 cURL 下载它在 GitHub 上的库。在你的 home 目录下使用如下命令,可以将 NeoBundle 插件下载到 .vim/bundle/neobundle.vim 目录里,然后 NeoBundle 就能管理它自己了。
curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh
你还需要修改 .vimrc 文件。NeoBundle 的 GitHub 主页提供一个 .vimrc 范本但是直接使用这个范本NeoBundle 需要你安装5个可能不需要插件。如果不需要它们你可以使用下面的最小配置
if has('vim_starting')
set nocompatible
set runtimepath+=~/.vim/bundle/neobundle.vim/
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch 'Shougo/neobundle.vim'
call neobundle#end()
filetype plugin indent on
上述配置的作用是:启动 NeoBundle 并且像其他插件一样升级自己。NeoBundle 默认从 GitHub 下载并升级,如果你正好在使用 GitHub你只需要为这个插件指定维护者的用户名和路径。在上面的配置中NeoBundleFetch 只需要指定为“Shougo/neobundle.vim”而不是完整的 GitHub 路径。如果你想使用其他网站,比如是 Subversion 或 Mecurial 的网站,你就需要添加完整的 URL。
如果你想安装其他插件,你可以使用下面的命令:
curl -k https://github.com/[项目维护者]/[插件路径] > ~/.vim/bundle/[插件路径]
举个例子:你想安装 [vim-abolish][13],一个超级 NB 的文本搜索和替换插件,就使用下面的命令:
curl -k https://github.com/tpope/vim-abolish > ~/.vim/bundle/abolish
如果要让它自动升级,在 NeoBundleFetch 那行下面添加一行:
NeoBundle 'tpope/vim-abolish'
再介绍一个小技巧你可以为插件指定一个分支或版本号。什么意思NeoBundle 只会使用这个插件的某个分支或版本,而忽略其版本更新。如果你使用的某个插件处于高速开发过程,你就可以使用这个技巧,避免用到有 bug 的插件版本。举个例子:
NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }
还有一个技巧:在 .vimtc 文件内添加一行关于“NeoBundleCheck”的属性。NeoBundle 会根据配置检查没安装的插件,并提示你安装它们。你也可以使用命令“:NeoBundleInstall”LCTT这是要在 Vim 编辑器的命令模式下输入)来安装或升级插件。
### NeoBundle 用法 ###
很多 NeoBundle 命令用起来和 Vundle 类似,但命令的名字不一样。下面是 NeoBundle 命令的用法:
- `:NeoBundleUpdate`:安装或升级插件,如果你手动把一个插件的目录删除了,这个命令会重新安装这个插件。在这个命令后面加上插件名称,就只升级一个插件;不加参数,会将所有己安装但没被记录在案的插件给记录下来。`:NeoBundleInstall` 命令效果相同。
- `:NeoBundle {REPOSITORY URI} [[REVISION}] [,OPTIONS}]]`:将一个插件锁定到固定版本,防止胡乱升级。
- `:NeoBundleList`:列出所有未初始化的插件。
- `:NeoBundleClean`:进入交互界面,删除插件。
这些命令在配合 unite.vim LCTT就是上面举过的32个例子之一使用时效果会稍微有些出入。你可以使用“:help neobundle”命令了解更多信息。
### 是否使用 NeoBundle自己决定 ###
NeoBundle 是强大的工具正处于高速开发状态。任何处于这种状态的项目都会被帖上“有前途”和“不稳定”两个标签看你自己怎么选。如果你想要最新的稳定版本的插件NeoBundle 能够把 Vundle 和 Pathogen 甩出几条街。
然而在线帮助文档已经给出警告,它不是个稳定的产品,不及时更新版本可能造成一些插件运行出错。最后,你需要在 .vimrc 文件为你的 Neoundle 和其他插件指定一个稳定的版本。记住这警告,然后你可以在使用这些尖端技术产品时游刃有余。
--------------------------------------------------------------------------------
via: http://www.openlogic.com/wazi/bid/348084/Managing-Vim-extensions-with-NeoBundle
译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://github.com/Shougo/neobundle.vim
[2]:http://olex.openlogic.com/packages/vim
[3]:https://github.com/gmarik/Vundle.vim
[4]:https://github.com/tpope/vim-pathogen
[5]:http://www.openlogic.com/wazi/bid/262302/Three-tools-for-managing-Vim-plugins
[6]:http://olex.openlogic.com/packages/git
[7]:http://olex.openlogic.com/packages/subversion
[8]:http://olex.openlogic.com/packages/mercurial
[9]:https://github.com/Shougo/unite.vim
[10]:https://github.com/Shougo/vimshell.vim/blob/master/doc/vimshell.txt
[11]:https://github.com/Shougo/vimproc.vim/blob/master/doc/vimproc.txt
[12]:http://olex.openlogic.com/packages/curl
[13]:https://github.com/tpope/vim-abolish

View File

@@ -0,0 +1,58 @@
保护你的Linux系统的九个老生常谈
================================================================================
在现在这个世道中保障基于Linux的系统的安全是十分重要的。但是你得知道怎么干。一个简单反恶意程序软件是远远不够的你需要采取其它措施来协同工作。那么试试下面这些手段吧。
![](http://www.efytimes.com/admin/useradmin/photo/2Rak10143PM6172014.jpeg)
### 1. 使用SELinux ###
[SELinux][1]是用来对Linux进行安全加固的有了它用户和管理员们就可以对访问控制进行更多控制。SELinux为访问控制添加了更细的颗粒度控制。与仅可以指定谁可以读、写或执行一个文件的权限不同的是SELinux可以让你指定谁可以删除链接、只能追加、移动一个文件之类的更多控制。LCTT译注虽然NSA也给SELinux贡献过很多代码但是目前尚无证据证明SELinux有潜在后门
### 2. 订阅漏洞警报服务 ###
安全缺陷不一定是在你的操作系统上。事实上,漏洞多见于安装的应用程序之中。为了避免这个问题的发生,你必须保持你的应用程序更新到最新版本。此外,订阅漏洞警报服务,如[SecurityFocus][2]。
### 3. 禁用不用的服务和应用 ###
通常来讲用户大多数时候都用不到他们系统上的服务和应用的一半。然而这些服务和应用还是会运行这会招来攻击者。因而最好是把这些不用的服务停掉。LCTT译注或者干脆不安装那些用不到的服务这样根本就不用关注它们是否有安全漏洞和该升级了。
### 4. 检查系统日志 ###
你的系统日志告诉你在系统上发生了什么活动,包括攻击者是否成功进入或试着访问系统。时刻保持警惕,这是你第一条防线,而经常性地监控系统日志就是为了守好这道防线。
### 5. 考虑使用端口试探 ###
设置[端口试探Port knocking][4]是建立服务器安全连接的好方法。一般做法是发生特定的包给服务器,以触发服务器的回应/连接(打开防火墙)。端口敲门对于那些有开放端口的系统是一个很好的防护措施。
下面是来自 http://www.portknocking.org/ 的示意图:
![](http://www.portknocking.org/images/portknocking-explained-01.png)![](http://www.portknocking.org/images/portknocking-explained-02.png)![](http://www.portknocking.org/images/portknocking-explained-03.png)![](http://www.portknocking.org/images/portknocking-explained-04.png)
### 6. 使用Iptables ###
Iptables是什么这是一个应用框架它允许用户自己为系统建立一个强大的防火墙。因此要提升安全防护能力就要学习怎样一个好的防火墙以及怎样使用Iptables框架。
### 7. 默认拒绝所有 ###
防火墙有两种思路一个是允许每一点通信另一个是拒绝所有访问提示你是否许可。第二种更好一些。你应该只允许那些重要的通信进入。LCTT译注即默认许可策略和默认禁止策略前者你需要指定哪些应该禁止除此之外统统放行后者你需要指定哪些可以放行除此之外全部禁止。
### 8. 使用入侵检测系统 ###
入侵检测系统或者叫IDS允许你更好地管理系统上的通信和受到的攻击。[Snort][3]是目前公认的Linux上的最好的IDS。
### 9. 使用全盘加密 ###
加密的数据更难窃取,有时候根本不可能被窃取,这就是你应该对整个驱动器加密的原因。采用这种方式后,如果有某个人进入到你的系统,那么他看到这些加密的数据后,就有得头痛了。根据一些报告,大多数数据丢失源于机器被盗。
--------------------------------------------------------------------------------
via: http://www.efytimes.com/e1/fullnews.asp?edid=141368
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://selinuxproject.org/page/Main_Page
[2]:http://www.securityfocus.com/rss/vulnerabilities.xml
[3]:http://www.snort.org/
[4]:http://en.wikipedia.org/wiki/Port_knocking

View File

@@ -0,0 +1,235 @@
Linux下掌控磁盘分区的九大神器
================================================================================
在这篇文章中,我们来了解一些用来检查你的系统分区的一些命令,这些命令将检查每个磁盘的分区情况和其它细节,例如总空间容量,已用完的空间和文件系统等。
像fdisksfdisk和cfdisk命令这样的常规分区工具不仅可以显示分区信息还可以修改。
### 1. fdisk ###
Fdisk是检查磁盘上分区的最常用命令fdisk命令可以显示分区和细节如文件系统类型但是它并不报告每个分区的字节大小。
$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x30093008
Device Boot Start End Blocks Id System
/dev/sda1 * 63 146801969 73400953+ 7 HPFS/NTFS/exFAT
/dev/sda2 146802031 976771071 414984520+ f W95 Ext'd (LBA)
/dev/sda5 146802033 351614654 102406311 7 HPFS/NTFS/exFAT
/dev/sda6 351614718 556427339 102406311 83 Linux
/dev/sda7 556429312 560427007 1998848 82 Linux swap / Solaris
/dev/sda8 560429056 976771071 208171008 83 Linux
Disk /dev/sdb: 4048 MB, 4048551936 bytes
54 heads, 9 sectors/track, 16270 cylinders, total 7907328 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001135d
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 7907327 3952640 b W95 FAT32
每个设备都单独显示其详细信息容量大小扇区数设备ID及其包含的每个分区。
### 2. sfdisk ###
Sfdisk是另一种跟fdisk用途相似的实用工具但具有更多的功能。它能够以MB为单位显示每个分区的大小。
$ sudo sfdisk -l -uM
Disk /dev/sda: 60801 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End MiB #blocks Id System
/dev/sda1 * 0+ 71680- 71681- 73400953+ 7 HPFS/NTFS/exFAT
/dev/sda2 71680+ 476938 405259- 414984520+ f W95 Ext'd (LBA)
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 71680+ 171686- 100007- 102406311 7 HPFS/NTFS/exFAT
/dev/sda6 171686+ 271693- 100007- 102406311 83 Linux
/dev/sda7 271694 273645 1952 1998848 82 Linux swap / Solaris
/dev/sda8 273647 476938 203292 208171008 83 Linux
Disk /dev/sdb: 1020 cylinders, 125 heads, 62 sectors/track
Warning: The partition table looks like it was made
for C/H/S=*/54/9 (instead of 1020/125/62).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End MiB #blocks Id System
/dev/sdb1 * 1 3860 3860 3952640 b W95 FAT32
start: (c,h,s) expected (4,11,6) found (0,32,33)
end: (c,h,s) expected (1023,53,9) found (492,53,9)
/dev/sdb2 0 - 0 0 0 Empty
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
### 3. cfdisk ###
Cfdisk是一个基于ncurses提供字符终端处理库包括面板和菜单的带有交互式用户界面的Linux分区编辑器它可以用来列出现有分区以及创建或修改这些分区。
下面是一个如何使用Cfdisk来列出分区的例子。
![linux cfdisk disk partitions](http://www.binarytides.com/blog/wp-content/uploads/2014/06/linux-cfdisk.png)
Cfdisk一次只能列出一个分区所以如果你需要看某一磁盘的细节可以把该磁盘的设备名作为Cfdisk的参数。
$ sudo cfdisk /dev/sdb
### 4. parted ###
Parted是另一个命令行实用程序可以列出分区如果需要的话也可进行修改。
下面是一个例子,列出了详细的分区信息。
$ sudo parted -l
Model: ATA ST3500418AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 75.2GB 75.2GB primary ntfs boot
2 75.2GB 500GB 425GB extended lba
5 75.2GB 180GB 105GB logical ntfs
6 180GB 285GB 105GB logical ext4
7 285GB 287GB 2047MB logical linux-swap(v1)
8 287GB 500GB 213GB logical ext4
Model: Sony Storage Media (scsi)
Disk /dev/sdb: 4049MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 4049MB 4048MB primary fat32 boot
### 5. df ###
Df是不是一个分区工具但它打印出挂装文件系统的细节Df可以列出甚至不是真实的磁盘分区的文件系统。
这里是个简单的例子:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 97G 43G 49G 48% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 8.0K 3.9G 1% /dev
tmpfs 799M 1.7M 797M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 12M 3.9G 1% /run/shm
none 100M 20K 100M 1% /run/user
/dev/sda8 196G 154G 33G 83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 98G 37G 62G 38% /media/4668484A68483B47
只有以 /dev 开始的文件系统才是实际的设备或分区。
可以使用grep命令来筛选出实际的硬盘分区或文件系统。
$ df -h | grep ^/dev
/dev/sda6 97G 43G 49G 48% /
/dev/sda8 196G 154G 33G 83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 98G 37G 62G 38% /media/4668484A68483B47
要只显示真正的磁盘分区与分区类型可以这样使用Df
$ df -h --output=source,fstype,size,used,avail,pcent,target -x tmpfs -x devtmpfs
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda6 ext4 97G 43G 49G 48% /
/dev/sda8 ext4 196G 154G 33G 83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 fuseblk 98G 37G 62G 38% /media/4668484A68483B47
请注意Df只显示已挂载的文件系统或分区并不是所有。
### 6. pydf ###
它是用Python写的Df的改进版本以易读的方式打印出所有磁盘分区。
$ pydf
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 96G 43G 48G 44.7 [####.....] /
/dev/sda8 195G 153G 32G 78.4 [#######..] /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 98G 36G 61G 37.1 [###......] /media/4668484A68483B47
另外pydf被限制为仅显示已挂载的文件系统。
### 7. lsblk ###
列出了所有的块存储设备,包括磁盘分区和光盘驱动器。细节包括所有分区/块总大小和挂载点。
它不会报告分区上的已使用和空闲磁盘空间。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 70G 0 part
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 97.7G 0 part /media/4668484A68483B47
├─sda6 8:6 0 97.7G 0 part /
├─sda7 8:7 0 1.9G 0 part [SWAP]
└─sda8 8:8 0 198.5G 0 part /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
sdb 8:16 1 3.8G 0 disk
└─sdb1 8:17 1 3.8G 0 part
sr0 11:0 1 1024M 0 rom
如果没有挂载点这就意味着文件系统未安装而对于cd/dvd这意味着没有插入光盘。
lsblk能够显示每个设备的更多信息如标签和型号更多请查看信息手册。
### 8. blkid ###
显示块设备分区和存储介质属性例如UUID和文件系统类型不报告分区空间。
$ sudo blkid
/dev/sda1: UUID="5E38BE8B38BE6227" TYPE="ntfs"
/dev/sda5: UUID="4668484A68483B47" TYPE="ntfs"
/dev/sda6: UUID="6fa5a72a-ba26-4588-a103-74bb6b33a763" TYPE="ext4"
/dev/sda7: UUID="94443023-34a1-4428-8f65-2fb02e571dae" TYPE="swap"
/dev/sda8: UUID="13f35f59-f023-4d98-b06f-9dfaebefd6c1" TYPE="ext4"
/dev/sdb1: UUID="08D1-8024" TYPE="vfat"
### 9. hwinfo ###
hwinfo是一个通用的硬件信息的工具可以用来打印出磁盘和分区表但是输出不再像上面的命令那样打印每个分区的详细信息。
$ hwinfo --block --short
disk:
/dev/sda ST3500418AS
/dev/sdb Sony Storage Media
partition:
/dev/sda1 Partition
/dev/sda2 Partition
/dev/sda5 Partition
/dev/sda6 Partition
/dev/sda7 Partition
/dev/sda8 Partition
/dev/sdb1 Partition
cdrom:
/dev/sr0 SONY DVD RW DRU-190A
### 总结 ###
parted的输出可以得到简洁而完整的不同分区的概述、其上的文件系统以及总空间。pydf和df它们一样只是被限制为只显示已挂载文件系统。
fdisk和sfdisk显示完整大量的信息需要花些时间来解释。cfdisk是一个交互式分区工具每次显示一个单一的设备。
来尝试下这些命令吧,别忘了在下面评论哟!
--------------------------------------------------------------------------------
via: http://www.binarytides.com/linux-command-check-disk-partitions/
译者:[tenght](https://github.com/tenght) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,85 @@
如何通过网络在Windows、MAC和Linux之间共享文件
================================================================================
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/windows-mac-and-linux-network.jpg)
家庭[文件共享][1]曾经是一个噩梦即使在不同的Windows版本之间—— 甚至不考虑Mac和Linux但现在这些操作系统可以相互通信并且无需特殊软件就可共享文件。
我们之前使用SMB协议来做到这点。Windows使用SMB来做文件共享同时Mac和Linux发行版都内置支持SMB。Microsoft甚至给开源Samba项目[提交过补丁][2]来改进它!
### 在Windows上共享文件夹 ###
既然其他操作系统不能访问家庭组,您需要[启用Windows老式的文件共享][3]。要做到这点,打开控制面板进入网络和共享> 更改高级共享设置。启用“网络发现”和“文件与打印共享”。
如果你想要无需密码访问共享文件夹你还需要微调一下其它选项。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/enable-file-and-printer-sharing-for-mac-and-linux-on-windows.png)
在Windows Explorer或者File Explorer中找到你想共享的文件夹右键点击选择属性。点击共享标签并使用这里的选项来共享和配置文件夹的权限。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/share-windows-folders-with-mac-and-linux-on-local-network.png)
### 在Windows上访问共享文件夹 ###
在Windows Explorer或者File Explorer中访问网络面板来浏览其他计算机共享给你的文件。你会看到正确配置后的Mac和Linux计算机在Windows PC机附近出现了。双击一台计算机来查看它的共享文件。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/access-ubuntu-linux-shared-folder-on-windows.png)
如果你知道计算机名或者IP地址你同样可以直接连接到这台计算机上只需要在Windows Explorer或者File Explorer中输入\\计算名后按下回车就可以了。如果你希望直接通过IP地址连接只需要将计算机名换成IP地址就可以了
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/directly-access-network-share-on-windows.png)
### 在Mac OS X 上共享文件夹 ###
你需要在你的Mac上启用网络文件共享来共享文件。点击桌面左上角的苹果logo并选择系统偏好。点击共享图标并启用文件共享。点击选项按钮并确认“使用SMB共享文件和文件夹”已经启用。
在共享文件夹那列中选择添加要共享的文件夹。使用用户列来选择哪些用户和组可以访问和写入它们
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/share-folder-with-windows-from-mac-os-x.png)
### 在 Mac OS X 访问共享目录###
打开Finder在屏幕顶部的菜单中点击Go选择连接到服务器输入下面的地址用Windows计算机名代替COMPUTERNAMEsmb://COMPUTERNAME。你同样可以输入计算机IP来代替计算机名。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/directly-connect-to-windows-file-share-on-a-mac.png)
你会被提醒你应该用相应的凭证来验证或者以访客方式登录。连接完成后在Finder的侧边栏的共享列中就会出现这台计算机
要在你每次登录后自动链接到共享文件夹,打开系统偏好窗口并进入用户与组 > 登录项。从finder中的共享列中的网络共享拖拽到登录项列表中
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/windows-shared-folder-on-mac.png)
### 在 Linux 中共享文件夹 ###
在Linux上使用你桌面文件管理器来共享文件夹。这里我们使用Ubuntu 14.04上的Nautilus不过其他文件管理器上的过程应该是相似的。
打开文件管理器在想要共享的文件上右键选择属性。点击本地网络共享标签并对这个文件启用共享。如果这是你第一次启用共享你会被提示要求安装Samba软件——这在你提供密码的时候会自动显示。
在安装完Samba软件后配置共享设置- 确认点击创建共享按钮来开始共享文件夹。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/share-folder-from-ubuntu-linux-with-windows-pc-over-local-network.png)
### 在 Linux 上访问共享文件夹 ###
你的Linux桌面文件管理器可能包含了一个网络浏览器它可以用来定位并访问在本地网络的共享文件夹。
在文件管理器的侧边栏点击浏览网络选项。接着双击Windows网络选项双击你的工作组默认是WORKFROUP双击邻近的计算机来浏览它的共享文件。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/browse-windows-network-shares-on-ubuntu.png)
要直接连接到一台计算机选中Nautilus中的“连接到服务器”选项并输入像这样的远程计算机地址smb://COMPUTERNAME
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/directly-connect-to-windows-shared-folder-on-ubuntu.png)
不过在你连接时,你可能需要使用具有访问远程计算机权限的用户名和密码来验证。这依赖于你是否启用了访客访问以及你如何设置你的文件夹共享权限。
--------------------------------------------------------------------------------
via: http://www.howtogeek.com/191116/how-to-share-files-between-windows-mac-and-linux-pcs-on-a-network/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.howtogeek.com/166407/how-to-easily-share-files-between-nearby-computers/
[2]:http://www.samba.org/samba/news/developers/ms-patch.html
[3]:http://www.howtogeek.com/school/windows-network-sharing/lesson3/

View File

@@ -0,0 +1,111 @@
使用Linux的lsblk命令列出块设备信息
================================================================================
**lsblk**(列出块设备)命令用于列出所有可用块设备的信息,但是,它**不会列出RAM盘的信息**。块设备有硬盘闪存盘CD-ROM等等。
### 如何安装lsblk ###
lsblk命令包含在util-linux-ng包中现在该包改名为util-linux。这个包带了几个其它工具如dmesg。要安装lsblk请在[此处][1]下载util-linux包。
### Fedora中安装lsblk ###
Fedora用户可以通过以下方法来安装该包
$ sudo yum install util-linux-ng
该命令有几个选项:
### 默认选项 ###
lsblk命令默认情况下将以树状列出所有块设备。打开终端并输入以下命令
$ lsblk
输出如下:
![lsblk default](http://linoxide.com/wp-content/uploads/2014/03/lsblk-default.jpg)
7个栏目名称如下
**NAME** : 这是块设备名。
**MAJ:MIN** : 本栏显示主要和次要设备号。
**RM** : 本栏显示设备是否可移动设备。注意在本例中设备sdb和sr0的RM值等于1这说明他们是可移动设备。
**SIZE** : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB而1K表明该设备大小为1KB。
**RO** : 该项表明设备是否为只读。在本案例中所有设备的RO值为0表明他们不是只读的。
**TYPE** :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中sda和sdb是磁盘而sr0是只读存储romLCTT译注此处sr0的RO项没有标记为1可能存在一些错误
**MOUNTPOINT** : 本栏指出设备挂载的挂载点。
### 列出所有设备 ###
默认选项不会列出所有空设备。要查看这些空设备,请使用以下命令:
$ lsblk -a
该选项将列出所有设备,包括空设备在内。
![lsblk bytes sda](http://linoxide.com/wp-content/uploads/2014/03/lsblk-bytes-sda.png)
### 列出设备权限和属主 ###
lsblk命令也可以用于列出一个特定设备的拥有关系同时也可以列出组和模式。可以通过以下命令来获取这些信息
$ lsblk -m
![lsblk permissions](http://linoxide.com/wp-content/uploads/2014/03/lsblk-permissions.png)
### 列出指定设备 ###
该命令也可以只获取指定设备的信息。这可以通过在提供给lsblk命令的选项后指定设备名来实现。例如你可能对了解以字节显示你的磁盘驱动器大小比较感兴趣那么你可以通过运行以下命令来实现
$ lsblk -b /dev/sda
或者,以下命令等同:
$ lsblk --bytes /dev/sda
### 以列表形式列出不带头的设备 ###
你也可以组合几个选项来获取指定的输出。例如,你也许想要以列表格式列出设备,而不是默认的树状格式。你可能也对移除不同栏目名称的标题感兴趣。可以将两个不同的选项组合,以获得期望的输出,命令如下:
$ lsblk -nl
或者,你可以使用下面的长选项,它们也能给出相同的输出。
$ lsblk --noheadings --list
![lsblk no header and list](http://linoxide.com/wp-content/uploads/2014/03/lsblk-no-header-and-list.png)
### 列出SCSI设备 ###
要获取SCSI设备的列表你只能使用-S选项。该选项是大写字母S不能和-s选项混淆该选项是用来以颠倒的顺序打印依赖的。
$ lsblk -S
![](http://linoxide.com/wp-content/uploads/2014/03/lsblk-SCSI-devices.png)
lsblk列出SCSI设备而-s是逆序选项LCTT译注将设备和分区的组织关系逆转过来显示其将给出如下输出。输入命令
$ lsblk -s
或者
$ lsblk --inverse
![](http://linoxide.com/wp-content/uploads/2014/03/lsblk-inverse.png)
你可以使用lsblk来获取关于你的块设备的更多信息自己把它试着显示出来吧
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-lsblk-command/
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:ftp://ftp.kernel.org/pub/linux/utils/util-linux/

View File

@@ -0,0 +1,51 @@
在 Ubuntu 上体验 Mac 风格
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/Make_Ubuntu_Look_Like_Mac_OS.jpeg)
虽然 Ubuntu Unity 本身已经是一款很漂亮的桌面了,但世界各地还是有很人被 Mac OS X 的外观所震撼。如果您恰好是其中之一,要获得 Mac OS X 一样外观体验,是不需要丢掉 Ubuntu 的,相反,您可以对它来个美化改造,**使 Ubuntu 14.04 看起来就像 Mac OS X**。
### 让 Ubuntu 14.04 看起来像 Mac OS X ###
要使 Ubuntu 美化成 Mac 的样子,我们得使用 Zukimac 主题。
- 从后面的链接获得 Zukimac 主题包:[下载 Zukimac Theme for Ubuntu 14.04][1]
- 解压下载的 Zip 包,解压后会出现 Zukimac 和 Zukimac-ml 两个目录文件。把这些目录拷贝到您的 home 目录下的 .themes 文件夹中。进入 Home 目录中,按下快捷键 Ctrl+H 可以显示所有隐藏的文件,如果没有 .themes 文件夹,需要创建一个。
- 使用 [Unity Tweak Tool 来改变主题][2].
就这些操作。Zukimac 提供了一些基本的 Mac OS 系统的外观和视窗感觉。下面是带有默认的 OS X Maveric 壁纸的外观。
![Make Ubuntu 14.04 look like Mac OS X](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/Ubuntu_MAC_OS_Looks.jpeg)
### Ubuntu 14.04 中获得更多 Mac 体验 ###
通常,您可以**安装像 Plank 或 Docky 这样的 dock 启动面板**。在 Ubuntu 14.04 中要安装 Plank 可以使用下面的命令:
sudo add-apt-repository ppa:ricotz/docky
sudo apt-get update
sudo apt-get install plank
安装完 dock 启动面板后,您也可以安装 **Synapse indicator 来代替模拟 Mac 中的 Spotlight**。使用来自于 Noobslabs 的 PPA 源来安装 Synapse indicator如下示
sudo add-apt-repository ppa:noobslab/apps
sudo apt-get update
sudo apt-get install indicator-synapse
不想安装上面的两软件的话,您也可以安装 **Slingscold launcher用来代替模拟 Mac OS X 的启动面板**。在 Ubuntu 14.04 中,使用上面提到的 Noobslabs 的 PPA 源来安装 Slingscold 启动面板,如下示:
sudo add-apt-repository ppa:noobslab/apps
sudo apt-get update
sudo apt-get install slingscold
老实说,我是个狂热的 Ubuntu 迷,我喜欢 Ubuntu 默认的 Unity 主题样式外观。此外,还有很多[关于 Ubuntu 14.04 的漂亮图标主题样式][3] 可用来美化默认的外观。但正如我上面提到的仍有很多用户喜欢 Mac OS X 的主题样式,我希望这篇文章能帮助到他们,使其能把 Ubuntu 14.4 装扮成 Mac OS X 的样式。
--------------------------------------------------------------------------------
via: http://itsfoss.com/ubuntu-1404-mac-zukimac-theme/
译者:[runningwater](https://github.com/runningwater) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://gnome-look.org/content/show.php/Zukimac?content=165450
[2]:http://itsfoss.com/how-to-install-themes-in-ubuntu-13-10/
[3]:http://itsfoss.com/best-icon-themes-ubuntu-1404/

View File

@@ -0,0 +1,297 @@
安装Linux Mint 17后要做的20件事
================================================================================
### Linux Mint 17 Qiana Cinnamon ###
Linux Mint 17已经[发布][1]定名为Qiana。Mint是Linux最佳发行版之一它定位于桌面用户关注可用性和简洁。它携带了风格迥异的桌面环境如Mate以及Cinnamon并基于不同的发行版如Ubuntu或Debian。
在本文中我们使用的是Linux Mint 17的cinnamon版本。要获取更多关于Cinnamon版本的信息包括下载链接可以访问 - http://linux.cn/article-3260-1.html
下载适合你系统的正确的iso烧录成dvd或者也可以制作成usb启动盘来启动。安装完毕是时候来使用一些优化工具和基本应用程序来优化系统性能和体验让你系统激情澎湃吧
### 1. 更新系统 ###
第一件事情是重中之重,就是让你的系统保持时刻最新。赶紧在终端中运行以下命令吧。
$ sudo apt-get update
$ sudo apt-get upgrade
或者你也可以使用更新管理器mintUpdate来干这事你可以在菜单Menu> 管理Administration中找到它。
![linux mint 17 qiana](http://www.binarytides.com/blog/wp-content/uploads/2014/06/linux-mint-17-qiana.png)
### 2. 找回旧壁纸 ###
每个Linux Mint发行版都自带了一套最新的漂亮的壁纸。但是你也可以安装先前版本中的壁纸。
$ sudo apt-get install mint-backgrounds-*
### 3. 多安装些浏览器 ###
Linux Mint 17默认安装了firefox你也可以获得更多的浏览器如Chronium和Google Chrome。
Chronium浏览器可以在仓库中获取。
$ sudo apt-get install chromium-browser
至于Google Chrome请访问google.com/chrome下载deb包并使用gdebi来安装。
# 64 位
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$ sudo gdebi google-chrome-stable_current_amd64.deb
# 32 位
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb
$ sudo gdebi google-chrome-stable_current_i386.deb
### 4. 安装Flash Player ###
Mint上默认安装adobe flash插件包adobe-flashplugin因此你可以在Firefox中畅玩flash游戏也可以尽情享受网页版视频了。
Google Chrome现在使用了基于flash player的Pepper API而且该插件也内建于Chrome中因此你也不需要为它额外做任何事情了。
然而对于Chronium基于flash player的Pepper没有被囊括进来因为它不是个自由组件所以你需要手动安装了。
安装以下包来为Chronium安装pepper flash player。它会自动从Google Chrome浏览器中下载pepper flash player并加入到Chronium中。
$ sudo apt-get install pepperflashplugin-nonfree
上面的命令应该帮你将flash player安装到Chronium里头了。万一下载失败你可以使用下面的命令重新进行安装。
$ sudo dpkg-reconfigure pepperflashplugin-nonfree
### 5. 安装多媒体解码 ###
受限的额外包可以帮你安装大多数基本的解码可以让你播放像mp3这样的格式。它也会帮你安装微软字体。
$ sudo apt-get install ubuntu-restricted-extras
要启用加密dvd的回放请安装以下包。
$ sudo apt-get install libdvdread4
$ sudo /usr/share/doc/libdvdread4/install-css.sh
### 6. 安装专有驱动 ###
如果你有一张Nvidia或者ati的图形卡或者broadcom的无线网卡那么请安装厂商提供的专有驱动这些驱动会为你带来最佳的硬件性能。
要安装Nvidia驱动你可以参照先前的这篇文章
[如何在Linux Mint上安装最新的Nvidia驱动][3]
### 7. 安装Dropbox ###
Linux mint仓库已经提供了dropbox的客户端软件包所以你不必满世界找了。
$ sudo apt-get install dropbox python-gpgme
如果你还是比较喜欢从官方网站下载,那么翻墙可直达[https://www.dropbox.com/install?os=lnx][4]请遵照说明下载用于Ubuntu的deb安装包。LCTT译注墙内用户还是忽视此条吧。
Copy是另外一个云存储解决方案它也有本地Linux客户端。详情可查阅[copy.com][5],它也有[ppa仓库][6]。
### 8. Skype ###
Skype可以在Ubuntu canonical合作仓库中找到。
$ sudo apt-get install skype
### 9. 安装rar和其它归档工具 ###
要想在Nemo这样的文件管理器中通过上下文菜单创建rar归档请安装rar工具。安装rar的同时也可安装其它几个包以增加对其它归档格式的支持。
$ sudo apt-get install unace p7zip-rar sharutils rar arj lunzip lzip
### 10. 安装剪贴板管理器 ###
剪贴板管理器允许你维护和访问通过像Ctr+C这样的操作拷贝的项目历史gnome下有很多的剪贴板管理器像diodonclipitglipperparcellite。
Diodon在cinnamon桌面上似乎存在一些问题在历史列表增长时会出现滚动条。Clipit和Gipper工作得很好你也可以安装
$ sudo apt-get install glipper
# 或者
$ sudo apt-get install clipit
然后,你可以从应用程序菜单中启动它们,它们应该会在你每次登录时启动。
### 11. 优化桌面 ###
#### 1. 修复系统托盘上的日期格式 ####
在底部面板右边的时间小程序只显示了时间,它也可以设置显示日期。右击底部面板右边的日期-时间小程序,然后点击配置,选中标有“使用自定义日期格式”的选框,然后填入
%B %e, %I:%M %p
这会以带有AM/PM的12小时格式显示月份名称、日期和时间。
#### 2. 安装主题、扩展、小程序、桌面组件 ####
为你的桌面搞一些好东西玩玩。你可以在桌面区域放置一些桌面组件,在面板上放些小程序,为桌面效果添加一些扩展,以及为桌面设计安装一些主题。
去系统设置吧,点击指定的图标,你可以看见一个可供选择的列表。点击“在线获取更多”标签来下载更多的好东西。
#### 3. 修改Firefox的搜索引擎 ####
你也许注意到Firefox默认选择了Yahoo搜索引擎而搜索引擎列表中并没有Google。点击“管理搜索引擎” > 获取更多搜索引擎,它会带你去[http://www.linuxmint.com/searchengines.php][7]。
向下拉动滚动条到商业搜索引擎部分找到并点击Google图标。进入下一页后再次点击搜索引擎列表而这次你会看到“添加Google”选项点击它就可以用上Google搜索了。LCTT译注墙内用户也请忽略此条。怒
### 12. 优化字体渲染 ###
Linux mint默认使用Dejavu Sans字体它看起来真普通啊。你可以使用Droid和Noto字体获得好看得多视觉享受。请参照我们先前的教程它会一步一步带你渐入佳境。[如何在Linux Mint上获得华丽好看的字体][8]
### 13. Guake下拉终端 ###
下拉终端让你可以通过点击单个键来访问终端Guake就是这其中之一它用于基于gtk的桌面。下拉终端按要求显示/隐藏,并保持运行,因此你无需从菜单或者启动器中打开终端了。这对于热衷于终端的人来说,这是一个必不可少的工具。
$ sudo apt-get install guake
Guake需要配置以便在每次登陆时启动。首先找到guake命令的路径。
$ which guake
/usr/bin/guake
现在,把它添加到启动程序列表中。出门左拐,请往系统设置 > 启动程序,然后点击添加。在对话框中填写
> 名称 - Guake下拉终端
> 命令 - /usr/bin/guake
点击添加。现在Guake已经跑到你的运行程序列表中去了并每次会自动启动。
### 14. Uget下载管理器 ###
Uget是一个简洁而健壮的跨平台下载管理器在Linux上工作得很好。虽然它缺少分段下载文件功能但是仍然是一个十分稳定的下载管理器。
$ sudo apt-get install uget
### 15. Deluge BitTorrent客户端 ###
Linux Mint自带了Transmission这是个简洁而高效的torrent客户端。如果正在寻找一个更有特色的torrent客户端那么你可以试试deluge或者vuze正式名称是azureus还可以试试qbittorent。
$ sudo apt-get install deluge-torrent
### 16. Hardinfo - 系统信息工具 ###
Hardinfo是一个十分便利的GUI工具它可以用来报告大量完整的系统硬件信息。你可以通过它来集中查看处理器、内存、存储设备、网络配置、打印机、usb设备、声音/视频适配器等等信息。它具有测试和评估系统性能的功能。
$ sudo apt-get install hardinfo
### 17. 安装MATE桌面环境 ###
除了CinnamonLinux Mint还自带了另一个流行的桌面环境MATEMaatay桌面。如果你想试试那么就来安装吧。
$ sudo apt-get install mint-meta-mate
现在你可以在登陆屏幕选择MATE会话了。
### 18. 让其它分区可写 ###
如果你有其它ext分区比如想用来存储和备份文件那么你需要让它们可写以免每次都要使用root特权。
首先使用gksudo在文件管理器里打开分区挂载目录
$ gksudo nemo
导航到分区目录,右击去往属性 > 权限标签
赋予“目录访问” - 创建和删除文件权限给用户、组和其它。
赋予“文件访问” - 读和写权限给用户、组和其它。
对于NTFS分区你不需要做此事。
### 19. 安装Conky ###
Conky是一个轻量级系统监控工具它通过桌面图形组件显示系统各种资源的统计数据如cpu、内存、网络等。它不是必须的但是可以让你的桌面更加绚丽夺目。
$ sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt-get update
$ sudo apt-get install conky-manager
从应用程序菜单启动Conky管理器并添加组件到桌面。也可以选中开机启动选项来让Conky开机启动。
### 20. 安装一些游戏 ###
Linux确实有一些酷爽的游戏很具娱乐性而且是免费的。注意某些游戏像supertuxkart和0ad要求专用的图形处理器以优化性能。
# 0ad - 像帝国时代那样的策略游戏
$ aptitude search 0ad
# supertuxkart - 赛车游戏
$ aptitude search supertuxkart
# openarena
$ aptitude search openarena
仓库中还有更多的游戏可供你安装像Alien arena, secret maryo chronicles, supertux, frozen bubbles等等。
### 清除 ###
做完这一切后,请为系统进行一次大扫除,移除一些不必要的包。
$ sudo apt-get autoremove
### 注 ###
#### 为Google Chrome/Chronium提供Java小程序支持 ####
默认情况下已经安装了"icedtea-plugin"用以为firefox提供java小程序支持。
然而Chrome和Chronium却不再支持基于NPAPI的插件。因此java小程序在没有获得基于Pepper api的java插件前java小程序是不能在这些浏览器中工作的。要查看更多信息请往[这里][9]。
#### 更多应用程序 ####
如果你正在为你的Mint盒子寻找更多的应用程序那么这里列出了一部分更好的应用程序所有这些都可以在软件管理器中安装。
* Opera - 网页浏览器
* Gnome Encfs Manager - 管理使用Encfs加密的文件和文件夹
* Smplayer - 多媒体播放器
* Rhythmbox, Clementine - 音乐播放器
* Openshot, Kdenlive - 视频编辑器
* Audacity - 音频编辑器
* Inkscape - 图形和图像编辑
* Gparted - 分区编辑器
* Gufw - 防火墙配置工具
* qBittorrent, Vuze - Torrent客户端
* Gwenview - 图像浏览
* Team viewer - 远程桌面
* Tv-maxe - 查看电视频道
* Grub Customizer - 修改GRUB启动菜单设置
* Linrunner TLP - 电源管理工具,对笔记本节电很有用
* Virtualbox - 虚拟化
* Kazam, recordMyDesktop - 桌面录像/演示
* Bleachbit - 通过删除旧的/临时文件释放磁盘空间
* Cheese - 使用网络摄像头拍照
* Shutter - 带有众多功能的屏幕截图工具
那么请选择你喜欢的那些并尽情享受Linux Mint吧
### 资源 ###
下载最新Linux Mint
[http://www.linuxmint.com/download.php][10]
社区教程
[http://community.linuxmint.com/tutorial][11]
Linux Mint论坛
[http://forums.linuxmint.com/][12]
--------------------------------------------------------------------------------
via: http://www.binarytides.com/better-linux-mint-17-cinnamon/
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://blog.linuxmint.com/?p=2626
[2]:http://blog.linuxmint.com/?p=2626
[3]:http://www.binarytides.com/install-nvidia-drivers-linux-mint-16/
[4]:http://www.dropbox.com/install?os=lnx
[5]:http://copy.com/?r=DSwtSd
[6]:http://launchpad.net/~paolorotolo/+archive/copy
[7]:http://www.linuxmint.com/searchengines.php
[8]:http://www.binarytides.com/optimize-fonts-linux-mint/
[9]:http://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1309508
[10]:http://www.linuxmint.com/download.php
[11]:http://community.linuxmint.com/tutorial
[12]:http://forums.linuxmint.com/

View File

@@ -0,0 +1,113 @@
如何在 Linux/Unix/Mac 下清除 DNS 查询缓存
================================================================================
![](http://figs.cyberciti.biz/3rdparty/configure.png)
我在Linux下使用拨号连接上网频繁的拨号断线造成DNS的问题。我如何在Linux/Unix发行版下使用shell命令清除DNS缓存
在MS-Windows下,你可以使用[ipconfig命令来清除dns缓存][1]。然而Linux和Unix提供了不同的方法来清除缓存。Linux可以运行 nscd 或者 BIND 或者 dnsmasq 作为名称服务缓存守护进程。大型或者工作组服务器可能使用BIND或者dnsmasq作为专用缓存服务器来加速查询。
### 如何: 清除 nscd dns 缓存 ###
Nscd 会缓存libc发起的名称服务的请求。如果把检索NSS数据看做很慢那么nscd能够显著加快连续访问同一数据的速度并能提高整个系统的性能。只需重启nscd即可刷新缓存
$ sudo /etc/init.d/nscd restart
# service nscd restart
# service nscd reload
这个守护进程给最常用的名称服务请求提供了高速缓存。默认的配置文件/etc/nscd.conf其决定了高速缓存守护进程的行为。
### 清除 dnsmasq dns 缓存 ###
[dnsmasq的是一个轻量级的DNS][2]、TFTP和DHCP服务器。它的目的是给局域网提供配对的DNS和DHCP服务。 dnsmasq接受DNS查询并从一个小的本地高速缓存应答它们或将其转发到一个真正的递归DNS服务器。该软件也被安装在很多便宜的路由器上来缓存DNS查询。只需重新启动dnsmasq的服务来清除DNS缓存
$ sudo /etc/init.d/dnsmasq restart
或者
# service dnsmasq restart
### 清除BIND缓存服务器的dns缓存 ###
一台BIND缓存服务器从另一台服务器区域主响应主机的查询而获得信息然后保存缓存)数据到本地。您所要做的就是重启BIND以清除其缓存
# /etc/init.d/named restart
你也可以使用下面rndc命令来清除所有的缓存:
# rndc restart
或者
# rndc exec
BIND v9.3.0 及其以上版本支持一个清除一个特定域名的所有记录缓存的命令rndc flushname。本例中刷新cyberciti.biz相关域的所有记录
# rndc flushname cyberciti.biz
同样也可以清除BIND View。比如LAN和WAN的View可以用下面的命令清除:
# rndc flush lan
# rndc flush wan
### 给 Mac OS X Unix 用户的提示 ###
Mac下用root用户输入下面的命令:
# dscacheutil -flushcache
或者
$ sudo dscacheutil -flushcache
如果你正在使用OSX 10.5 或者更早的版本,尝试使用下面的命令:
lookupd -flushcache
### 关于 /etc/hosts 文件的一个提示 ###
/etc/hosts用作静态查询主机的表格。你需要在类Unix操作系统下依据你的要求移除并且/或者更新它:
# vi /etc/hosts
#### 示例输出: ####
127.0.0.1 localhost
127.0.1.1 wks01.WAG160N wks01
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.37.34.2 build
192.168.1.10 nas01
192.168.1.11 nas02
192.168.1.12 nas03
#192.168.2.50 nfs2.nixcraft.net.in nfs2
#192.168.2.51 nfs1.nixcraft.net.in nfs1
172.168.232.50 nfs1.nixcraft.net.in nfs1
172.168.232.51 nfs2.nixcraft.net.in nfs2
192.168.1.101 vm01
### 参考 ###
相关: 在Windows Vista / XP中用ipconfig 命令[清除 DNS 缓存][3]
--------------------------------------------------------------------------------
via: http://www.cyberciti.biz/faq/rhel-debian-ubuntu-flush-clear-dns-cache/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://theos.in/windows-vista/flush-dns-cache-with-ipconfig/
[2]:http://www.cyberciti.biz/tips/how-do-i-improve-dns-performance-on-linuxwindows-desktop.html
[3]:http://theos.in/windows-vista/flush-dns-cache-with-ipconfig/

View File

@@ -0,0 +1,86 @@
到底开发者需要掌握多少门语言?
================================================================================
![](http://a2.files.readwrite.com/image/upload/c_fill,h_900,q_70,w_1600/MTIyNzYyNjIwNDU2Njk4NDcw.jpg)
> 诸如Apple、Facebook及Google这样的大公司正在开发他们自己的编程语言开发者们被迫只有适应。
前不久的世界开发者大会上Apple公布了它的新开发语言[Swift][1]。这是最近大型技术公司们开发的一大波新语言中的最新成员,这些新语言某种程度上都是专门应用于他们自己的平台。
对iOS开发者Apple有Swift而[Facebook 有 Hack][2] —— 一门用于后端开发的语言。与此同时Google已经拥有了它自己的Javascript替代者 Dart以及一门新的通用编程语言Go。
这一波又一波的新语言,给开发者们带来了许多问题。也许其中最严重的问题正如我一位同事[Adriana Lee][3]在Apple发布Swift后所说
> (开发者们到底还得学习多少门语言?)
> ——Adriana Lee (@adra_la) [June 2, 2014][4]
### 计算机语言的通天塔 ###
目前已经存在的[编程语言有数百种][5],同时还有更多的语言正在涌现。其中许多都是被设计用在相对较窄的应用程序范围内,大多数甚至从未走出过项目小组的范围。
与此类似,大技术公司开发的新语言其实也是伴随着公司一起成长的。[通用语言的鼻祖C语言][6]就源于上世纪70年代初的AT&T贝尔实验室。Java目前作为Android app开发的主要语言诞生于上世纪90年代[Sun公司的Microsystems系统][7]。
发展到现在,不同之处在于,公司们拥抱新语言、从而想要延伸的特定商业目标的范围不一样了 —— 这一过程同时建立了一个忠心耿耿的开发者基础他们被牢牢锁定在了某个公司的特定平台上。这类一石二鸟的战略最早可以追溯到Sun对Java的采用当时公司就将其作为了挑战微软PC桌面统治地位的一种手段。事情虽然没有像Sun计划的那样发展下去但在Google转向Android之前Java大体上也算是在企业中间件系统中找到了自己的一席之地。
这么看来Apple的Swift其目标也就很明确了。Swift应该不会辜负公司前期的大肆宣传通过磨平Objective-C那粗糙的毛边看起来它能够成功简化iOS app开发者的开发过程。但是同样还是这些开发者他们却需要学习一门新语言的输入和输出而这些功能很可能在其他地方都不会用到。
### 大公司们为什么要重复造轮子 ###
“不要重复造轮子”这一哲学在绝大多数开发者心中根深蒂固,大公司们对此却并不买账。那他们为何不只是修改下现有语言用于新的用途呢?
答案很简单公司们发明他们自己的语言是因为他们有这个能力。设计一门新语言可能很复杂但对资源要求却并不很高。困难之处也就在对其提供支持包括提供软件资源共享代码库、API、编译器、文档等以及赢得开发者的心意。大公司们在这两方面尤其擅长。
还有一个事实,现有语言通常很难硬塞进如今的复杂代码框架中。举个栗子,[Facebook决定发明的Hack][8]就是一个普遍适用于Web开发的[脚本语言PHP][9]的超集合superset
Facebook的Hack最近已经比较普遍其主要目标就是改进代码的稳定性针对这一目的它强制在程序运行之前对数据类型进行检测。这样的检测确保了一个程序比方说不会将一个整数解析为一个字符串这样的错误如果捕获不到很可能会导致不可预知的后果。在Hack中这些检测会预先执行以便程序员能够在程序上线前早早发现这样的错误。
据Facebook的Hack项目组核心成员Julien Verlaguet透露公司之前尝试过用一门现有语言实现更高效的编程。但是Facebook的大部分代码都是由PHP编写的公司实际上已经建立了一个支持PHP及其分支的软件架构。即使能够让PHP同其他语言编写的代码协同工作实现的难易程度和运行速度都无法满足要求。
“比如说我们尝试用Scala重写PHP代码库”Verlaguet说。“Scala是一门设计优秀的漂亮语言但是它与PHP完全不兼容。每次我需要从Scala的代码库部分调用PHP的时候都会损失性能。我们很愿意使用一门现有语言但是对于我们来说这条路行不通。”
于是Facebook发明了Hack它与PHP一样能够共用公司现有的架构。Verlaguet介绍说Facebook的代码库主体已经从PHP迁移到了Hack同时公司将Hack开源希望独立开发者们能够帮公司找到Facebook以外的用途。
“你仍然可以使用PHP”他说“但是我们希望你有使用Hack的欲望。”
### 谁说了算 ###
公司和开发者之间有一种微妙的平衡。公司可以按照自己的喜好发明语言。但是如果开发者都不愿使用这门语言,那就没人用了,公司以外的人也就没人愿意将自己的职业生涯托付给这家公司。
公司在开发过程中同时使用不同的语言这并不少见。例如你可能用Objective-C开发iOS app但却用Java开发Android app。对开发者来说这从来都不是症结所在因为Objective-C和Java都是通用面向对象语言。它们用途广泛适用于很多场合。
然而Hack、Dart、Go和Swift到目前为止仍然只适用于严格特定公司的编程解决方案往往和公司选择的编程环境相对应。诚然现在下结论可能还太早。比方说Hack就可以用在一些后端的实现中它只是太新了以至于Facebook还没有任何数据供人们如此使用。
不是开发者不能学习多门语言。事实上大多数人已经掌握了多门语言。这好比罗曼斯语由拉丁语演变而成的语言如果你会说西班牙语再去学法语就比那些不会西班牙语的人简单许多。与此类似如果你已经会Java再学Ruby或Perl就简单得多。如果你会PHP基本上就已经学会了Hack。
与此相反学习多门语言更多的是一个习惯问题。如果Java已经解决了你的问题你就不再有动机去学Ruby。如果你用Objective-C编写iOS app感觉很爽你就不会有强烈的意愿去学Swift。
另外对于一些开发者来说封闭生态系统的语言只会使每个人的生活变得更糟。例如自由设计师Jack Watson-Hamblin就告诉我说像Apple这样强势推出Swift其实是在冒险增加程序员的负担同时将开发者社区割裂开来
> 程序员掌握多门语言固然重要但是不断强迫他们紧跟新语言却是行不通的。如果我正在开发一个简单的跨平台app我可不想被迫掌握四门语言再来完成它。如果真的需要我也只想使用一门语言。
Watson-Hamblin就主张说当每家公司都为了自家需要发明自己的语言时程序员的注意力被分散开发的视野也局限于一种这只会拖慢整个开发进程。他说“如果拿公司负责一门语言与负责一个开源社区相比较这两者的区别就好比一家大企业与一个初创小公司的区别”。社区生来就更加灵活适应能力更强。
当然Apple有[许多非常好的理由推出Swift从零开始][10]就像当初Facebook发明Hack的时候一样。我并不是说大公司不会强迫开发者接受这种改变在这方面有些公司一直都很让人讨厌。
“新语言的发明伴随着霸权的支配”Verlaguet说“被迫不停追赶确实令人沮丧但另一方面你又多了一种解决问题的新语言。反过来想想要是全世界的程序员都用同样一门语言做所有事情即使啥都凑合着能干这门语言也一定干得不怎么样”。
题图来自于[Flickr user Ruiwen Chua][11]CC 2.0
--------------------------------------------------------------------------------
via: http://readwrite.com/2014/06/17/apple-swift-facebook-hack-google-dart
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://developer.apple.com/swift/
[2]:http://readwrite.com/2014/03/20/facebook-new-programming-language-hack
[3]:http://readwrite.com/author/adriana-lee#awesm=~oGfPbJlSrFBamJ
[4]:https://twitter.com/adra_la/statuses/473537386266112000
[5]:http://en.wikipedia.org/wiki/List_of_programming_languages
[6]:http://en.wikipedia.org/wiki/C_(programming_language)
[7]:http://en.wikipedia.org/wiki/Java_(programming_language)
[8]:http://readwrite.com/2014/03/20/facebook-new-programming-language-hack
[9]:http://en.wikipedia.org/wiki/PHP
[10]:http://blog.erratasec.com/2014/06/why-it-had-to-be-swift.html#.U58BJI1dXtA
[11]:https://www.flickr.com/photos/ruiwen/3260095534

View File

@@ -0,0 +1,188 @@
已经会用Git了不会这十招怎么行
================================================================================
之前我们发了一些教程让你熟悉[Git基础][1]和[在团队合作环境中使用Git][2].我们讨论的这些Git命令足够让一个开发者在Git的世界里生存下去。在这篇教程里我们试着探索如何高效地管理你的时间以及如何充分利用Git提供的特性。
> 注意:这里介绍的命令中有的包含方括号(例如:`git add -p [file_name]`)。在这些例子中,你应该用你自己的数字、标识符等替代方括号里的内容,并且去掉方括号。
### 1. Git自动补全 ###
如果你在命令行环境中运行Git命令每次都手动地逐个输入命令是一件很无聊的事。为此你可以花几分钟时间配置一下Git命令的自动补全功能。
在*nix系统运行下列命令下载自动补全脚本
cd ~
curl https://raw.github.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
然后,添加下面的行到你的~/.bash_profile文件
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
尽管我之前已经提到过但我还是想再强调一下如果你想使用完整的Git特性你绝bi应该切换到命令行环境。
### 2. 在Git中忽略文件 ###
你是不是对出现在你Git库里面的编译生成文件比如`.pyc`)感到很无语或者你是不是很厌恶不小心将他们添加到了Git直接看这里这里有一个方法可以让你告诉Git忽略所有这些文件和目录。只需要创建一个名字为`.gitignore`的文件里面列出你不想要Git跟踪的文件和目录。可以用感叹号(!)列出例外情况。
*.pyc
*.exe
my_db_config/
!main.pyc
### 3. 谁动了我的代码? ###
当事情出了乱子时立马责怪别人这是人类的天性。如果你的服务器程序不能正常工作了,要找出罪魁祸首是非常简单的--只需要执行`git blame`。这个命令告诉你文件里的每一行的作者是谁,最后改动那一行的提交,以及提交的时间戳。
git blame [file_name]
![git blame demonstration](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946443git-ninja-01.png)
在下面的截图里,你可以看到在一个更大的库里这个命令的输出是什么样的:
![git blame on the ATutor repository](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946441git-ninja-02.png)
### 4. 查看库的历史 ###
在之前的教程里,我们已经看过了如何使用`git log`命令。不管怎样有3个选项你应该知道。
- **--oneline** - 压缩每次的提交信息只保留一个缩减的Hash值和说明文字然后把这些都展示在一行里。
- **--graph** - 这个选项将在左边画出一个文字界面的提交历史图。如果你只有一个分支,用这个选项查看历史时是没什么意义的。
- **--all** - 显示所有分支历史。
这是这3个选项合起来使用的效果
![Use of git log with all, graph and oneline](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946444git-ninja-03.png)
### 5. 不要丢失对某个提交的跟踪 ###
假设你提交了一些不需要的东西然后你进行了hard重置回到之前的状态。后来你发现在这个过程中你丢失了其他一些重要的信息你想要把这些信息找回来或者至少可以查看一下这些信息。这就需要`git reflog`帮忙。
简单的`git log`只能告诉你最近的提交,这个提交的父提交,父提交的父提交,等等。但是`git reflog`是一个HEAD指向的提交的列表。记住这个列表依赖于你自己的本地操作环境它不是库的一部分也不包含在push或者merge中。
如果执行`git log`命令,可以看到提交历史,这是我的库的一部分:
![Project history](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946446git-ninja-04.png)
但是,`git reflog`命令显示了一个被我用hard重置丢掉的提交(`b1b0ee9`-`HEAD@{4}`).
![Git reflog](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946447git-ninja-05.png)
### 6. 暂存文件的一部分更改以便进行一次提交 ###
通常依据特性来提交是一个好的实践方法意思是说每一个提交都只添加一个特性或者修复一个bug。想一下如果你一次修复了两个bug或者添加了两个特性但是都还没有逐个提交该怎么办。这种场景下你可以将他们一起提交。但是有一个更好的办法单独暂存这些文件然后分开提交。
让我们假设你对一个文件做了多个更改,然后想让这些更改分开提交。这时,我们用带`-p`的添加命令。
git add -p [file_name]
我们来试试这种用法。我添加了3个新行到`file_name`但是我只想让第1行和第3行出现在我的提交里。让我们看看`git diff`的输出是什么样的。
![Changes in repo](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946449git-ninja-06.png)
然后,我们看看带`-p`选项的`add`命令会发生什么。
![Running add with -p](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946450git-ninja-07.png)
看起来Git认为所有的更改都是同一个目的的一部分所以把他们分组到同一个块里。这时你可以
- 输入 y 暂存块
- 输入 n 不暂存块
- 输入 e 手动编辑块
- 输入 d 退出或者跳转到下一个文件
- 输入 s 分割块
在我们这个例子中,我们想把这个块分割成更小的部分,然后选择其中一些忽略另外一些。
![Adding all hunks](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946452git-ninja-08.png)
如你所见我们已经逐个添加了第1和第3行忽略了第2行。你可以看到库的状态并且进行一次提交。
![Repository after selectively adding a file](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946454git-ninja-09.png)
### 7. 合并多个提交 ###
为了进行核查或者发起一个合并请求这经常发生在开源项目里对代码进行了修改提交。但在最后代码被接受之前你也许会需要修改你的代码。于是你修改代码但是下一次核查的时候又一次需要进行修改。不知不觉中你就已经有了好几个提交。理论上你应该用rebase命令把他们合并起来。
git rebase -i HEAD~[number_of_commits]
如果你想合并最后的两次提交,你应该运行下面的命令。
git rebase -i HEAD~2
一旦你运行这个命令,你将进入一个交互式界面,它将询问你想要合并哪些提交。你`pick`(拣选)最近的提交然后`squash`(合并)旧的提交。
![Git squash interactive](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946455git-ninja-10.png)
接着你应该提供一个对新提交的说明。这个过程会重写你的提交历史。
![Adding a commit message](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946457git-ninja-11.png)
### 8. 储藏没有提交的更改 ###
假设你正在修复一个bug或者添加一个特性突然你被要求展示一下你的工作成果。你现在的工作还没有完成不够进行一次提交。这时`git stash`命令可以用来急救一下。Stash命令跟踪你所有的更改然后把他们储藏起来以便以后使用。命令如下-
git stash
可以多次储藏更改,查看储藏列表,你可以运行下面的命令:
git stash list
![Stash list](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946458git-ninja-12.png)
如果你想取消储藏,覆盖当前的更改,你可以通过下面的命令使用储藏:
git stash apply
在最后的这个截图里你可以看到每个储藏都有一个标识符是一个唯一的数字尽管在这里我们只有一个储藏。如果你想使用某个储藏你在apply命令后面加上这个唯一的标识符
git stash apply stash@{2}
![After un-stashing changes](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946461git-ninja-13.png)
### 9. 检查丢失的提交 ###
尽管`reflog`是一种检查丢失提交的方法,大型的库里却不太实用。这个时候,应该用`fsck`(文件系统检查)命令。
git fsck --lost-found
![Git fsck results](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946463git-ninja-14.png)
这里你可以看到一个丢失的提交。你可以通过`git show [commit_hash]` 查看提交的更改或者通过运行`git merge [commit_hash]`命令进行恢复。
`git fsck``reflog`命令相比有一个优点。假设你删除了一个远程分支然后clone了这个库。用`fsck`命令你可以找到并且恢复这个删除的远程分支。
### 10. 最佳选择 ###
之前我已经存记下了那些最优雅的Git命令。但是目前为止`cherry-pick`命令是我最喜欢的Git命令因为它直白的名字和实用的功能
最简单的情况下,`cherry-pick`从另一个分支里选出单独的一个提交然后合并到当前分支。如果你正并行工作在两个或者更多的分支上你也许会发现一个存在于所有分支上的bug。如果你解决了一个分支上的这个bug你可以拣选这个对应的提交应用到其他分支上而不会弄乱其他文件或者提交。
让我们来考虑一个可以使用这个命令的场景。我有两个分支,我想拣选`b20fd14: Cleaned junk`这个提交到另一个分支上。
![Before cherry pick](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946465git-ninja-15.png)
我切换到想要应用这个拣选出来的提交的分支,然后运行下面的命令:
git cherry-pick [commit_hash]
![After cherry pick](http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/06/1402946467git-ninja-16.png)
尽管这次我们很干净的用了`cherry-pick`命令,但你应该知道这个命令经常会引起冲突,所以请小心使用。
### 总结 ###
到了这里我们结束了这个能使你Git能力提升一个级别的列表。Git是最好的版本控制器它能完成你能想象到的任何事情。所以经常试着用Git挑战你自己。一不小心你就会学到很多新东西。
--------------------------------------------------------------------------------
via: http://www.sitepoint.com/10-tips-git-next-level/
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.sitepoint.com/git-for-beginners/
[2]:http://www.sitepoint.com/getting-started-git-team-environment/

View File

@@ -0,0 +1,97 @@
Linux 目录导航技巧
================================================================================
目录当行是命令行系统的基础概念.虽然不是什么难以理解的东西,但是知道一些技巧能够丰富你的经验并且提高工作效率.在这篇文章中,我们会讨论这些小技巧。
### 我们已经知道的东西 ###
在开始高级技巧之前,有一些必须知道的基本命令:
- pwd显示当前目录
- cd 改变当前目录
- cd 跟两个点(cd ..)能返回父目录
- cd 跟着相对目录就能直接切换当相对目录下
- cd 跟着绝对目录就能切换到绝对目录下
### 高阶技巧 ###
这节将介绍几个技巧方便你进行目录的切换
### 从任何地方回到home目录 ###
虽然使用cd /home/<你的主目录>, 不是什么大麻烦, 但是有一种方法直接打cd 就能回到你的主目录.
例子:
$ pwd
/usr/include/netipx
$ cd
$ pwd
/home/himanshu
所以无论你在哪个目录下都能这么干然后回到home目录。
**注意**- 如果要切换到某个其它的指定用户的目录下, 就使用 cd ~user_name'
### 用cd - 在目录间切换 ###
假设你的当前工作目录是这样的:
$ pwd
/home/himanshu/practice
如果你想切换到 **/usr/bin/X11** 然后又想回到之前的目录。 你会怎么做? 最直接的 :
$ cd /usr/bin/X11
$ cd /home/himanshu/practice/
虽然这样行得通,但是要记住这些复杂的目录就太笨了。这种情况下使用 cd - 命令就行.
使用 cd -’的第一步和上面的例子是一样的, 你可以 cd 到你想要切换到的<路径>下,但是回到之前的目录用 cd -’就可以。
$ cd /usr/bin/X11
$ cd -
/home/himanshu/practice
$ pwd
/home/himanshu/practice
如果你想再次回到刚刚访问的目录(在这个例子中是/usr/bin/X11),再使用'cd -'就可以。但是这个命令只会记住上一次访问的目录,这是一个缺点。
### 用 pushd 和 popd 来切换目录 ###
![directory navigation](http://linoxide.com/wp-content/uploads/2014/06/pushd-popd.jpg)
如果你对'cd -'非常了解了的话你会发现这个命令只能帮助你在两个目录之间移动但是很多场景下需要在很多目录之间切换。比如你要从A切换到B再到C然后又想回到A。
一般来说你需要打出A的完整路径但是如果这个路径非常复杂将是非常烦人的一件事特别是在你的切换非常频繁的话。
一些场景下可以使用 pushd 还有 popd 命令。 pushd 将一个目录存到内存中,popd 将目录从内存中去除,并且转换到那个目录下。
例如:
$ pushd .
/usr/include/netipx /usr/include/netipx
$ cd /etc/hp/
$ cd /home/himanshu/practice/
$ cd /media/
$ popd
/usr/include/netipx
$ pwd
/usr/include/netipx
使用pushd 命令存储当前的工作目录 (用 .表示) 然后切换到各种各样的目录去。为了返回之前的目录,只要使用 popd命令就行了。
LCTT译注显然pushd和popd 是堆栈式操作你可以push多个目录然后逐一pop出来自己试试吧。
LCTT译注我们之前介绍的[autojump][1],更加智能,不过需要安装一下。)
**注意**- 你也可以使用不带参数的 pushd 来切换到之前存储的目录, 但是不会像 popd 一样去除这个目录。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/directory-navigations-tips-tricks/
译者:[ggaaooppeenngg](https://github.com/ggaaooppeenngg) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-3401-1.html

View File

@@ -0,0 +1,137 @@
如何在Ubuntu,Linux Mint,Debian上禁用IPv6
================================================================================
### IPv6 ###
IPv6是寻址方案IPv4的下一个版本被用来给域名分配数字地址。
IPv6比IPv4支持更多的地址。然而它还没有被广泛支持还在被接受的过程中。
### 你的系统支持IPv6么? ###
为了支持IPv6需要很多事情。首先你需要系统/操作系统支持IPv6。UbuntuLinux Mint和大多是现代发行版都支持它。如果你看一下ifconfig指令的输出你就会看见你的网络接口被分配了IPv6地址。
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:1c:c0:f8:79:ee
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:c0ff:fef8:79ee/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:110880 errors:0 dropped:0 overruns:0 frame:0
TX packets:111960 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:62289395 (62.2 MB) TX bytes:25169458 (25.1 MB)
Interrupt:20 Memory:e3200000-e3220000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:45258 errors:0 dropped:0 overruns:0 frame:0
TX packets:45258 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4900560 (4.9 MB) TX bytes:4900560 (4.9 MB)
看一下行“inet6 addr”。
接下来你需要一个支持ipv6的路由器/调制解调器。此外你的ISP也必须支持IPv6。
除了检查网络设备的每一部分最好查出你是否可以通过IPv6访问网站。
有很多网站可以检测你的网络连接是否支持IPv6. 这里就是个例子:[http://testmyipv6.com/][1]
下面是在内核中启用IPv6的参数
$ sysctl net.ipv6.conf.all.disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0
$ sysctl net.ipv6.conf.default.disable_ipv6
net.ipv6.conf.default.disable_ipv6 = 0
$ sysctl net.ipv6.conf.lo.disable_ipv6
net.ipv6.conf.lo.disable_ipv6 = 0
同样可以在proc文件中检查
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0
注意这里的变量是控制IPv6的“禁用”。所以设置1就会禁用IPv6。
### 如果它不支持就禁用IPv6 ###
如果你的网络设备中不支持IPv6那最好就全部禁用它们。为什么因为这会引起域名查询延迟在网络连接中不必要地尝试连接到IPv6地址导致延迟等等问题。
我也遇到过像这样的问题apt-get命令偶尔会尝试连接到IPv6地址失败接着检索IPv4地址。看一下下面的输出。
$ sudo apt-get update
Ign http://archive.canonical.com trusty InRelease
Ign http://archive.canonical.com raring InRelease
Err http://archive.canonical.com trusty Release.gpg
Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
Err http://archive.canonical.com raring Release.gpg
Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
.....
像这样的错误在最近的Ubuntu中更频繁了或许它比以前更频繁地尝试使用IPv6地址。
我在其他的应用上也注意到了相似的问题如Hexchat同样Google Chrome也会有时会在查询域名的时候花费更长的时间。
所以最好的方案是完全禁用IPv6来摆脱这些事情。这只需要一点点配置但可以帮助你解决很多你系统上的很多问题。用户甚至反应这可以加速网络。
#### 禁用 IPv6 - 方案1 ####
编辑文件 - /etc/sysctl.conf
$ sudo gedit /etc/sysctl.conf
在文件的最后加入下面的行。
# IPv6 disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
保存并关闭
重启sysctl
$ sudo sysctl -p
再次检查ifconfig的输出这里应该没有IPv6地址了。
$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:5f:28:8b
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1501691 (1.5 MB) TX bytes:104883 (104.8 KB)
如果不行尝试重启系统并再次检查ifconfig
#### 禁用 IPv6 - GRUB 方案 ####
IPv6同样可以通过编辑grub配置文件禁用。
$ sudo gedit /etc/default/grub
查找包含"GRUB_CMDLINE_LINUX"的行,并如下编辑:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
同样可以加入名为"GRUB_CMDLINE_LINUX_DEFAULT"的变量这同样有用。保存并关闭文件重新生成grub配置。
$ sudo update-grub2
重启现在IPv6应该就已经禁用了。
--------------------------------------------------------------------------------
via: http://www.binarytides.com/disable-ipv6-ubuntu/
译者:[geekpi](https://github.com/geekpi) ,校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://testmyipv6.com/

View File

@@ -0,0 +1,90 @@
自动补完不算什么,一键直达目录才是终极神器!
================================================================================
在命令行中切换目录是最常用的操作不过很少有比一遍又一遍重复“cd ls cd ls cd ls ……”更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字那么你不得不使用ls来确认然后使用cd来进入你想要进的那一个。所幸的是现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰你一定会对autojump感到惊喜。
autojump是一个命令行工具它允许你可以直接跳转到你喜爱的目录而不用管你现在身在何处。
### 在Linux上安装autojump ###
在Ubuntu或Debian上安装autojump
$ sudo apt-get install autojump
要在CentOS或Fedora上安装autojump请使用yum命令。在CentOS上你需要先[启用EPEL仓库][1]才行。
$ sudo yum install autojump
在Archlinux上安装autojump
$ sudo pacman -S autojump
如果你找不到适合你的版本的包,你可以从[GitHub][2]上下载源码包来编译。
### autojump的基本用法 ###
autojump的工作方式很简单它会在你每次启动命令时记录你当前位置并把它添加进它自身的数据库中。这样某些目录比其它一些目录添加的次数多这些目录一般就代表你最重要的目录而它们的“权重”也会增大。
现在不管你在哪个目录,你都可以使用下面的语法来直接跳转到这些目录:
autojump [目录的名字或名字的一部分]
注意你不需要输入完整的名称因为autojump会检索它的数据库并返回最可能的结果。
例如,假定我们正在下面的目录结构中工作。
![](https://farm4.staticflickr.com/3921/14276240117_9f56b42fec_z.jpg)
那么下面的命令将直接让你跳到/root/home/doc下不管你当前位置在哪里。
$ autojump do
如果你也很讨厌打字那么我推荐你为autojump起个别名或者使用默认的别名。
$ j [目录的名字或名字的一部分]
另外一个引人注目的功能是autojump支持zsh和自动补完。如果你不确认哪里是不是你要跳转的地方敲击TAB键就会列出完整路径。
还是同样的例子,输入:
$ autojump d
然后敲击tab键将会返回/root/home/doc或者/root/home/ddl。
最后,对于高级用户,你可以访问目录数据库,并修改它的内容。可以使用下面的命令来手动添加一个目录:
$ autojump -a [目录]
如果你突然想要把当前目录变成你的最爱和使用最频繁的文件夹,你可以在该目录通过命令的参数 i 来手工增加它的权重
$ autojump -i [权重]
这将使得该目录更可能被选择跳转。相反的例子是在该目录使用参数 d 来减少权重:
$ autojump -d [权重]
要跟踪所有这些改变,输入:
$ autojump -s
这会显示数据库中的统计数据。而以下:
$ autojump --purge
命令将会把不再存在的目录从数据库中移除。
简言之autojump将会受到所有命令行高级用户的欢迎。不管你是在ssh进一台服务器还是仅仅想要追随复古潮流敲更少的键来减少导航时间总是件好事。如果你真的热衷于此类工具你也肯定也想看看[Fasd][3],它应该会给你一个惊喜,我们下次再介绍它。
你觉得autojump怎么样你会经常用它么发表一下你的评论吧。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/06/speed-up-directory-navigation-linux-terminal.html
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
[2]:https://github.com/joelthelion/autojump
[3]:https://github.com/clvv/fasd

View File

@@ -0,0 +1,86 @@
逝去的纪念如何在Linux中同步微软 OneDrive
================================================================================
【编者注】本文译文完成之后不久OneDrive 就成了中国人的昨日黄花了。编者想了想,还是发出来罢,仅以此文纪念我们逝去的这个、那个、以及这些和那些。也许若干年后我们回忆起来,我们曾经有过那么多那些,而当时却挑三拣四,没有珍惜,如果再给我一次机会……
---
[OneDrive][1]以前称为SkyDrive是微软的一个广受欢迎的云存储产品。目前OneDrive为每一个新注册用户提供7GB免费存储空间。正如你所想OneDrive与微软其他软件产品很好地集成。微软还提供了一个独立的OneDrive客户端它会自动备份照相机拍摄的图片和视频到OneDrive。但你猜怎么着。该客户端可用于除Linux的各大PC/移动平台。
“OneDrive在任何设备任何时间”这还不行。
不过不要失望。开源社区已经已经拿出了解决方案。 Boilermaker写的[onedrive-d][2]可以完成这项工作。作为监测守护进程运行onedrive-D可自动将本地文件夹同步到OneDrive云存储。
I在本教程中我将介绍**如何在Linux上使用onedrive-d同步微软OneDrive**。
### 在linux上安装onedrive-d ###
虽然onedrive-d最初是为Ubuntu/ Debian开发的但它仍然支持CentOS/ Fedora/ RHEL。
安装就像输入下面的命令一样容易。
$ git clone https://github.com/xybu92/onedrive-d.git
$ cd onedrive-d
$ ./inst install
### 第一次配置 ###
安装之后你需要进行一次性配置来授予onedrive-d对您OneDrive账户的读/写权限。
首先创建将用于对远程OneDrive账户同步的本地文件夹。
$ mkdir ~/onedrive
接着运行下面的命令开启一次性配置。
$ onedrive-d
它接着会弹出如下onedrive-d的设置窗口。在“Location”选项中选择你之前创建的本地文件夹。在“Authentication”选项中你会看见“You have not authenticated OneDrive-d yet”“你还没有授权OneDrive-d”的信息。现在点击"Connect to OneDrive.com"按钮。
![](https://farm4.staticflickr.com/3885/14470579955_1fb92e7cfe.jpg)
它会弹出一个新窗口来要求你登录OneDrivecom。
![](https://farm4.staticflickr.com/3903/14467221981_3d74140f61_z.jpg)
登录OneDrive.com之后你会被要求授权onedrive-d访问。选择“Yes”。
![](https://farm3.staticflickr.com/2925/14283963819_86cf52e1fd_z.jpg)
回到先前的设置窗口你会看到之前的状态已经变成了You have connected to OneDrive.com"“你已经连接到了OneDrive.com”。点击“OK”完成。
![](https://farm4.staticflickr.com/3896/14284004048_3e718d1e30.jpg)
### 与OneDrive同步一个本地文件夹 ###
这里有两种方法来使用onedrice-d将本地文件夹与OneDrive存储同步。
一种是“手动使用命令行来同步OneDrive”。就是当你需要与你的OneDrive账户同步时运行如下命令
$ onedrive-d
`onedrive-d`接着将扫描本地文件夹与OneDrive帐户的内容并使两者同步。这意味着要么上传一个在本地文件夹新添加的文件或者从远程OneDrive帐户下载最新发现的文件。如果你从本地文件夹删除任何文件相应的文件将自动在与OneDrive帐户同步后被删除。反之亦然。
一旦同步完成你可以使用Ctrl-C中断onedirve-d的前台进程。
![](https://farm6.staticflickr.com/5509/14283967750_b9ebf1b05d_z.jpg)
另一种方法是将onedrive-d作为一个始终运行的守护进程在开机时自动启动。在这种情况下后台守护进程会同时监视本地文件夹和OneDrive账户以使它们保持同步。要做到这一点只需将onedrive-D加入到你桌面的[自动启动程序列表][3]中就行了。
当onedrive-D作为守护进程在后台运行时你会在桌面状态栏中看到OneDrive图标如下图所示。每当同步更新被触发你就会看到一个桌面通知。
![](https://farm4.staticflickr.com/3924/14290119448_3b1144db77.jpg)
要注意的是根据作者所言onedrive-d仍在积极开发中。这并不能用于任何形式的生产环境。如果您遇到任何bug请随时提交一份[bug报告][4]。你的贡献,笔者将不胜感激。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/06/sync-microsoft-onedrive-linux.html
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/go/onedrive
[2]:http://xybu.me/projects/onedrive-d/
[3]:http://xmodulo.com/2013/12/start-program-automatically-linux-desktop.html
[4]:https://github.com/xybu92/onedrive-d/issues?state=open

View File

@@ -0,0 +1,39 @@
开源多媒体转换器Curlew 0.1.22.3发布了
================================================================================
![Curlew interface](http://i1-news.softpedia-static.com/images/news2/Open-Source-Multimedia-Converter-Curlew-0-1-22-3-Is-Out-448028-2.jpg)
**Curlew是linux下的一款容易使用,开源多媒体转换器,现在的版本是0.1.22.3。**
Curlew可以转换超过100种不同的格式、显示文件的详细信息、转换预览、插入字幕等等。
此次更新包括:该软件打开时会记住上次的窗口大小和位置、增加了丢失了的对话框图标、在系统挂起前会主动同步文件系统。
这个程序需要的依赖环境包括Python 2.7及其以上 但是不兼容3.x、python-gobject 3.0、gir1.2-gtk 3.0、 ffmpeg 0.8、libav-tools 0.8、 mencoder、libavcodec-extra、xdg-utils和mediainfo等。
来自noobslab.com的兄弟们提供一种通过PPA来简单地安装这个应用的方法。你要做的是在命令行下输入少量的命令你需要有root权限才行
sudo add-apt-repository ppa:noobslab/apps
sudo apt-get update
sudo apt-get install curlew
查看官方[更新日志][1]来获取完整的特性与更新列表。
你可以下载Curlew 0.1.22.3 的软件包:
- [Ubuntu 14.04 DEB ALL][2][ubuntu_deb] [172 KB]
- [tar.gz][3][sources] [152 KB]
记住这是一个开发版因此不应该安装在生产机器上。它只用于测试。
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/Open-Source-Multimedia-Converter-Curlew-0-1-22-3-Is-Out-448028.shtml
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://gtk-apps.org/content/show.php/Curlew?content=155664
[2]:http://sourceforge.net/projects/curlew/files/curlew-0.1.22.3/curlew_0.1.22.3ubuntu14.04_all.deb/download
[3]:http://sourceforge.net/projects/curlew/files/curlew-0.1.22.3/curlew-0.1.22.3.tar.gz/download

View File

@@ -0,0 +1,94 @@
性能基准测试KVM大战Xen
================================================================================
在上周,我们对 KVM 和 Xen 近几年里在性能上的改进进行了一些有趣的探讨后,我打算自己做一些这方面的小研究。我能找到的最新的资料,是来自[2013年 Phoronix Haswell 性能评测][1]上的基准测试。当然,还有[其它一些2011年的评测][2],不过由于 Xen 被收录进 Kernel 3.0,它们都已被热烈地讨论过。
2011年的测试提供了[许多很好的基准报表][3],在三年后的现在,我尽最大努力把它们列出的属性重新测试一遍。但我删减了其中两三个基准测试,原因是它们在未经特定优化的配置后跑出来的数据不是很好,或者它们需要跑很长时间才能得到结果。
### 测试环境 ###
测试环境由两台一模一样的超微服务器组成,分别都配备一颗[Intel 至强 E3-1220][4]4核3.10GHz24G 金士顿 DDR3 内存4块西数 RE-3 160G 磁盘(组成 RAID10 阵列)。另外 BIOS 也是一模一样。
所有测试项目(即实体机和虚拟机)都在 Fedora 20 (开 SELinux上进行并且测试过程中几乎没有运行的不相关的服务。这里列一下相关服务的版本
- Kernel: 3.14.8
- For KVM: qemu-kvm 1.6.2
- For Xen: xen 4.3.2
根文件系统都是使用默认配置的 XFS。虚拟机使用 virt-manager 来创建virt-mamager 也使用默认配置)。虚拟磁盘使用 raw 镜像,容量为 8GB虚拟4颗 CPU。Xen 虚拟机使用 [PVHVM][5] 建立虚拟磁盘。
### 附加说明 ###
也许有人会考虑到 Fedora 是红帽公司所有,红帽一直在维护 KVM而 Xen 则自从[在2009年红帽重新选择 KVM 作为虚拟化产品][6]后,再没得到这个公司的重要改进。我将这个因素排除在了测试所考虑的范围之外,不过仍然可以在心里稍微注意一下。
并且,资源竞争产生的影响也有被严格控制并最小化。在大多数虚拟服务器上,你可以跑多个虚拟机,而这些虚拟机会争用 CPU 时间片、磁盘 IO、网络带宽等等资源。在本测试中也不考虑这些因素。一台虚拟机抢到资源少性能就差而另一台抢得多性能就好LCTT译注它们的性能总和就可以大致当作是 KVM 或 Xen 的性能了)。
本测试运行在 Intel 的 CPU 上。如果使用的是 AMD 或 ARM可能有些数据会不一样。
### 结果 ###
本测试使用裸机作为虚拟服务测试的基准设备。在不跑虚拟机的情况下两台裸机的性能偏差不会大于0.51%
在几乎所有测试中KVM 的性能相比宿主机而言下降了1.5%以内,只有两项测试例外。第一个是 7-zip 压缩,比宿主机慢了 2.79%。第二个就奇怪了,我们搭了一个邮件服务器,用 PostMark 测试其性能,结果表明 KVM 竟比宿主机快了4.11%。然后我在两台服务器中重新跑了几遍 PostMark 测试结果性能差异基本不变浮动都在最初测试结果的1%以内。由于我对 virtio 的内部机制没有很深的理解,我只能在以后再对这个怪现象进行进一步了解。
Xen 的性能相对宿主机而言差异就比较大了。有3项测试性能下降在2.5%以内,剩下的性能下降率都是 KVM 的24倍。PostMark 测试的性能比 KVM 慢了14.41%这结果令我大吃一惊。重新跑了下测试性能差还是几乎不变浮动都在最初结果的2%以内。KVM 表现最好的 CPU 测试MAFFT 对齐测试,是 Xen 表现倒数第二差的。
现在奉上一个简短得总结表:
<table id="tablepress-3" class="tablepress tablepress-id-3 dataTable">
<thead>
<tr class="row-1 odd" role="row"><th class="column-1 sorting" role="columnheader" tabindex="0" aria-controls="tablepress-3" rowspan="1" colspan="1" aria-label="&amp;nbsp;: activate to sort column ascending" style="width: 261px;"><div>&nbsp;</div></th><th class="column-2 sorting" role="columnheader" tabindex="0" aria-controls="tablepress-3" rowspan="1" colspan="1" aria-label="Best Value: activate to sort column ascending" style="width: 124px;"><div>Best Value</div></th><th class="column-3 sorting" role="columnheader" tabindex="0" aria-controls="tablepress-3" rowspan="1" colspan="1" aria-label="Bare Metal: activate to sort column ascending" style="width: 124px;"><div>Bare Metal</div></th><th class="column-4 sorting" role="columnheader" tabindex="0" aria-controls="tablepress-3" rowspan="1" colspan="1" aria-label="KVM: activate to sort column ascending" style="width: 85px;"><div>KVM</div></th><th class="column-5 sorting" role="columnheader" tabindex="0" aria-controls="tablepress-3" rowspan="1" colspan="1" aria-label="Xen: activate to sort column ascending" style="width: 66px;"><div>Xen</div></th></tr>
</thead>
<tbody class="row-hover" role="alert" aria-live="polite" aria-relevant="all"><tr class="row-2 even">
<td class="column-1 ">C-Ray</td><td class="column-2 ">lower</td><td class="column-3 ">35.35</td><td class="column-4 ">35.66</td><td class="column-5 ">36.13</td>
</tr><tr class="row-3 odd">
<td class="column-1 ">POV-Ray</td><td class="column-2 ">lower</td><td class="column-3 ">230.02</td><td class="column-4 ">232.44</td><td class="column-5 ">235.89</td>
</tr><tr class="row-4 even">
<td class="column-1 ">Smallpt</td><td class="column-2 ">lower</td><td class="column-3 ">160</td><td class="column-4 ">162</td><td class="column-5 ">167.5</td>
</tr><tr class="row-5 odd">
<td class="column-1 ">John the Ripper (Blowfish)</td><td class="column-2 ">higher</td><td class="column-3 ">3026</td><td class="column-4 ">2991.5</td><td class="column-5 ">2856</td>
</tr><tr class="row-6 even">
<td class="column-1 ">John the Ripper (DES)</td><td class="column-2 ">higher</td><td class="column-3 ">7374833.5</td><td class="column-4 ">7271833.5</td><td class="column-5 ">6911167</td>
</tr><tr class="row-7 odd">
<td class="column-1 ">John the Ripper (MD5)</td><td class="column-2 ">higher</td><td class="column-3 ">49548</td><td class="column-4 ">48899.5</td><td class="column-5 ">46653.5</td>
</tr><tr class="row-8 even">
<td class="column-1 ">OpenSSL</td><td class="column-2 ">higher</td><td class="column-3 ">397.68</td><td class="column-4 ">393.95</td><td class="column-5 ">388.25</td>
</tr><tr class="row-9 odd">
<td class="column-1 ">7-Zip</td><td class="column-2 ">higher</td><td class="column-3 ">12467.5</td><td class="column-4 ">12129.5</td><td class="column-5 ">11879</td>
</tr><tr class="row-10 even">
<td class="column-1 ">Timed MAFFT Alignment</td><td class="column-2 ">lower</td><td class="column-3 ">7.78</td><td class="column-4 ">7.795</td><td class="column-5 ">8.42</td>
</tr><tr class="row-11 odd">
<td class="column-1 ">CLOMP</td><td class="column-2 ">higher</td><td class="column-3 ">3.3</td><td class="column-4 ">3.285</td><td class="column-5 ">3.125</td>
</tr><tr class="row-12 even">
<td class="column-1 ">PostMark</td><td class="column-2 ">higher</td><td class="column-3 ">3667</td><td class="column-4 ">3824</td><td class="column-5 ">3205</td>
</tr></tbody></table>
如果需要完整数据,请查看[Goole Docs 电子表格][7]。
### 结论 ###
基于上面的测试环境KVM 的性能损耗几乎都在2以内Xen 则在十多项测试中有3项损耗在2.5以内而其他几项损耗都在5~7%之间。虽然 KVM 在 PostMark 测试中性能表现优异,但这是众多测试中仅有的一项 I/O 测试,如果想证明 KVM 确实在 I/O 处理方面很强悍,就需要更多测试。
对我来说,我想要深入了解一下 KVM 和 Xen 在 I/O 方面的处理,以及它们之间为什么会有这么大的差别。我也许还会跑一些有竞争的测试,来看看虚拟机在有压力的条件下是否真的能比宿主机表现得更出色。
我鼓励读者通过使用[Phoronix 测试套件][8]来进行一些基准测试,你们可以找到一些能模仿你们工作环境的用例。如果你的工作环境是低 CPU 高 I/O你可以找找套件里面的 I/O 压力测试。另一方面,如果你的工作是音频、视频转码,你可以试试套件里面的 x264 或 mp3 测试。
更新:[Chris Behrens 指出][9],我忘了提到 Xen 虚拟机类型了。这里补充下,我使用的是 PVHVM 模型LCTT译注目前支持的模型包括 PV、HVM 和 PVHVM因为在 Xen 4.3 中这个选拥有最好的性能。另外需要注意的是在 Xen 4.4 中可以使用 PVH但是在 Fedora 20 中还没有使用 Xen 4.4。
--------------------------------------------------------------------------------
via: http://major.io/2014/06/22/performance-benchmarks-kvm-vs-xen/
译者:[bazz2](https://github.com/bazz2) 校对:[ReiNoir](https://github.com/reinoir)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.phoronix.com/scan.php?page=article&item=intel_haswell_virtualization&num=1
[2]:http://blog.xen.org/index.php/2011/11/29/baremetal-vs-xen-vs-kvm-redux/
[3]:http://blog.xen.org/wp-content/uploads/2011/11/overview.png
[4]:http://ark.intel.com/products/52269/Intel-Xeon-Processor-E3-1220-8M-Cache-3_10-GHz?q=e3-1220
[5]:http://wiki.xen.org/wiki/Xen_Linux_PV_on_HVM_drivers
[6]:http://www.infoworld.com/d/virtualization/red-hat-releases-first-kvm-support-rhel-54-376
[7]:https://docs.google.com/spreadsheets/d/1kmudbOjCDUgfw76b8qP2GqNqF1ddlTOKyOjc0GmNOIE/edit?usp=sharing
[8]:http://www.phoronix-test-suite.com/
[9]:https://twitter.com/comstud/status/480785742730252288

View File

@@ -0,0 +1,41 @@
超算TOP 500的计算性能仍然保持在 33.86 千万亿次/秒
--------------------------------------------------------------------------------
天河2号一年以前第一次跳上世界超算舞台拥有了当时世界上最强计算机的皇冠。当时天河2号被评测为 33.86 petaflops (千万亿次/秒)。
整整一年后天河-2 性能指数仍旧保持不变,它仍然坐在世界上最强超级计算机的头把交椅上。
![](http://www.serverwatch.com/imagesvr_ce/7184/icon-titan-r.jpg)
在 2013 年 6 月时,世界上第二快的超级计算机是安置于美国能源部橡树岭国家实验室的 Cray Titan。一年前Titan可飙至 17.59 petaflops。Titan的优秀表现正如同天河-2一样 到了2014 年 6 月仍然保持住了他的地位。
事实上,在最近的一年中,世界上顶尖的前 10 超级计算机的性能排名几乎没有任何改变,至少根据世界超算 500 强名单来看是这样的。
如果看看名单底部在超算排行榜的第500名是德国Deutcher Wetterdienst 的Cray XC30 ,其性能已经逼近 133.7 teraflops (万亿次/秒)。
TOP500 网站[指出][1]"最新名单上的最后的一个系统其实以前处在20年前世界 500 强排行榜中384位"。"这说明这二十年中列表变化不大。
再次,列表有 85.4%的超级计算机都是英特尔芯片占主导地位的,而 IBM Power 处理器拥有 8%的市场份额。AMD 的占有率目前仅为 6%。
就芯片架构来说53.6%的超算都使用 8 个或更多核心的CPU 13.4%的超算则是 10 个或更多的核心的CPU。
再来看看网络互联Infiniband和以太网拆分了整个市场。在 2014 年 6 月名单上Infiniband占据了系统的 44.4%。
相比之下,据报道千兆以太网有 25.4%的市场份额, 万兆以太网拥有 15%,合计占以太网整体份额的 40.4%。
惠普和 IBM 再次占领了超级计算供应商的列表。惠普现在占有 36.4%的份额,而 IBM 占有 35.2%。Cray 排名降低位列第三占有10.2%的市场份额。
虽然在世界前 500 的超级计算机榜单排名里面硬件供应商们芯片体系架构核心数量和互联方式竞争激烈但是在选择操作系统的时候毫无疑问的是97%的超算都安装了linux操作系统即top500超算榜单上的485个超算都安装了linux系统。
--------------------------------------------------------------------------------
via: http://www.serverwatch.com/server-news/top500-supercomputer-remains-stuck-at-33.86-petaflops.html
译者:[owen-carter](https://github.com/owen-carter) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://top500.org/blog/lists/2014/06/press-release/

View File

@@ -0,0 +1,201 @@
Betty通过大白话执行Linux命令
================================================================================
**Betty** 是一个将类英语短语翻译成Linux命令的开源工具。这个项目的主要目的是让大家可以通过输入自然语言来使用强大的Linux系统。让我们来看一下它是怎么工作的。
### 安装 ###
Betty的安装非常简单直接。首先确认你已经安装了下面这些依赖包[LCTT译注需要安装至少Ruby1.9以上版本]。
#### 对于基于Debian的系统####
sudo apt-get install git curl ruby
####对于基于RPM的系统####
yum install git curl ruby
现在用git工具把Betty库clone到你自定义的任何路径。这里我克隆到我的home目录**例如 /home/sk/**.
git clone https://github.com/pickhardt/betty
添加betty的别名到你的bashrc配置文件。
sudo nano ~/.bashrc
将下列行添加到文件的末尾:
alias betty="/home/sk/betty/main.rb"
确保你已经正确地设置好了betty的路径。
好了现在是时候和betty好好地玩耍了。
### 用法 ###
你应该在英语短语之前加上单词“betty” [LCTT译注你自然可以用你的小甜心的名字来替换这个不是知道是谁的Betty :>]。你也许已经知道,如果我们想知道在系统中我们的用户名,应该运行下面的命令:
whoami
输出是这样的:
sk
如你所见,我当前登录的用户名是 **sk**. 现在我也可以通过下面的betty命令获取相同的结果。
betty whats my username
输出是这样的:
Betty: Running whoami
sk
真的好酷是不是Betty理解我输入的“whats my username”短语然后运行“whoami”命令最后输出结果。
让我们也来看其他命令。
如果你的输入不够准确Betty也能以多种方式回应你。例如我们运行下面的命令
betty whats my name
Betty不确定她应该查找系统用户名还是用户全名。这种情况下她会询问你多个问题来找到准确的结果。如你下面所见Betty问我想要运行哪一条命令whoami 还是 finger $(whoami) | sed 's/.*:*//;q')[LCTT译注需要你的系统已经安装finger]。我只想知道我的用户名,所以我选择数字**1**。
Betty: Okay, I have multiple ways to respond.
Betty: Enter the number of the command you want me to run, or N (no) if you don't want me to run any.
[1] whoami
Gets your system username.
[2] finger $(whoami) | sed 's/.*: *//;q'
Gets your full name.
1
Betty: Running whoami
sk
### 压缩和解压缩文件夹 ###
如果你想要压缩一个文件或者文件夹用下面的命令。例如我想压缩我home目录下的“test”文件夹。
betty compress test/ test.tar.gz
输出是这样的:
Betty: Running tar -czvf test.tar.gz test/
test/
test/home/
test/home/sk/
test/home/sk/test/
test/home/sk/test/sample
类似的,我们可以用下面的命令来解压缩一个归档文件。
betty uncompress test.tar.gz
输出是这样的:
Betty: Running mkdir test && tar -zxvf test.tar.gz -C test
test/
test/home/
test/home/sk/
test/home/sk/test/
test/home/sk/test/sample
### 完整的Betty命令行列表 ###
Betty工具有一些命令格式。如果你输入“what is my user name”而不是“whats my username”它是不能识别的。所以你只能输入Betty支持的英语短语。
下面给出一个Betty支持的完整的命令行列表。
Count:
betty how many words are in this directory
betty how many characters are in myfile.py
betty count lines in this folder
(Note that there's many ways to say more or less the same thing.)
Config:
betty change your name to Joe
betty speak to me
betty stop speaking to me
Datetime:
betty what time is it
betty what is todays date
betty what month is it
betty whats today
Find:
betty find me all files that contain california
Internet:
betty download http://www.mysite.com/something.tar.gz to something.tar.gz
betty uncompress something.tar.gz
betty unarchive something.tar.gz to somedir
(You can use unzip, unarchive, untar, uncompress, and expand interchangeably.)
betty compress /path/to/dir
iTunes:
betty mute itunes
betty unmute itunes
betty pause the music
betty resume itunes
betty stop my music
betty next song
betty prev track
betty what song is playing
(Note that the words song, track, music, etc. are interchangeable)
Fun:
betty go crazy
betty whats the meaning of life
...and more that are left for you to discover!
Map:
betty show me a map of mountain view
Meta:
betty what version are you (or just betty version)
betty whats your github again
Permissions:
betty give me permission to this directory
betty give anotheruser ownership of myfile.txt
Process:
betty show me all processes by root containing grep
betty show me all my processes containing netbio
Sizes:
betty show size for myfile.txt
Spotify:
betty play spotify
betty pause spotify
betty next spotify
betty previous spotify
User:
betty whats my username
betty whats my real name
betty whats my ip address
betty who else is logged in
betty whats my version of ruby
Web queries:
betty turn web on
betty please tell me what is the weather like in London
对Linux初级使用者来说Betty似乎是一个非常nice的工具。希望这个工具对你也会非常有用。
Cheers!
源代码:
- [Betty Homepage][1]
--------------------------------------------------------------------------------
via: http://www.unixmen.com/betty-translate-english-phrases-linux-commands/
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://github.com/pickhardt/betty

View File

@@ -0,0 +1,203 @@
在Ubuntu下如何创建远程".deb"包仓库
================================================================================
**Reprepro**是一款小巧的命令行工具来方便地创建并管理**.deb**仓库。今天我们会展示给你如何使用reprepro简单地创建一个Debian包仓库并使用**rsync**上传到Sourceforge.net。
![Create Deb Package Repository](http://www.tecmint.com/wp-content/uploads/2014/06/Create-Debian-Package-Repository1.png)
### 步骤 1: 安装Reprepro并生成key ###
首先安装所有需要的包使用下面的apt-get命令。
$ sudo apt-get install reprepro gnupg
现在你需要使用gnupg生成一个gpg key这里使用下面的命令。
$ gpg --gen-key
它会询问你一些问题比如你想要哪种key、key的有效期、如果你不知道如何回答只需点击**回车** 来选择默认选项(建议)
当然,它会询问你用户名和密码,在脑海中记住这些,因为我们会在之后需要它。
gpg (GnuPG) 1.4.14; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
= key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) Y
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Real name: ravisaive
Email address: tecmint.com@gmail.com
Comment: tecmint
You selected this USER-ID:
"Ravi Saive (tecmint) <tecmint.com@gmail.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++
gpg: key 2EB446DD marked as ultimately trusted
public and secret key created and signed.
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
pub 2048R/2EB446DD 2014-06-24
Key fingerprint = D222 B1C9 342E 5911 02B1 9147 3BD6 7918 2EB4 46DD
uid Ravi Saive (tecmint) <tecmint.com@gmail.com>
sub 2048R/7EF2F750 2014-06-24
现在你的key已经生成了要检查一下用root权限运行这条命令。
$ sudo gpg --list-keys
#### 示例输出 ####
/home/ravisaive/.gnupg/pubring.gpg
----------------------------------
pub 2048R/2EB446DD 2014-06-24
uid ravisaive (tecmint) <tecmint.com@gmail.com>
sub 2048R/7EF2F750 2014-06-24
### 步骤 2: 创建一个包仓库并导出key ###
我们现在要开始创建仓库,首先你需要创建一些文件夹,我们的仓库会放在**/var/www/apt**目录,让我们先创建这些目录。
$ sudo su
# cd /var/www
# mkdir apt
# mkdir -p ./apt/incoming
# mkdir -p ./apt/conf
# mkdir -p ./apt/key
你现在需要将key导出到仓库文件夹运行
# gpg --armor --export username yourmail@mail.com >> /var/www/apt/key/deb.gpg.key
注意用你之前步骤中输入的用户名代替username用你的email代替上面的yourmail@mail.com。
我们需要在**/var/www/apt/conf**创建一个文件“**distributions**”。
# touch /var/www/apt/conf/distributions
加入下面这几行到distributions这个文件中并保存。
Origin: (你的名字)
Label: (库的名字)
Suite: (stable 或 unstable)
Codename: (发布的代码名,比如 trusty)
Version: (发布的版本,比如 14.04)
Architectures: (软件包所支持的架构, 比如 i386 或 amd64)
Components: (包含的部件,比如 main restricted universe multiverse)
Description: (描述)
SignWith: yes
接下来我们会创建仓库树,运行这些命令:
# reprepro --ask-passphrase -Vb /var/www/apt export
#### 示例输出 ####
Created directory "/var/www/apt/db"
Exporting Trusty...
Created directory "/var/www/apt/dists"
Created directory "/var/www/apt/dists/Trusty"
Created directory "/var/www/apt/dists/Trusty/universe"
Created directory "/var/www/apt/dists/Trusty/universe/binary-i386"
FF5097B479C8220C ravisaive (tecmint) <tecmint.com@gmail.com> needs a passphrase
Please enter passphrase:
Successfully created '/var/www/apt/dists/Trusty/Release.gpg.new'
FF5097B479C8220C ravisaive (tecmint) <tecmint.com@gmail.com> needs a passphrase
Please enter passphrase:
Successfully created '/var/www/apt/dists/Trusty/InRelease.new'
### 步骤 3: 在新创建的仓库中加入包 ###
现在准备你的**.deb**包来加入到仓库中。进入 **/var/www/apt**目录,你每次要加包的时候都必须这么做。
# cd /var/www/apt
# reprepro --ask-passphrase -Vb . includedeb Trusty /home/ravisaive/packages.deb
**注意**:用你在distributions文件中输入的仓库代号来代替**trusty** ,并且用包的路径替换**/home/username/package.deb**,你会被要求输入密码。
#### 示例输出####
/home/ravisaive/packages.deb : component guessed as 'universe'
Created directory "./pool"
Created directory "./pool/universe"
Created directory "./pool/universe/o"
Created directory "./pool/universe/o/ojuba-personal-lock"
Exporting indices...
FF5097B479C8220C ravisaive (tecmint) <tecmint.com@gmail.com> needs a passphrase
Please enter passphrase:
Successfully created './dists/Trusty/Release.gpg.new'
FF5097B479C8220C ravisaive (tecmint) <tecmint.com@gmail.com> needs a passphrase
Please enter passphrase:
Successfully created './dists/Trusty/InRelease.new'
你的包已经加入了仓库,如果要移除它的话采用如下命令:
# reprepro --ask-passphrase -Vb /var/www/apt remove trusty package.deb
当然你需要用你的包名与仓库代号来修改命令。
### 步骤 4: 上传仓库到Sourceforge.net ###
要上传仓库到**Sourceforge.net**,你当然需要一个可用的账号与一个可用的项目,让我假设你想要上传仓库到**http://sourceforge.net/projects/myfoo/testrepository**这里的myfoo是项目名UNIX上的名称不是URL不是标题testrepository是你想要上传文件到这上面的目录这里我们会使用[rsync 命令][1]。LCTT译注当然你也可以上传到其它的支持Http/Rsync的服务器上以提供远程软件库的服务。
# rsync -avP -e ssh /var/www/apt/ username@frs.sourceforge.net:/home/frs/project/myfoo/testrepository/
**注意**用你在sourceforge.net上的用户名代替username用你的项目的UNIX名称代替myfoo用你想要存储的文件夹代替testrepository。
现在你的仓库包括设置和key等等上传到了**http://sourceforge.net/projects/myfoo/testrepository**。
要把它加入到一个已装好的系统首先你需要导入仓库key它实际上就是**/var/www/apt/key/deb.gpg.key**但是这是一个本地路径使用你的仓库的其它用户不能添加到他们的系统中这就是为什么我们要导入来自sourceforge.net的key的原因。
$ sudo su
# wget -O - http://sourceforge.net/projects/myfoo/testrepository/apt/key/deb.gpg.key | apt-key add -
你现在可以非常轻松地把仓库加入到系统中了,打开**/etc/apt/sources.list**,并加入下面这行:
deb http://sourceforge.net/projects/myfoo/testrepository/apt/key/deb.gpg.key trusty main
**Note**用你的项目的UNIX类型名称代替myfoo用你的仓库代码代替trusty用你上传存储的文件夹代替testrepository用你在distributionsj加入的仓库组件代替main。
接下来,运行下面的命令来更新仓库列表。
$ sudo apt-get update
**祝贺你**! 你的软件仓库已经激活了!你现在可以非常简单地在你需要的时候安装包了。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/create-deb-pacakge-repository-in-ubuntu/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/

View File

@@ -0,0 +1,57 @@
RHEL 7值得注意的5个新特性
================================================================================
> RHEL 7 支持Docker容器systemd兼容微软的身份管理和支持高达500TB的XFS文件系统。
![](http://www.infoworld.com/sites/infoworld.com/files/media/image/140.jpg)
在前一个主版本发布3年之后经过至少6个月的[公开测试][1]RHELRed Hat Enterprise Linux版本7终于发布了。这次更新表明了红帽子公司对于在RHEL中添加最新的以企业和数据为中心的特性的兴趣。这里列举了其中5个最吸引人眼球的新特性。
### 1. Docker ###
RHEL 7中最大的新特性就是[紧密集成][2]了广受欢迎的应用程序虚拟化技术[Docker][3]。随着[Docker 1.0发布][4]把它集成到RHEL 7里正是恰逢其时。
用Docker包装的应用程序可以独立于操作系统所以它们可以在操作系统之间移植并且正常运行。RHEL 7打算尽可能高效地使用Docker以防止应用程序竞争资源或者为使用哪种运行时环境而困惑。
从RHEL的Docker路线图上的长期计划表来看这可能会超越操作系统本身发展成一系列的Docker容器它可以支持用最小的开销部署一个系统。这个被称为"[Atomic项目][5]"的计划还处于早期阶段红帽公司准备首先将它部署在他的Fedora Linux发行版仅仅当做对前沿技术的测试。
### 2. Systemd ###
引入systemd进程管理器可能引起系统管理员和Linux专家之间激烈的争论。systemd就被开发用于替代自专用Unix出现以来就在使用的init系统它使得启动过程中装载服务更加高效。
因为systemd可能会带来一些不适红帽公司没有马上在RHEL上使用systemd。早在2010发布的Fedora版本15就已经包含了systemd作为默认项目这给了红帽公司一次很好的了解systemd在真实世界的运行的经验。同样systemd也没有孤立地加入RHEL 7而是作为这个OS大计划的一部分。例如红帽公司希望通过使用systemd加强对RHEL 7中Docker容器的支持。
### 3. 默认使用 XFS ###
第3个主要的改变是使XFS成为RHEL默认的文件系统尽管这可能不那么引人瞩目。
最初由Silicon Graphics International硅谷图形公司创建的XFS在Linux系统上用做生产环境已经很长时间了。在RHEL 7上它将支持高达500TB的文件系统。RHEL 6默认使用ext4尽管它有XFS选项。红帽子的竞争对手Suse Linux [也支持XFS][6],尽管它安装时[默认使用ext3][7]。
非常不幸的是没有真正的方法可以将RHEL目前使用的其他文件系统比如ext4或者btrfs移植到XFS。只能备份然后重建来进行移植
### 4. 兼容微软的身份管理 ###
就算是那些不是微软系统粉丝的管理员也对微软目录服务保持一定的尊重。RHEL 7添加了两个关键的特性以优化处理微软目录服务AD的方式。跨域认证现在可以在RHEL 7和微软目录服务之间建立所以目录服务用户可以直接访问Linux侧的资源不需要再进行一次登录。RHEL 7另一个目录服务相关的附加特性是基于DNS信息自动发现和加入目录服务或者其他红帽子认证服务
### 5. 性能监控PCPPerformance Co-Pilot ###
进行性能调整的时候看不到实时数据就像是开着一辆挡风玻璃被刷上了油漆的车所以RHEL 7添加了一个新的性能监控系统PCP([Performance Co-Pilot][8])PCP最初由Silicon Graphics International硅谷图形[创建][9]但是现在它是RHEL 7的一部分。除了监控和记录系统状态PCP还为其他子系统提供获取数据的API和工具集比如正如你猜到的刚刚介绍的systemd。
遵循这个思路另一个次要的附加特性新的性能配置文件。RHEL 6已经有符合特殊应用场景的调整RHEL的配置文件。RHEL 7不仅默认有一个新的性能最大化的配置文件而且包含另一个新的平衡性能表现和能源消耗的配置文件。
-------------------------------------------------------------------------------
via:http://www.infoworld.com/t/linux/keep-eye-these-5-new-features-in-rhel-7-244023
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.infoworld.com/t/linux/red-hat-enterprise-linux-7-beta-now-available-232520
[2]:http://www.infoworld.com/t/application-virtualization/red-hat-fast-tracks-docker-apps-enterprise-linux-238122
[3]:http://www.infoworld.com/t/application-virtualization/docker-unleashed-app-portability-gets-boost-231716
[4]:http://www.infoworld.com/d/application-development/review-docker-10-ready-prime-time-243935
[5]:http://www.projectatomic.io/
[6]:https://www.suse.com/products/server/technical-information/
[7]:https://www.suse.com/products/server/technical-information/
[8]:http://developerblog.redhat.com/2013/11/19/exploratory-performance-pcp/
[9]:http://oss.sgi.com/projects/pcp/index.html

View File

@@ -0,0 +1,58 @@
编程的乐趣:快速终止!
================================================================================
![](http://www.opensourceforu.com/wp-content/uploads/2011/12/fail-350x262.jpg)
> 当软件出现问题的时候,它应该以一种很容易引起注意的方式马上终止。这种“快速终止”的方式值得借鉴,我们会在这期专栏里谈谈这个重要的概念。
一开始“快速终止”看上去是一种会影响可靠性的不好的实践——为什么一个系统在还可以继续运行的时候要崩溃或者说终止对于这个我们需要理解快速终止是和Heisenbugs对于不易复现bug的一种称呼紧密联系在一起的。
考虑一下Bohrbugs对于能够重现的bug的一种称呼它们在一个给定输入的条件下总是会出现比如访问空指针。这类问题很容易测试、复现并修复。而如今所有有经验的程序员应该都面对过这样的情形导致崩溃的bug在重启软件后就不再出现了。不管花多少时间或努力去重现问题那个bug就是跟我们捉迷藏。这种bug被称为Heisenbugs。
花在寻找、修复和测试Heisenbugs上的努力比起Bohrbugs来说要高出一个数量级。一种避免Heisenbugs的策略是将它们转化为Bohrbugs。怎么做呢预测可能导致Heisenbugs的因素然后尝试将它们变成Bohrbugs。是的这并不简单而且也并不是一定可行但是让我们来看一个能产生效果的特殊例子。
并发编程是Heisenbugs经常出现的一个典范。我们的例子就是一个Java里和并发相关的问题。在遍历一个Java集合的时候一般要求只能通过Iterator的方法对集合进行操作比如remove()方法。而在遍历期间,如果有另一个线程尝试修改底层集合(因为编程时留下的错误),那么底层集合就可能会被破坏(例如,导致不正确的状态)。
类似这种不正确的状态会导致不确定的错误——假如我们幸运的话实际上这很不幸程序可以继续执行而不会崩溃但是却给出错误的结果。这种bug很难重现和修复因为这一类的程序错误都是不确定的。换句话说这是个Heisenbug。
幸运的是Java Iterators会尝试侦测这种并发修改并且当发现时会抛出异常`ConcurrentModificationException`而不是等到最后再出错——那样也是没有任何迹象的。换句话说Java Iterators也遵从了“快速终止”的方法。
如果一个`ConcurrentModificationException`异常在正式版软件中发生了呢根据在Javadoc里对这个异常的说明它“只应该被用于侦测bug”。换句话说`ConcurrentModificationException`只应该在开发阶段监听和修复,而不应该泄漏到正式代码中。
好吧如果正式软件确实发生了这个异常那它当然是软件中的bug应当报告给开发者并修复。至少我们能够知道曾经发生过一次针对底层数据结构的并发修改尝试而这是软件出错的原因而不是让软件产生错误的结果或是以其他现象延后出错这样就很难跟踪到根本原因
“防止崩溃”的途径就意味着开发健壮的代码。一个很好的编写容错代码的例子就是使用断言。很可惜的是,关于断言的使用有大量不必要的公开争论。其中主要的批评点是:它在开发版本中使用,而在发布版中却被关掉的。
不管怎么样这个批评是错误的从来没有说要用断言来替代应该放到发布版软件中的防御式检查代码。例如断言不应该用来检查传递给函数的参数是否为空。相应的应该用一个if语句来检查这个参数是否正确否则的话抛出一个异常或是提前返回来适合上下文。然而断言一般可以用于额外检查代码中所作出的假设这些假设应该一直为真才正常。例如用一个语句来检查在进行了入栈操作后栈应该不是空的例如对“不变量”的检查
所以,快速终止,随时中断,那么你就走在开发更加健壮代码的道路上了。
--------------------------------------------------------------------------------
via:http://www.opensourceforu.com/2011/12/joy-of-programming-fail-fast/
译者:[zpl1025](https://github.com/zpl1025) 校对:[ReiNoir](https://github.com/reinoir)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:
[2]:
[3]:
[4]:
[5]:
[6]:
[7]:
[8]:
[9]:
[10]:
[11]:
[12]:
[13]:
[14]:
[15]:
[16]:
[17]:
[18]:
[19]:
[20]:

View File

@@ -0,0 +1,104 @@
主流搜索引擎闯入Linux命令行世界
================================================================================
LCTT译注这里我们姑且认为您身处能够访问Internet的地方
为什么会有人要从终端搜索互联网上的东西我不清楚这里头可能有许多的原因。但是因为没人要求答案总比没人知道答案少令人失望一点。这里列出了一些流行的搜索引擎的命令行工具可以让你们通过Linux终端来访问它们。
### 1. Google ###
让我们从一个巨头开始吧Bing好吧只是开个玩笑事实上应该是Google。坦白讲你根本不需要使用命令行工具来进行Google搜索。只需要简简单单的一个命令
$ xdg-open https://www.google.com/search?q="[query]"
它会打开网页浏览器,并转到合适的搜索页面。然而,如果你想要的是从终端窗口查看搜索结果,而不是打开什么网页浏览器,那么我推荐你使用[cli-google][1]。它是一个超级老古董了最后一次更新是在2009年但我喜欢它。这是一个简单而直接的应用它会忠实地干好它应该干的事。
安装完cli-google后你就可以开始用它来搜索了它的输出是那样的五彩斑斓。你也可以调整搜索结果的数量和你想要的语言你只需要在终端中敲入
$ google
就可以看到所有的选项了。
![](https://farm6.staticflickr.com/5491/14330385480_91b0e138ee_z.jpg)
### 2. YouTube ###
关于Google有太多的东西要放进列表来。我会尽量简明扼要但绝不会放过该有的。对于许多人而言YouTube是他们快速查找相关内容视频的首选。要在终端中完成此事我则钟情于[mps-youtube][2]。这个软件可以让你在终端中搜索、下载视频创建播放列表以及查看关于视频的评论。安装完mps-youtube后你可以使用下面的命令来启动
$ mpsyt
然后,输入 h 来查看选项。要查看简明用法,你可以像下面这样:
/[query]
来搜索你想知道的一切,然后输入视频的编号来听听它的声音,或者输入:
i [video-number]
来看看相关信息,也可以输入:
d [video-number]
来下载它。如果你觉得光听还不过瘾,这里还有更好玩的:
set player mplayer
set show_video True
现在你可以在另外一个窗口里头用mplayer来播放视频了。
![](https://farm3.staticflickr.com/2925/14517040865_1d54ccce3b_z.jpg)
### 3. 维基百科 ###
与Google一样对于维基百科我也喜欢一个古老的脚本它干的不赖[cliWiki][3]。安装完后,赶紧运行一下看看:
$ cliwiki
然后你就可以输入你想要搜索的内容了。如果有直接匹配的条目终端中就会显示相关页面了。哈输出内容可真够长的建议你还是用less命令来看吧。当然这不是最高效的方法但你的母的只是想要查看与关键词相关的文本那这就是你想要的。
![](https://farm3.staticflickr.com/2903/14330600657_065d26cdf2_z.jpg)
### 4. 海盗湾 ###
现在,让我们聊聊龌龊的东西。网上有很多意想不到的(也许你不觉得)工具,可以帮助你在命令行下查找海盗湾上的种子。而在这其中,[pirate-get][4]是我的最爱。它里面蕴藏了大量的选项,你可以通过下面的命令来发现它们:
$ pirate-get -h
但是还是简单一些吧:
$ pirate-get --color -c [category] [query]
以上命令会返回与查询内容相关的特定搜索类目中的结果,输出结果也是彩色的!那里头,程序会提示你输入你想要的结果的编号,输入后就可以从磁链上下载种子了。简单又容易,仅限于没有版权的资料哦!
![](https://farm4.staticflickr.com/3923/14330448479_ae503561e6_z.jpg)
### 5. Twitter ###
Twitter是迎合潮流的一个很好的搜索引擎。我们已经在[如何在命令行中访问Twitter][5]一文中介绍了它的用法,但是我个人更喜欢[TTYtter][6]。该工具及其强大,它应该有它自身的一席之地,而不再仅仅用于简单搜索了。但在这里,我只想把它当作搜索引擎使用。安装并配置完后,你就可以登陆进去,并使用下面的命令来搜索了:
/search [query]
界面在视觉上有点粗糙,但是你很快会习惯的。注意,这里头只能用普通的文字,也可以用哈希标记。
![](https://farm6.staticflickr.com/5077/14537153013_cc32a98b08_z.jpg)
最后来小结一下吧这里列出了我认为人们使用最多5大搜索引擎这些搜索引擎都可以通过命令行来访问。这里Google图像和Google地图可能缺席了但我想这些可能不能很好适应控制台环境吧。我也想要寻找一个音乐搜索引擎但是没有找到对于本列表“有价值的”。就像你可能已经注意到的那样列表中的工具在功能和选项上是良莠不齐的其中一些很简单而另外一些则功能很复杂。但不管怎么说最后它们都还是完成了它们的任务。
列表中错失了哪些搜索引擎?你还知道哪些没有提到过的工具呢?请在文章评论中告诉我们吧。
----------
#### Adrien Brochard ####
我是一位来自法国的Linux爱好者。在尝试了多个发行版后我最后认可了Archlinux。然而我一直在试着通过积累一些知识和技巧来改善我的系统。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/06/access-popular-search-engines-command-line-linux.html
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://github.com/henux/cli-google
[2]:https://github.com/np1/mps-youtube
[3]:https://github.com/AnirudhBhat/cliWiki.py
[4]:https://github.com/vikstrous/pirate-get
[5]:http://xmodulo.com/2013/12/access-twitter-command-line-linux.html
[6]:http://www.floodgap.com/software/ttytter/

View File

@@ -0,0 +1,49 @@
KDE Connect增加了安卓文件发送、触摸板模拟等功能
================================================================================
![如今的KDE Connect 能在桌面和手机之间共享文件](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/kde-connect-share-feature.jpg)
通过安卓版的KDE和Plasma Desktop可以将所连接设备的触摸屏当作电脑的触摸板使用。(注Plasma 是KDE项目提供的所有图形环境总称。目前有三个Plasma子项目Plasma Desktop用于传统的桌面电脑和笔记本电脑、Plasma Netbook用于上网本以及Plasma Active用于平板电脑。)
这个新附加的无线输入设备可以作为一般的鼠标使用不过仍然不支持像双指划动或双指右击这样的多点触摸。LCTT译注双指右击指在触摸板上双指同时双击代表鼠标右键点击
安卓的共享方式现在支持KED Connect允许你从安卓发送文件到你的桌面也可以通过Dolphin文件管理的菜单或者用命令行推送文件的方式从桌面发送文件到安卓。
在[iOS 8 和 OS X Yosemite][1]、 [Android L 和 Chrome OS][2]上的类似支持,计划在这个秋天首次亮相。
本次更新的版本修复了很多的漏洞包括很多的改进和对FreeBSD系统的支持。
完整的特性如下:
- 在安卓和KDE之间共享文件
- 用平板电脑模拟触摸板
- 在桌面接收来自安卓4.3以上版本的通知
- 共享剪切板支持手机和PC之间的拷贝、粘贴
- 可以遥控桌面上选定的媒体播放器
- 电池状态
- WI-FI连接共享
- RSA加密
### KDE Connect 0.7版下载 ###
从Google Play和F-Droid商店可以免费下载到KDE Connect Android的应用。
- [ 从Google Play下载KDE Connect][3]
为了能用到这些最新特征你需要安装Plasma的最新版本KDE Connect0.7版)。撰写本文时,还没有提供deb安装包和PPA源。不过可以在Kubuntu 14.04 LTS上通过安装源码来安装或用以下介绍方式[戳这里][4]。
- [下载KDE Connect 0.7源代码][5]
--------------------------------------------------------------------------------
点击: http://www.omgubuntu.co.uk/2014/06/kde-connect-android-notifications-linux-desktop
译者:[bookjoy](https://github.com/bookjoy) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.omgubuntu.co.uk/2014/06/os-x-10-10-feature-ubuntu-already
[2]:http://www.omgchrome.com/android-apps-notifications-call-alerts-chromebook/
[3]:https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp
[4]:https://albertvaka.wordpress.com/2014/06/28/awesome-contributions-to-kde-connect/#comment-1175
[5]:http://download.kde.org/unstable/kdeconnect/0.7/src/kdeconnect-kde-0.7.tar.xz.mirrorlist

View File

@@ -0,0 +1,34 @@
Linux 播客软件Vocal进入Beta阶段准备测试
================================================================================
**在四月份我们就被一款叫做['Vocal'][1]的Ubuntu下的播客软件吸引了但它从一个漂亮的草图到能真正可用还有一段路要走而你则可以帮助我们测试一下Vocal。**
该软件的开发者Nathan Dyer已经完成了一个beta版本仍然不够稳定其中还有很多功能也未完成但它已经可以通过专用的PPA在Ubuntu 14.04 LTS以及14.10版本下进行测试了。
新闻的发布者宣称这个beta版本只能**安装在下一代Elementary OS桌面的系统中**。并且自从Elementary OS不再为用户提供官方的Beta预览版后让测试这事更加的麻烦了。
对于Unity、GNOME或者KDE来说试试也许并不太难我想大概。如果你是Ubuntu的用户想要试用Vocal首先得安装不稳定版的Elementary OS的PPA通常我们都不是很建议这样做。
Dyer建议感兴趣的用户等待下一代的Elementary OS桌面的beta版本开发完毕吧。
现在,我们只能望梅止渴了。
![Vocal Beta 在 Elementary OS中 (图: Dyer)](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/vocal-beta.png)
Vocal Beta 在 Elementary OS中(图: Dyer)
因为Vocal是开源的那将没有任何东西能阻挡它被完美的移植到类似Unity的主流Linux桌面系统中。
了解更多请访问[开发者的Blog][1]、[查看最新版本][2]或者在Launchpad.net上[查看Vocal的最新信息][3]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/06/linux-podcast-app-vocal-hits-preview-kicker
译者:[nd0104](https://github.com/nd0104) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.omgubuntu.co.uk/2014/04/vocal-podcast-manager-linux
[2]:http://nathandyer.me/2014/06/28/vocal-beta-released-daily-ppa-available/
[3]:https://launchpad.net/~nathandyer/+archive/vocal-daily
[4]:https://launchpad.net/vocal

View File

@@ -0,0 +1,67 @@
Ubuntu 14.04 LTS: 定制 Unity
================================================================================
虽然Unity桌面管理器自从伴随 Ubuntu 11.10首次发布以来表现出了强劲的性能并在可用性上迈进了一大步但是有人对自定义其外观和行为所带的限制感到反感。我们现在来看看如何自定义Unity让你重拾自己掌控桌面的感觉。
### Unity中的可用定制项目 ###
在ubuntu 14.04中Unity 有一些以前没有的可定制项。登入你的 Unity进入“设置”并选择“显示”你将看到以下画面
![Ubuntu 14.04 LTS Display and Unity Settings](https://linuxacademy.com/blog/wp-content/uploads/2014/06/unitysettings.png)
Ubuntu 14.04 LTS 显示和 Unity 设置
你看到的大多数项目相比 Ubuntu 11.01 而言都是新的,而且一些相比较上一个版本的 Ubuntu13.10 也是新的。从Ubuntu13.10开始Ubuntu加入了可以改变菜单栏和标题栏大小的新特性。
Unity中所特有的一个特性是我们能够打开或者关闭的“粘性边缘”功能它能让你的鼠标停止在多显示器组的每个屏幕的边缘它使光标暂时停在边缘仿佛是鼠标卡住了一样我们可以选择关闭它。LCTT译注其实我觉得挺有用的可以避免无意中切换到其他工作桌面不要关闭
在“设置”中选择“外观”选项,可以看到如下画面。
![Ubuntu 14.04 LTS Appearance and Unity Settings](https://linuxacademy.com/blog/wp-content/uploads/2014/06/unityappearance.png)
Ubuntu 14.04 LTS 显示和Unity设置
这里我们可以看到一个人们最渴望在 Unity 启动器栏中包含的功能-能够改变启动器大小。虽然在Ubuntu 11.10及以后的各种版本中可以通过多种方法实现这个特性但将其放入外观设置中使其显得更加正式。我喜欢它能将启动器图标缩小直至16的功能我们接下来所要讲到的工具仅能支持最小调至24
### Unity Tweak Tool-强大! ###
在Unity首次伴随Ubuntu 11.10发布的几天之内这款工具就跟着出现了只是你得大费周折去自己把它安装好而且在Unity升级时它可能会损坏。
然而现在它被正式添加进了Ubuntu的默认软件仓库并且会在Unity更新时同时更新。它附带大量的定制项那么我们就来安装它吧
sudo apt-get install unity-tweak-tool
安装好,启动后你将看到如下画面:
![Ubuntu 14.04 LTS Official Unity Tweak Tool](https://linuxacademy.com/blog/wp-content/uploads/2014/06/unitytweaktool.png)
正式的Unity Tweak Tool
这款工具它集大量Unity桌面定制项目于一体。这些定制项大多能通过默认的Unity设置命令行操作或者是即使是编辑有时候也很难寻找到的配置文件来实现。
我们可以改变启动器栏网页小程序和面板的行为可以在Unity菜单中搜索等等。所有的都通过着一个工具来实现。花些时间去挖掘适合你的选项-Unity Tweak Tool-学习它和它一起生活爱上它如果你使用Unity这是起码的
### 结尾的一些想法 ###
Ubuntu 14.04 LTS 越来越被人们视作Linux上的典型的Desktop对不起Canonical你还没有摆脱Linux身份Linux Desktop不仅可以作为偶尔使用Linux的那些人的确有这样的事的选择也适用于骨灰级linux专家。
比之前没有工具功能可以定制或是通过配置文件修改定制但是有可能被之后个更新所破坏现在对于Unity桌面我们就拥有了更多的控制权。Unity桌面性能强劲可靠又通过Unity Tweak Tool加入一些特色元素使得它的外观也酷极了!!!
请给我们你的想法或者点击链接发表你对Unity桌面的评论我们将有兴趣知道你是如何使用Ubuntu 14.04 LTS 的。
----------
#### Terrence T. Cox ####
开发者Linux倡导者开源爱好者。 进入这个技术领域很久,被认为经验丰富,但从未感到厌倦。
[Twitter][1]
--------------------------------------------------------------------------------
via: https://linuxacademy.com/blog/linux/ubuntu-14-04-lts-customizing-unity/
译者:[Love-xuan](https://github.com/Love-xuan) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://twitter.com/mourngrymtc/

View File

@@ -0,0 +1,68 @@
命令行星期二 —— 第二篇
================================================================================
Hi极客们
让我们来更新一下我们的记忆。[上周][1]我们学习了一些基础命令了解了shell是什么同时介绍了我们CLI的星期二系列。
今天的菜单将提供点别的东西:通过文件系统导航。
现在,我设法找到最好的图片是从一个叫[devopsbootcamp][2]的网站。你可以在上面找到他们其余的教程。但无论如何这是一个关于Linux根文件系统的看起来非常不错的图。
![Filesys](http://devopsbootcamp.readthedocs.org/en/latest/_images/hierarchy.jpg)
例如,在上面的图片说明中,你的用户目录(你通常用来存储你的电影,音乐,文档等)是位于/home文件夹下。 /home文件夹位于/。然后,/下有个 /etc 文件夹,其中文件大部分为配置文件。无论如何,你可以在这里找到详细的描述,因为我们将进入这些文件夹来了解他们的功能,直到我们开始使用和配置它们。今天是仅用于导航。而关于这一点,让我们来开始今天的第一个命令...
### pwd ###
pwd或者 Print Working Directory当你觉得在文件丛林之中迷失了方向时是一个非常有用的命令。在任何给定时刻键入pwd命令这是你到达这个文件夹的完整路径。在电影《异次元杀阵The Cube》里的那些家伙总在用它这些笨蛋
![Cube](http://bloody-disgusting.com/images/news/cube2review1.gif)
想象一下,自己在一个巨大的公寓里面从一个房间走到另一个房间房间,迷路了。 pwd就像面包屑指引着你到你的出发点这样你就不会在文件夹迷宫里面失去你的方向
![pwd](http://redhat.activeventure.com/73/gettingstartedguide/figs/basics/pwd.png)
### cd ###
现在你学习了如果想知道自己在哪个目录的pwd命令的用法。现在你要做的下一步骤就是移动到另一个目录。比方说你在你的home文件夹下有一个文件夹目录你要将你的绝密的东东放到里面。要这样做你需要使用用'cd'命令。 cdChange Directory将改变所处目录的位置。你怎么使用它呢简单键入cd和你的文件夹路径。比方说例如你想从你的主文件夹进入你的Hello Kitty图片集。你输入cd /home/username/Hello\ Kitty
正如你看到的,我们并没有只使用文件夹名称的空格键。这是因为终端将无法识别它。每当你要导航到它的名称中有空格的文件夹,你**用反斜杠字符,后跟空格**代替它。您也可以不使用反斜杠+空格选项,只是把**整个文件夹名称加引号**例如cd /home/username/ "Hello Kitty"。
![cd](http://blogote.com/wp-content/uploads/2010/06/terminal-cd-desktop.png)
自己尝试一下。使用cd导航到不同的目录同时键入pwd命令看看一切工作是否如期望的那样。
### 肖茨先生的快捷键 ###
肖茨先生提醒我们也有一些可用的快捷键。
如果你仅键入cd不带路径你的终端将从你的工作目录无论是不是切换到你的/home文件夹。
同样地,如果你键入 cd `~user_name` 它会带你到你指定的特定用户的主文件夹。
### 下周 ###
下周,我们将进入到下一章 - 我们将学习如何列出文件和目录,查看文本文件和文件的内容,因此会比之前我们已经学习的有更多的工作,但我希望你将会有足够的时间。一条命令又一条命令,如果你没有时间自己学习的话,那让我们在几个月内一起学习基础知识吧!
同时,记得...
### …玩得开心! ###
P.S.感谢bwl的评论我们修正了一个在目录名称中包含空格的文本的一个错误。
P.P.SGreatEmerald还增加了有关文件层次结构的一些新信息。您可以在[意见][3]中阅读。
感谢你们的贡献和更正
--------------------------------------------------------------------------------
via: https://news.opensuse.org/2014/06/24/command-line-tuesdays-part-two/
译者:[乌龙茶](https://github.com/yechunxiao19) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-3300-1.html
[2]:http://devopsbootcamp.readthedocs.org/
[3]:https://news.opensuse.org/2014/06/24/command-line-tuesdays-part-two/comment-page-1/#comment-99186

View File

@@ -0,0 +1,39 @@
五个超赞的字符艺术生成器!
================================================================================
![](http://www.efytimes.com/admin/useradmin/photo/nin511907PM712014.jpg)
ASCII是一个非常吸引人的字符编码系统在计算机通讯设备以及其他设备中通过它来用代码表示字符。新生代的人可能会觉得它已经过时了但是那些熟悉它的人会懂得ASCII是多么的独特。我们在这里为你准备了五个超赞的ASCII字符艺术生成器。
### 1.[GlassGiant ASCII Art][1] ###
这个小程序可以把图片转换成ASCII文字艺术一堆胡乱堆在一起的文字数字和符号看上去没有任何意义直到你往后站一步去看完整的画面。它也没有什么实际的用途只是看上去非常简洁灵巧。
### 2.[ASCII Art Generator][2] ###
ASCII字符艺术是一种在电脑上把可打印字符作为图片元素来拼接展现一幅图像的艺术活动。你所需要做的只是上传你的图片然后它会帮你转成ASCII字符艺术。
### 3.[Ascii.mastervb][3] ###
ASCII字符艺术来源于7比特ASCII字符标准。ASCII字符艺术曾经在7080年代很流行。在那个时候计算机系统都还是基于字符的。这个程序可以非常快地把图片转换成ASCII字符。
### 4.[IMG2TXT][4] ###
这个脚本可以将GIF,JPG或PNG的链接转换成ASCII字符或是带颜色的HTML。
### 5.[picascii][5] ###
它可以把图片转换成ASCII文本或是HTML。要做转换你只需要输入链接地址或是选择一张你电脑上的图片gif/jpeg/png
--------------------------------------------------------------------------------
via: http://www.efytimes.com/e1/fullnews.asp?edid=142480
译者:[zpl1025](https://github.com/zpl1025) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://glassgiant.com/ascii/
[2]:http://www.ascii-art-generator.org/
[3]:http://ascii.mastervb.net/
[4]:http://www.degraeve.com/img2txt.php
[5]:http://picascii.com/

View File

@@ -0,0 +1,42 @@
[小白技巧]如何在Ubuntu 14.04中添加多个时区时间
================================================================================
如果你需要和多时区时间打交道的话你一定希望你的电脑时钟可以显示多个时区的时间。作为一个移居国外的人我需要关注法国和印度的时间。在Ubuntu系统中你可以进行简易的设置来添加多时区时间。
在这次的使用技巧中,我们会了解到 **如何在Ubuntu 14.04系统中添加多时区时间**
### 在Ubuntu 14.04系统中添加多时区时间 ###
打开系统设置按下标有微软徽标的按键在Dash中搜索“系统设置”进入“时间&日期”选项。
接下来,进入**时钟**标签页,找到**其他时区时间**选项,然后点击**选择地区**按钮。
![Add multiple timezones in Ubuntu](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/Timezone_Ubuntu.jpeg)
在新打开的窗口中,你可以**输入一个地区**,之后相应的结果会在下面显示出来。选择你想添加的地区,然后**点击下面的加号标志(+**来添加。
![Adding timezone in Ubuntu](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/Add_Timezone_Ubuntu.png)
完成了这些工作之后,你就可以在系统时钟处看到其他地区的时间了。
![multiple timezone displayed in Ubuntu 14.04](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/Multiple_Timezones_display_Ubuntu.png)
体验下Ubuntu多时区时钟给你带来的便捷吧。:)
----------
![](http://0.gravatar.com/avatar/20749c268f5d3e4d2c785499eb6a17c0?s=80&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D80&r=G)
#### 关于 Abhishek ####
我叫Abhishek Prakash是It's F.O.S.S的创始人。我获得了通信系统工程硕士学位。我是一个狂野的Linux爱好者和开源痴迷者。我在使用Ubuntu系统并且希望和大家分享知识和经验。出了Linux我还很喜欢经典侦探悬疑电影。我是阿加莎-克里斯蒂的超级粉丝。你可以在[Google Plus][g]上添加我到你的好友圈,也可以[在twitter上关注 @abhishek_pc][t]。
--------------------------------------------------------------------------------
via: http://itsfoss.com/add-multiple-timezones-ubuntu-1404/
译者:[JonathanKang](https://github.com/JonathanKang) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[g]:https://plus.google.com/u/0/110180944531110746460
[t]:https://twitter.com/abhishek_pc

View File

@@ -0,0 +1,112 @@
安装体验开源车载系统Automotive Grade Linux
================================================================================
> Linux基金会和他的合作伙伴本周发布了Automotive Grade Linux的第一个版本这是一个在连网汽车内部使用的开源平台。
![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2014/07/automotivelinux.jpg)
随着本周 [Automotive Grade Linux][1](AGL)的第一个版本的发布这个在物联网时代专为汽车定制的Linux发行版将转变为一个新的生态系统。
AGL是由Linux基金会发起的合作项目Linux基金会汇集了来自汽车行业通信计算硬件学术界和其他领域的合作伙伴。AGL的第一个版本于6月30号发布在网上并且在可[免费下载][5],这个开源操作系统基于[Tizen IVI][4]。Tizen IVI是一个基于Linux的平台它被用于为广泛的设备提供操作系统解决方案从智能手机到电视汽车笔记本电脑。
![](http://automotive.linuxfoundation.org/sites/automotive.linuxfoundation.org/files/features/agl-jlr_0.png)
在第一个版本中AGL提供了一系列的功能和为汽车或其他车辆部署定制的应用程序包括
- 主屏幕
- 仪表盘
- 谷歌地图
- 暖通空调
- 媒体回放
- 新闻阅读器
- 音响控制
- 蓝牙手机
- 智能设备连接集成
Linux基金会和他的参与AGL项目的合作伙伴希望这个解决方案将帮助确保未来“连网汽车”使用开源软件以提供下一代娱乐导航和其他车内使用的工具。“公开和合作是促进一个公共的标准的汽车平台发展的关键以便这个产业可以更快速地实现供连网汽车使用的愿望。”Linux基金会的汽车总经理Dan Cauchy这样说。
Cauchy补充道Linux基金会期望AGL是一个良好的开端其合作者希望在以后的版本中能加入“一些额外的功能和特点。”
## 下载和安装测试 ###
### 下载 ###
可以从此下载镜像http://content.linuxfoundation.org/auto/downloads/images/
支持在PC上测试也提供了Vmware镜像。
### 安装在X86上 ###
**创建一个USB启动盘**
1. 下载GPartd Live 镜像的压缩文件http://gparted.sourceforge.net/download.php 。
2. 使用FAT32文件系统格式化一个最少8GB的U盘。
3. 解压 GPartd Live镜像的压缩包并复制全部内容到U盘。保持完整的目录格式比如你可以确认GPL这个文件是不是在U盘的根目录。
4. 把U盘变成可启动的根据你使用的系统不同而不同
a) Linux: 执行U盘里 utils/linux 目录下的 makeboot.sh 。
b) Windows: 执行U盘里 utils\win32 目录下的 makeboot.bat 。
5. 按 脚本提示执行。
6. 复制 [AGL 演示镜像][6]到U盘。
**安装到机器上**
注意:这会破坏你的机器上的所有数据!所以请确保机器上的硬盘上的数据是无用的。
1. 使用刚刚制作好的 GPartd U盘启动系统。
2. 默认运行 GPartd (所有选项直接回车确认即可)
3. 打开一个终端,并复制镜像内容到机器的硬盘:
gunzip -c agl-demo_1-0.img.gz | dd of=/dev/sda bs=16M
4. 关闭终端。
5. 在 GPartd 窗口,刷新设备。
6. 将 /dev/sda3 的大小扩展到整个硬盘的可用空间。
7. 关机。
8. 拔下U盘。
9. 重启!
### 创建VMware虚拟机 ###
在 64位Windows 7和32位Windows XP上的 VMware Player 5 测试通过。
1. 下载 VMWare Player http://www.vmware.com/products/player
2. 解压缩 [AGL VMWare image][7]
3. 在 VMware 中增加新的虚拟机:
1. 选择“我将稍后安装操作系统”
2. 使用 'Linux' -> 'Fedora'
3. 给个名字,比如: tizen-ivi-2.0
4. 创建一个新的磁盘,不过这个磁盘我们稍后会删除并重建一个新的
(将\<image.vmdk\> 作为 IDE(0:0) 设备添加)
5. 创建好虚拟机之后,然后“编辑虚拟机设置”
6. 可选取消CD/DVD的“启动后连接”的选项除非你的宿主机上有这个设备
7. (可选)取消打印机的“启动后连接”的选项
8. 删除虚拟机当前的硬盘
9. 添加一个新的硬盘
10. 选择“使用已有的虚拟磁盘”,使用那个解压缩得到文件
11. 当第一次启动虚拟机时,如果询问你是否要升级当前格式时,选择“保持现在的格式”
4. 运行:
1. 启动虚拟机
2. 系统启动后显示一个黑屏,在桌面上任何地方右键点击并打开一个终端
3. 运行如下命令
./start_demo.sh
这会调整屏幕分辨率打开声音启动node.js引擎并最终显示界面。
### 更多的演示截图 ###
请参看我们之前的一篇文章http://linux.cn/article-3324-1.html
--------------------------------------------------------------------------------
via: http://thevarguy.com/open-source-application-software-companies/070114/automotive-grade-linux-released-open-source-cars
译者:[linuhap](https://github.com/linuhap) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://automotive.linuxfoundation.org/
[2]:http://linuxfoundation.org/
[3]:http://automotive.linuxfoundation.org/
[4]:https://www.tizen.org/
[5]:http://automotive.linuxfoundation.org/node/add/downloads
[6]:http://content.linuxfoundation.org/auto/downloads/images/agl-demo-x86-1.0.img.gz
[7]:http://content.linuxfoundation.org/auto/downloads/images/agl-demo-vmware-1.0.vmdk.bz2

View File

@@ -0,0 +1,83 @@
命令行星期二 —— 第三篇
================================================================================
今天肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件以及首次介绍一些选项的运用。OK让我们开始学习这周的第一个命令。
### ls ###
ls 是一个用来列出目录内文件的命令。通过添加**选项**来实现多种不同的用途。简单起见,你可以只需键入 ls 。但是,你也可以在命令后面添加一个选项,它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时,这会帮到你的。举例来说,当你要从一个命令的大量输出中找寻指定信息,你可以用选项缩小范围来实现。
这就是选项的基础概念。我们可以用下面书写格式表示:
command(命令) -option(选项) argument(参数)
命令,恩...,我们可以输入 pwd、 ls 或者我们到目前为止所有学过的命令。
以上我们已经阐述了选项的目的。但是我们需要注意一下书写格式:在前头添加一个破折号。所以,如果选项为 l, 你需要在命令后键入**-l**。
**参数**是一个命令的操作对象(在这个例子中,它是一个目录,我们将会学到如何浏览它们)。
接着,让我们尝试在主目录里尝试用 ls 命令列出 /etc 目录内容。这次我们先不添加选项。
![](https://news.opensuse.org/wp-content/uploads/2014/06/Screenshot-30.-06.-2014-184127.png)
就这样,列出了一大堆的文件。它们还根据颜色进行了分类。蓝色的是目录,白色的为普通文件,绿色的似乎是某种 shell 脚本文件。除此之外,还有其他不同的颜色来代表不同的文件类型。
接下来,你可以在刚才的命令里添加 -l 选项。添加选项 -l 后也会列出同样的文件和目录,但是以长格式方式输出。如果你需要查看更多信息的话,这个选项将是不错的选择。
![](https://news.opensuse.org/wp-content/uploads/2014/06/Screenshot-30.-06.-2014-184542.png)
### 长格式 ###
这样,用了长格式后,你可以看到更详细的信息,以及在每行开头类似-rw-r--r-- 令人抓狂的标示。实际上,这只是一种组合,代表了各种意义的信息。
![](https://news.opensuse.org/wp-content/uploads/2014/06/Screenshot-30.-06.-2014-184829.png)
(File Name)就是文件的名称。Modification time是文件最后修改的时间。(Size) 用 byte 计量的文件大小。(Group) 是组的名称,和拥有者一起构成文件权限。(Owner) 是文件拥有者的名称。最最重要的…
###…文件权限 ###
文件权限在长格式每一行的开端都显得非常的杂乱。第一个字符代表文件类型。如果是 'd' , 意味着它是一个目录。如果是 '-' , 意味着它是一个一般文件。接下来的三个字符分别代表拥有者的可读, 可写 ,可执行的权限。再接着三个字符表示组成员的享有的文件权限,而最后三个字符表示其他人(既不是拥有者也不是同组)对文件的享有权限。
例如,如果有个文件在长格式下显示为:-rw-r--r--, 这说明这是个普通文件(首字符 '-'),拥有者享有可读可写权限,但是没有可执行权限,导致拥有者无法执行该文件(首字符'-'后'rw-'),用户组和其他用户只享有可读权限(你不难发现'r--'字段在后面出现了两次 。如果用户组是 'rwx' 而不是 'r-',则意味着它们可读,可写,可执行)。
ls 的下个选项是 ls -la .. -a 它会列出所有的文件,包括隐藏文件。在通常情况下,隐藏文件是不可见的。用长格式列出当前工作目录下的父目录的所有文件。
### less ###
less 是一个可以显示你的文本文件的命令。举例来说,你要在 /etc 下找寻名为 os-release 的文本文件。你可以使用 ls /etc 成功实现,而现在你想要阅读它的内容。
你只需要使用 less /etc/os-release。
![](https://news.opensuse.org/wp-content/uploads/2014/06/Screenshot-30.-06.-2014-190252.png)
..就这样了。
你要如何控制 less 呢?
简单的, 你只需要动动键盘就行了!
less 一次只会显示一个页面的文本。往前翻页你需要按 **Page Up**, 或者 **'b'**。往后翻页你可以按**Page Down**, 或者 **空格**。大写的**G**会跳转到文本的末尾,**1G**会跳转到文本的开端。**/字符**会在文本内搜索指定字符(例如,如果你输入 /suse ,它会找寻所有文本含有的 suse 并标记出来。n 会重复执行你的搜索,**h**会显示所有的选项h即帮助的意思
![](https://news.opensuse.org/wp-content/uploads/2014/06/halp.jpg)
按q退出 less 命令。
### file ###
file 会显示文件的类型,是否是你要找的 ASCII 文本,还是 jpg 图片bash 脚本等。让我们用 /etc/os-release 执行练习。
![](https://news.opensuse.org/wp-content/uploads/2014/06/Screenshot-30.-06.-2014-191402.png)
这样如你所见os-release 是一个 ASCII 文本文件。 请尝试其他文件,并观察结果。
下回见了,记住…
…一定要玩的开心啊!
--------------------------------------------------------------------------------
via: https://news.opensuse.org/2014/07/01/command-line-tuesdays-part-three/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,41 @@
[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型
================================================================================
> **提问**: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型。我该如何检查MySQL数据库表的类型
MySQl主要使用两种存储引擎**MyISAM 和 Innodb**。MyISAM是非事务的因此拥有读取更快然而InnoDB完全支持细颗粒度的事务锁定比如commit/rollback。当你创建一张新的MySQL表时你要选择它的类型也就是存储引擎。如果没有选择你就会使用与预设置的默认引擎。
如果你想要知道已经存在的MySQL数据表的类型这里有几种方法达到。
### 方法一 ###
如果你可以访问phpMyAdmin你可以从phpMyAdmin找出默认的数据库类型。从phpMyAdmin中选中数据库来查看它的表列表。在“Type”一列的下面你会看到每个表的数据表类型。
![](https://farm4.staticflickr.com/3871/14526575875_c1da3d9c7a_z.jpg)
### 方法二 ###
如果你可以直接登录MySQL服务器另外一种鉴别存储引擎的方法是登录MySQL服务器后运行下面的MySQL命令
mysql> SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
上面的命令会显示在'my_database'数据库中'my_table'表的引擎类型。
### 方法三 ###
还有一种检查引擎的方法是使用mysqlshow,是一种命令行下的显示数据库信息的工具。mysqlshow在[MySQL 客户端安装包][1]中有。要使用mysqlshow你需要提供MySQL服务器登录凭据。
下面的命令会显示特定的数据库信息。在“Engine”一列下面你可以看到每个表使用的引擎。
$ mysqlshow -u <mysql_user> -p -i <database-name>
![](https://farm4.staticflickr.com/3845/14340200549_8fbe7ea7b5_z.jpg)
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/check-mysql-storage-engine-type-linux.html
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://xmodulo.com/2013/06/how-to-install-mysql-server-and-client-on-linux.html

View File

@@ -0,0 +1,42 @@
如何用sosreport在Linux上创建诊断信息
================================================================================
**Sosreport**是**RHEL / CentOS**上的一个命令,它会收集**系统配置**和你linux机器上的诊断信息如正在运行的内核版本、加载的模块和系统和服务配置文件之类的信息。这个命令同样可以运行外部的程序来收集更多的信息并存储这些输出到一个结论文档中。
Sosreport在你需要获得redhat的技术支持时需要它。Redhat的支持工程师会要求你服务器上的sosreport来用于故障排除。
要运行sosreport需要安装**sos** 包。sos包是大多是linux的默认安装包中的一部分。如果因为某种原因没有安装那么运行下面的yum命令来安装**sos 包** :
# yum install sos
### 生成报告 ###
打开终端输入sosreport命令
# sosreport
这条命令正常情况下会在**几分钟**里完成。根据本地配置在某些情况下某些选项可能需要更长的时间才能完成。一旦完成sosreport将在**/ tmp目录**目录中生成一个压缩文件。不同版本使用不同的压缩方案(** gzbz2或xz**)。该文件应提供给红帽的支持代表(在开放的情况下通常作为附件)。
**注意**sosreport需要root权限才能运行。
### sosreport命令中不同的选项: ###
sosreport命令有一个**模块化结构**,并允许用户启用和禁用模块,并通过在命令行指定模块。要**列出可用的模块**(插件),请使用以下命令:
# sosreport -l
要禁用一个模块,用逗号隔开的列表传给-n/skip-plugins选项。比如要kvmand 、amd这两个模块
# sosreport -n kvm,amd
各个模块可以通过-k选项提供额外的选项。例如在Red Hat Enterprise Linux 5中安装的sos rpm模块默认收集“rpm -Va”的输出。因为这是个耗时行为因此可以通过下面的命令禁用
# sosreport -k rpm.rpmva=off
--------------------------------------------------------------------------------
via: http://www.linuxtechi.com/how-to-create-sosreport-in-linux/
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,63 @@
怎样把坏的MySQL查询找到并杀死
================================================================================
有时关系型相关数据库系统的复杂性会把你搞晕不过幸运的是使用MySQL工具来管理查询就就可以避免这些复杂性。 在本教程中,我将向你们展示 **怎样去查找并杀掉任何非法的MySQL查询**
为了浏览当前正在运行的查询登陆到MySQL终端然后运行show processlist命令:
mysql> show processlist;
+--------+--------+-----------------+---------+---------+-------+-------+------------------+-----------+---------------+-----------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined | Rows_read |
+--------+--------+-----------------+---------+---------+-------+-------+------------------+-----------+---------------+-----------+
| 78233 | root | 127.0.0.1:37527 | mysql | Sleep | 16474 | | NULL | 6 | 6 | 6 |
| 84546 | root | 127.0.0.1:48593 | mysql | Sleep | 13237 | | NULL | 2 | 2 | 2 |
| 107083 | root | 127.0.0.1:56451 | mysql | Sleep | 15488 | | NULL | 1 | 121 | 121 |
| 131455 | root | 127.0.0.1:48550 | NULL | Query | 0 | NULL | show processlist | 0 | 0 | 0 |
+--------+--------+-----------------+---------+---------+-------+-------+------------------+-----------+---------------+-----------+
4 rows in set (0.03 sec)
首先你应该查看'Time'项,这里记录了进程执行 "做其当做的事情" 操作的秒数。command项处于Sleep
状态的进程表示其正在等待接受查询因此它并没有消耗任何资源。对于其他任何进程而言Time超过一定的秒数表明出现问题。
在上面的例子中唯一运行的查询是我们的show processlist命令。让我们来看看如果我们有一个写的很烂的查询是怎么样的:
mysql> show processlist;
+--------+--------+-----------------+-----------+---------+-------+--------------+----------------------------------+-----------+---------------+-----------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined | Rows_read |
+--------+--------+-----------------+-----------+---------+-------+--------------+----------------------------------+-----------+---------------+-----------+
| 78233 | root | 127.0.0.1:37527 | example | Sleep | 18046 | | NULL | 6 | 6 | 6 |
| 84546 | root | 127.0.0.1:48593 | example | Sleep | 14809 | | NULL | 2 | 2 | 2 |
| 107083 | root | 127.0.0.1:56451 | example | Sleep | 17060 | | NULL | 1 | 121 | 121 |
| 132033 | root | 127.0.0.1:54642 | example | Query | 27 | Sending data | select max(subtotal) from orders | 0 | 0 | 0 |
| 133933 | root | 127.0.0.1:48679 | NULL | Query | 0 | NULL | show processlist | 0 | 0 | 0 |
| 134122 | root | 127.0.0.1:49264 | example | Sleep | 0 | | NULL | 0 | 0 | 0 |
+--------+--------+-----------------+-----------+---------+-------+--------------+----------------------------------+-----------+---------------+-----------+
6 rows in set (0.00 sec)
啊哈现在我们看到有一个查询运行了将近30秒。如果我们不想让它的进程继续运行可以将它的'Id'传递给kill命令:
mysql> kill 132033;
Query OK, 0 rows affected (0.00 sec)
mysql>
(注意 由于我们没有改变任何数据MySQL总是报告0行被影响。)
明智的使用kill命令能够清除积压的查询。然而要记住的是那不是一种永久的方法 - 如果这些查询来自你的程序,你需要去重写它们,或者将继续看到相同的问题不断出现。
### 另请参阅 ###
关于不同命令的MySQL文档:
- [https://dev.mysql.com/doc/refman/5.7/en/thread-commands.html][1]
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/07/find-kill-misbehaving-mysql-queries.html
译者:[hunanchenxingyu](https://github.com/hunanchenxingyu) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://dev.mysql.com/doc/refman/5.7/en/thread-commands.html

View File

@@ -0,0 +1,83 @@
命令行星期二——第四部分
===================
大家好。新的一周,新的冒险!
今天,我们将会学习使用四个相当简单的命令去操作文件。好,废话少说,我们开始吧。
在开始学习这些命令之前,我们先稍微说些题外话,讲讲“通配符”的用处。
###通配符###
使用图形工具区复制、粘贴、新建目录等操作也许很容易,但是若想完成一些更复杂的任务,例如仅仅将一个目录下的所有.html文件复制到另一个目录中、或者只复制在某个目录中不存在的文件这时命令行也许会比较方便。我们回到通配符的学习中通配符是shell的基本功能它是一个由一些特殊字符组成的集合它让你可以用一些简单的规则来选择出某些文件。通配符可以出现在文件名中用于指定文件名的字符个数和字母的大/小写等规则)。
如下表
![](https://news.opensuse.org/wp-content/uploads/2014/07/Screenshot-08.-07.-2014-125946.png)
下面是肖茨先生给出的一些实例,如下表:
![](https://news.opensuse.org/wp-content/uploads/2014/07/Screenshot-08.-07.-2014-125959.png)
如果你使用一个包含文件名参数的命令,你就可以使用通配符。
###cp###
cp是一个用于复制文件或者目录的命令它的用法相当的简单。进入到你想复制的文件所在的目录然后使用如下命令
`cp file1 file2` -复制一个文件
或者
`cp file1 file2 ... directory` -从当前工作目录复制多个文件到指定的目录。
下表是肖茨先生给出的cp命令的一些选项
![](https://news.opensuse.org/wp-content/uploads/2014/07/Screenshot-08.-07.-2014-134248.png)
###mv###
mv是今天的第二个命令我们可以使用mv来重命名一个文件或目录或者移动一个文件或目录。我们可以这样使用mv命令。
`mv filename1 filename2` -若想将文件filename1重命名为filename2。
或者
`mv file directory` -若想将一个文件移动到某个目录。
下表是一些mv命令的实例
![](https://news.opensuse.org/wp-content/uploads/2014/07/Screenshot-08.-07.-2014-133515.png)
###rm###
rm命令是用于删除文件或目录它的用法比较直接如下
`rm file`
或者
`rm -r driectory`
这里也有一个包含rm其他选项的表
![](https://news.opensuse.org/wp-content/uploads/2014/07/Screenshot-08.-07.-2014-133529.png)
但是使用rm命令时要小心点。因为并没有撤销删除的选项因此使用rm命令式要格外的小心避免对你的系统造成不必要的破坏。
###mkdir###
mkdir是用于创建目录.它是今天最简单的一个命令:
`mkdir directory`
看,目录成功创建了!
这是本周的内容,下周二再见,致以最真诚的问候!
-------------------------------------------------------------------------
via: https://news.opensuse.org/2014/07/08/command-line-tuesdays-part-four/
译者:[cvsher](https://github.com/cvsher) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,44 @@
[小技巧]如何在Ubuntu14.04中禁用叠加滚动条
================================================================================
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/04/Ubuntu-14.042-790x493.jpeg)
Hello 伙计们,
这是一个如何在Ubuntu中禁用叠加滚动条的小技巧。注意在本文中讲的不是删除叠加功能而是告诉你如何启用或禁用它。
### 禁用 ###
打开终端并执行以下命令
gsettings set com.canonical.desktop.interface scrollbar-mode normal
更改后会立即生效:
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/Unity_Overlay_off.png)
### 启用 ###
gsettings reset com.canonical.desktop.interface scrollbar-mode
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/Unity_overlay_on.png)
Enjoy!
----------
![](http://0.gravatar.com/avatar/25c00329fd45ff820497f9c8c2d79dd3?s=70&d=monsterid&r=G)
[Enock Seth Nyamador][1]
我穿着--[0-0]--(比基尼?), 一个开源的瘾君子。一个发展中的非洲geek。我是一个菜鸟开发者和一个有追求的摄影师。想提供给我什么或者是小贴士请随时与我联系。我随时准备开发和照片。干杯
--------------------------------------------------------------------------------
via: http://www.unixmen.com/disable-overlay-scrollbars-ubuntu-14-04-quick-tip/
译者:[Vito](https://github.com/vito-L) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.unixmen.com/author/seth/

View File

@@ -0,0 +1,44 @@
红帽公司发布 OpenStack Platform 5
================================================================================
![](http://farm4.static.flickr.com/3108/3191608123_67e1da2b79_o.jpg)
红帽公司[宣布][1]在RHEL上推出OpenStack Platform5这是基于OpenStack开源云的第三个企业级发行版。该版本不仅开发了一些新功能针对的用户群体也大为增多如高大上的云用户、电信企业、互联网服务供应商ISP)、公有云服务供应商等。
OpenStack Platform 5是基于最新的Openstack Icehouse的发行版并且针对云计算技术做了大量的修改和优化工作而来的。
这个最新的发行版有3年的技术支持周期[我选择了使用][2]它是考虑到红帽公司在Linux系统上对用户无以伦比的技术支持红帽公司对其OpenStack Platform 5的技术支持服务将是促使企业购买的关键之一。
对于红帽公司是否会支持OpenStack的其他发行版尚未有定论但一份OpenStack用户调查已经显示[90%的OpenStack开发人员并没有在RHEL上使用OpenStack][3]而是选用了Ubuntu或者CentOS Linux和其虚拟化技术。
OpenStack Platform 5的最新功能
> **支持和VMware基础架构的整合**,结构包含虚拟化、管理、网络和存储。
用户一般会使用已经在使用的VMware vSphere资源比如虚拟化驱动作为OpenStack Nova的计算节点再使用上层的OpenStack Dashboard(Horizon)对节点进行管理。
同样的RHEL OpenStack Platform 5也支持VMware的NSX插件作为OpenStack NetWorking Neutron)对网络进行管理支持VMware虚拟磁盘VMDK以插件形式存在作为OpenStack Block Storage(Cinder)来使用。
>
> **对云资源的使用,采取了更好的布置。**服务器组让计算散布到OpenStack云的服务节点上这让分布式应用有了更强的弹性对于复杂的应用也能起到降低通信延迟提高运算性能的作用。
>
> **对虚拟机更好的支持,支持加密,满足美英国家对信息安全的要求** 使用RHEL 7中提供的半虚拟化随机数生成器在用户程序中也添加进这个工具可以更好的加密质量和性能提升。
> **提升协议栈的互通性**红帽公司宣称Neutron中新开发的模块化的网络技术将简化OpenStack的部署。这种技术将允许用户在OpenStack中部署多种网络方案来解决异构网络的访问。
红帽公司虚拟化和OpenStack产品线总经理 Redhesh Balakrishnan说到
> “我们看到越来越多的企业级用户或服务供应商选择OpenStack作为私有云平台RHEL OpenStack Platform 5不只是一个基于OpenStack Icehouse产品我们还开发了很多简单易用的功能增强了产品的可靠性。
在未来三年内我们要让用户看到RHEL OpenStack Platform 5所提供的功能和技术支持服务将为他们部署的应用保驾护航让用户对我们的产品充满信心。
我敢跟你打赌,--三年的技术支持服务--将是企业用户在竞争激烈的云平台领域选择红帽的关键点。并且毋庸置疑红帽公司把自己的未来放在了云计算放在了OpenStack Platform上面。
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/red-hat-announces-availability-of-its-openstack-platform-5
译者:[nd0104](https://github.com/nd0104) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.marketwatch.com/story/red-hat-announces-general-availability-of-red-hat-enterprise-linux-openstack-platform-5-2014-07-08
[2]:http://ostatic.com/blog/why-red-hats-openstack-support-must-be-as-inclusive-as-possible
[3]:http://www.openstack.org/blog/2013/11/openstack-user-survey-october-2013/

View File

@@ -0,0 +1,65 @@
Linux基础如何在命令行中查看目录的大小
=====================================================================
这是写给Liunx新用户的一系列文章中的第一篇在这系列文章我将会写一些对新用户来说非常好用的**Linux基础命令**。
**注意**本文的目标读者是仅有小量甚至是没有任何Linux命令行使用经验的读者。
>作为一个Linux的新用户我怎样可以在命令行终端中查看某个目录的属性
###要求###
唯一的要求是**du**命令行工具。du基本上是所有Linux发行版本默认提供的工具。用以下的命令来检查你的系统中是否可以使用du命令
man du
**du** 命令用于输出文件的空间使用情况。
###使用du###
不带任何参数的运行du命令会显示当前工作目录以及其子目录的文件名和所占用的空间大小(以字节为单位)。
du
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/du-overview.png)
使用**-h**参数以对用户友好的方式输出文件大小,即分别以**K, M**和**G**来表示**Kb,Mb**和**Gb**
du -h
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/du-h.png)
若想查看某个特定目录的文件大小则在du命令中指定要查看的目录名如下
du -h Mapmaker
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/du-h-mapmaker.png)
使用 **-c** 参数来查看目录所占用磁盘空间的总大小
du -ch
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/du-ch.png)
使用 **-s** 参数只输出指定目录占用空间的大小
du -sh Mapmaker Sandbox
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/du-ch.png)
使用 man du 查看du命令更多参数的用法
man du
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/man-du.png)
知道du命令更多的用法请分享给我和其他人。
--------------------------------------------------------------------------------
via: http://www.unixmen.com/linux-basics-find-size-directory-commands/
译者:[cvsher](https://github.com/cvsher) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,80 @@
ncdu 基于ncurses库的磁盘使用分析器
================================================================================
[Ncdu][1] (NCurses Disk Usage) 是一个基于Ncurses库的du命令的界面。它通过大家熟知的[du][2]命令为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比且允许你使用ncurses库的方式在目录之间导航。
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/ncdu-about.png)
### 安装 ###
ncdu已经被移植到大多数linux发行版本可从官方资源库中安装.
Arch / Manajaro 及其衍生版:
sudo pacman -S ncdu
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/ncdu.png)
Ubuntu / Debian / Linux Minut 及其衍生版:
sudo apt-get install ncdu
Fedora 及其衍生版:
sudo yum install ncdu
在[这里][3]可以找到其他的发行版。
### 使用 ncdu ###
键盘操作:
- up, k — 向上移动光标
- down, j 向下移动光标
- right/enter — 打开选定的目录
- left, <, h — 打开父目录
- n — 按文件名排序(升序/降序)
- s — 按文件大小排序(升序/降序)
- C 按项目数排序(升序/降序)
- d 删除选定的文件或目录
- t — 排序时将目录放在文件前面
- g 以图形方式显示百分比
为使用ncdu请打开终端并且运行
ncdu
开始扫描目录.
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/ncdu-scanning.png)
当扫描完成后,你能够很容易的看到文件/目录的大小.
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/done-scanning.png)
确认删除文件:
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/07/ncdu-delete-confirm.png)
在[这里][4] 阅读ncdu命令手册或运行:
man ncdu
**荣誉**: 有两位读者**BasketCase**和**Sama Vim**在阅读“[Linux基础如何在命令行中查看目录的大小][5]”之后 向我们推荐了这个Ncdu工具。
Enjoy!
--------------------------------------------------------------------------------
via: http://www.unixmen.com/ncdu-ncurses-disk-usage-analyzer/
译者:[hunanchenxingyu](https://github.com/hunanchenxingyu) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://dev.yorhel.nl/ncdu
[2]:http://www.unixmen.com/linux-basics-find-size-directory-commands/
[3]:http://dev.yorhel.nl/ncdu
[4]:http://dev.yorhel.nl/ncdu/man
[5]:http://linux.cn/article-3473-1.html

View File

@@ -0,0 +1,28 @@
放弃微软产品,慕尼黑省下数百万美元
=================================================
![](http://i1-news.softpedia-static.com/images/news2/Canonical-and-Ubuntu-Helped-Munich-Save-Millions-of-Dollars-By-Ditching-Microsoft-Products-450571-2.jpg)
**慕尼黑这座城市已经成为了从微软产品转向开源的最突出的城市管理案例之一而且Canonical公司和ubuntu为这次变革起了很大的作用。**
慕尼黑成功脱离了微软的依赖,但是他们为这次摆脱过程付出了价值不菲的代价。从微软产品转向开源的好处看起来似乎很昂贵,但是转变的成本比之后的产品升级显著要低,不仅如此,在未来,我们会发现这种做法更便宜。
当你在像慕尼黑城市这种大城市尝试从一个专有解决方法转向开源的时候这可并不容易。因为慕尼黑拥有22个组织单位每个单位都有自己的IT部门更不要说各部门之间不同版本的应用程序。
地方政府不能只采用一个Linux发行版本。第一次的尝试是在2006年伴随着Debian的回归但是特定的操作系统并没有一个可预测的发布时间表。这就是新操作系统LiMux产生的原因一个基于ubuntu的操作系统。
“LiMux/开源项目是漫长而又反复的但是经过几年时间运行这种大型Linux我们意识到ubuntu才是最能满足我们需求的平台。通过结合开源软件的低成本和自由加以对我们需要的硬件和应用程序的持续支持这种做法才是这个项目成功的关键因素之一。当然最终要还有我们的市府在项目上始终给予的高度支持。”慕尼黑项目经理Peter Hofmann[说道][1]。
截至2013年如果只考虑升级成本的话这个项目帮助慕尼黑节省了€1000万1360万美元。如果我们能量化官方支持软件和其余隐藏成本的话这个数额显得有些多。
眼下慕尼黑14000台PC机运行着LiMux而且数量还在持续增长。这很有可能影响其余德国城市在未来也这么做尤其是慕尼黑的邻居。
慕尼黑当局采用了13年才完成这次变革但是最终事实证明这样做可以省下一大笔资金而且证明了Linux实际上是整个城市IT基础设施又好有免费的解决方案。
---------------------------------------------------------------------------------
via: http://news.softpedia.com/news/Canonical-and-Ubuntu-Helped-Munich-Save-Millions-of-Dollars-By-Ditching-Microsoft-Products-450571.shtml
译者:[su-kaiyao](https://github.com/su-kaiyao) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://insights.ubuntu.com/2014/07/07/ubuntu-and-open-source-help-the-city-of-munich-save-millions/

View File

@@ -0,0 +1,64 @@
Ubuntu 14.04中修复默认启用HDMI后没有声音的问题
================================================================================
声音问题在Ubuntu中是老生常谈了。先前我已经在[修复Ubuntu中的“无声”问题][1]一文中写到了多种方法,但是我在此正要谈及的声音问题跟在另外一篇文章中提到的有所不同。
因此我安装了Ubuntu 14.04,实际上是重新安装了一遍。一如既往,我将[全新安装Ubuntu 14.04后要做的事][2]全部又重新做了一遍。然后,我意识到系统突然失声了。当我正侦查问题所在之时,我发现了一件奇怪的事情。我检查了[alsamixer][3],发现它的状况有点离奇。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/alsamixer_Set_HDMI_Default.jpeg)
正如你能看到的,**alsamixer中默认设置了HDMI**。这意味着默认情况下将使用HDMI输出而不是内置扬声器。这就是我从系统上内置扬声器无法获得声音的原因。
使用下面的命令来检查alsamixer的状态
alsamixer
如果alsamixer默认设置成了HDMI或者其它声音输出那就继续读下去吧看看我们是怎么来修复这个问题的。
### 修复默认设置成HDMI时Ubuntu的失声问题 ###
现在来强制Ubuntu使用模拟输出来取代默认的HDMI但我们还需要一点点信息。打开终端然后使用下列命令
aplay -l
这会列出设备,卡号之类的东西。注意,向下检查模拟输出使用的卡和设备编号。我的输出如下所示:
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/07/AlsaMixer_List_Device.jpeg)
一旦你取得了所需的卡和设备编号,重新构建一个配置文件:
sudo gedit /etc/asound.conf
上面的命令也会打开文件,将下面两行添加进去,当然将卡和设备编号替换成你自己的:
defaults.pcm.card 1
defaults.pcm.device 0
保存文件并重启计算机。现在你应该听到声音了吧。需要提一下的是这对所有的Linux发行版都有效如Linux MintElementary OSFedoraArch Linux等等都可以。正如我之前所说该“失声疗法”仅针对HDMI被设置为默认设备的情况。对于其它情况你可以阅读[关于在Ubuntu和Linux Mint中修复失声问题这篇文章][4]。
您可以尽情发表评论来告诉我这个方法是否有疗效,或者您有更好的方法来处理该问题,也可以告诉我。再见了!
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-includes/images/smilies/icon_smile.gif)
----------
![](http://1.gravatar.com/avatar/20749c268f5d3e4d2c785499eb6a17c0?s=100&r=pg&d=mm)
关于Abhishek
我是Abhishek PrakashIt's F.O.S.S.的“创立者”我有一个通信系统工程的硕士学位。我酷爱Linux和开源。我使用Ubuntu信奉知识分享。除了Linux之外我也喜爱经典的侦探推理小说是Agatha Christie作品的超级粉丝。大家尽可以在[Google+][g]上将我圈进去,并追随[@abhishek_pc][t]
--------------------------------------------------------------------------------
via: http://itsfoss.com/fix-sound-ubuntu-1404/
译者:[GOLinux](https://github.com/GOLinux) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://itsfoss.com/fix-sound-ubuntu-1304-quick-tip/
[2]:http://itsfoss.com/things-to-do-after-installing-ubuntu-14-04/
[3]:http://en.wikipedia.org/wiki/Alsamixer
[4]:http://itsfoss.com/fix-sound-ubuntu-1304-quick-tip/
[g]:https://plus.google.com/u/0/110180944531110746460
[t]:https://twitter.com/abhishek_pc

View File

@@ -0,0 +1,40 @@
“Simple Dock” GNOME Shell扩展乾坤大挪移钟爱应用桌面展现
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/07/screenshot_815_1.jpg)
**我爱GNOME Shell但是我痛恨的是费力从隐藏屏幕中找到我所钟爱的应用或者在我正运行的应用间切换。**
这么说听起来就像我是个老古董像是一个UX勒德分子也像是某个过分沉溺于Unity可用性瘾君子但我像阅读本文的许多人一样喜欢将app启动器/切换器放到桌面上。这是一个用户所熟悉并且快捷的工作方式。
而GNOME Shell从设计上看却完全是个不同的世界。它将所有这一切隐藏起来 —— 从消息中心和通知,到工作区和应用列表。它弱化了审美效果,包含了这样的道理:帮助用户专注于最重要的部分。
但是对我而言,我的桌面需要的不仅仅是一个美化的相框。
### GNOME Shell之美 ###
抛开我自己的偏好隐藏应用是GNOME Shell之美的一部分。它带来了默认的桌面体验用户友好稳健以及可预见性——而且也完全可扩展。因此它也附带有大量的扩展组件以迎合不同用户的需要、职业和希望包括传统应用菜单桌面停靠栏以及甚至是Ubuntu Unity Dash的复制品
在本文中,我仅仅关注那个能满足我需要的扩展:它有个恰如其分的名字**Simple Dock**。Simple Dock获取GNOME Shell应用网格以及收藏栏并可以将它放到任何我想要放的不引人注目的位置桌面上。
目前为止,它只支持放置在屏幕底部,只提供了最小的设置项。虽然是最小的,但我觉得所有这些设置已经能满足我的需要:
- 智能自动隐藏
- 最小化/还原应用窗口
- 拖放收藏
- 覆盖活动启动按钮
你也想要吗如果你正在Ubuntu 13.10或更高版本上使用GNOME Shell那么你可以使用它。只需在支持的浏览器Firefox, GNOME Web之类中访问下面的链接就可以导航到GNOME扩展页面然后将页面上开个从“off”拖动到“on”上。
- [GNOME Shell扩展中的Simple Dock][1]
要调整Simple Dock设置点击GNOME扩展页面上的齿轮图标或者通过GNOME优化工具这样的桌面应用程序来设置。
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/07/simple-dock-gnome-shell-extension
译者:[GOLinux](https://github.com/GOLinux) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://extensions.gnome.org/extension/815/simple-dock/

View File

@@ -0,0 +1,55 @@
在 Ubuntu 桌面上显示歌词
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/07/display_lyrics_desktop_Ubuntu.jpeg)
除了免费的流媒体音乐外,我最喜欢[Spotify][1]的地方就是它的歌词插件了。有时候我听不懂一首歌里面的所有歌词尤其是rap。[TuneWiki][2]插件在这种情况下就派得上用场了。但TuneWiki仅有支持Windows和iTune的插件那我们在linux桌面上有什么选择呢
如果你使用过一段时间Linux桌面你也许听过[OSD Lyrics][3]。它是一个显示桌面歌词的小程序。你可以借助一些音乐播放器来使用它,比如 Rythmbox[Banshee][4][Clementine][5]等等。
### 在Ubuntu 14.04和Linux mint 17上安装OSD Lyrics ###
两年以前 OSD Lyrics 它的官方仓库还在积极地维护但现在对它的开发已经停止了。尽管这个PPA已经不可用但可以通过网络下载OSD Lyrics的安装包。虽然这些安装执行文件最初是为 Ubuntu 12.02 设计的,但这些文件也能在 Ubuntu 14.04 上良好地工作。我们一起看看怎么在 Ubuntu 14.04 和 Linux mint 17 上安装OSD Lyrics。
[前往下载页下载OSDLyrics][6],根据你是使用[32位还是64位的ubuntu][7]来下载相应的.deb 文件。你会在网页的上方找到这些文件。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/07/OSD_Lyrics_Download.jpeg)
下载完成后双击它通过使用Ubuntu软件中心来安装。另外你也可以使用[Gdebi ][8]来快速地安装.deb安装包。
### 怎样在 Ububtu 和 linux mnit 上使用 OSD Lyrics 显示歌词 ###
安装完成后你可以从Unity Dash运行OSD Lyrics :
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/07/Open_OSD_Lyrics_Ubuntu.jpeg)
首次运行时OSD Lyrics会检测你的系统中能被它支持的播放器。你可以设定一个默认播放器以后当你运行OSD Lyrics时它就会自动启动 。
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/07/OSD_Lyrics_Default_Player.jpeg)
有一件事值得注意那就是OSD Lyrics不像[Shazam][9]等软件一样,它不是通过音频来寻找歌词,而是通过比如名称,专辑,艺术家等信息来关联音乐文件。所以你得确保你的音乐文件的来源正当,或者是你得保持你的音乐文件的信息是正确并且是已经更新后的。
如果OSD Lyrics辨认出了音乐文件它就会用卡拉OK格式在桌面上显示歌词了:译者注OSD Lyrics可以自动在千千静听和虾米歌词站点在线下载歌词这对我们中文用户来说是个福音
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/07/Dsiplay_Lyrics_Ubuntu.jpeg)
OSD Lyrics有大量设置选项你可以改变歌词字体文字大小等等。
你认为 OSD Lyrics 怎么样?你还使用其它歌词插件吗?欢迎您和我们分享。
--------------------------------------------------------------------------------
via: http://itsfoss.com/display-song-lyrics-desktop-ubuntu-1404/
译者:[Love-xuan](https://github.com/Love-xuan) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://itsfoss.com/install-spotify-ubuntu-1404/
[2]:http://www.tunewiki.com/
[3]:https://code.google.com/p/osd-lyrics
[4]:http://banshee.fm/
[5]:https://www.clementine-player.org/
[6]:https://code.google.com/p/osd-lyrics/downloads/list
[7]:http://itsfoss.com/how-to-know-ubuntu-unity-version/
[8]:http://itsfoss.com/install-deb-files-easily-and-quickly-in-ubuntu-12-10-quick-tip/
[9]:http://www.shazam.com/

View File

@@ -0,0 +1,34 @@
Git 2.0.2版本控制系统现在可供下载使用了
==================================================================================================================================================
![](http://i1-news.softpedia-static.com/images/news2/Git-2-0-2-Version-Control-System-Now-Available-for-Download-451147-2.jpg)
**Git 2.0.2如今已正式发布。这是一个免费和开源的分布式版本控制系统,因其处理速度和效率的优势,它可以处理大大小小各种项目。**
新的Git 2.0.x分支保持着带来大量更新的传统它整合了大量的改变和修正。这个最新的更新只是维护版但是它的功能特性的确有一些有趣的修改。
根据开发者的描述:"git submodule syncgit子模块的同步"的文档中提到的子命令可以使用"--recursive"(递归)的选项;在.gitignore中跟踪引用反斜杠的空格的处理不当已经被纠正对"git repack"命令的更新,将不再错误地复制那些被.keep标签标记的pack目录下的对象。
还有,"git clone -b brefs/tags/bar"不再认为git遵循一个单一的tag尽管它是一个分支的名称"%G(G后面没有跟任何东西)"是一个无效的漂亮的格式说明符,现在的解析器不再对它进行解析;用于避免增加相同替代对象的存储的代码经过了两次修正,而且其余的几个修正也已经完成。
想要查看完整的改变列表,查看[changelog][1]。
下载Git 2.0.2
- [tar.gz][1][sources] [4.70 MB]
- [Debian/Ubuntu DEB ALL][2][ubuntu_deb] [0 KB]
- [Red Hat/Fedora/Mandriva/openSUSE RPM noarch][3][rh_rpm] [0 KB]
-------------------------------------------------------------------------------------
via: http://news.softpedia.com/news/Git-2-0-2-Version-Control-System-Now-Available-for-Download-451147.shtml
译者:[su-kaiyao](https://github.com/su-kaiyao) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://github.com/git/git/blob/master/Documentation/RelNotes/2.0.2.txt
[2]:https://github.com/git/git/archive/v2.0.2.tar.gz
[3]:http://git-scm.com/download/linux
[4]:http://git-scm.com/download/linux

View File

@@ -0,0 +1,37 @@
小伙伴们该更新系统啦Ubuntu 13.10的支持到今天结束
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/04/upgrade-available.jpg)
**尽管目前运行良好在经历了9个月的折腾后今天官方对Ubuntu 13.10(俏皮蝾螈)的支持正式寿终正寝。**
> 尽管它的名字叫'俏皮蝾螈',但它所提供的新功能却无比的乏味。
那些仍然在使用它的用户应该看看最新的发行的稳定版了Ubuntu 14.04 LTS。在四月推出的这个版本提供良好的图形化支持支持期限是到2019年的4月中旬。
对于Ubuntu 13.10的服务器版的支持,也到今天正式停止。
### 俏皮蝾螈已然失宠 ###
Ubuntu 13.10于去年10月发布Canonical对其桌面版本承诺提供时长9个月的安全和Bug修复更新。截至今年7月17日所有更新将停止未来也不再提供。
Canonical[推荐的升级方案][1]是升级到14.04版本,目前可以直接通过图形化工具去升级,包括使用升级程序,或者在命令行运行‘`do-release-upgrade`‘命令。
俏皮蝾螈它的名字非常的好听但表现平平13.10在Ubuntu所有的发行版中也不是一个取得卓越成功的版本[这一点已经被很多网络评论预言到了][2]。
然而,它曾经让人眼前一亮的是,<del>强加</del>提供了键盘指示符来快速的选择安装语言,这可以让用户简便的在该智能域操作,这也是第一个在安装程序中整合了`Ubuntu One Single Sign-on`的发行版。
查看13.10版本的所有新功能,请查看完整视频:
Youtobe 视频地址:[http://www.youtube.com/embed/1EiRQ-znEcI?feature=oembed][3]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/07/ubuntu-13-10-support-ends-today
译者:[nd0104](https://github.com/nd0104) 校对:[ReiNoir](https://github.com/reinoir)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://help.ubuntu.com/community/TrustyUpgrades
[2]:http://www.omgubuntu.co.uk/2013/10/ubuntu-13-10-press-reaction
[3]:http://www.youtube.com/embed/1EiRQ-znEcI?feature=oembed

View File

@@ -0,0 +1,57 @@
Dropbox原生Linux客户端首次展示QT界面
================================================================================
**Dropbox原生Linux客户端的最新试验版首次展示了全新的QT界面。**
Dropbox表示这次的UI重写将同时应用到Windows和Linux将修复“大量”长期遗留下来的错误和问题。这个跨平台的工具也将整体提升性能。
在全新的设置向导和登录界面(见下面的图片)旁边是几个重新设计过的启动画面。
![Login Screen ](http://www.omgubuntu.co.uk/wp-content/uploads/2014/07/dropbox-qt-login.jpg)
登录界面
![Setup Screen](http://www.omgubuntu.co.uk/wp-content/uploads/2014/07/dropbox-qt-set-up.jpg)
设置界面
![Congratulations Screen ](http://www.omgubuntu.co.uk/wp-content/uploads/2014/07/dropbox-qt-finished.jpg)
欢迎界面
### 目前还不稳定 ###
Dropbox开发人员提醒参与测试的人目前大部分新界面“还很粗糙”在使用中可能会碰到大量的界面问题。新界面还不能配合一些辅助工具一起工作例如屏幕阅读器。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/07/dropbox-linux-clients-old-and-new.jpg)
新UI使用了目前系统自带的QT界面主题。它本身也不算很丑不过在Ubuntu桌面上看起来不怎么合适特别是和之前的版本比较。据说内存占用也变多了在空闲情况下有时候会从60MB一下子跳到178MB。那些使用低端设备的人应该忍耐一下试用这个版本的诱惑至少在这个特别的问题解决之后。
Dropbox 2.11.0 (试验版本) for Linux的完整改动日志
- 用QT重写了Windows & Linux界面
- 在移动和重命名文件后会尝试识别
- 新的设置/登录体验
- 更快上传小文件
- 新的启动画面
### 下载Dropbox Linux Build 2.11.x ###
想尝鲜的话,可以通过下面的链接下载和你系统对应的安装包。
- [Dropbox Experimental (64bit) Offline Linux Installer][1]
- [Dropbox Experimental (32bit) Offline Linux Installer][2]
下载完后,解压到主目录。它默认是隐藏的,所以打开终端,’`cd`‘到‘`.dropbox-dist/dropbox-lnx`‘目录下,然后运行‘`./dropbox start`‘。
演示Dropbox终端操作的gif动画
![](http://i.imgur.com/5TeYXEm.gif)
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/07/dropbox-experimental-linux-build-qt-rewrite
原文作者:[Joey-Elijah Sneddon][a] 译者:[zpl1025](https://github.com/zpl1025) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:https://d1ilhw0800yew8.cloudfront.net/client/dropbox-lnx.x86_64-2.11.0.tar.gz
[2]:https://d1ilhw0800yew8.cloudfront.net/client/dropbox-lnx.x86-2.11.0.tar.gz

View File

@@ -0,0 +1,77 @@
在 Linux 中怎样使用cp命令合并目录树
================================================================================
怎样将两个布局相似的目录树合并成一个新的目录树?为理解该问题让我们思考下面的例子.
假设 dir1 和 dir2 目录中分别有3个子目录a,b和c.目录布局如下所示:
![Layout of input directories](http://linoxide.com/wp-content/uploads/2014/07/01.merge_dir_layout.png)
输入目录布局
在目录a,b和c中有一些文件tree命令的输出将能更好的说明:
![Layout of files](http://linoxide.com/wp-content/uploads/2014/07/02.merge_file_layout.png)
文件布局
### 1. 使用cp命令创建合并: ###
现在我们将这两个目录合并成一个名为"merged"新的目录中.完成上述操作最简单的方式就是递归复制目录,如下图所示:
![Copy directories recursively to create new merge](http://linoxide.com/wp-content/uploads/2014/07/03.merge_cp_recursive.png)
递归复制完成新的合并
#### 1.1 cp命令和替换带来的问题: ####
这种方式所带来的问题是该合并目录中所创建的文件为原文件的副本,并非原文件本身.别急, (你可能正在问自己) 如果不是原文件又有什么问题? 要回答你的问题,考虑下你有很多大文件的情况.那种情形下,复制所有的文件可能花费数小时.
现在让我们回到刚那问题上且尝试使用mv命令而不是cp命令.
![Attempt to merge with mv command](http://linoxide.com/wp-content/uploads/2014/07/04.merge_mv_recursive.png)
企图使用mv命令进行合并操作
这些目录不能被合并.因此我们不能像这样使用mv命令去合并目录.
现在你该怎样将原文件保存到"merged"目录中?
### 2. 解决方法: ###
cp命令有一个非常有用的选项来帮助我们摆脱这种状况.
cp命令的-l 或 --link选项能够创建硬链接而非原文件副本.让我们尝试一下.
在我们尝试cp命令的硬链接选项前让我们查看一下原文件的inode号码.
可通过tree命令--inodes选项来查看inodes:
![Display inodes of original files](http://linoxide.com/wp-content/uploads/2014/07/05.merge_display_inodes.png)
原文件的inodes
现在我们有了inodes的列表对于cp命令可通过--link选项创建硬链接:
![Merge directories with hard links](http://linoxide.com/wp-content/uploads/2014/07/06.merge_create_links.png)
使用硬链接合并的目录
#### 2.1 验证文件: ####
现在文件已经被复制让我们验证一下inodes是否和原文件匹配:
![Verify Inodes](http://linoxide.com/wp-content/uploads/2014/07/07.merge_verify_inodes.png)
Verify Inodes
#### 2.2 清除: ####
正如你所看到的这些文件的inodes和原文件的一样.现在问题已经被解决,且
原文件已被复制到合并目录中.现在我们能够移除dir1和dir2目录.
![Remove original directories](http://linoxide.com/wp-content/uploads/2014/07/08.merge_cleanup.png)
移除原始目录
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/merge-directory-trees-linux/
原文作者:[Raghu][a]
译者:[hunanchenxingyu](https://github.com/hunanchenxingyu) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/raghu/

View File

@@ -0,0 +1,43 @@
Oracle Linux 7.0发布!
===
![The new Oracle Linux 7.0 is out](http://i1-news.softpedia-static.com/images/news2/Oracle-Linux-7-0-OS-Has-XFS-as-Default-File-System-and-Unbreakable-Enterprise-Kernel-Release-3-451894-2.jpg)
**Oracle已经发布了Oracle Linux 7.0操作系统,新系统带来了大量的新特性,比如“第三代坚不可摧的内核 UEK”Unbreakable Enterprise Kernel Release 3和一个新的默认文件系统**
为了这次新的发行版的发布Oracle的开发者们已经放出过两个预览版现在最终版终于来了。果然它有着大量的改进其中包括使用新的XFS作为默认的文件系统**[注:原文为操作系统,应该是笔误]**可选的Btrfs文件系统Linux Containers (LXC) DTraceKsplice加强版Xen和UEK R3。
作为广泛流行的文件系统EXT4的对抗者XFS有一个显著优势。它所允许用户的文件系统的大小达到了500TB这比你在EXT4文件系统中所能达到最大值的十倍还多。唯一的缺点是单个文件的大小最大仅为16TB。
这个发行版的一大特色是它支持两种内核。一个是红帽兼容性内核(RHCK)基于Linux内核版本3.10第二个是Oracle自己的内核版本“第三代坚不可摧的内核”UEK R3版本号从3.8.13开始因为它基于3.8的Linux内核。你或许还记得Linux内核3.8.x已经寿终正寝但是看来Oracle一直在维护着自己的分支。
“已经能够从Oracle软件发布云上下载了Oracle Linux 7可以免费下载和部署。所有的bug修复和安全勘误会被发布到Oracle的公共yum服务器上不管有没有付费用户都能安装同样的代码并且从免费到付费的迁移十分简单无需重新安装。”
“当发布最新的Linux更新工具以及推送给客户和参与者新功能的时候需要为现代化的数据中心提供企业级的解决方案。为此最新的发行版是构建在Oracle对OpenStack这样的新兴技术提供支持的基础上”从官方声明可以看出。
通过变更记录来看Ksplice已经为了实现零宕机的内核完成了安全更新和bug修复systemd也成了新的系统管理工具Grub2现在是默认的启动引导程序并且支持新的固件类型比如UEFI还有一个加强版Anaconda安装器一个新的Apache Web服务器支持GPT和大量的安全特性被添加进来。
更多关于最新的Oracle Linux发行版的详细内容可以参考官方[声明][1]。
立即下载Oracle Linux 7.0
- [Oracle Enterprise Linux 6.5 (ISO) 64-bit][2][iso] [3 GB]
- [Oracle Enterprise Linux 6.5 (ISO) 32-bit][3][iso] [3.60 GB]
- [Oracle Enterprise Linux 7.0 (ISO) 64-bit][4][iso] [4.50 GB]
---------------------------------
原文: http://news.softpedia.com/news/Oracle-Linux-7-0-OS-Has-XFS-as-Default-File-System-and-Unbreakable-Enterprise-Kernel-Release-3-451894.shtml
作者:[Silviu Stahie][a]
译者:[guodongxiaren](https://github.com/guodongxiaren)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://news.softpedia.com/editors/browse/silviu-stahie
[1]:http://www.oracle.com/us/corporate/press/2245947
[2]:http://mirrors.dotsrc.org/oracle-linux/OL6/U5/i386/OracleLinux-R6-U5-Server-i386-dvd.iso
[3]:http://mirrors.dotsrc.org/oracle-linux/OL6/U5/x86_64/OracleLinux-R6-U5-Server-x86_64-dvd.iso
[4]:https://edelivery.oracle.com/linux/

View File

@@ -0,0 +1,44 @@
CoreOS 稳定版发布
================================================================================
随着CoreOS稳定版的发布我们相信我们已经为SysAdmin节准备好了一个不错的惊喜。从现在起用户可以在产品环境中运行CoreOS了。这个版本对于想运行CoreOS的用户来说是最经考验的、最安全的、最可靠的CoreOS版本。这对我们来说是一个重大的里程碑。自从2013年八月我们第一个alpha版本发布以来我们做了
- 191个发布版本
- 通过alpha和beta频道测试了成千上万的服务器
- 支持10个以上平台从裸机到Rackspace和Google云平台的主要镜像
对我们来说这是一个极为重要的日子,因为我们为了稳定版的发布付出了努力的工作。当然,如果没有社区的帮助,我们完成不了这些工作,感谢你们所有对项目的支持和贡献。
[CoreOS 367.1.0][2], 这是我们在稳定频道上的第一个版本, 包括以下内容:
- Linux 3.15.2
- Docker 1.0.1
- 所有主流的云服务商的支持, 包括 Rackspace Cloud, Amazon EC2 (包括 HVM) 和 Google Compute Engine
- 通过 [CoreOS Managed Linux][3] 的商业支持
如果你还没有阅读我们的[Update Philosophy][4],我们建议您先看看。
请注意稳定发布版本为了保持稳定性而不包括etcd和fleet 此发布版仅针对基本的操作系统和Docker1.0。etcd和fleet的稳定版本支持会在随后的发布版本中。
如果想开始在产品中运行CoreOS请确保阅读我们的快速指南“[切换到发布频道][5]”。如果你正在装新的机器,请确保在一开始就把他们建立在你想要的更新频道上。
最后感谢社区的支持我们迫不及待地想听到你们的反馈。对那些在产品环境中运行CoreOS上希望得到额外支持的用户请确保查看我们的[Managed Linux][6] 建议,因为我们已经有了一个完整的支持团队,他们正在准备回答你遇到的任何问题。
SysAdmin节快乐感谢你们让互联网变得如此令人惊叹。
--------------------------------------------------------------------------------
via: https://coreos.com/blog/stable-release/
作者Alex Polvi
译者:[lfzark](https://github.com/lfzark)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://sysadminday.com/
[2]:https://coreos.com/releases/#367.1.0
[3]:https://coreos.com/products/managed-linux/
[4]:https://coreos.com/using-coreos/updates/
[5]:https://coreos.com/docs/cluster-management/setup/switching-channels/
[6]:https://coreos.com/products/managed-linux/

View File

@@ -0,0 +1,65 @@
命令行星期二——第五部分
=========================================================
对,你也许已经猜到了又是我们相见的时候了。这一次我们将会学习如何使用命令工作。因此,事不宜迟,我们直入正题吧。
肖茨先生指出到现在为止我们学习了一些神奇的命令及其参数和选项而今天正是我们揭开他们那神秘面纱一角的一天。我们将会学习如下的一些命令及其作用type, which, help和man。但是在此之前我么先学习一下——
###什么是命令?###
我们可以将**命令**分为四个种类。
**1可执行的程序**命令可以是一个可执行程序。如果你在前面的课程中有遍历过你的系统,这也是你应该做的。你也许已经发现了/user/bin这个目录你看到很多的像transmission-gtk, deluge-gtk等的名字。对我们新手来说现在这些可以编译成二进制文件或者用脚本语言编写的可执行程序具体是什么并不太重要。重点是他们是可执行文件你可以运行它们。找到/user/bin这个目录列出里面的文件随便挑一个去运行它。
**2shell内置命令** bash提供了一系列的shell内置命令例如cd命令就是一个shell内置命令。
**3shell函数**内置于系统环境中的小型的shell脚本。现在我们简单的提及一下它因为在后面的几个星期中我们将要学习它。
**4别名**你可以基于其他命令定义你自己的命令。我们也会在后面的课程中学习到。
现在,知道我们要处理的命令的哪一类是有意义的。我们可以使用**type**命令查看。
###type###
你可以使用**type + command**来查看你要使用的命令属于什么类型。你只要输入type command就可以得到命令类型的输出如下
![type mkdir](https://news.opensuse.org/wp-content/uploads/2014/07/Zaslonska-slika-2014-07-15-091448.png)
或者
![type ls](https://news.opensuse.org/wp-content/uploads/2014/07/Zaslonska-slika-2014-07-15-091640.png)
从上面例子可以看出ls命令实际上是\_ls的别名。LCTT译注不同机器上的别名定义可能不同比如RedHat/Centos系列上ls实际上是ls --color=auto的别名而这个\_ls想必是openSUSE上的情况。
###which###
有时虽然在桌面系统中很少会出现这种情况在一台机器中存在一个可执行程序的多个版本。为了找到某个可执行程序的准确位置我们可以使用which命令。which命令只对可执行程序有用。
![which transmission-gtk](https://news.opensuse.org/wp-content/uploads/2014/07/Zaslonska-slika-2014-07-15-092052.png)
如今多数的命令都会附带说明文档因此当你在没有网络的的情况下使用命令行时你不能在论坛或者IRC上提问但是你又必须要知道某个命令的准确用法。此时你有两种解决方法第一个是——
###help###
help命令对shell内置命令有用在上面的第二类中我们有提到过。所以你可以选择一个shell内置命令为例如cd简单的输入help cd即可。你会得到一个有用的页面去试一下看cd为我们提供了什么功能。该页面列出了该命令的用法和可选项选项列在方括号中表明它们是可选的如果方括号中有垂直分隔符分隔某些选项则这些选项是互斥的不要同时使用他们
###--help###
LCTT译注Linux上的命令中通常单字符参数前使用一个破折号而多个字符的长参数则使用两个破折号原文此处用的是“-help”实际上这种情况很少所以修正为“--help”
help只对shell内置命令有用。但是很多的可执行程序有--help选项。其作用类似于help命令但是你必须在你要查看帮助的命令后输入 --help。例如transmission-gtk --help。试一下看在改该可执行程序中有什么可选项可以使用。
###man###
多数的可执行程序都提供一个正式发说明文档。你可以使用man命令查看这份说明文档。试一下只输入man program看有什么输出。在你的系统中随便找一个程序去尝试一下。例如我们试一下man transmission-gtk。你会打开了一个由目录分割的文件。这个文件包含该程序是什么、做什么和你可以怎样去使用它等的信息。但是这个文件并没有提供使用范例因为它不是一个指导手册。LCTT译注man里面有时候也会带有一些范例但是往往不会很详细另外还有一个info命令通常能得到更多的使用帮助。不过真正理解每个命令的各种用户还是要多查阅各种资料并亲自试验才行。
这周我们就到先讲这里了。
我想再花一分钟来感谢大家对本节的建议和贡献。是你们让这个系列的文章变得越来越好,我希望在你们的帮助下,我们这些新用户在夏季结束前可以使用基本的命令行工具。你们是最棒的。像我一样的新用户们,我们都会感到失落,坚持到底,我们的付出总会有回报的!
--------------------------------------------------------
via: https://news.opensuse.org/2014/07/15/command-line-tuesdays-part-five/
译者:[cvsher](https://github.com/cvsher) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@@ -0,0 +1,144 @@
给猫咪照片加密
================================================================================
事实上,我的硬盘上不存在那种不愿意被别人看到的东西,只存有一些猫咪的照片、一些记录着想写的书的想法的文本文件,或者是一些短篇故事的文本,也有一些写了一半的 NaNoWriMo 小说文件。简单的说,我的硬盘就没有加密的必要,因为没有什么可隐藏的。可问题是,我们错误的把“隐私的渴望”跟“要隐藏某东西”两概念混淆在一起。比如说我生活的美国,我们视隐私权利是理所当然的事,但不包括那些传统所认为的“某人的隐藏色情或炸弹”。隐私考虑的是一些平常的事情。
我居住在密歇根州。这儿的冬天很冷,我趋向于把温度设置在华氏 75 度左右。对您们来说这个温度可能高了,但在我的家里刚好合适。多亏我的家是属于私有的,我的邻居不可能知道我们保持了这么高的温度,否则一但他们看到冬天如此“浪费”能源的家庭,这些邻居心里会很不平衡的。事实上,本地条规中有一条明确指出任何超过华氏 60 度的就算是生态浪费。我并不想与这种僵老的条例较真,所以我仅仅想保守我们舒适的房子的秘密。我们并不想隐藏任何事情,但也并不是任何事情都要让外人知道。
很明显,我举的例子有点弱智,但我希望的是这能引起大家的思考。现代的 Linux 系统很容易的就可以对我们的数据进行加密,并且很可靠,所以为什么不好好利用利用呢?
### 加密原理? ###
我不会涉及太多关于加密原理的细节,但要明白最基本的原理,即使是最简单的实现,这是必须的。要加密和解密一个文件,需要两把“钥匙”。一把是私钥,正如名字所示,属于私有的。我宁愿把私钥看作是真实的钥匙——你想要多少就可造出多少,但这样做是不明智的。同样的,私钥你造的越多,某些不怀好意的人得到其中一把的机率就越大,他们就会闯入你的公寓(额,我的意思是指那些文件)。
公钥更像是锁的样子,只有你能(用你的私钥)打开此锁。这公钥任何人都可以得到,你可以将它张贴在网站上、把它放在你的 E-mail 中、甚至纹在你的背上。其它人想创建一个只有你能访问的文件,就可以使用此公钥来加密。
这种一对多LCTT译注指别人可以加密多个文件而只有你的一个私钥才能解密的情况也有个很酷的副作用。如果你用你的私钥来加密一些东西任何人都可以用你提供的公钥来解密它们。这听起来很傻但这种情景很有用。虽然加密的文件不能免于被窥视但是它能保证此文件确实来自于你而没有被恶意改动过。用你的公钥能解密的文件仅仅只能是用你私钥加密过的。用这种方式用私钥加密的文件即是数字“签名”文件。LCTT译注既然是任何人都可以用公钥解密其实加密没有意义相反仅仅用你的私钥做一个签名指纹别人只需要用你的公钥来验证该签名是否一致即可判断是否来自你。
LCTT译注其实本文此处所述的加密解密、签名校验等原理不完全正确和实际的非对称加密情形有所差异不过比较容易理解和类比。
#### 通用加密步骤: ####
1. 你有一个文件想要发送给苏茜 ,所以你得使用苏茜的公钥来加密,这样就只有 苏茜才能打开这个文件,但苏茜没有办法知道是谁给她发送的文件。因为任何一个人都可以用她的公钥来加密文件。
2. 因此你得把你的文件用苏茜的公钥和你的私钥都加密。苏茜将不得不解密两次但她知道它是来自于你的文件。LCTT译注实际上应该是用你的私钥要做签名生成一小段签名指纹而不是对已经加密的文件再次加密。
3. 苏茜接收到此文件后会用能证明来自于你的公钥来解密第一层。LCTT译注校验签名确认来自你的私钥的签名正确。
4. 然后用她的私钥来解密第二层的密码,这是唯一的能够将原始文件进行解密的钥匙了(因为你是用她的公钥来加密的)。
当然,这情景就是用来安全传输文件的加密手段。这也是加密你的文件(或者分区)相当常用及简单的方法。就让我们开始来对文件进行加密吧,因为大多数人都想加密他们的系统。
### 始于简 ###
在深入更复杂的各种加密设置操作前,我们先做简单的对文件加密例子。能处理加密的应用程序有很多很多,事实上,对文件和系统进行加密的各种可用软件选择,很容易就会让我们变得焦头烂额。现在,我们就使用一款很基本的(但非常强大)命令行工具来对文件加密。 GPG 英文名Gnu Privacy Guard是一款对商业软件 PGP英文名Pretty Good Protection的开源实现软件。它具有加密、签名及管理多个密钥等功能。用例子说明让我们简单的加密一个文件吧。
我们假设你有一个名叫 secret_manifesto.txt 的文件,它包含有关于生命、宇宙及一切事物的秘密。使用 GPG你只需要一个密码就可以加密此文件。使用密码远比使用公钥和私钥对简单因为它只是用你的密码加密。虽然这比较容易让你的文件遭受到破解比如使用彩虹表或其他黑客工具暴力破解但像它的名字中所宣称的这是相当不错的保护。要加密你的文件可以这样做
# gpg -c secret_manifesto.txt
Enter passphrase:
Repeat passphrase:
一但完成,在相同的目录下就会多出个新的文件,它默认的名字是 secret_manifesto.txt.gpg 。这是一个二进制文件,这意味着它真的比较小,但是要将其内容拷贝/粘贴到电子邮件e-mail或 即时消息IM 就不可能了LCTT译注当然你可以使用附件方式。。要使其便于拷贝等操作可以添加 -a 标志,这将创建一个只包含 ASCII 码文本的加密文件:
# gpg -a -c secret_manifesto.txt
Enter passphrase:
Repeat passphrase:
# ls -l
-rw-rw-r-- 1 spowers spowers 6 Nov 23 1:26 secret_manifesto.txt
-rw-rw-r-- 1 spowers spowers 174 Nov 23 1:27 secret_manifesto.txt.asc
-rw-rw-r-- 1 spowers spowers 55 Nov 23 1:26 secret_manifesto.txt.gpg
注意到现在多了一个以 .asc 为扩展名的文件。它是个纯文本文件从上面的代码段示例可以看到它比二进制的加密文件还大当然比原文本文件就大的更多了。一但你把文件加密了也确实想要对些信息保密最明智的就是把原文本文件删除掉。LCTT译注千万记住密码啊否则谁也帮不了你了——你得自己破解自己的密码啦:>
要解密文件,你需要再一次使用 GPG 程序。不管是二进制的还是 ASCII 文件,使用相同的命令就可以解密。如下所示:
# gpg secret_manifesto.txt.asc
gpg: CAST5 encrypted data
Enter passphrase:
gpg: encrypted with 1 passphrase
File `secret_manifesto.txt' exists. Overwrite? (y/N)
注意到上面的例子中,我没有删除源文本文件,所以 GPG 给出了是否覆盖选项提示。一但操作完成,我的未加密的源文件又回来了。如果你仅仅只有一两个文件要保护,那基于命令行的 GPG 程序正是你所需的。但如果你想实现在系统上指定一个区域,任何保存到这区域的的文件都会自动加密的话,就有点复杂了。可这也并不是非常的困难,让我们用一个非常简单的示范例子来讲解吧。
### 加密 USB 驱动盘 ###
如我前面提到的,要加密有很多可选的方式方法。加密磁盘分区最通用的一种方法是 LUKSLinux Unified Key Setup 系统。一个使用 LUKS 格式化分区的 USB 驱动盘可以被大多数系统自动识别到。实际上,如果你使用的是像 Ubuntu 桌面这样的桌面环境系统的话,加密 USB 驱动盘其实就是在格式化过程中简单的勾选上一个复选框而已。虽然这是加密 USB 盘最容易让人接受的方式,但我还是想演示如何在命令行下进行加密,因为这种方式可以让你明白在加密的后面具体发生了什么。
#### 步骤 1: 识别您的 USB 驱动盘。 ####
在您插入 USB 驱动盘后,如果在终端输入 `dmesg` 命令,将会显示出所有的系统信息,包括刚插入的 USB 驱动盘的设备名字。 确保设备标识是正确的,因为后面要进行的操作会破坏驱动盘上的所有数据。您也不想一不小心就格式化掉正常的磁盘吧。(虽然不用提醒,但我还是要说,确保您的 USB 驱动盘已经没有你想保留的数据,因为这是一个破坏性的过程。)
#### 步骤 2: 对 USB 驱动盘进行分区。 ####
假设,在您的系统上 USB 驱动盘是 /dev/sdb 这个设备您需要在这个驱动上创建一个单分区LCTT译注设备是sdb其上可以有多个分区分别叫sdb1、sdb2等等。我们使用 fdisk 命令。下面是 fdisk 必须的交互操作。一般地,用 o 命令来创建一个新的空分区,然后用 w 命令来保存设置。然后重新运行 fdisk 命令,并用 n 命令来创建一个新的主分区,接下来保持默认的以使用整个设备空间:
# sudo fdisk /dev/sdb
Command (m for help): o
Building a new DOS disklabel with disk identifier 0x1234567.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Command (m for help): w
The partition table has been altered!
# sudo fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1): 1
Using default value 1
First sector (2048-1016522, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1016522, default 1016522):
Using default value 1016522
Command (m for help): w
The partition table has been altered!
现在你的 USB 驱动盘有了一个单分区了(/dev/sdb1但还没有文件系统这正是我们所想要的因为 LUKS 系统需要在创建文件系统前在您的分区上创建一个加密层。因此,在创建文件系统之前,就让我们在分区上先创建一个 LUKS 层吧,可以使用 cryptsetup 程序。如果您还没有安装 cryptsetup 的话,可以搜索您系统发布版本的仓库源,里面就有。下面就开始创建 LUKS 加密分区层:
# cryptsetup luksFormat /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
按照提示的操作,一定要确保记得您的密码!注意,这儿的“密码单词”不仅仅只表示一个单词。这只是一个习惯,因而得名,设置的越长越复杂,越难被破解。
一但上面的操作完成,就创建好了一个加密的分区,但它还没有被挂载或格式化。要做的第一步就是挂载分区,可以再一次使用 cryptsetup 工具:
# cryptsetup luksOpen /dev/sdb1 my_crypto_disk
Enter passphrase for /dev/sdb1:
当输入完密码后,您输入名字的设备就会像虚拟硬盘一样被挂载上。通常,它挂载在 /dev/mapper/设备名 的目录下,所以这个例子所示的分区就挂载到了 /dev/mapper/my_crypto_disk 目录。
现在这个设备就可当做未加密的卷来访问了。 只要它一被挂载,就跟其它未加密的卷是一样的了,这就意味着您想要使用它的话就需要先建立文件系统:
# mkfs.vfat /dev/mapper/my_crypto_disk -n my_crypto_disk
mkfs.vfat 3.0.9 (31 Jan 2010)
现在磁盘的功能完备了,可以像其它磁盘一样正常挂载使用了。实际上,如果你使用的是现代的图形用户界面系统的话,只要你把 USB 驱动盘一插入计算机,将会提示您输入密码,然后就自动挂载上了。退出的时候跟普通盘一样,里面存储的数据会被加密,直到下次输入密码。在命令行里使用 cryptsetup 卸载以及重加密驱动盘也是很简单的:
# cryptsetup luksClose my_crypto_disk
### 这仅仅只是冰山一角 ###
写这篇文章,我的目的是希望剥开加密后面的秘密。加密和解密单个文件很简单,要加密整个 USB 驱动盘也不是太困难(如果使用的是图形用户界面工具就更容易了)。对于大多数系统的发布版本来说,在安装过程中就可以对整个 home 目录进行加密。加密是对您的整个 home 目录起作用,然而有些问题就需要特别处理了。例如,您没登陆时就运行的任务在大多数情况下是不会访问您的 home 目录的,但如果您有调度任务需要访问 home 目录的话,应该进行修改,让其访问系统中其它目录的数据。我觉得在安全和便利之中平衡的中庸之道还是加密 USB 驱动盘,然后在上面存储个人资料。
我必须警告您,一但您考虑到安全的问题,就会想要把任何东西都加密起来。这不是什么坏的事情,但是像要对 home 目录加密这种情况,是会碰到一些问题的。如果您使用不同系统的话,跨平台访问也是个大问题。像这种情况,我强烈建议您使用 [TrueCrypt][1]。在前期的文章片段里我提到过 TrueCrypt它是一款开源的跨平台的加密系统软件。可以对文件、文件夹、分区等等进行加密同时可以在任何系统中访问加密的数据。像 Windows、Mac 及 Linux 客户端都可以使用。社区也有大力的支持。LCTT译注悲惨的是棱镜门事件之后TrueCrypt的作者已经放弃了该产品并且强烈建议大家也不要使用具体可以参考本站的一些相关消息。所以痛失TrueCrypt之后我们还有哪些替代品
希望对文件进行加密的目的并不是为了隐藏某些东西。就像即使您有个好邻居,最好夜里也得锁门一样,对您的个人数据进行加密也是个很正常的举动。如果您想在网上与大家分享你的 Whiskerton 先生戴着可爱的小豆豆帽子的照片的话,这是您的权利。但其它的人,比如他们索检你硬盘的时候,就不需要让他们看到了。
--------------------------------------------------------------------------------
via: http://www.linuxjournal.com/content/encrypting-your-cat-photos
译者:[runningwater](https://github.com/runningwater) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.truecrypt.org/

View File

@@ -0,0 +1,192 @@
树莓派的联合创始人访谈——我们是怎么让大家都成为DIY黑客的
================================================================================
> 请记住它是为喜欢折腾的人准备的只要35美元的计算机
![](http://a2.files.readwrite.com/image/upload/c_fill,h_900,q_70,w_1600/MTIyMjkzMzI3NjMzNjA3OTYx.jpg)
我永远不会忘记我第一次看到树莓派的情形。那个小巧的信用卡大小的计算机性能却足够强劲可以作为一般家用PC媒体中心电视游戏机或是其他任何你能够想像的东西。只有35美元的价格它是任何年龄段的动手爱好者都可以拥有的小东西可以在上面捣腾硬件和软件试验而不用担心会弄坏昂贵的家庭电脑。
[Eben Upton][1],是树莓派基金会的共同创始人,通常被誉为这个神奇机器背后的魔法师。在剑桥大学的计算机实验室攻读哲学博士学位的时候,他费尽苦心地手工打造了树莓派的原型机。
如今Upton是树莓派基金会下面贸易公司的CEO监督着树莓派的生产和销售目前销量已经达到250万台。
### 天上的派 ###
ReadWrite网: 一开始是什么让你对技术这么感兴趣?它又是如何偶然地引导你创建树莓派项目的?
**Eben Upton**: 在我还是孩子的时候就开始对技术感兴趣了。我有个对工程技术有很大兴趣的父亲,他自己不是工程师,而是一个英语老师。我们的房子里经常到处堆着各种电子器件,在还不知道这些东西是干嘛的时候,我就开始摆弄了。都是些小玩意,比如在床头装个灯,在“关灯”后还可以继续看书之类的。
![](http://a5.files.readwrite.com/image/upload/c_fit,q_80,w_630/MTIyMzAxOTQxOTk1ODI2NDU3.jpg)
之后我有了一台计算机。在英国,我们把这种机器叫做[BBC微计算机][2]实际上是8位单片机做教学用的。我们在学校的时候接触到这种机器我之后就学会了编程而且还蛮喜欢的。
这些机器在学校里并不一定是用来编程的或者说他们根本不是用来编程的一般都运行教学软件。但是我却给它编程之后我还买了一台回家在我买了这台BBC微机后我就泡在了房间里再没出来过。[笑]
编程对于小孩来说太神奇了。当你还是小孩的时候,并没有太多力量。没有听话的随从,反而身边有很多的限制。编程最伟大的地方在于,这是一个可以让你随心所欲的小世界。而这当然让我无法抗拒。
我一直都对科学和数学以及理科感兴趣。我在我的BBC微机上做了大量的计算和编程之后我拥有了一台Commodore Amiga。
在大学里我学习了物理工程和计算机科学。这是激发树莓派项目想法的原因因为当我在学校呆了10年的时候[当时在读博士学位],我发现那些新来的孩子们在他们小时候并没有机会获得这方面的经验。你也许仍然能拥有乐高玩具,但是它不是我们要的梯子。
在一定程度上我们把身后的梯子撤掉了。我们造出了这些非常复杂而且用户友好的计算机给小孩使用或者不仅仅是计算机还包括电视游戏机电话和平板以及一些家用电器。但是人们却没有机会自己动手改一改。所以实际上树莓派是回到最初的一种尝试当然也不会过于原始希望找到在过去25年里计算机发展中迷失掉的那种感觉。
**RW:** 你需要克服的最大的障碍有哪些?
**EU:** 好吧我们没有任何投资者当然这也是一件好事情。我们从2006年就开始尝试做这件事情你可以看到它花了我们很长时间才把树莓派从一个想法变成一件能卖的东西。在价格和性能之间或是价格和可编程性之间找到平衡是一件很重要的事情。
另外一件麻烦事是募集资金。我们是非营利组织所以我们得去找人赞助而这最后都变成了董事会中的几个人自掏腰包。我们有25万美元的启动资金是从我和其他几个成员自己借的。所以我觉得当初这样做还挺有勇气。
![](http://a4.files.readwrite.com/image/upload/c_fit,q_80,w_960/MTIyMzAxOTQzODc0ODgwMTAy.jpg)
### 从东方到西方 ###
为了找到价格合适的生产方式,我们选了一条不同寻常的路线。通常人们生产更传统的产品时,当量不大的时候都会选择在本地生产,然后[制造商]再制定较高的价格。大多数都能获得比树莓派丰厚的利润。
所以他们开始会在西方生产。然后,为了追求更高的利润,当产品有一定的量就会想减少生产成本,所以转到远东地区。
我们的问题是因为我们没有足够的利润来支撑这种模式的订单所以我们在中国制造了第一批产品。当然一开始会有一点不好的预感。我一点也不了解中国制造最后我们把价值5万美元的芯片和5万美元现金交给一个香港人他需要还给我们2000片可以工作的树莓派。
之后交期出现了延时我们甚至都开始相信自己被骗了。然后终于有一天现在250万台树莓派中最早的2000台放在托板上来到了门口。
那个UPS快递员从卡车里拖出一个托板并拉到我们车库里。托板上放着2000台树莓派它们中每一台都比我小时候用过的计算机强多了。我们随机抽查了几台都可以完美地工作。
所以我觉得还挺幸运,中国你懂的。然后我们的产品终于开始有量了,我们选择了跟其他所有人不同的方向。我觉得这是这个项目中的另一个决定性时刻,我们认识到,以目前的订单量,我们可以用和在中国同样的成本在西方生产。所以我们可以回归,把所有的生产制造搬回威尔士,也是我出生的地方。像是一个美妙的圆圈。
**RW:** 有没有一些树莓派的前身没有被制造出来的?
**EU:** 有的,我们做了许多不同的原型机。我们希望做出一个可以编程,也能吸引小朋友兴趣的东西。“吸引小朋友兴趣”意味着,在某些方面要足够强大。比如,播放视频,玩游戏,以及上网。
我们有许多能够达到价格目标和可编程目标的原型但是等我们确定一个合适的方案它足够强大能够吸引孩子们的热情已经挺晚了都到2010年底2011年初了。
### 派是从哪儿烤好的 ###
**RW:** 跟我们说说发明树莓派的故事
**EU:** 我们尝试过基于所谓的微控制器技术做了几台机器。不知道你有没有听过一个叫Arduino的[开源电子原型]平台它们的性能跟Arduino是一个级别的优点是很容易买到是常用的元器件非常便宜也很容易掌握。
![](http://a2.files.readwrite.com/image/upload/c_fit,q_80,w_630/MTIyMzAxOTQ1NzU0MDUzOTEz.jpg)
所以我们试了一下。最后的成品只能从技术上来说还是计算机,你可以把它接到电视机或其他显示设备上。但是,它太原始了,很明显不能吸引孩子们的兴趣。这个是一号原型机,它在爱尔兰一家博物馆的叫“失败”的展览中展出[笑]。我下个月会去看看。它现在被装载一个玻璃盒子里,作为一次辉煌失败的典型。
好的一面是它是手工制作的,你不可能手工制作一块现代的树莓派。但是,这个原型太原始了,你实际上可以把所有器件手工焊接到一起,它就是我一个星期里做好的,是个挺好的小玩具。
我在大学里呆了差不多10年以后进入到一家叫Broadcom的公司工作总部在南加利福尼亚但是在剑桥有个大办公室主要生产手机芯片。然后我意识到这种手机芯片非常适合它是制作像派这样的设备的非常合适的平台因为它有优秀的图形性能。
我基于Broadcom开发工具制作了一个原型。这次的原型非常强大也有更多功能价格也差不多。不过问题是它有一套定制的开发环境而不是一个标准的平台。
我们得写自己的SD卡驱动自己的文件系统自己的文本编辑器。你会发现你得做大量基础工作虽然最后你能够得到一个强大的可编程的平台但是它却是完全非标准的[而且]和其他设备完全不一样。从而无法重用那些已经在台式机系统中已经做过的工作。这个是二号原型机。
真正的突破是三号原型机。我们从Broadcom拿到了另一种应用了ARM处理器的芯片可以直接运行标准Linux。我们意识到终于可以做出能够满足所有的需求的机器了这就是我们推向市场的产品。
### 黑一黑下一代黑客 ###
**RW:** 八岁的孩子就开始用树莓派做项目了。这在你意料中吗,还是说让你意外了?
**EU:** 八岁是很好的年纪。我想每个人都会把自己开始编程的年龄定义成合适的年龄。我就是八岁开始编程的。某种程度上来说,孩子们所需要的只是年龄大到拥有相对完整的认知技能,或者说是解决问题的技能。也许在学校学一点数学就够了。
![](http://a2.files.readwrite.com/image/upload/c_fit,q_80,w_630/MTIyMzAxOTQ3MzY0NTQxMDMw.jpg)
年龄大到可以计划任务,编程就是终极的计划任务。还是得有一定的智力基础去做这个事情。八岁的时候,大多数孩子在自己的思维上已经非常成熟了。另外还需要敏捷的身手,对更小的孩子来说还存在一个问题就是,他们还不够灵巧去使用键盘。
所以说,八岁是很好的年纪。你有合适的身体,有合适的心智,而且还处于生命中能轻松学习新知识的时候。你的大脑还具有非常大的可塑性,可以学习语言。。。
我的意思是你要是想让你的小孩学习法语的话八岁就开始教他不要等到16岁才开始。正式的计算机教育有一个历史性的缺点就是太晚开始了然后就很惊讶为何学生们理解起来概念有困难。所以我认为越早接触越好而八岁是奇妙的年纪。八岁十岁十二岁十二岁可能都有点晚了。
我们基金会的CEO[Lance][3] [Howarth],对初级教育特别热心。他真的认为这是一个实际的机会来做点非常特别的事情。
**RW:** 所以这是树莓派项目的目的,让小孩子们编程?
**EU:** 我想我们一直认为可以让孩子们玩编程只是举个例子。但是树莓派的目的是把这个东西做出来看看谁会买它。我们一直相信至少有一部分年轻的孩子会觉得它令人激动。现在我们已经有知识宽度和规模来支持孩子们玩它了。
[仅仅]做出一个像树莓派的平台和提供相关支持是有很大区别的如果只是做出来的话你会发现有1%的八岁孩子会喜欢它并且玩起来,不管你提供多或者少的支持。
我觉得现在基金会的一个实际的机会是我们已经可以承担得起开发教材了我们还可以提倡培训这方面的教师。有个机会是我们可以吸引比1%更多的孩子。还有个机会是吸引那些没有独自处理复杂技术问题倾向的机灵小孩。如果能够提供良好的教程和让他们感兴趣的教材就能够吸引10%20%50%,甚至更多的孩子。
我们认为80年代是[学习编程]的黄金年代,而实际上,只有很少一部分人学习编程并达到一定深度。大部分人也许可以写个几行,但是能够编写大型程序的还是很少见。
所以我认为我们目前有一个实际的机会因为我们可以参与到教材和教师培训的级别我们也许可以超越80年代。现在有更多的参与者两性之间也更平等。在80年代编程很大程度上是男孩们的事情而这也能反映到我们的工程师社区构成上。我觉得现在有个很好的机会让更多的女孩子接触电脑编程。这个是挂在枝头上垂得最低的果子了做到这个人数马上增加了一半。
机会有很多,我对树莓派最满意的地方就是我们已经有点规模可以吸引部分人的注意了。
### 每个人的派 ###
**RW:** 关于像派这样的项目的潜在需求对于你来说意味着什么是不是有一天我们都会变成DIY黑客
**EU:** 是的我意思是就是这样的。有非常大的这种需求。而且我认为有一条通向制作者社区的纽带。美国的制作者社区比英国成熟多了。我们也确实在举办制作者集会和黑客空间但是差不多比美国落后了5年左右。
所以在开始讨论树莓派之后我发现了一件事情在它获得国际关注的时候我们发现我们受到一些非常稳定的社区的成员的追捧他们喜欢各种各样的DIY活动编织或者你知道的木工。
所以,这也是为树莓派带来意外增长的其中一个因素。制作者们把它当作用来构建自己项目的模块。这太棒了!
**RW:** 你怎么看现在出现的主流硬件黑客文化?
**EU:** 我觉得,这太美妙了,不是吗?这是在软件工程领域里完全无法想到的。我接触这些之前就有软件背景,所以,实际上人们用树莓派制作的大多数很酷的东西都是硬件相关的,让我很惊讶。当然现在没那么吃惊了,不过一开始是有的。
![](http://a3.files.readwrite.com/image/upload/c_fit,q_80,w_630/MTIyMzAxOTQ5NTEyMDI0Njc4.jpg)
我认为这是非常积极的趋势基于所有这些因素。因为它给孩子们带来了相关的经验。在我看来在屏幕上移动一下像素还是很酷的不过事实上它没有像80年代那样酷了。我觉得在现实世界里移动一些物体比如机器人对于现在的孩子来说是非常酷的。
当有更多实用性的时候,就会吸引更多的女孩。确实存在一种潜在趋势,尝试和设计针对女孩子的科技活动。不过实际上这并不是关于女孩子,而是关于扩展用户的迫切要求。
有这样一小段我之前谈过的关于有1%的小孩会觉得抽象的计算机编程很有趣。“让我们开始学习变量!”我就是他们其中一个。但是,那只是很小一部分,而且看起来更大部分是男孩子。我不知道是不是文化因素或其他的,但是看起来这个世界就是这样的。
在人们谈论追求实用性来吸引女孩子的时候,根本不关女孩子的事。而是吸引那一小部分男孩之外的所有人。不仅仅吸引女孩,也包括其他男孩。
从教育的角度来看有一件美妙的事情是,在现实世界里应用计算机做点实际的东西,自然而然会比仅仅在计算机本身上面做点事情有用多了。所以,这就提供了一个方式来吸引女孩子进入这个领域,同样也可以吸引更多的男孩子进入这个领域。
不再是一个人很好。能够加入到这波兴趣的浪潮中,和许多制作现实世界东西的人一起,也是很精彩的事情。我认识一个南加利福尼亚的小伙,他有两个兴趣就是倒腾派和制作他的锁链甲。有人做这些事情本身就是一件很美妙的事情。
### 分享你的派 ###
**RW:** 关于吸引比1%更多人的“实用”项目,能举个例子吗?
**EU:** 整个机器人技术领域就是个很好的例子。有很多人基于派来制作小型机器人,让它们四周跑跑或做点事情。特别是现在,我们增加了摄像头模块,可以一定程度上实现计算机视觉。
我觉得其他基于摄像头的项目也会变得更活跃。那些从事野外摄影的人们以及从事缩时摄影的人们因为有了这个25美元的摄像头模块应用范围宽了许多。还有红外版本的模块所以你可以在晚上拍摄野生动物写脚本在晚上拍摄相片然后选择保存里面包含了动作的。这些都非常好。
我特别喜欢应用到高空气球的任何项目。环境监控有一些英国的高中学生在IndieGoGo发起了一个叫[AirPi][4]的项目,这是一个污染监控防御系统,底层将用到树莓派。所以会有许多这样的项目,你可以用派来处理物理的,或化学的,或者生物的事情。-这些都是我认为有实用性的事情。这种项目也更容易向孩子们证明,这是值得他们关注的项目。
**RW:** 我们什么时候可以看到树莓派C型
**EU:** 暂时还没有计划。我们目前都还在处理软件工作。我觉得我们还有机会通过调整软件来大幅提升系统性能,再优化一下。
如果我们现在就启动制作C型将会抛弃250万使用目前平台的用户。所以我觉得至少现在我们决心要继续软件工作因为这可以帮到所有已经在这个领域里的人。我们感觉通过软件优化还有很大的性能提升空间。
显然,我们同时也必须做一点[硬件方面]的事情。我真的不知道具体在什么时候。如果到了20172018我们还在销售树莓派B型的话那也挺糟糕的。但是我认为我们也许在一年后再认真考虑后面要做什么。
**RW:** 很多人的项目同时用到了派和Arduino一个DIY电子调试工具套件。你在设计派的时候有考虑类似Arduino的工具吗
**EU:** 实际上没有但是我们很早就意识到媒体可能会倾向于把我们和Arduino看作竞争者。对于这件事情我们有点多疑我觉得因为我认为派和Arduino分别处理不同的事情而且他们都做得很好。
我们并没有把它设计成配合Arduino工作但是Arduino被设计成配合家用PC一起工作。所以我们实际上为Arduino制作了一台非常低功耗的家用PC。所以好吧只是巧合我猜。
**RW:** 你在家里用树莓派做什么?工作中呢?
**EU:** 在家里,我把它当作一个媒体中心;这是树莓派一个非常普通的应用。有趣的事,有些从事消费电子的人,把它当作消费电子来用。我当然也是其中之一。
在工作中,我总是没有我想要的那么多时间来玩玩树莓派。通常在工作的时候如果在用派的话,那是因为我需要测试刚拿到的一些软件更新。大多数时候我用它来检查我花钱请的承包人是否把工作做好了。
我真心希望明年会有更多休息时间。有时我感觉,除了媒体中心之外,我参与制作了这么神奇的玩具,但是因为它太成功了,我都没有时间去好好玩玩它。
不过,看到这么多的人喜欢它,看到它被出现在各种不同的地方,也是很开心的。我听说在《生活大爆炸》中提到了我们,我要去找找是哪一集。它出现在所有的这些不可思议的地方。真是非常开心,看到这么多人把它放在心上,开始用它做点事情。
承蒙树莓派基金会提供Eben Upton的图片
树莓派图片来自Flickr用户[Johan Larsson][5], [Clive Darra][6], [Pete Sneekes][7], [Luca Sbardella][8]和[Ashley Basil][9]
--------------------------------------------------------------------------------
via: http://readwrite.com/2014/04/08/raspberry-pi-eben-upton-builders
译者:[zpl1025](https://github.com/zpl1025) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://twitter.com/EbenUpton
[2]:http://en.wikipedia.org/wiki/BBC_Micro
[3]:http://www.raspberrypi.org/welcome-lance/
[4]:http://airpi.es/
[5]:https://www.flickr.com/photos/johanl/8384790662
[6]:https://www.flickr.com/photos/osde-info/8626662243
[7]:https://www.flickr.com/photos/p8/7950485168
[8]:https://www.flickr.com/photos/sbardella/7473604878
[9]:https://www.flickr.com/photos/28438417@N08/8006786385/in/photolist-dcwSD8-d8PKa3-bmosVm-bmosWG-bz3YJF-e8NRQD-btyqN1-dorXrE-hTF7id-hTF7jL-hTF4mJ-hTF4jj-hTF4q1-hTF7jA-hTF7gj-gKRLrn-ftALdo-c7Qnjs-c7Qnyh-c7QmZj-c7QnY1-c7QmNY-cu8zs3-cu8BWm-cu8u5S-cu8yC3-cu8DBN-cu8wRq-cu8xNL-cu8CJj-cu8tss-cu8BcG-cu8uVL-cu8AoW-hTF7dU-hTEzCr-hTFBCp-hTFBvR-hTFBBH-hTF4hA-hTF7c1-hTEzza-hTFBM2-cdtf1b-bz7n87-gKQSJ7-gKQUko-ds8x8q-dqweVP-cVwvJq