在Ubuntu下如何创建远程".deb"包仓库

Summary: Reprepro是一款小巧的命令行工具来方便地创建并管理.deb仓库。今天我们会展示给你如何使用reprepro简单地创建一个Debian包仓库，并使用rsync上传到Sourceforge.net。  步骤 1: 安装Reprepro并生成key 首先，安装所有需要的包，使用下面的apt-get命令。 $ sudo apt-get install reprepro gnupg  现在你需要使用gnupg生成一个gpg key，这里使用下面的命令。 $ gpg --gen-key  它会询问你一些问题，比如你想要哪种key、key的有效期、如果你不知道如何回答，只需点击回车 来选择默认选项（建议） 当然，它会询问你用户名和密码，在脑海中记住

@我的印象笔记

# 在Ubuntu下如何创建远程".deb"包仓库

**Reprepro**是一款小巧的命令行工具来方便地创建并管理**.deb**仓库。今天我们会展示给你如何使用reprepro简单地创建一个Debian包仓库，并使用**rsync**上传到Sourceforge.net。

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

### 步骤 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](mailto: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 命令](http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/)。（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/) 荣誉推出


开源多媒体转换器Curlew 0.1.22.3发布了

Summary: 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来简单地安装

ubuntu 14.04 有没有屌丝翻墙翻墙方法，cjb shell accounts 在cjb主页找不到啊。

mark

界面设计的很好

@阿感的一些事一些情 这个尾巴被锁定

linux版格式工厂的即视感。

是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

这个牛叉！

哟//@Linux中国: 是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

@毕业的狮子座 //@Linux中国: 是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

转发微博.

我都是直接用ffmpeg命令行，尽管有些参数不记得//@西瓜大丸子汤:linux@Memect //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

写代码最难的部分果然是命名。 //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

明明更像media coder //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

好东西要收藏下来//@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

@我的印象笔记

@我的印象笔记 //@西瓜大丸子汤:linux@Memect //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

好东西 //@gheiae0ac://@西瓜大丸子汤:linux@Memect //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

马 //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

比ffmpeg还多吗//@Taski11er: //@西邮Linux兴趣小组: //@Linux中国:是呀是呀//@阴谋颠覆学生会: linux版格式工厂的即视感。

# 开源多媒体转换器Curlew 0.1.22.3发布了

<img src="content_image/album_201407_14_212641p1b1m1grkzbvjiqq.jpg" alt="Curlew interface" title="Curlew interface">

**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

```

查看官方[更新日志](http://gtk-apps.org/content/show.php/Curlew?content=155664)来获取完整的特性与更新列表。

你可以下载Curlew 0.1.22.3 的软件包：

* [Ubuntu 14.04 DEB ALL](http://sourceforge.net/projects/curlew/files/curlew-0.1.22.3/curlew_0.1.22.3ubuntu14.04_all.deb/download)[ubuntu\_deb] [172 KB]
* [tar.gz](http://sourceforge.net/projects/curlew/files/curlew-0.1.22.3/curlew-0.1.22.3.tar.gz/download)[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/) 荣誉推出


命令行星期二 —— 第三篇

Summary: 今天，肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件，以及首次介绍一些选项的运用。OK，让我们开始学习这周的第一个命令。 ls ls 是一个用来列出目录内文件的命令。通过添加选项来实现多种不同的用途。简单起见，你可以只需键入 ls 。但是，你也可以在命令后面添加一个选项，它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时，这会帮到你的。举例来说，当你要从一个命令的大量输出中找寻指定信息，你可以用选项缩小范围来实现。 这就是选项的基础概念。我们可以用下面书写格式表示： command(

赞！支持！

# 命令行星期二 —— 第三篇

今天，肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件，以及首次介绍一些选项的运用。OK，让我们开始学习这周的第一个命令。

### ls

ls 是一个用来列出目录内文件的命令。通过添加**选项**来实现多种不同的用途。简单起见，你可以只需键入 ls 。但是，你也可以在命令后面添加一个选项，它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时，这会帮到你的。举例来说，当你要从一个命令的大量输出中找寻指定信息，你可以用选项缩小范围来实现。

这就是选项的基础概念。我们可以用下面书写格式表示：

```
command(命令) -option(选项) argument(参数)

```

命令，恩...，我们可以输入 pwd、 ls， 或者我们到目前为止所有学过的命令。

以上我们已经阐述了选项的目的。但是我们需要注意一下书写格式：在前头添加一个破折号。所以，如果选项为 l, 你需要在命令后键入**-l**。

**参数**是一个命令的操作对象（在这个例子中，它是一个目录，我们将会学到如何浏览它们）。

接着，让我们尝试在主目录里尝试用 ls 命令列出 /etc 目录内容。这次我们先不添加选项。

就这样，列出了一大堆的文件。它们还根据颜色进行了分类。蓝色的是目录，白色的为普通文件，绿色的似乎是某种 shell 脚本文件。除此之外，还有其他不同的颜色来代表不同的文件类型。

接下来，你可以在刚才的命令里添加 -l 选项。添加选项 -l 后也会列出同样的文件和目录，但是以长格式方式输出。如果你需要查看更多信息的话，这个选项将是不错的选择。

### 长格式

这样，用了长格式后，你可以看到更详细的信息，以及在每行开头类似-rw-r--r-- 令人抓狂的标示。实际上，这只是一种组合，代表了各种意义的信息。

(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。

..就这样了。

你要如何控制 less 呢?

简单的， 你只需要动动键盘就行了！

less 一次只会显示一个页面的文本。往前翻页你需要按 **Page Up**, 或者 **'b'**。往后翻页你可以按**Page Down**, 或者 **空格**。大写的**G**会跳转到文本的末尾，**1G**会跳转到文本的开端。**/字符**会在文本内搜索指定字符（例如，如果你输入 /suse ，它会找寻所有文本含有的 suse 并标记出来）。n 会重复执行你的搜索，**h**会显示所有的选项（h，即帮助的意思）。

按q退出 less 命令。

### file

file 会显示文件的类型，是否是你要找的 ASCII 文本，还是 jpg 图片，bash 脚本等。让我们用 /etc/os-release 执行练习。

这样，如你所见，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/) 荣誉推出


自动补完不算什么，一键直达目录才是终极神器！

Summary: 在命令行中切换目录是最常用的操作，不过很少有比一遍又一遍重复cd ls cd ls cd ls 更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字，那么你不得不使用ls来确认，然后使用cd来进入你想要进的那一个。所幸的是，现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是，你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰，你一定会对autojump感到惊喜。 autojump是一个命令行工具，它允许你可以直接跳转到你喜爱的目录，而不用管你现在身在何处。  在Linux上安装autojump 在Ubuntu或Debia

@jia-Zz- 这个小羊挺可爱

强烈推荐autojump，只要一个j，想去哪个地方去哪个地方

深夜福利

呵呵。。。。。

挺好！

不错

用不了啊，回车之后还是在当前目录，用j时候会说j：未找到命令

你当然得先安装 autojump 啦，这又不是默认带的。

好腻害的样纸[熊猫]

@我的印象笔记  //@西瓜大丸子汤:强烈推荐autojump，只要一个j，想去哪个地方去哪个地方

卧槽！！

autojump  妥妥的

看着好流弊的样子.

autojump

好方便的说

fedora 19跳不动呢？有相同遇到的吗？

居然你的头像是动态的，我都不知道支持 GIF 动态。。。哈哈

恩，估计是bug吧。我把用yum安装的卸载了，去git上面下载的最新版本安装就ok了

fedora21 也跳不动

可以了，安装完后，要先source /etc/profile.d/autojump.sh后才行。在~/.bashrc里面添加了[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh 然后. .bashrc

实际用了一下，一个j好爽啊～～～～

刚开始用一定很不爽！毕竟都是根据使用频率来评判权重的。

如果 log 下面也有一个 doc 文件夹呢？如何进入这个 log/doc?

因为给 autojump 提 PR 加测试和修 bug 很久都没有收到回应

所以我自己用 Go 重写了一个：github.com/suzaku/shonenjump

因为是用 Go 写的，直接编译成可执行文件， 所以可以说安装的时候更简便了，直接下载到 PATH 中的某个目录就可以

给你10000个赞！

写个介绍性质的文章呗？我们来宣传。这就是开源和极客精神啊！

对于我来说，的确是好东西，能省不少时间

# 自动补完不算什么，一键直达目录才是终极神器！

在命令行中切换目录是最常用的操作，不过很少有比一遍又一遍重复“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仓库](http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html)才行。

```
$ sudo yum install autojump

```

在Archlinux上安装autojump：

```
$ sudo pacman -S autojump

```

如果你找不到适合你的版本的包，你可以从[GitHub](https://github.com/joelthelion/autojump)上下载源码包来编译。

### autojump的基本用法

autojump的工作方式很简单：它会在你每次启动命令时记录你当前位置，并把它添加进它自身的数据库中。这样，某些目录比其它一些目录添加的次数多，这些目录一般就代表你最重要的目录，而它们的“权重”也会增大。

现在不管你在哪个目录，你都可以使用下面的语法来直接跳转到这些目录：

```
autojump [目录的名字或名字的一部分]

```

注意，你不需要输入完整的名称，因为autojump会检索它的数据库，并返回最可能的结果。

例如，假定我们正在下面的目录结构中工作。

那么下面的命令将直接让你跳到/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](https://github.com/clvv/fasd)，它应该会给你一个惊喜——我们下次再介绍它。

你觉得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/) 荣誉推出


五个超赞的字符艺术生成器！

Summary: ASCII字符艺术 前两天有人在微博上传了一张Linux登录后的Motd图片，非常传神的体现了系统管理员们无厘头和无奈的一面。  其实这副图片就是通过人们称为ASCII字符艺术的方法生成的，完整的代码如下： cat EOT _oo0oo_ 088888880 88" . "88 (| -_- |) 0\ = /0 ___/'---'\___ .' \\\\| |// '. / \\\\||| : |||// \\ /_ ||||| -:- |||||- \\ | | \\\\\\ - /// | | | \_| ''\---/'' |_/ | \ .-\__ '-' __/-. / ___'. .' /--.--\ '. .'___ ."" ' '.___\_|_/___.' ' "". | | : '- \'.;'\ _ /';.'/ - ' : | | \ \ '_. \_ __\ /__ _/ .-' / / =====

Repost

收藏

[嘻嘻]

明天我就去把单位的服务器都改了！

矮油～

佛祖保佑永不死机，亮了

[呵呵]

改了就死了

回复@环宇天宸:怎么会！[衰]

[哈哈]//@Linux_cn: 转发微博

@哈里森iSRX //@Linux_cn:转发微博

//@mx-computer://@Linux_cn: 转发微博

装B利器

# 五个超赞的字符艺术生成器！

### ASCII字符艺术

前两天有人在微博上传了一张Linux登录后的Motd图片，非常传神的体现了系统管理员们无厘头和无奈的一面。

其实这副图片就是通过人们称为ASCII字符艺术的方法生成的，完整的代码如下：

```
cat <<EOT

                                  _oo0oo_
                                 088888880
                                 88" . "88
                                 (| -_- |)
                                  0\ = /0
                               ___/'---'\___
                             .' \\\\|     |// '.
                            / \\\\|||  :  |||// \\
                           /_ ||||| -:- |||||- \\
                          |   | \\\\\\  -  /// |   |
                          | \_|  ''\---/''  |_/ |
                          \  .-\__  '-'  __/-.  /
                        ___'. .'  /--.--\  '. .'___
                     ."" '<  '.___\_<|>_/___.' >'  "".
                    | | : '-  \'.;'\ _ /';.'/ - ' : | |
                    \  \ '_.   \_ __\ /__ _/   .-' /  /
                ====='-.____'.___ \_____/___.-'____.-'=====
                                  '=---='

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        佛祖保佑    iii    永不死机

EOT
```

（图片和字符来自：http://www.stenote.com/）

ASCII是一个非常吸引人的字符编码系统，在计算机，通讯设备，以及其他设备中，通过它来用代码表示字符。新生代的人可能会觉得它已经过时了，但是那些熟悉它的人会懂得ASCII是多么的独特。我们在这里为你准备了五个超赞的ASCII字符艺术生成器。

### 1.[GlassGiant ASCII Art](http://glassgiant.com/ascii/)

这个小程序可以把图片转换成ASCII字符艺术－一堆胡乱堆在一起的文字，数字和符号，看上去没有任何意义，直到你往后站一步去看完整的画面。它也没有什么实际的用途，只是看上去非常简洁灵巧。

### 2.[ASCII Art Generator](http://www.ascii-art-generator.org/)

ASCII字符艺术是一种在电脑上把可打印字符作为图片元素来拼接展现一幅图像的艺术活动。你所需要做的只是上传你的图片，然后它会帮你转成ASCII字符艺术。

### 3.[Ascii.mastervb](http://ascii.mastervb.net/)

ASCII字符艺术来源于7比特ASCII字符标准。ASCII字符艺术曾经在70－80年代很流行。在那个时候，计算机系统都还是基于字符的。这个程序可以非常快地把图片转换成ASCII字符。

### 4.[IMG2TXT](http://www.degraeve.com/img2txt.php)

这个脚本可以将GIF,JPG或PNG的链接转换成ASCII字符或是带颜色的HTML。

### 5.[picascii](http://picascii.com/)

它可以把图片转换成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/) 荣誉推出


红帽公司发布 OpenStack Platform 5

Summary: 红帽公司宣布在RHEL上推出OpenStack Platform5，这是基于OpenStack开源云的第三个企业级发行版。该版本不仅开发了一些新功能，针对的用户群体也大为增多，如高大上的云用户、电信企业、互联网服务供应商（ISP)、公有云服务供应商等。 OpenStack Platform 5是基于最新的Openstack Icehouse的发行版，并且针对云计算技术做了大量的修改和优化工作而来的。 这个最新的发行版有3年的技术支持周期，我选择了使用它是考虑到红帽公司在Linux系统上对用户无以伦比的技术支持，红帽公司对其OpenStack Platform 5的技术支持服务将是促使企业购买的关

翻译第二篇，欢迎大家捧场[嘻嘻]

openstack 社区很活跃，方便二次开发。我觉得对于不做二次开发的团队纯属应用的话，cloudstack+xenserver 或者KVM 也是不错的选择，前者部署繁琐，而后者部署非常简单。

redhat的 openstack分支，确实不敢恭维，bug太多，还是建议使用社区版的

# 红帽公司发布 OpenStack Platform 5

<img src="content_image/album_201407_17_141907tvb3alzqvmhwhmeh.jpg" alt="" title="">

红帽公司[宣布](http://www.marketwatch.com/story/red-hat-announces-general-availability-of-red-hat-enterprise-linux-openstack-platform-5-2014-07-08)在RHEL上推出OpenStack Platform5，这是基于OpenStack开源云的第三个企业级发行版。该版本不仅开发了一些新功能，针对的用户群体也大为增多，如高大上的云用户、电信企业、互联网服务供应商（ISP)、公有云服务供应商等。

OpenStack Platform 5是基于最新的Openstack Icehouse的发行版，并且针对云计算技术做了大量的修改和优化工作而来的。

这个最新的发行版有3年的技术支持周期，[我选择了使用](http://ostatic.com/blog/why-red-hats-openstack-support-must-be-as-inclusive-as-possible)它是考虑到红帽公司在Linux系统上对用户无以伦比的技术支持，红帽公司对其OpenStack Platform 5的技术支持服务将是促使企业购买的关键之一。

对于红帽公司是否会支持OpenStack的其他发行版尚未有定论，但一份OpenStack用户调查已经显示[90%的OpenStack开发人员并没有在RHEL上使用OpenStack](http://www.openstack.org/blog/2013/11/openstack-user-survey-october-2013/)，而是选用了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/) 荣誉推出


放弃微软产品，慕尼黑省下数百万美元

Summary: 慕尼黑这座城市已经成为了从微软产品转向开源的，最突出的城市管理案例之一，而且Canonical公司和ubuntu为这次变革起了很大的作用。 慕尼黑成功脱离了微软的依赖，但是他们为这次摆脱过程付出了价值不菲的代价。从微软产品转向开源的好处看起来似乎很昂贵，但是转变的成本比之后的产品升级显著要低，不仅如此，在未来，我们会发现这种做法更便宜。 当你在像慕尼黑城市这种大城市，尝试从一个专有解决方法转向开源的时候，这可并不容易。因为慕尼黑拥有22个组织单位，每个单位都有自己的IT部门，更不要说各部门之间不同版本的应用程序。 地

这对微软可不是好消息。

作为慕尼黑工业大学毕业生和慕尼黑的忠实拥趸，我很欣慰！

[礼物]

希望linux用户越来越多，哈哈

支持开源

德国不是openSUSE大本营吗？

桌面版的openSUSE也类似与fedora一样，有着小白鼠的基因。我猜测可能这是原因之一吧...

德国人本来linux用的就比较多，之前还听说德国主流软件都有linux版来着[挖鼻屎]

您可能是盗版的受益者，请自觉黑屏。

# 放弃微软产品，慕尼黑省下数百万美元

<img src="content_image/album_201407_17_142905xwygvq8kdt36y3bt.jpg" alt="" title="">

**慕尼黑这座城市已经成为了从微软产品转向开源的，最突出的城市管理案例之一，而且Canonical公司和ubuntu为这次变革起了很大的作用。**

慕尼黑成功脱离了微软的依赖，但是他们为这次摆脱过程付出了价值不菲的代价。从微软产品转向开源的好处看起来似乎很昂贵，但是转变的成本比之后的产品升级显著要低，不仅如此，在未来，我们会发现这种做法更便宜。

当你在像慕尼黑城市这种大城市，尝试从一个专有解决方法转向开源的时候，这可并不容易。因为慕尼黑拥有22个组织单位，每个单位都有自己的IT部门，更不要说各部门之间不同版本的应用程序。

地方政府不能只采用一个Linux发行版本。第一次的尝试是在2006年伴随着Debian的回归，但是特定的操作系统并没有一个可预测的发布时间表。这就是新操作系统LiMux产生的原因，一个基于ubuntu的操作系统。

“LiMux/开源项目是漫长而又反复的，但是经过几年时间运行这种大型Linux，我们意识到ubuntu才是最能满足我们需求的平台。通过结合开源软件的低成本和自由，加以对我们需要的硬件和应用程序的持续支持，这种做法才是这个项目成功的关键因素之一。当然，最终要还有我们的市府在项目上始终给予的高度支持。”慕尼黑项目经理Peter Hofmann[说道](https://insights.ubuntu.com/2014/07/07/ubuntu-and-open-source-help-the-city-of-munich-save-millions/)。

截至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/) 荣誉推出


Linux 截屏软件 Shutter

Summary: Shutter，是一款Linux平台下广受欢迎的截屏软件。最近的更新中，该软件修复了若干bug，并且使用了新的应用图标。 这款开源并且功能强大的截屏工具可以让你选择桌面的任意区域、指定应用窗口或者整个屏幕区域来进行截屏。此外，你还可以添加注释、文本或者特效。 0.91版本修复了若干明显的bug，包括在Ubuntu 14.04中缩略图无法正常地在应用切换栏中显示的问题。由于'imm.io'在今年早期停止了服务，所以此次更新还取消了将截图上传到Pixlr图像服务的选项。 最后，这次更新突出了由 Lucas Romero Di Benedetto 精心设计的相机快门式应用图标

来，跟我一起念，QQ是一款专业的截屏软件~（但是是闭源的

QQ兄弟腾迅通表示也会抓图。[哈哈]

不能再赞～

和scrot比如何？

马

蛮好用

[吃惊]卡吗 木有碰到过啊//@Linux中国: [汗]//@小和平鸽: 这货在XFCE 下面时常卡死而且无解你造吗？Issue 都被关了。虽然除此以外没有更好用的了。[挖鼻屎]

一直用scrot表示不關心//@Linux中国: [汗]//@小和平鸽: 这货在XFCE 下面时常卡死而且无解你造吗？Issue 都被关了。虽然除此以外没有更好用的了。[挖鼻屎]

久闻大名，一直未用

我还是比较喜欢PRINTSCREEN

话说又不是手机[挖鼻屎]//@伽罗Kapple: 这个要root权限吗？//@Linux中国:[汗]//@小和平鸽: 这货在XFCE 下面时常卡死而且无解你造吗？Issue 都被关了。虽然除此以外没有更好用的了。[挖鼻屎]

其实一般的截屏不需要太多的要求，顶多我觉得那种可以滚动截屏的比较需要。

对。滚动截屏还真是蛮重要的。

我现在常用的QQ截屏就没这种功能，单独装一个吧，也懒得装。

昨天安装上了一个SHUTTER，挺好使的。谢谢呀！

perl写的？看这一坨依赖真是吓哭了

有能滚动截图的吗

# Linux 截屏软件 Shutter

**[Shutter](https://apps.ubuntu.com/cat/applications/shutter/)，是一款Linux平台下广受欢迎的截屏软件。最近的更新中，该软件修复了若干bug，并且使用了新的应用图标。**

这款开源并且功能强大的截屏工具可以让你选择桌面的任意区域、指定应用窗口或者整个屏幕区域来进行截屏。此外，你还可以添加注释、文本或者特效。

0.91版本修复了若干明显的bug，包括在Ubuntu 14.04中缩略图无法正常地在应用切换栏中显示的问题。由于'imm.io'在今年早期停止了服务，所以此次更新还取消了将截图上传到Pixlr图像服务的选项。

最后，这次更新突出了由 Lucas Romero Di Benedetto 精心设计的相机快门式应用图标。

### 在Ubuntu环境下安装Shutter 0.91版本

升级到Shutter的最新版本是非常简单的——前提是你添加了该软件的PPA。[The Shutter PPA](https://launchpad.net/%7Eshutter/+archive/ppa) 面向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](https://launchpad.net/%7Eshutter/+archive/ppa/+files/shutter_0.91%7Eppa2%7Eubuntu14.04.1_all.deb)

---

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/) 荣誉推出


Linux 目录导航技巧

Summary: 目录当行是命令行系统的基础概念.虽然不是什么难以理解的东西，但是知道一些技巧能够丰富你的经验并且提高工作效率.在这篇文章中,我们会讨论这些小技巧。 我们已经知道的东西 在开始高级技巧之前，有一些必须知道的基本命令：  pwd显示当前目录 cd 改变当前目录 cd 跟两个点(cd ..)能返回父目录 cd 跟着相对目录就能直接切换当相对目录下 cd 跟着绝对目录就能切换到绝对目录下  高阶技巧 这节将介绍几个技巧方便你进行目录的切换 从任何地方回到home目录 虽然使用cd /home/你的主目录, 不是什么大麻烦, 但是有一种方法直接打cd 就能回到你

cd -

~表示家目录，在写脚本的时候用得上

pushd popd 不错,特别是在某些目录结构比较有深度的时候特别有用

我以前都不知道有这个~

# 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 来切换目录

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

如果你对'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译注2：我们之前介绍的[autojump](http://linux.cn/article-3401-1.html)，更加智能，不过需要安装一下。）

**注意**- 你也可以使用不带参数的 ‘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/) 荣誉推出


LFS编译过程必备辅助手册（一）

Summary:
前言
LFS（Linux from scratch）是从源代码开始编译Linux操作系统。如果需要深度定制Linux操作系统或者需要 更加深入学习Linux的学习者可以从这里开始您的旅途。这份意义的深渊不必多说。 同时也希望您能加入我们一起开始这段旅程加入我们
从7月初开始我们团队里面两个人为了更加深入的学习Linux方面的知识。也为了瞻仰LFS大神们的光辉。 开始了LFS的旅程，因为LFS官方文档写的虽然非常具体，但是多多少少对于一些Linux新手来说造成很多困扰。
因此我们团队做完LFS之后写了这篇辅助性质

# LFS编译过程必备辅助手册（一）

>
> 很多人对Linux进行了一定的学习之后，都会有一种自己从头搭建一套Linux的想法，在这方面LFS和Gentoo都是不错的起点。不过虽然它们已经尽量提供详细文档了，但对于初学者来说还是存在一定的困难的。
>
>
> 因此本站特邀 PHILO （@看见微软我就跑）和 米油 两位同学将他们自己学习LFS的经验分享给大家，也希望大家一起来参与到LFS之旅中。
>
>
>

前言
--

LFS（Linux from scratch）是从源代码开始编译Linux操作系统。如果需要深度定制Linux操作系统或者需要更加深入学习Linux的学习者可以从这里开始您的旅途。这份意义的深渊不必多说。 同时也希望您能加入我们一起开始这段旅程： **[→加入我们←](http://ubtamator.github.io/)**

<img src="content_image/album_201407_18_110221aa0hiapkvh9ahnvs.jpg" alt="" title="">

从7月初开始我们团队里面两个人为了更加深入的学习Linux方面的知识。也为了瞻仰LFS大神们的光辉。 开始了LFS的旅程，因为LFS官方文档写的虽然非常具体，但是多多少少对于一些Linux新手来说造成很多困扰。

因此我们团队做完LFS之后写了这篇**辅助**性质的说明，对新手遇到问题的时候提供帮助。

### 进行LFS旅程的前提条件

1. 比较熟悉Linux操作
2. 有一定Linux开发基础
3. 在LFS之前有过从源码编译软件的经验。
4. 有一定的英文基本功，除了看手册之外，有的时候抛出错误的时候应该有google查找并解决错误的能力。

### 文档使用方法：

1. 首先对本辅助文档完整的浏览一遍，这样有助于理解LFS的整个过程做什么
2. 然后扫一遍LFS官方文档的目录，这样至少知道每个章节的目的。
3. 当你进行到LFS某一步时，遇到问题后可以对应上本辅助手册的具体问题的解决方案

### LFS全过程概括

1. 对磁盘的准备和用户的准备
2. 建立temp系统
3. 编译LFS系统
4. 最后调整

### LFS 编译完成的成果

LFS在编译完成的最后除了Linux基础内核目录结构（bin etc lib proc dev等等这些）还有一个tools这个目录（过程概括中的第2部分），它的存在是为了编译LFS整个系统的。所以在第五章这一部分中，就是利用ubuntu或centos主机系统的编译环境（称之为HOST）来编译出tools这个目录下的编译环境。

**提示**：其实制作LFS所有用到的工具链接，就是在ubuntu或centos下编译出一个新的交叉编译器(就是/tools目录下的所有工具)，而这个新的交叉编译器在编译出来后，就不会依赖于现有操作系统编译器和库文件(ubuntu or centos)，此时我们就可以利用这个全新的交叉编译工具(/tools目录下的所有工具)制造属于我们自己的Linux了，利用这个新的工具，从源码开始编译出所有我们需要的软件和库，最后编译Linux内核，设置bash脚本，启动脚本，tmpfs文件系统需要的配置文件，整个LFS的过程就结束了。

A： Linux发行版本的选择
---------------

1. CentOS 6.3 （虚拟机双硬盘）
2. Ubuntu 14.04 with GCC4.4（64bit） （笔记本电脑+双硬盘+LFS系统构建在SSD硬盘上）
3. 在以上两种Linux发行版上分别进行编译运行,且最终都取得成功。
4. 使用LFS官网上LFS7.5的源码进行编译制作

B：前四章的内容：硬盘分区、用户准备篇
-------------------

主机所用操作系统的准备工作: (ubuntu14.04 64位下需要安装的软件)

>
> 1.在ubunt下安装bison（ubuntu下默认没有安装）
>
>
>
> ```
> sudo apt-get install bison
> #LFS 手册要求
>
> ```
>
> 2.不能用gcc4.8，需要换成gcc4.4（ubuntu14.04默认gcc4.8)
>
>
>
> ```
>  sudo apt-get install gcc-4.4 g++-4.4
>  sudo rm `which gcc`
>  sudo rm  `which g++`
>  sudo ln -sv /usr/bin/gcc-4.4  /usr/bin/gcc
>  sudo ln -sv /usr/bin/g++-4.4  /usr/bin/g++
>
> ```
>
> **这里CentOS没有什么特别要说的。主要因为全部都用默认的，就可以了。各种依赖C6-Media就可以解决**
>
>
> 3.到LFS官网上下载LFS7.5的所有源码: <ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/>
>
>
>

### 1.磁盘分区准备

1. plan: 准备一个10到20GB的分区，这一步请谨慎操作
2. action: 创建分区(表)并格式化。创建分区表请使用fdisk , 如果需要图形界面下的请使用GPartion，如果这两种工具都不会请到windows下分区（无需格式化）

```
#格式化分区
sudo mkfs -v -t ext4  /dev/sdaX #这里的X是填上自己的分区号

```

PS:因为现在计算机的内存都比较大，所以可以不需要swap分区。（第一次进行LFS，一个根“/”分区就够了，等以后有经验了，在进行多分区的操作）

### 2.用户准备

直接参考手册上的来就行了。

小建议：

PS1='[\[\e[32m\]#\##\[\e[31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\]'

PS1修改成这个变量看着能舒服点。

注意：每次开机，或是重启后，在进入lfs用户前，都要对 LFS变量进行检查，查看LFS=/mnt/lfs变量是否存在，然后对lfs使用的分区进行挂载

### 前四章的小结：

> 1. 这一部分没有什么难点，准备硬盘分区是因为要让LFS作为独立的硬盘来启动。新建分区、格式化分区、准备lfs用户是Linux操作的基础素质。 **注意** ：为了下面的编译过程能更快，可以在输入make命令时在后面加入-j4，使用4个进程进行同时编译，在多核处理器上编译的速度有明显提升
>

---

#### 开始进入编译代码的环境（每次开机或重启动后需要进行下面步骤进入lfs用户环境）

> 1. 首先导入LFS变量
>
>
>
> ```
> export LFS=/mnt/lfs
> #建议放到/etc/profile下方便一直用
>
> ```
>
>  2. 然后挂载LFS的分区
>
>
>
> ```
> sudo mount -v -t ext4 /dev/sdaX $LFS  #X为你的LFS硬盘分区号
>
> ```
>
>  3. 最后就可以切换到lfs用户了
>
>
>
> ```
> su - lfs  #注意中间这个 - 符号是一定要的，代表为lfs用户启动一个login shell
>
> ```
>
> 补充：通常我们在开机后，启动的第一个shell称之为login shell，当进入GUI界面后，不需要输入密码启动的shell称之为non-login shell。这两种shell是有区别的。大家都知道shell的运行是需要环境变量的支持的。配置这些环境变量的文件就是配置shell工作环境的文件。两种shell在读取配置文件时有很大的不同，下面是总结它们分别读取哪些配置文件：
>
>
> 1. login shell 启动--->读取/etc/porfile文件--->读取~/.bash\_profile文件
> 2. no-login shell 启动--->读取~/.bashrc文件
> 3. exec env -i /bin/bash命令会开启一个全新的non-login shell。
>

**注意**：每次重新开机或重启后都需要进行下面的步骤，切换到lfs用户，因为对于新手来说，不可能一天就编译完lfs的所有源，可以把以上步骤保存到一个文件中，每次重启系统进行LFS之前，参照以上步骤进入到LFS编译环境。

C: 第五章的内容：编译得到\$LFS/tools/目录下面的工具包
----------------------------------

+ 第一步，编译出一个全新的与主机系统无关的工具链。这些工具链包含了：compiler(就是我们常用的gcc,g++)，assembler(就是把汇编程序变成a.obj文件的工具)，linker(就是把很多\*.obj文件和库文件链接成可运行文件a.out的工具)，还有各类库文件(为后面编译其它的软件提供基础设施)，当然还有大量的其它工具
+ 第二步，得用第一步编译出来的工具，编译其它的工具（这里可以看出，在制作LFS的过程中，编译的先后顺序是非常生要的，因为有了鸡，才能下蛋）
+ 注意 1：上面两步编译出来的工具都会安装到 \$LFS/tools目录下面（也就是/mnt/lfs/tools目录下面）。LFS手册中把这个称之为临时的文件系统，就是因为\$LFS/tools这个目录在第6章结束时就会被删除，因为$LFS/tools已经使用完了，没有利用价值了。
+ 注意 2：参照LFS手册上的指令进行编译，基本不会遇到错误，因为编译代码的步骤就是老三样：configure && make && make install，但是有一点，一定要注意，所有的安装包一定要打补丁，因为LFS手册没有强调打补丁的过程，所以自己如果发现这个源码包有补丁文件，一定要记得打上。
+ 注意 3：因为需要编译的软件太多，到最后你可能不会愿意自已每个单词都输入到命令行进行编译，所以通常会直接复制LFS手册中的命令。但是复制时，请一定注意先把指令复制到一个空的文件编辑器中，然后检查一下，复制过来的内容是否正确，因为从PDF文件复制到文本中的内容，格式会发生很大的变化。这一点在你尝试的过程中就会发现了。然后在文本编译器或是vim中进行编辑后，在复制到lfs用户的命令行中。
+ 注意 4：在编译perl时，按照官方文档打补丁会出现readonly的错误，下面是是正确的操作命令：

```
cd /mnt/lfs/sources
tar xvf perl-5.16.2
cd perl-5.16.2/hints
cp linux.sh linux.sh.org
cd ..
patch -Np1 -i ../perl-5.16.2-libc-1.patch
cd hints
diff linux.sh linux.sh.org   #输出打补丁情况，则为正常打补丁，编译过程参考手册

```
+ 注意 5：手册上的configure的位置一定刚要注意有三种情况，第一种是在源代码目录之外进行configure，第二种是在源代码目录里面进行configure，第三种（特殊情况）是libstdc++是在gcc源码目录的子目录里面进行configure。所以在执行命令之前一定刚要看好执行命令的前提条件，不妨思考一下LFS的笔者为什么这么写。
+ 温馨提示： 第一次编译GCC时可能会遇到环境问题，不要气馁，失败是正常的（我失败了10次以上）。不过我们可以保证LFS手册上的命令质量是非常高的。经过亲身测试绝对没有错误。


Ubuntu 14.04 LTS: 定制 Unity

Summary: 虽然Unity桌面管理器自从伴随 Ubuntu 11.01首次发布以来表现出了强劲的性能，并在可用性上迈进了一大步，但是有人对自定义其外观和行为所带的限制感到反感。我们现在来看看如何自定义Unity，让你重拾自己掌控桌面的感觉。 Unity中的可用定制项目 在ubuntu 14.04中，Unity 有一些以前没有的可定制项。登入你的 Unity，进入设置并选择显示，你将看到以下画面：  Ubuntu 14.04 LTS 显示和 Unity 设置 你看到的大多数项目相比 Ubuntu 11.01 而言都是新的，而且一些相比较上一个版本的 Ubuntu13.10 也是新的。从Ubuntu13.10开始，Ubuntu加入了

一如既往的喜爱unity

不错！试试！

现在挺喜欢使用unity的，gnome看不惯了

不喜欢UNITY。就是不喜欢改变自己的各种习惯。

# Ubuntu 14.04 LTS: 定制 Unity

虽然Unity桌面管理器自从伴随 Ubuntu 11.10首次发布以来表现出了强劲的性能，并在可用性上迈进了一大步，但是有人对自定义其外观和行为所带的限制感到反感。我们现在来看看如何自定义Unity，让你重拾自己掌控桌面的感觉。

### Unity中的可用定制项目

在ubuntu 14.04中，Unity 有一些以前没有的可定制项。登入你的 Unity，进入“设置”并选择“显示”，你将看到以下画面：

Ubuntu 14.04 LTS 显示和 Unity 设置

你看到的大多数项目相比 Ubuntu 11.01 而言都是新的，而且一些相比较上一个版本的 Ubuntu13.10 也是新的。从Ubuntu13.10开始，Ubuntu加入了可以改变菜单栏和标题栏大小的新特性。

Unity中所特有的一个特性是我们能够打开或者关闭的“粘性边缘”功能，它能让你的鼠标停止在多显示器组的每个屏幕的边缘，它使光标暂时停在边缘，仿佛是鼠标卡住了一样，我们可以选择关闭它。（LCTT译注，其实我觉得挺有用的，可以避免无意中切换到其他工作桌面，不要关闭）

在“设置”中选择“外观”选项，可以看到如下画面。

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

```

安装好，启动后你将看到如下画面：

正式的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](https://twitter.com/mourngrymtc/)

---

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/) 荣誉推出


教你用NeoBundle管理Vim插件

Summary: NeoBundle 是一个 Vim 的插件管理器，以 Vundle 为基础（Vundle 是一个基于 Pathogen 的 Vim 插件管理器）。在之前的文章中，我非常不推荐使用 Neobundle，原因是它当时还处于高速开发阶段（LCTT：意味着不稳定、变数大），并且当时它的英文文档很少。现在，已经过了一年多了，这两个问题都早已不再是问题。 我们为什么要使用插件管理器？Vim 支持大量插件，但是由于它没有严格定义框架，插件的文件可以胡乱分布在不同目录下，导致用户管理起来会很困难（LCTT：当然，前提是你有很多插件，还有点小小的强迫症，觉得理一理这些插件心里会舒

前天刚改到这个[偷笑]

我感觉vundle已经高大上了

@dusthovereverything 永远的vim

# 教你用NeoBundle管理Vim插件

[NeoBundle](https://github.com/Shougo/neobundle.vim) 是一个 [Vim](http://olex.openlogic.com/packages/vim) 的插件管理器，以 [Vundle](https://github.com/gmarik/Vundle.vim) 为基础（Vundle 是一个基于 [Pathogen](https://github.com/tpope/vim-pathogen) 的 Vim 插件管理器）。在之前的文章中，我[非常不推荐使用 Neobundle](http://www.openlogic.com/wazi/bid/262302/Three-tools-for-managing-Vim-plugins)，原因是它当时还处于高速开发阶段（LCTT：意味着不稳定、变数大），并且当时它的英文文档很少。现在，已经过了一年多了，这两个问题都早已不再是问题。

我们为什么要使用插件管理器？Vim 支持大量插件，但是由于它没有严格定义框架，插件的文件可以胡乱分布在不同目录下，导致用户管理起来会很困难（LCTT：当然，前提是你有很多插件，还有点小小的强迫症，觉得理一理这些插件心里会舒服点）。而一款插件管理器能让管理变得简单许多。Pathogen, Vundle 和 NeoBundle 的工作就是为不同插件建立一个目录，然后将这些目录扔到 ~/.vim/bundle 目录下。这个文件整理方法可以让你方便彻底地删除插件，使用 'rm -rf <插件目录>' 或直接在文件管理器里面把插件所在的目录删除就可以了，绝对绿色环保无残留。同时，这种方法还能最大程度避免插件与插件之间的不兼容性。

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

NeoBundle 是一个基于 Vundle 的项目，如同 Vundle，它们都可以安装和升级插件。然而 NeoBundle 的说明文件上明确指出：“NeoBundle 不是一个稳定的插件管理器，如果你想要一个稳定的，请选择 Vundle”。最新的 release-note 上也有警告“可能会造成兼容性问题”——这是一个开发者写的注解，说明这个管理器还不能让人放心使用。

所以，我们为什么要使用 NeoBundle？它都不能保证稳定运行！好吧，它还是有可取之处的。Vundle 只支持 [Git](http://olex.openlogic.com/packages/git) 这种版本控制系统，而 NeoBundle 可以支持 [Subversion](http://olex.openlogic.com/packages/subversion) 和 [Mercurial](http://olex.openlogic.com/packages/mercurial)。另一个原因是如果你不想插件升级时破坏你的 Vim 生态环境，你可以锁住 NeoBundle，让它只使用某个插件的固定版本。

另外，NeoBundle 创建者，Shougo Matsuishita（LCTT：名字看着像日本人），正在将它的命令接口添加到其他插件项目，以便减少他们的命令使用量。现在 NeoBundle 支持3种插件：[unite.vim](https://github.com/Shougo/unite.vim)，Vim 使用的文件和缓存管理器；[vimshell.vim](https://github.com/Shougo/vimshell.vim/blob/master/doc/vimshell.txt)，Vim 使用的脚本程序；[vimproc.vim](https://github.com/Shougo/vimproc.vim/blob/master/doc/vimproc.txt)，运行于 vimshell.vim 中，用于对异步事件的支持。上面说的都是特殊案例，缺少英文文档，所以用户希望有人能完善它们。在正式使用它们之前，我们需要把注意力先集中在一些基本操作上。

### 安装并初始化 NeoBundle

NeoBundle 支持 Vim 7.2.051 或更高版本，需要 git 和 [cURL](http://olex.openlogic.com/packages/curl)（用于下载文件）。你可以手动下载 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](https://github.com/tpope/vim-abolish)，一个超级 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/) 荣誉推出


树莓派的联合创始人访谈——我们是怎么让大家都成为DIY黑客的

Summary: 请记住它是为喜欢折腾的人准备的只要35美元的计算机   我永远不会忘记我第一次看到树莓派的情形。那个小巧的，信用卡大小的计算机，性能却足够强劲，可以作为一般家用PC，媒体中心，电视游戏机，或是其他任何你能够想像的东西。只有35美元的价格，它是任何年龄段的动手爱好者都可以拥有的小东西，可以在上面捣腾硬件和软件试验，而不用担心会弄坏昂贵的家庭电脑。 Eben Upton，是树莓派基金会的共同创始人，通常被誉为这个神奇机器背后的魔法师。在剑桥大学的计算机实验室攻读哲学博士学位的时候，他费尽苦心地手工打造了树莓派的原型机。

Mark

开源硬件先驱啊

@有道云笔记收藏

其实林林总总的挺多，但是能如它们一样成功的很少。

考虑是不是也开个淘宝店卖卖。

# 树莓派的联合创始人访谈——我们是怎么让大家都成为DIY黑客的

>
> 请记住它是为喜欢折腾的人准备的只要35美元的计算机
>
>
>

我永远不会忘记我第一次看到树莓派的情形。那个小巧的，信用卡大小的计算机，性能却足够强劲，可以作为一般家用PC，媒体中心，电视游戏机，或是其他任何你能够想像的东西。只有35美元的价格，它是任何年龄段的动手爱好者都可以拥有的小东西，可以在上面捣腾硬件和软件试验，而不用担心会弄坏昂贵的家庭电脑。

[Eben Upton](https://twitter.com/EbenUpton)，是树莓派基金会的共同创始人，通常被誉为这个神奇机器背后的魔法师。在剑桥大学的计算机实验室攻读哲学博士学位的时候，他费尽苦心地手工打造了树莓派的原型机。

如今，Upton是树莓派基金会下面贸易公司的CEO，监督着树莓派的生产和销售，目前销量已经达到250万台。

### 天上的派

ReadWrite网: 一开始是什么让你对技术这么感兴趣？它又是如何偶然地引导你创建树莓派项目的？

**Eben Upton**: 在我还是孩子的时候就开始对技术感兴趣了。我有个对工程技术有很大兴趣的父亲，他自己不是工程师，而是一个英语老师。我们的房子里经常到处堆着各种电子器件，在还不知道这些东西是干嘛的时候，我就开始摆弄了。都是些小玩意，比如在床头装个灯，在“关灯”后还可以继续看书之类的。

之后我有了一台计算机。在英国，我们把这种机器叫做[BBC微计算机](http://en.wikipedia.org/wiki/BBC_Micro)，实际上是8位单片机，做教学用的。我们在学校的时候接触到这种机器，我之后就学会了编程，而且还蛮喜欢的。

这些机器在学校里并不一定是用来编程的，或者说他们根本不是用来编程的，一般都运行教学软件。但是我却给它编程，之后我还买了一台回家，在我买了这台BBC微机后，我就泡在了房间里，再没出来过。[笑]

编程对于小孩来说太神奇了。当你还是小孩的时候，并没有太多力量。没有听话的随从，反而身边有很多的限制。编程最伟大的地方在于，这是一个可以让你随心所欲的小世界。而这当然让我无法抗拒。

我一直都对科学和数学，以及理科感兴趣。我在我的BBC微机上做了大量的计算和编程，之后我拥有了一台Commodore Amiga。

在大学里我学习了物理，工程和计算机科学。这是激发树莓派项目想法的原因，因为当我在学校呆了10年的时候[当时在读博士学位]，我发现那些新来的孩子们在他们小时候并没有机会获得这方面的经验。你也许仍然能拥有乐高玩具，但是它不是我们要的梯子。

在一定程度上我们把身后的梯子撤掉了。我们造出了这些非常复杂而且用户友好的计算机给小孩使用，或者不仅仅是计算机，还包括电视游戏机，电话和平板，以及一些家用电器。但是，人们却没有机会自己动手改一改。所以实际上，树莓派是回到最初的一种尝试，当然也不会过于原始，希望找到在过去25年里计算机发展中迷失掉的那种感觉。

**RW:** 你需要克服的最大的障碍有哪些？

**EU:** 好吧，我们没有任何投资者，当然这也是一件好事情。我们从2006年就开始尝试做这件事情，你可以看到它花了我们很长时间才把树莓派从一个想法变成一件能卖的东西。在价格和性能之间或是价格和可编程性之间找到平衡，是一件很重要的事情。

另外一件麻烦事是募集资金。我们是非营利组织，所以我们得去找人赞助，而这最后都变成了董事会中的几个人自掏腰包。我们有25万美元的启动资金是从我和其他几个成员自己借的。所以我觉得，当初这样做还挺有勇气。

### 从东方到西方

为了找到价格合适的生产方式，我们选了一条不同寻常的路线。通常人们生产更传统的产品时，当量不大的时候都会选择在本地生产，然后[制造商]再制定较高的价格。大多数都能获得比树莓派丰厚的利润。

所以他们开始会在西方生产。然后，为了追求更高的利润，当产品有一定的量就会想减少生产成本，所以转到远东地区。

我们的问题是，因为我们没有足够的利润来支撑这种模式的订单，所以我们在中国制造了第一批产品。当然一开始会有一点不好的预感。我一点也不了解中国制造，最后，我们把价值5万美元的芯片和5万美元现金交给一个香港人，他需要还给我们2000片可以工作的树莓派。

之后交期出现了延时，我们甚至都开始相信自己被骗了。然后终于有一天，现在250万台树莓派中最早的2000台放在托板上来到了门口。

那个UPS快递员从卡车里拖出一个托板，并拉到我们车库里。托板上放着2000台树莓派，它们中每一台都比我小时候用过的计算机强多了。我们随机抽查了几台，都可以完美地工作。

所以我觉得还挺幸运，中国你懂的。然后我们的产品终于开始有量了，我们选择了跟其他所有人不同的方向。我觉得这是这个项目中的另一个决定性时刻，我们认识到，以目前的订单量，我们可以用和在中国同样的成本在西方生产。所以我们可以回归，把所有的生产制造搬回威尔士，也是我出生的地方。像是一个美妙的圆圈。

**RW:** 有没有一些树莓派的前身没有被制造出来的？

**EU:** 有的，我们做了许多不同的原型机。我们希望做出一个可以编程，也能吸引小朋友兴趣的东西。“吸引小朋友兴趣”意味着，在某些方面要足够强大。比如，播放视频，玩游戏，以及上网。

我们有许多能够达到价格目标和可编程目标的原型，但是等我们确定一个合适的方案，它足够强大能够吸引孩子们的热情，已经挺晚了，都到2010年底2011年初了。

### 派是从哪儿烤好的

**RW:** 跟我们说说发明树莓派的故事

**EU:** 我们尝试过基于所谓的微控制器技术做了几台机器。不知道你有没有听过一个叫Arduino的[开源电子原型]平台？它们的性能跟Arduino是一个级别的，优点是很容易买到，是常用的元器件，非常便宜，也很容易掌握。

所以我们试了一下。最后的成品只能从技术上来说还是计算机，你可以把它接到电视机或其他显示设备上。但是，它太原始了，很明显不能吸引孩子们的兴趣。这个是一号原型机，它在爱尔兰一家博物馆的叫“失败”的展览中展出[笑]。我下个月会去看看。它现在被装载一个玻璃盒子里，作为一次辉煌失败的典型。

好的一面是它是手工制作的，你不可能手工制作一块现代的树莓派。但是，这个原型太原始了，你实际上可以把所有器件手工焊接到一起，它就是我一个星期里做好的，是个挺好的小玩具。

我在大学里呆了差不多10年以后，进入到一家叫Broadcom的公司工作，总部在南加利福尼亚但是在剑桥有个大办公室，主要生产手机芯片。然后，我意识到这种手机芯片非常适合，它是制作像派这样的设备的非常合适的平台，因为它有优秀的图形性能。

我基于Broadcom开发工具制作了一个原型。这次的原型非常强大，也有更多功能，价格也差不多。不过问题是，它有一套定制的开发环境，而不是一个标准的平台。

我们得写自己的SD卡驱动，自己的文件系统，自己的文本编辑器。你会发现你得做大量基础工作，虽然最后你能够得到一个强大的可编程的平台，但是它却是完全非标准的[而且]和其他设备完全不一样。从而无法重用那些已经在台式机系统中已经做过的工作。这个是二号原型机。

真正的突破是三号原型机。我们从Broadcom拿到了另一种应用了ARM处理器的芯片，可以直接运行标准Linux。我们意识到终于可以做出能够满足所有的需求的机器了，这就是我们推向市场的产品。

### 黑一黑下一代黑客

**RW:** 八岁的孩子就开始用树莓派做项目了。这在你意料中吗，还是说让你意外了？

**EU:** 八岁是很好的年纪。我想每个人都会把自己开始编程的年龄定义成合适的年龄。我就是八岁开始编程的。某种程度上来说，孩子们所需要的只是年龄大到拥有相对完整的认知技能，或者说是解决问题的技能。也许在学校学一点数学就够了。

年龄大到可以计划任务，编程就是终极的计划任务。还是得有一定的智力基础去做这个事情。八岁的时候，大多数孩子在自己的思维上已经非常成熟了。另外还需要敏捷的身手，对更小的孩子来说还存在一个问题就是，他们还不够灵巧去使用键盘。

所以说，八岁是很好的年纪。你有合适的身体，有合适的心智，而且还处于生命中能轻松学习新知识的时候。你的大脑还具有非常大的可塑性，可以学习语言。。。

我的意思是，你要是想让你的小孩学习法语的话，八岁就开始教他，不要等到16岁才开始。正式的计算机教育有一个历史性的缺点，就是太晚开始了，然后就很惊讶为何学生们理解起来概念有困难。所以我认为越早接触越好，而八岁是奇妙的年纪。八岁，十岁，十二岁，十二岁可能都有点晚了。

我们基金会的CEO，[Lance](http://www.raspberrypi.org/welcome-lance/) [Howarth]，对初级教育特别热心。他真的认为这是一个实际的机会来做点非常特别的事情。

**RW:** 所以这是树莓派项目的目的，让小孩子们编程？

**EU:** 我想我们一直认为可以让孩子们玩编程只是举个例子。但是树莓派的目的是把这个东西做出来看看谁会买它。我们一直相信至少有一部分年轻的孩子会觉得它令人激动。现在我们已经有知识宽度和规模来支持孩子们玩它了。

[仅仅]做出一个像树莓派的平台和提供相关支持是有很大区别的，如果只是做出来的话，你会发现有1%的八岁孩子会喜欢它并且玩起来，不管你提供多或者少的支持。

我觉得现在基金会的一个实际的机会是，我们已经可以承担得起开发教材了，我们还可以提倡培训这方面的教师。有个机会是我们可以吸引比1%更多的孩子。还有个机会是吸引那些没有独自处理复杂技术问题倾向的机灵小孩。如果能够提供良好的教程和让他们感兴趣的教材，就能够吸引10%，20%，50%，甚至更多的孩子。

我们认为80年代是[学习编程]的黄金年代，而实际上，只有很少一部分人学习编程并达到一定深度。大部分人也许可以写个几行，但是能够编写大型程序的还是很少见。

所以我认为我们目前有一个实际的机会，因为我们可以参与到教材和教师培训的级别，我们也许可以超越80年代。现在有更多的参与者，两性之间也更平等。在80年代，编程很大程度上是男孩们的事情，而这也能反映到我们的工程师社区构成上。我觉得现在有个很好的机会，让更多的女孩子接触电脑编程。这个是挂在枝头上垂得最低的果子了，做到这个，人数马上增加了一半。

机会有很多，我对树莓派最满意的地方就是我们已经有点规模可以吸引部分人的注意了。

### 每个人的派

**RW:** 关于像派这样的项目的潜在需求，对于你来说意味着什么？是不是有一天我们都会变成DIY黑客？

**EU:** 是的，我意思是，就是这样的。有非常大的这种需求。而且我认为有一条通向制作者社区的纽带。美国的制作者社区比英国成熟多了。我们也确实在举办制作者集会和黑客空间，但是差不多比美国落后了5年左右。

所以在开始讨论树莓派之后我发现了一件事情，在它获得国际关注的时候，我们发现我们受到一些非常稳定的社区的成员的追捧，他们喜欢各种各样的DIY活动：编织，或者，你知道的，木工。

所以，这也是为树莓派带来意外增长的其中一个因素。制作者们把它当作用来构建自己项目的模块。这太棒了！

**RW:** 你怎么看现在出现的主流硬件黑客文化？

**EU:** 我觉得，这太美妙了，不是吗？这是在软件工程领域里完全无法想到的。我接触这些之前就有软件背景，所以，实际上人们用树莓派制作的大多数很酷的东西都是硬件相关的，让我很惊讶。当然现在没那么吃惊了，不过一开始是有的。

我认为这是非常积极的趋势，基于所有这些因素。因为它给孩子们带来了相关的经验。在我看来，在屏幕上移动一下像素还是很酷的，不过事实上，它没有像80年代那样酷了。我觉得，在现实世界里移动一些物体，比如机器人，对于现在的孩子来说是非常酷的。

当有更多实用性的时候，就会吸引更多的女孩。确实存在一种潜在趋势，尝试和设计针对女孩子的科技活动。不过实际上这并不是关于女孩子，而是关于扩展用户的迫切要求。

有这样一小段－我之前谈过的关于有1%的小孩会觉得抽象的计算机编程很有趣。“让我们开始学习变量！”我就是他们其中一个。但是，那只是很小一部分，而且看起来更大部分是男孩子。我不知道是不是文化因素或其他的，但是看起来这个世界就是这样的。

在人们谈论追求实用性来吸引女孩子的时候，根本不关女孩子的事。而是吸引那一小部分男孩之外的所有人。不仅仅吸引女孩，也包括其他男孩。

从教育的角度来看有一件美妙的事情是，在现实世界里应用计算机做点实际的东西，自然而然会比仅仅在计算机本身上面做点事情有用多了。所以，这就提供了一个方式来吸引女孩子进入这个领域，同样也可以吸引更多的男孩子进入这个领域。

不再是一个人很好。能够加入到这波兴趣的浪潮中，和许多制作现实世界东西的人一起，也是很精彩的事情。我认识一个南加利福尼亚的小伙，他有两个兴趣就是倒腾派和制作他的锁链甲。有人做这些事情本身就是一件很美妙的事情。

### 分享你的派

**RW:** 关于吸引比1%更多人的“实用”项目，能举个例子吗？

**EU:** 整个机器人技术领域就是个很好的例子。有很多人基于派来制作小型机器人，让它们四周跑跑或做点事情。特别是现在，我们增加了摄像头模块，可以一定程度上实现计算机视觉。

我觉得其他基于摄像头的项目也会变得更活跃。那些从事野外摄影的人们，以及从事缩时摄影的人们，因为有了这个25美元的摄像头模块，应用范围宽了许多。还有红外版本的模块，所以你可以在晚上拍摄野生动物－写脚本在晚上拍摄相片，然后选择保存里面包含了动作的。这些都非常好。

我特别喜欢应用到高空气球的任何项目。环境监控－有一些英国的高中学生在IndieGoGo发起了一个叫[AirPi](http://airpi.es/)的项目，这是一个污染监控防御系统，底层将用到树莓派。所以会有许多这样的项目，你可以用派来处理物理的，或化学的，或者生物的事情。－这些都是我认为有实用性的事情。这种项目也更容易向孩子们证明，这是值得他们关注的项目。

**RW:** 我们什么时候可以看到树莓派C型？

**EU:** 暂时还没有计划。我们目前都还在处理软件工作。我觉得我们还有机会通过调整软件来大幅提升系统性能，再优化一下。

如果我们现在就启动制作C型，将会抛弃250万使用目前平台的用户。所以我觉得，至少现在，我们决心要继续软件工作，因为这可以帮到所有已经在这个领域里的人。我们感觉通过软件优化还有很大的性能提升空间。

显然，我们同时也必须做一点[硬件方面]的事情。我真的不知道具体在什么时候。如果到了2017，2018，我们还在销售树莓派B型的话，那也挺糟糕的。但是，我认为我们也许在一年后再认真考虑后面要做什么。

**RW:** 很多人的项目同时用到了派和Arduino（一个DIY电子调试工具套件）。你在设计派的时候，有考虑类似Arduino的工具吗？

**EU:** 实际上没有，但是我们很早就意识到，媒体可能会倾向于把我们和Arduino看作竞争者。对于这件事情我们有点多疑，我觉得，因为我认为派和Arduino分别处理不同的事情，而且他们都做得很好。

我们并没有把它设计成配合Arduino工作，但是Arduino被设计成配合家用PC一起工作。所以，我们实际上为Arduino制作了一台非常低功耗的家用PC。所以好吧，只是巧合，我猜。

**RW:** 你在家里用树莓派做什么？工作中呢？

**EU:** 在家里，我把它当作一个媒体中心；这是树莓派一个非常普通的应用。有趣的事，有些从事消费电子的人，把它当作消费电子来用。我当然也是其中之一。

在工作中，我总是没有我想要的那么多时间来玩玩树莓派。通常在工作的时候如果在用派的话，那是因为我需要测试刚拿到的一些软件更新。大多数时候我用它来检查我花钱请的承包人是否把工作做好了。

我真心希望明年会有更多休息时间。有时我感觉，除了媒体中心之外，我参与制作了这么神奇的玩具，但是因为它太成功了，我都没有时间去好好玩玩它。

不过，看到这么多的人喜欢它，看到它被出现在各种不同的地方，也是很开心的。我听说在《生活大爆炸》中提到了我们，我要去找找是哪一集。它出现在所有的这些不可思议的地方。真是非常开心，看到这么多人把它放在心上，开始用它做点事情。

承蒙树莓派基金会提供Eben Upton的图片；

树莓派图片来自Flickr用户：[Johan Larsson](https://www.flickr.com/photos/johanl/8384790662), [Clive Darra](https://www.flickr.com/photos/osde-info/8626662243), [Pete Sneekes](https://www.flickr.com/photos/p8/7950485168), [Luca Sbardella](https://www.flickr.com/photos/sbardella/7473604878)和[Ashley Basil](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)

---

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/) 荣誉推出


如何用sosreport在Linux上创建诊断报告

Summary: Sosreport是RHEL / CentOS上的一个命令，它会收集系统配置和你linux机器上的诊断信息，如正在运行的内核版本、加载的模块和系统和服务配置文件之类的信息。这个命令同样可以运行外部的程序来收集更多的信息，并存储这些输出到一个结论文档中。 Sosreport在你需要获得redhat的技术支持时需要它。Redhat的支持工程师会要求你服务器上的sosreport来用于故障排除。  要运行sosreport，需要安装sos 包。sos包是大多是linux的默认安装包中的一部分。如果因为某种原因没有安装，那么运行下面的yum命令来安装sos 包 : # yum install sos  生成报告

哎呦，试试呦～

mark

学习了

这个比较有用。

mark

我真是从来没用过呢

@linux  Centos 里也有这个工具的.你可以试一下.这个工具会采集系统一些配置文件,比如启动配置,ip配置,日志等,红帽的工程师通过分析这些问题进行排错.

SuSE 请使用supportconfig，谢谢！[哈哈]

# 如何用sosreport在Linux上创建诊断报告

**Sosreport**是**RHEL / CentOS**上的一个命令，它会收集**系统配置**和你linux机器上的诊断信息，如正在运行的内核版本、加载的模块和系统和服务配置文件之类的信息。这个命令同样可以运行外部的程序来收集更多的信息，并存储这些输出到一个结论文档中。

Sosreport在你需要获得redhat的技术支持时需要它。Redhat的支持工程师会要求你服务器上的sosreport来用于故障排除。

<img src="content_image/album_201407_20_175405kijg156u1t4len6g.jpg" alt="" title="">

要运行sosreport，需要安装**sos** 包。sos包是大多是linux的默认安装包中的一部分。如果因为某种原因没有安装，那么运行下面的yum命令来安装**sos 包** :

```
# yum install sos

```

### 生成报告

打开终端输入sosreport命令：

```
# sosreport

```

这条命令正常情况下会在**几分钟**里完成。根据本地配置，在某些情况下，某些选项可能需要更长的时间才能完成。一旦完成，sosreport将在**/ tmp目录**目录中生成一个压缩文件。不同版本使用不同的压缩方案（\*\* gz，bz2，或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/) 荣誉推出


[小白技巧]如何在Ubuntu 14.04中添加多个时区时间

Summary: 如果你需要和多时区时间打交道的话，你一定希望你的电脑时钟可以显示多个时区的时间。作为一个移居国外的人，我需要关注法国和印度的时间。在Ubuntu系统中，你可以进行简易的设置来添加多时区时间。 在这次的使用技巧中，我们会了解到 如何在Ubuntu 14.04系统中添加多时区时间。 在Ubuntu 14.04系统中添加多时区时间 打开系统设置（按下标有微软徽标的按键，在Dash中搜索系统设置），进入时间日期选项。 接下来，进入时钟标签页，找到其他时区时间选项，然后点击选择地区按钮。  在新打开的窗口中，你可以输入一个地区，之后相应的结果会

可惜，没什么出国的机会。学习一下。小技巧

这个实用，要赞！

# [小白技巧]如何在Ubuntu 14.04中添加多个时区时间

如果你需要和多时区时间打交道的话，你一定希望你的电脑时钟可以显示多个时区的时间。作为一个移居国外的人，我需要关注法国和印度的时间。在Ubuntu系统中，你可以进行简易的设置来添加多时区时间。

在这次的使用技巧中，我们会了解到 **如何在Ubuntu 14.04系统中添加多时区时间**。

### 在Ubuntu 14.04系统中添加多时区时间

打开系统设置（按下标有微软徽标的按键，在Dash中搜索“系统设置”），进入“时间&日期”选项。

接下来，进入**时钟**标签页，找到**其他时区时间**选项，然后点击**选择地区**按钮。

在新打开的窗口中，你可以**输入一个地区**，之后相应的结果会在下面显示出来。选择你想添加的地区，然后**点击下面的加号标志（+）**来添加。

完成了这些工作之后，你就可以在系统时钟处看到其他地区的时间了。

体验下Ubuntu多时区时钟给你带来的便捷吧。:)

---

#### 关于 Abhishek

我叫Abhishek Prakash，是It's F.O.S.S的创始人。我获得了通信系统工程硕士学位。我是一个狂野的Linux爱好者和开源痴迷者。我在使用Ubuntu系统并且希望和大家分享知识和经验。出了Linux，我还很喜欢经典侦探悬疑电影。我是阿加莎-克里斯蒂的超级粉丝。你可以在[Google Plus](https://plus.google.com/u/0/110180944531110746460)上添加我到你的好友圈，也可以[在twitter上关注 @abhishek\_pc](https://twitter.com/abhishek_pc)。

---

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/) 荣誉推出


Git 2.0.2版本控制系统现在可供下载使用了

Summary: Git 2.0.2如今已正式发布。这是一个免费和开源的分布式版本控制系统，因其处理速度和效率的优势，它可以处理大大小小各种项目。 新的Git 2.0.x分支保持着带来大量更新的传统，它整合了大量的改变和修正。这个最新的更新只是维护版，但是它的功能特性的确有一些有趣的修改。 根据开发者的描述："git submodule sync（git子模块的同步）"的文档中提到的子命令可以使用"--recursive"（递归）的选项；在.gitignore中跟踪引用反斜杠的空格的处理不当已经被纠正；对"git repack"命令的更新，将不再错误地复制那些被.keep标签标记的pack目录下的

来了，[来]

一直不明白，这个东西是干什么使的。。。十分不解。看了，百科也没看懂这个软件的用处

就是一个版本控制软件吧，开发用的最多，其他方面，文档管理什么的也用。

多谢。知识的传播。

# Git 2.0.2版本控制系统现在可供下载使用了

<img src="content_image/album_201407_21_130127e6bbrkby42xx2b27.jpg" alt="" title="">

**Git 2.0.2如今已正式发布。这是一个免费和开源的分布式版本控制系统，因其处理速度和效率的优势，它可以处理大大小小各种项目。**

新的Git 2.0.x分支保持着带来大量更新的传统，它整合了大量的改变和修正。这个最新的更新只是维护版，但是它的功能特性的确有一些有趣的修改。

根据开发者的描述："git submodule sync（git子模块的同步）"的文档中提到的子命令可以使用"--recursive"（递归）的选项；在.gitignore中跟踪引用反斜杠的空格的处理不当已经被纠正；对"git repack"命令的更新，将不再错误地复制那些被.keep标签标记的pack目录下的对象。

还有，"git clone -b brefs/tags/bar"不再认为git遵循一个单一的tag，尽管它是一个分支的名称；"%G(G后面没有跟任何东西)"是一个无效的漂亮的格式说明符，现在的解析器不再对它进行解析；用于避免增加相同替代对象的存储的代码经过了两次修正，而且其余的几个修正也已经完成。

想要查看完整的改变列表，查看[changelog](https://github.com/git/git/blob/master/Documentation/RelNotes/2.0.2.txt)。

下载Git 2.0.2：

* [tar.gz](https://github.com/git/git/blob/master/Documentation/RelNotes/2.0.2.txt)[sources] [4.70 MB]
* [Debian/Ubuntu DEB ALL](https://github.com/git/git/archive/v2.0.2.tar.gz)[ubuntu\_deb] [0 KB]
* [Red Hat/Fedora/Mandriva/openSUSE RPM noarch](http://git-scm.com/download/linux)[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/) 荣誉推出


Deepin 2014.3

Summary: 简介 Deepin，原名Hiweed Linux及Linux Deepin，于2014年4月改名Deepin。它是一个基于 DEB 包管理的一个独立操作系统。Deepin 在中国大陆区域常被称为深度 Linux。 Deepin的前身是Hiweed Linux项目，Hiweed Linux项目曾经因为一些原因短暂的暂停开发，在重启Hiweed Linux项目的时候深度社区（Deepin.org）与Hiweed Linux项目宣布合作，同时宣布Hiweed Linux更名为Linux Deepin，成为深度社区下的一个子模块，后来不断发展而从深度社区独立出来，成为今天的项目。 Deepin团队基于HTML5技术开发了的全新深度桌面环境，以及音乐播放器，视频

界面风格挺好的

这页面内容很久没更新了。

# Deepin 2014.3

### 简介

Deepin，原名Hiweed Linux及Linux Deepin，于2014年4月改名Deepin。它是一个基于 DEB 包管理的一个独立操作系统。Deepin 在中国大陆区域常被称为“深度 Linux”。

Deepin的前身是Hiweed Linux项目，Hiweed Linux项目曾经因为一些原因短暂的暂停开发，在重启Hiweed Linux项目的时候深度社区（Deepin.org）与Hiweed Linux项目宣布合作，同时宣布Hiweed Linux更名为Linux Deepin，成为深度社区下的一个子模块，后来不断发展而从深度社区独立出来，成为今天的项目。

Deepin团队基于HTML5技术开发了的全新深度桌面环境，以及音乐播放器，视频播放器，软件中心等一系列特色软件。

官方网站： <http://www.linuxdeepin.com/>

### 下载

* Intel & AMD/ 兼容 PC 32 位 4.4GB ISO 镜像，适用于 32-bit 位 PC [点此下载](http://cdimage.linuxdeepin.com/releases/2014.3/deepin_2014.3_i386.iso) （MD5: e9b6145ba9c0d21632936361dbe74a18）
* Intel & AMD/ 兼容 PC 64 位 4.3GB ISO 镜像，适用于 64-bit 位 PC [点此下载](http://cdimage.linuxdeepin.com/releases/2014.3/deepin_2014.3_amd64.iso) （MD5: 036dda2007b0bf325b97ab3e0fe4a85a）

### 发行

Deepin 新版本发布周期由原本一年两次（6 与 12 月）改为一年一次。

如果有相关开发和测试工作尚未完成，保证质量起见，则往往延迟新版本的发布日期。在每一个新版本发布之后的 2~3 个月之内，也会发布一个小版本。

### 当前版本

#### 桌面

新版桌面保留了原有桌面的各种人性化功能的同时，还在桌面右键中新增了”热区设置“功能，从此用户可快速直观的修改热区。新版Dock将通知区合二为一，位置改为屏幕下方居中，新版Dock更为精致实用。

#### 启动器

新版启动器新增了收藏界面，方便用户快速打开常用程序。同时在启动器右键增加“卸载软件 ”功能，从此用户卸载软件更为简便。

还为启动器新增中文拼音搜索，中文用户搜索软件更为方便。

#### 控制中心

深度桌面环境2.0中的系统设置现已更名为“控制中心”。

全新的控制中心使用了更为清晰明了的分类方式，并且针对广大用户的意见进行修改。该版本开始提供强大的的主题管理、新增Grub管理器管理、增强了多屏显示功能、改善网络功能。

#### 登录管理器

登录管理器依然基于Lightdm开发，采用了最新的HTML5技术，登录管理器默认背景以动态星空动画，新版登录管理器还支持用户在锁屏状态下管理后台播放的媒体。

#### 深度主题2.0

设计师团队为深度桌面环境2.0设计了全新的深度主题。深度主题黑色为主色调，坚持简洁和拟物为风格，让深度桌面环境2.0更为眩目多彩！

#### 深度安装器

安装器中文该版本开始，Deepin系统默认搭载Deepin团队开发的深度安装器，用户只需要简单的设置用户信息和选择安装位置，即可快速完成Deepin 2014的安装。并且深度安装器支持传统BIOS和UEFI。

注意：Deepin 2014 已经去除DeepinWin(Wubi)安装模式。

### 历史

Deepin Desktop Environment 2.0È

| 版本 | 发布日期 | 备注 |
| --- | --- | --- |
| 9.12 | 2009年12月30日 | 更名为 Linux Deepin 后首次发布 |
| 10.06 | 2010年6月 |  |
| 10.12 | 2010年12月31日 |  |
| 11.06 | 2011年7月4日 | 引入深度软件中心 |
| 11.12 | 2011年12月30日 | 正式改用 Gnome-Shell 作为默认界面 |
| 11.12.1 | 2012年2月29日 | 修正11.12的错误，新增加3D切换插件等功能 |
| 12.06 | 2012年7月17日 | 引入深度音乐与深度影音 |
| 12.12 | 2013年6月19日 | 由于引入新桌面工作量大,原订于2012年发布却历经多次延期 |
| 12.12.1 | 2013年8月7日 | 修正恼人的网络问题及速度提升 |
| 2013 | 2013年11月28日 | 12.12系列版本,正式更改发布周期为一年一版，同时携带了深度游戏中心 |
| 2014 | 2014年7月6日 |  Deepin Desktop Environment 2.0 |
| 2014.1 | 2014年08月28日 |
| 2014.2 | 2014年12月31日 |
| 2014.3 | 2015年4月28日 |

### 截图

注：部分内容来自维基百科


在 Ubuntu 上体验 Mac 风格

Summary: 虽然 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 解压下载的 Zip 包，解压后会出现 Zukimac 和 Zukimac-ml 两个目录文件。把这些目录拷贝到您的 home 目录下的

安好plank之后怎么让ubuntu自带的那个不弹出来呢？[可怜]

何必呢？unity就挺炫挺好用的

#Ubuntu# #全民使用ubuntu系统#

Make Ubuntu 14.04 Look Like Mac With Zukimac Theme

直接装黑苹果好了

其实现在MAC真不贵了。

回复@风过清秋:桌面党就喜欢折腾嘛：》

回复@Linux中国:我觉得把conky docky配置好配合unity已经很好看了

# 在 Ubuntu 上体验 Mac 风格

虽然 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](http://gnome-look.org/content/show.php/Zukimac?content=165450)
* 解压下载的 Zip 包，解压后会出现 Zukimac 和 Zukimac-ml 两个目录文件。把这些目录拷贝到您的 home 目录下的 .themes 文件夹中。进入 Home 目录中，按下快捷键 Ctrl+H 可以显示所有隐藏的文件，如果没有 .themes 文件夹，需要创建一个。
* 使用 [Unity Tweak Tool 来改变主题](http://itsfoss.com/how-to-install-themes-in-ubuntu-13-10/).

就这些操作。Zukimac 提供了一些基本的 Mac OS 系统的外观和视窗感觉。下面是带有默认的 OS X Maveric 壁纸的外观。

### 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 的漂亮图标主题样式](http://itsfoss.com/best-icon-themes-ubuntu-1404/) 可用来美化默认的外观。但正如我上面提到的仍有很多用户喜欢 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/) 荣誉推出


使用 shutter 对网站进行截屏

Summary: 看了一个文章（http://linux.cn/article-3140-1.html），用gnome-web-photo可以对网页进行截屏，但我试了好几把，总是无法成功。 我的环境是 UBUNTU 10.04，当使用gnome-web-photo的时候，命令行总是处于假死的状态，不能成功的执行命令。要关闭终端的时候，却总显示在运行。 所以，我只好绕道走了。 用shutter实现了我的需求。 sudo apt-get install shutter sudo apt-get install gnome-web-photo 打开shutter  输入地址  截屏效果

# 使用 shutter 对网站进行截屏

看了一个文章（ http://linux.cn/article-3140-1.html），用gnome-web-photo可以对网页进行截屏，但我试了好几把，总是无法成功。

我的环境是 UBUNTU 10.04，当使用gnome-web-photo的时候，命令行总是处于假死的状态，不能成功的执行命令。要关闭终端的时候，却总显示在运行。

所以，我只好绕道走了。

用shutter实现了我的需求。

```
sudo apt-get install shutter
sudo apt-get install gnome-web-photo
```

打开shutter

 输入地址

 截屏效果


国内电信/网通/联通常用DNS

Summary: 电信常用DNS：    地区 DNS服务器1 DNS服务器2   安徽 202.102.192.68 202.102.199.68   澳门 202.175.3.8 202.175.3.3   北京 202.96.199.133 202.96.0.133   重庆 61.128.128.68 61.128.192.68   福建 202.101.115.55 218.85.157.99   甘肃 202.100.64.68 61.178.0.93   广东 202.96.128.86 202.96.128.166   广西 202.103.224.68 202.103.225.68   贵州 202.98.192.67 202.98.198.167   海南 202.100.192.68 202.100.199.8   河北 219.150.32.132 222.222.222.222   黑龙江 219.150.32.132 219.146.0.130   河南 219.150.150.150 222.8


命令行星期二——第四部分

Summary: 大家好。新的一周，新的冒险！ 今天，我们将会学习使用四个相当简单的命令去操作文件。好，废话少说，我们开始吧。 在开始学习这些命令之前，我们先稍微说些题外话，讲讲通配符的用处。 通配符 使用图形工具区复制、粘贴、新建目录等操作也许很容易，但是若想完成一些更复杂的任务，例如仅仅将一个目录下的所有.html文件复制到另一个目录中、或者只复制在某个目录中不存在的文件，这时命令行也许会比较方便。我们回到通配符的学习中，通配符是shell的基本功能，它是一个由一些特殊字符组成的集合，它让你可以用一些简单的规则来选择出某些

配图

不错，每期开设这个栏目还能学习新得知识

回复@圍脖男神:谢谢支持，虽然都是很基础的，不过总是有人需要的：》

呼呼！挺不错的。。。

# 命令行星期二——第四部分

大家好。新的一周，新的冒险！

今天，我们将会学习使用四个相当简单的命令去操作文件。好，废话少说，我们开始吧。

在开始学习这些命令之前，我们先稍微说些题外话，讲讲“通配符”的用处。

### 通配符

使用图形工具区复制、粘贴、新建目录等操作也许很容易，但是若想完成一些更复杂的任务，例如仅仅将一个目录下的所有.html文件复制到另一个目录中、或者只复制在某个目录中不存在的文件，这时命令行也许会比较方便。我们回到通配符的学习中，通配符是shell的基本功能，它是一个由一些特殊字符组成的集合，它让你可以用一些简单的规则来选择出某些文件。（通配符可以出现在文件名中，用于指定文件名的字符个数和字母的大/小写等规则）。

如下表 ：

下面是肖茨先生给出的一些实例，如下表：

如果你使用一个包含文件名参数的命令，你就可以使用通配符。

### cp

cp是一个用于复制文件或者目录的命令，它的用法相当的简单。进入到你想复制的文件所在的目录，然后使用如下命令

cp file1 file2 -复制一个文件

或者

cp file1 file2 ... directory -从当前工作目录复制多个文件到指定的目录。

下表是肖茨先生给出的cp命令的一些选项：

### mv

mv是今天的第二个命令，我们可以使用mv来重命名一个文件或目录，或者移动一个文件或目录。我们可以这样使用mv命令。

mv filename1 filename2 -若想将文件filename1重命名为filename2。

或者

mv file directory -若想将一个文件移动到某个目录。

下表是一些mv命令的实例

### rm

rm命令是用于删除文件或目录，它的用法比较直接，如下：

rm file

或者

rm -r driectory

这里也有一个包含rm其他选项的表

但是，使用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/) 荣誉推出


什么是Unix以及它为什么这么重要？

Summary: 大多数操作系统可以被划分到两个不同的家族。除了微软的基于Windows NT的操作系统外，几乎所有其他的都可以追溯到Unix。 Linux，Mac OS X，Android，iOS，Chrome OS，PlayStaion 4上运行的Orbis OS，运行在路由器上的各种固件，所有这些操作系统通常都被称为类Unix操作系统。 Unix的设计现在都还在应用 Unix在20世纪60年代中晚期诞生于ATT的贝尔实验室中。最初发布的Unix中的一些重要设计因素到如今都还在使用。 其中一个设计是Unix哲学，建立小的模块化的应用，只做一件事情并把它做好。如果你对Linux终端很熟悉的话，应该对这个不陌生－

NT内核最初是微软和IBM共同捣鼓的，IBM那个叫OS/2，和UNIX还是有那么点关系的。

思科的字符界面

Repost

mark

曾经的霸主。现在，还是小众了点。不过，如果算上安卓机，LINUX是当之无愧的世界霸主呀！哈哈

转发微博。

[good][good][good]

不用算Android，算上服务器和路由器就够了

[爱你] //@Linux中国:因为最初DOS的目标是什么？PC啊！个人计算机，其与主框架机器相比，如同现在的PC比之树莓派。所以复杂的特性都省略了。//@IT江湖飘: 设计理念上，UNIX更为先进，一开始就是多用户多任务的，而windows直到90年代3.1版本以上才开始支持多任务。

目的？玩儿啊 //@Linux中国:因为最初DOS的目标是什么？PC啊！个人计算机，其与主框架机器相比，如同现在的PC比之树莓派。所以复杂的特性都省略了。//@IT江湖飘: 设计理念上，UNIX更为先进，一开始就是多用户多任务的，而windows直到90年代3.1版本以上才开始支持多任务。

同意 //@王海鹏Seal: //@Linux中国: 因为最初DOS的目标是什么？PC啊！个人计算机，其与主框架机器相比，如同现在的PC比之树莓派。所以复杂的特性都省略了。//@IT江湖飘: 设计理念上，UNIX更为先进，一开始就是多用户多任务的，而windows直到90年代3.1版本以上才开始支持多任务。

LINUS就是牛呀。改变了世界。

# 什么是Unix以及它为什么这么重要？

大多数操作系统可以被划分到两个不同的家族。除了微软的基于Windows NT的操作系统外，几乎所有其他的都可以追溯到Unix。

Linux，Mac OS X，Android，iOS，Chrome OS，PlayStaion 4上运行的Orbis OS，运行在路由器上的各种固件，所有这些操作系统通常都被称为“类Unix”操作系统。

### Unix的设计现在都还在应用

Unix在20世纪60年代中晚期诞生于AT&T的贝尔实验室中。最初发布的Unix中的一些重要设计因素到如今都还在使用。

其中一个设计是“Unix哲学”，建立小的模块化的应用，只做一件事情并把它做好。如果你对Linux终端很熟悉的话，应该对这个不陌生－系统提供了大量的应用，可以通过[管道或其他特性](http://www.howtogeek.com/110150/become-a-linux-terminal-power-user-with-these-8-tricks/)形成不同的组合来完成更复杂的任务。甚至图形界面程序也经常会在后台调用更简单的应用去做比较耗时的任务。这种模式也让[建立终端脚本](http://www.howtogeek.com/107217/how-to-manage-processes-from-the-linux-terminal-10-commands-you-need-to-know/)更为简单，通过文本把一些简单工具结合起来去做复杂的事情。

Unix还设计了一个单一的文件系统，程序可以通过它互相通讯。这也是[为什么在Linux里说“一切都是文件”](http://www.howtogeek.com/117939/htg-explains-what-everything-is-a-file-means-on-linux/)－包括硬件设备文件，和提供系统信息及其他数据的特殊文件。这也是为什么只有Windows系统中才有磁盘盘符，这是从DOS继承过来的－在其他操作系统中，所有文件都是一个单一目录结构中的一部分。

### 那些从Unix派生出的系统

类似任何可以往前追溯40年的历史，Unix的历史和它的派生系统一片混乱。为了简单，我们把Unix的派生系统大致分成两组。

一组Unix派生系统是学术界开发的。

首先是BSD（伯克利软件发布版），一个开源的类Unix操作系统。BSD如今还存在于FreeBSD，NetBSD和OpenBSD等系统中。NeXTStep基于最初版的BSD开发，苹果的Mac OS X基于NeXTStep，iOS基于Mac OS X。许多其他操作系统，包括运行在PlayStation 4上的Orbis OS，也源于各种BSD操作系统。

Richard Stallman建立GNU项目的目的是为了反对AT&T的Unix软件协议条款日渐严格的限制。MINIX是一个类Unix操作系统，为教育目的而实现的，而Linux则是受到了MINIX的启发。[我们今天所熟悉的Linux其实应该叫GNU/Linux](http://www.howtogeek.com/139287/the-great-debate-is-it-linux-or-gnulinux/)，因为它是由Linux内核和大量GNU应用组成的。GNU/Linux不是直接从BSD继承下来的，但是它继承了Unix的设计而且根植于学术界。如今许多操作系统，包括Android，Chrome OS，Steam OS，以及数量巨大的在各种设备上使用的嵌入式操作系统，都基于Linux。

另一组是商用的Unix操作系统。AT&T UNIX，SCO UnixWare，Sun Microsystem Solaris，HP-UX，IBM AIX，SGI IRIX－许多大型企业都希望建立并授权自己版本的Unix。它们如今并不常见，但其中一些仍然存在。

图片致谢: [Wikimedia Commons](http://en.wikipedia.org/wiki/File:Unix_history.svg)

### DOS和Windows NT的崛起

许多人希望Unix能够成为工业标准操作系统，但是DOS和“IBM PC兼容”计算机却最终人气爆发而普及开来。微软的DOS也成为众多DOS系统中最成功的一个。DOS完全没有参照Unix，这也是[为什么Windows使用反斜杠划分文件路径，而其他所有系统都使用正斜杠](http://www.howtogeek.com/181774/why-windows-uses-backslashes-and-everything-else-uses-forward-slashes/)。这个决定是在早期的DOS系统中做出的，而之后的Windows版本继承了这一设定，就像BSD，Linux，Mac OS X，和其他类Unix操作系统继承了许多Unix设计因素一样。

Windows 3.1，Windows 95，Windows 98，和 Windows ME都是建立在DOS的基础上。当时微软已经在开发一个更现代更稳定的操作系统，叫做Windows NT－意思是“Windows新技术”。Windows NT最终通过Windows XP应用到普通计算机用户中，但是之前它都只用于针对企业用户的Windows 2000和Windows NT。

如今所有微软的操作系统都基于Windows NT内核。Windows 7，Windows 8，Windows RT，Windows Phone 8，Windows Server，以及Xbox One上的操作系统都在使用Windows NT内核。不像其他大多数操作系统那样，Windows NT没有被开发成一个类Unix操作系统。

当然，微软也不是完全从零开始的。为了维护DOS和旧版本Windows软件的兼容性，Windows NT继承了许多DOS里的设定，比如磁盘盘符，反斜杠区分文件路径，正斜杠作为命令行参数开关。

### 为什么它影响很大

不知道你有没有看过Mac OS X终端或是文件系统，有没有注意到它们和Linux是如此相似，而又和Windows是如此不同？好吧，原因是－Mac OS X和Linux两个都是类Unix操作系统。

了解了这点历史，就可以帮助你理解什么是“类Unix”操作系统，以及为什么这么多操作系统看起来都差不多，而Windows却那么与众不同。这也可以解释为什么Linux极客对Mac OS X上的终端会感觉如此熟悉，而[Windows 7上的Command Prompt和PowerShell](http://www.howtogeek.com/163127/how-powershell-differs-from-the-windows-command-prompt/)相对于其他命令行环境显得格格不入。

这只是一点快速掠过的历史，帮助了解是如何发展到今天的，而不用陷入到细节中。如果你想了解更多，可以找到许多关于Unix历史的整本的书籍。

图片致谢: [Peter Hamer on Flickr](http://www.flickr.com/photos/peter-hamer/2876612463/), [Takuya Oikawa on Flickr](http://www.flickr.com/photos/takuyaoikawa/2060554607/), [CJ Sorg on Flickr](http://www.flickr.com/photos/cjsorg/2726088549/)

---

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/) 荣誉推出


Betty：和你的Linux说说话

Summary: Betty 是一个将类英语短语翻译成Linux命令的开源工具。这个项目的主要目的是让大家可以通过输入自然语言来使用强大的Linux系统。让我们来看一下它是怎么工作的。  安装 Betty的安装非常简单直接。首先确认你已经安装了下面这些依赖包。 对于基于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配置文件。

mark

有点儿意思。

为何我的报很多错

速度慢，玩了一次就不想玩了

挺有意思的。不过还是习惯man看一下帮助。。。。

哈哈，只是新奇而已

哇哦！未来的自然语言甚至语音操作系统必须出现在封装了大量命令行的Linux系统啊！！！如果是传说中强大的以人的神经网络控制的操作系统呢？嘎嘎，再实现空气屏幕，完全是一个充满传奇的世界呀，绝对不科幻！my god，好吧，我的联想太宽了，估计是苦于对Linux那些繁琐但还算好玩的命令的期冀了……

@LeBronJames_MH 可以玩玩

//@Linux中国:嗯，所以要支持中文，甚至支持语音，也都可以考虑实现啊。//@yongsun: 有点意思，简单看了一下，没有用很高深的自然语言处理，只是用正则表达式来匹配关键字，然后进行候选命令的筛选…

感觉 记忆betty的短语还不如直接记命令呢， 不过如果支持自然语言多并且好的话这是一种趋势

其实我觉得更多是好玩，实用价值不大。

标题校的不错哦

多此一举

哈，其实觉得应该更标题党一些，可惜只能想到这个地步了。：》

不错+1

好玩，一般不用吧？

我觉得对于非英语国家，也就是看看，对于英语国家，顶多也是个有趣的东西。实用性不行。

# Betty：和你的Linux说说话

**Betty** 是一个将类英语短语翻译成Linux命令的开源工具。这个项目的主要目的是让大家可以通过输入自然语言来使用强大的Linux系统。让我们来看一下它是怎么工作的。

<img src="content_image/album_201407_23_140316qg3jiywyi4iu7xut.jpg" alt="" title="">

### 安装

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](https://github.com/pickhardt/betty)

---

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/) 荣誉推出


[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型

Summary: 提问: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型。我该如何检查MySQL数据库表的类型？  MySQl主要使用两种存储引擎：MyISAM 和 Innodb。MyISAM是非事务的，因此拥有读取更快，然而InnoDB完全支持细颗粒度的事务锁定（比如：commit/rollback）。当你创建一张新的MySQL表时，你要选择它的类型（也就是存储引擎）。如果没有选择，你就会使用与预设置的默认引擎。 如果你想要知道已经存在的MySQL数据表的类型，这里有几种方法达到。  方法一 如果你可以访问phpMyAdmin，你可以从phpMyAdmin找出默认的数据库类型。从phpMyAdmin中选中数

还是喜欢第一种。

# [小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型

>
> **提问**: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型。我该如何检查MySQL数据库表的类型？
>
>
>

MySQl主要使用两种存储引擎：**MyISAM 和 Innodb**。MyISAM是非事务的，因此拥有读取更快，然而InnoDB完全支持细颗粒度的事务锁定（比如：commit/rollback）。当你创建一张新的MySQL表时，你要选择它的类型（也就是存储引擎）。如果没有选择，你就会使用与预设置的默认引擎。

如果你想要知道已经存在的MySQL数据表的类型，这里有几种方法达到。

### 方法一

如果你可以访问phpMyAdmin，你可以从phpMyAdmin找出默认的数据库类型。从phpMyAdmin中选中数据库来查看它的表列表。在“Type”一列的下面，你会看到每个表的数据表类型。

### 方法二

如果你可以直接登录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 客户端安装包](http://xmodulo.com/2013/06/how-to-install-mysql-server-and-client-on-linux.html)中有。要使用mysqlshow，你需要提供MySQL服务器登录凭据。

下面的命令会显示特定的数据库信息。在“Engine”一列下面，你可以看到每个表使用的引擎。

```
$ mysqlshow -u <mysql_user> -p -i <database-name>

```

---

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/) 荣誉推出


如何拯救一台GRUB 2启动失败的Linux电脑

给 Linux 吧那些人看的么？

基本上所有的问题我都折腾过了，g顶起

转发微博。

GRUB2比GRUB复杂得多，Bootmgr比NTLDR复杂得多。为什么不是越来越简单呢？业余选手表示很痛苦。

从来不拯救，不折腾，只重装。由于非专业，时间才是最有价值的。

回复@天瀑流光:当然Linux的好处是，几乎不需要重装和维护，太省事了。还记得widnows下的碎片扫描么？还有杀毒扫描，虽然扫完也不见顶事。多痛苦！

一般我都是重装。。哈哈。反正电脑里没装重要的东西。不过，收藏一下，万一哪回坏了，也许能派上用场。

引导本来就是很简单的一件事，非得要搞得像grub2这么复杂。 [衰]

非常好的文章

赞一个。。。

本来就不简单吧。。

很多人也不熟悉GRUB的命令操作呢

很多人也不熟悉GRUB的命令操作呢

很多人也不熟悉GRUB的命令操作呢

GRUB 2也挺复杂

GRUB 2也挺复杂

GRUB 2也挺复杂

引导不咋简单啊……虽然GRUB2做得这么复杂对用户来说也确实不太好

似乎也没更好的引导器了？我指开源的

# 如何拯救一台GRUB 2启动失败的Linux电脑

<img src="content_image/album_201407_23_221303x5333dhh22qo3832.jpg" alt="Figure 1: GRUB 2 menu with cool Apollo 17 background." title="Figure 1: GRUB 2 menu with cool Apollo 17 background.">

旧版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说再见！](http://www.linux.com/learn/tutorials/730440-using-the-new-guid-partition-table-in-linux-good-bye-ancient-mbr-)”。如果你正在运行的GPT，它会出现(hd0，GPT1)。现在让我们看看，使用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/sda1，hd1,1 即 /dev/sdb1，hd3,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现场救援磁盘](http://www.supergrubdisk.org/)吧。[官方GNU GRUB手册](https://www.gnu.org/software/grub/manual/grub.html)也应该有所帮助。

---

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/) 荣誉推出


Dropbox原生Linux客户端首次展示Qt界面

Summary: Dropbox原生Linux客户端的最新试验版首次展示了全新的QT界面。 Dropbox表示这次的UI重写，将同时应用到Windows和Linux，将修复大量长期遗留下来的错误和问题。这个跨平台的工具也将整体提升性能。 在全新的设置向导和登录界面（见下面的图片）旁边是几个重新设计过的启动画面。  登录界面  设置界面  欢迎界面 目前还不稳定 Dropbox开发人员提醒参与测试的人，目前大部分新界面还很粗糙，在使用中可能会碰到大量的界面问题。新界面还不能配合一些辅助工具一起工作，例如屏幕阅读器。  新UI使用了（目前）系统自带的QT界面主题。它本身也不

Qt 好么 不是QT 亲

闷

这东西已和谐……

回复@季风-落地窗:你说的是对的！谢谢您~

Dropbox早被和谐了

好东西进不了我朝的门！唉~ //@校长Ubuntu:转发微博

好东西进不了我朝的门！唉~

可惜了

安装失败！//@我爱笨兔兔ibentutu:转发微博

hao

正解!

# Dropbox原生Linux客户端首次展示Qt界面

**Dropbox原生Linux客户端的最新试验版首次展示了全新的Qt界面。**

Dropbox表示这次的UI重写，将同时应用到Windows和Linux，将修复“大量”长期遗留下来的错误和问题。这个跨平台的工具也将整体提升性能。

在全新的设置向导和登录界面（见下面的图片）旁边是几个重新设计过的启动画面。

登录界面

设置界面

欢迎界面

### 目前还不稳定

Dropbox开发人员提醒参与测试的人，目前大部分新界面“还很粗糙”，在使用中可能会碰到大量的界面问题。新界面还不能配合一些辅助工具一起工作，例如屏幕阅读器。

新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](https://d1ilhw0800yew8.cloudfront.net/client/dropbox-lnx.x86_64-2.11.0.tar.gz)
* [Dropbox Experimental (32bit) Offline Linux Installer](https://d1ilhw0800yew8.cloudfront.net/client/dropbox-lnx.x86-2.11.0.tar.gz)

下载完后，解压到主目录。它默认是隐藏的，所以打开终端，’cd‘到‘.dropbox-dist/dropbox-lnx‘目录下，然后运行‘./dropbox start‘。

演示Dropbox终端操作的gif动画：

---

via: <http://www.omgubuntu.co.uk/2014/07/dropbox-experimental-linux-build-qt-rewrite>

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

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


Oracle Linux 7.0发布！

Summary: Oracle已经发布了Oracle Linux 7.0操作系统，新系统带来了大量的新特性，比如第三代坚不可摧的内核 UEK（Unbreakable Enterprise Kernel Release 3）和一个新的默认文件系统 为了这次新的发行版的发布，Oracle的开发者们已经放出过两个预览版，现在最终版终于来了。果然，它有着大量的改进，其中包括使用新的XFS作为默认的文件系统，可选的Btrfs文件系统，Linux Containers (LXC)， DTrace，Ksplice，加强版Xen和UEK R3。 作为广泛流行的文件系统EXT4的对抗者，XFS有一个显著优势。它所允许用户的文件系统的大小达到了500TB，这比你在EXT4

Oracle sucks

坚不可摧……

[可爱]

无耻的oracle 终于发布了，红帽应该和这货打官司。。。。

mark. //@Linux中国: Oracle Linux和CentOS都是RHEL的衍生版。//@二分之三减根五: Oracle sucks

坚不可摧,呵呵，抢了RH的不少生意。 //@Linux中国:Oracle Linux和CentOS都是RHEL的衍生版。 //@二分之三减根五: Oracle sucks

这企鹅…

前天才上的SL7 Alpha//@Linux中国:Oracle Linux和CentOS都是RHEL的衍生版。//@二分之三减根五: Oracle sucks

又去下载安装@校长Ubuntu //@Linux中国:Oracle Linux和CentOS都是RHEL的衍生版。//@二分之三减根五: Oracle sucks

这玩意比centos好吗

定制的内核支持的硬件少，连无线网卡都不能使用

# Oracle Linux 7.0发布！

<img src="content_image/album_201407_25_143727dhnt6n1lu220y2tb.jpg" alt="The new Oracle Linux 7.0 is out" title="The new Oracle Linux 7.0 is out">

**Oracle已经发布了Oracle Linux 7.0操作系统，新系统带来了大量的新特性，比如“第三代坚不可摧的内核 UEK”（Unbreakable Enterprise Kernel Release 3）和一个新的默认文件系统**

为了这次新的发行版的发布，Oracle的开发者们已经放出过两个预览版，现在最终版终于来了。果然，它有着大量的改进，其中包括使用新的XFS作为默认的文件系统[注：原文为操作系统，应该是笔误]，可选的Btrfs文件系统，Linux Containers (LXC)， DTrace，Ksplice，加强版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发行版的详细内容可以参考官方[声明](http://www.oracle.com/us/corporate/press/2245947)。

立即下载Oracle Linux 7.0：

* [Oracle Enterprise Linux 6.5 (ISO) 64-bit](http://mirrors.dotsrc.org/oracle-linux/OL6/U5/i386/OracleLinux-R6-U5-Server-i386-dvd.iso)[iso] [3 GB]
* [Oracle Enterprise Linux 6.5 (ISO) 32-bit](http://mirrors.dotsrc.org/oracle-linux/OL6/U5/x86_64/OracleLinux-R6-U5-Server-x86_64-dvd.iso)[iso] [3.60 GB]
* [Oracle Enterprise Linux 7.0 (ISO) 64-bit](https://edelivery.oracle.com/linux/)[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](http://news.softpedia.com/editors/browse/silviu-stahie) 译者：[guodongxiaren](https://github.com/guodongxiaren) 校对：[wxy](https://github.com/wxy)

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


已经会用Git了？不会这十招怎么行

Summary: 之前我们发了一些教程让你熟悉Git基础和在团队合作环境中使用Git.我们讨论的这些Git命令足够让一个开发者在Git的世界里生存下去。在这篇教程里，我们试着探索如何高效地管理你的时间以及如何充分利用Git提供的特性。   注意：这里介绍的命令中有的包含方括号(例如：git add -p )。在这些例子中，你应该用你自己的数字、标识符等替代方括号里的内容，并且去掉方括号。  1. Git自动补全 如果你在命令行环境中运行Git命令，每次都手动地逐个输入命令是一件很无聊的事。为此，你可以花几分钟时间配置一下Git命令的自动补全功能。 在*nix系统运

自动补全

我不会这些也在用。嘿嘿。

那还差很多呢，我今天一看，晕，原来还有这么多功能——Linus真牛啊。

马克

@我的印象笔记 //@Linux中国: 自动补全根本不算个事，只是为下面的九个功能铺垫的~//@Nicholas__Xue: 自动补全

mark

Mark涨姿势//@Linux中国:自动补全根本不算个事，只是为下面的九个功能铺垫的~//@Nicholas__Xue: 自动补全

@我的印象笔记

@我的印象笔记

@我的印象笔记

# 已经会用Git了？不会这十招怎么行

之前我们发了一些教程让你熟悉[Git基础](http://www.sitepoint.com/git-for-beginners/)和[在团队合作环境中使用Git](http://www.sitepoint.com/getting-started-git-team-environment/).我们讨论的这些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]

```

在下面的截图里，你可以看到在一个更大的库里这个命令的输出是什么样的：

### 4. 查看库的历史

在之前的教程里，我们已经看过了如何使用git log命令。不管怎样，有3个选项你应该知道。

* **--oneline** - 压缩每次的提交信息，只保留一个缩减的Hash值和说明文字，然后把这些都展示在一行里。
* **--graph** - 这个选项将在左边画出一个文字界面的提交历史图。如果你只有一个分支，用这个选项查看历史时是没什么意义的。
* **--all** - 显示所有分支历史。

这是这3个选项合起来使用的效果：

### 5. 不要丢失对某个提交的跟踪

假设你提交了一些不需要的东西，然后你进行了hard重置回到之前的状态。后来，你发现在这个过程中你丢失了其他一些重要的信息，你想要把这些信息找回来，或者至少可以查看一下这些信息。这就需要git reflog帮忙。

简单的git log只能告诉你最近的提交，这个提交的父提交，父提交的父提交，等等。但是git reflog是一个HEAD指向的提交的列表。记住，这个列表依赖于你自己的本地操作环境，它不是库的一部分，也不包含在push或者merge中。

如果执行git log命令，可以看到提交历史，这是我的库的一部分：

但是，git reflog命令显示了一个被我用hard重置丢掉的提交(b1b0ee9-HEAD@{4}).

### 6. 暂存文件的一部分更改以便进行一次提交

通常依据特性来提交是一个好的实践方法，意思是说，每一个提交都只添加一个特性或者修复一个bug。想一下如果你一次修复了两个bug或者添加了两个特性但是都还没有逐个提交该怎么办。这种场景下，你可以将他们一起提交。但是有一个更好的办法：单独暂存这些文件，然后分开提交。

让我们假设你对一个文件做了多个更改，然后想让这些更改分开提交。这时，我们用带-p的添加命令。

```
git add -p [file_name]

```

我们来试试这种用法。我添加了3个新行到file\_name，但是我只想让第1行和第3行出现在我的提交里。让我们看看git diff的输出是什么样的。

然后，我们看看带-p选项的add命令会发生什么。

看起来Git认为所有的更改都是同一个目的的一部分，所以把他们分组到同一个块里。这时，你可以：

* 输入 y 暂存块
* 输入 n 不暂存块
* 输入 e 手动编辑块
* 输入 d 退出或者跳转到下一个文件
* 输入 s 分割块

在我们这个例子中，我们想把这个块分割成更小的部分，然后选择其中一些忽略另外一些。

如你所见，我们已经逐个添加了第1和第3行，忽略了第2行。你可以看到库的状态并且进行一次提交。

### 7. 合并多个提交

为了进行核查或者发起一个合并请求（这经常发生在开源项目里），对代码进行了修改提交。但在最后代码被接受之前，你也许会需要修改你的代码。于是你修改代码，但是下一次核查的时候又一次需要进行修改。不知不觉中，你就已经有了好几个提交。理论上你应该用rebase命令把他们合并起来。

```
git rebase -i HEAD~[number_of_commits]

```

如果你想合并最后的两次提交，你应该运行下面的命令。

```
git rebase -i HEAD~2

```

一旦你运行这个命令，你将进入一个交互式界面，它将询问你想要合并哪些提交。你pick(拣选)最近的提交然后squash(合并)旧的提交。

接着你应该提供一个对新提交的说明。这个过程会重写你的提交历史。

### 8. 储藏没有提交的更改

假设你正在修复一个bug或者添加一个特性，突然你被要求展示一下你的工作成果。你现在的工作还没有完成，不够进行一次提交。这时，git stash命令可以用来急救一下。Stash命令跟踪你所有的更改，然后把他们储藏起来以便以后使用。命令如下-

```
git stash

```

可以多次储藏更改，查看储藏列表，你可以运行下面的命令：

```
git stash list

```

如果你想取消储藏，覆盖当前的更改，你可以通过下面的命令使用储藏：

```
git stash apply

```

在最后的这个截图里，你可以看到每个储藏都有一个标识符，是一个唯一的数字（尽管在这里我们只有一个储藏）。如果你想使用某个储藏，你在apply命令后面加上这个唯一的标识符：

```
git stash apply stash@{2}

```

### 9. 检查丢失的提交

尽管reflog是一种检查丢失提交的方法，大型的库里却不太实用。这个时候，应该用fsck（文件系统检查）命令。

```
git fsck --lost-found

```

这里你可以看到一个丢失的提交。你可以通过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这个提交到另一个分支上。

我切换到想要应用这个拣选出来的提交的分支，然后运行下面的命令：

```
git cherry-pick [commit_hash]

```

尽管这次我们很干净的用了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/) 荣誉推出


怎样把坏的MySQL查询找到并杀死？

Summary: 有时，关系型相关数据库系统的复杂性会把你搞晕，不过幸运的是，使用MySQL工具来管理查询就就可以避免这些复杂性。 在本教程中，我将向你们展示 怎样去查找并杀掉任何非法的MySQL查询。  为了浏览当前正在运行的查询，登陆到MySQL终端，然后运行show processlist命令: mysql show processlist; +--------+--------+-----------------+---------+---------+-------+-------+------------------+-----------+---------------+-----------+ | Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined | Rows_rea

转发微博。

怎样把坏的MySQL查询找到并杀死

转了，留作备用

m


[小技巧]如何在Ubuntu14.04中禁用叠加滚动条

Summary: Hello 伙计们, 这是一个如何在Ubuntu中禁用叠加滚动条的小技巧。注意，在本文中讲的不是删除叠加功能，而是告诉你如何启用或禁用它。 禁用 打开终端并执行以下命令 gsettings set com.canonical.desktop.interface scrollbar-mode normal  更改后会立即生效：  启用 gsettings reset com.canonical.desktop.interface scrollbar-mode   Enjoy!   Enock Seth Nyamador 我穿着----（比基尼？）, 一个开源的瘾君子。一个发展中的非洲geek。我是一个菜鸟开发者和一个有追求的摄影师。想提供给我什么或者是小贴士，请随时与我联系。我随时准备

转发微博。

叠加滚动条没有用，不好用，不想用。

不太习惯的

# [小技巧]如何在Ubuntu14.04中禁用叠加滚动条

Hello 伙计们,

这是一个如何在Ubuntu中禁用叠加滚动条的小技巧。注意，在本文中讲的不是删除叠加功能，而是告诉你如何启用或禁用它。

### 禁用

打开终端并执行以下命令

```
gsettings set com.canonical.desktop.interface scrollbar-mode normal

```

更改后会立即生效：

### 启用

```
gsettings reset com.canonical.desktop.interface scrollbar-mode

```

Enjoy!

---

[Enock Seth Nyamador](http://www.unixmen.com/author/seth/)

我穿着--[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/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


主流搜索引擎闯入Linux命令行世界

Summary: （LCTT译注：这里，我们姑且认为您身处能够访问Internet的地方！） 为什么会有人要从终端搜索互联网上的东西？我不清楚，这里头可能有许多的原因。但是，因为没人要求答案总比没人知道答案少令人失望一点。这里，列出了一些流行的搜索引擎的命令行工具，可以让你们通过Linux终端来访问它们。 1. Google 让我们从一个巨头开始吧：Bing！好吧，只是开个玩笑，事实上应该是Google。坦白讲，你根本不需要使用命令行工具来进行Google搜索。只需要简简单单的一个命令： $ xdg-open https://www.google.com/search?q=""  它会打开网页浏览器，并

mark

get it。。。

吊

壮哉我linux

第一句话就让人郁闷。。。

认为译注是全文最大亮点的路过

回复@shanlinzi:人同此心啊

也不坏

现在，让我们聊聊龌龊的东西。

赞

我能说在天朝没法使用吗？？！！

不明觉厉呀

其实我觉得用命令行访问很没必要

技术在发展和技术，我就不是那么固执的人。好用就行。管它用什么技术呢。

有意思

可惜这些都和我等国民无关了~

这个不错~~~

不过长城非好汉啊！

好一个不过长城非好汉！

mark等墙穿

求带我过~

# 主流搜索引擎闯入Linux命令行世界

（LCTT译注：这里，我们姑且认为您身处能够访问Internet的地方！）

为什么会有人要从终端搜索互联网上的东西？我不清楚，这里头可能有许多的原因。但是，因为没人要求答案总比没人知道答案少令人失望一点。这里，列出了一些流行的搜索引擎的命令行工具，可以让你们通过Linux终端来访问它们。

### 1. Google

让我们从一个巨头开始吧：Bing！好吧，只是开个玩笑，事实上应该是Google。坦白讲，你根本不需要使用命令行工具来进行Google搜索。只需要简简单单的一个命令：

```
$ xdg-open https://www.google.com/search?q="[query]"

```

它会打开网页浏览器，并转到合适的搜索页面。然而，如果你想要的是从终端窗口查看搜索结果，而不是打开什么网页浏览器，那么我推荐你使用[cli-google](https://github.com/henux/cli-google)。它是一个超级老古董了（最后一次更新是在2009年），但我喜欢它。这是一个简单而直接的应用，它会忠实地干好它应该干的事。

安装完cli-google后，你就可以开始用它来搜索了，它的输出是那样的五彩斑斓。你也可以调整搜索结果的数量和你想要的语言，你只需要在终端中敲入：

```
$ google

```

就可以看到所有的选项了。

### 2. YouTube

关于Google，有太多的东西要放进列表来。我会尽量简明扼要，但绝不会放过该有的。对于许多人而言，YouTube是他们快速查找相关内容视频的首选。要在终端中完成此事，我则钟情于[mps-youtube](https://github.com/np1/mps-youtube)。这个软件可以让你在终端中搜索、下载视频，创建播放列表，以及查看关于视频的评论。安装完mps-youtube后，你可以使用下面的命令来启动：

```
$ mpsyt

```

然后，输入 h 来查看选项。要查看简明用法，你可以像下面这样：

```
/[query]

```

来搜索你想知道的一切，然后输入视频的编号来听听它的声音，或者输入：

```
i [video-number]

```

来看看相关信息，也可以输入：

```
d [video-number]

```

来下载它。如果你觉得光听还不过瘾，这里还有更好玩的：

```
set player mplayer
set show_video True

```

现在，你可以在另外一个窗口里头用mplayer来播放视频了。

### 3. 维基百科

与Google一样，对于维基百科，我也喜欢一个古老的脚本，它干的不赖：[cliWiki](https://github.com/AnirudhBhat/cliWiki.py)。安装完后，赶紧运行一下看看：

```
$ cliwiki

```

然后，你就可以输入你想要搜索的内容了。如果有直接匹配的条目，终端中就会显示相关页面了。哈，输出内容可真够长的，建议你还是用less命令来看吧。当然，这不是最高效的方法，但你的母的只是想要查看与关键词相关的文本，那这就是你想要的。

### 4. 海盗湾

现在，让我们聊聊龌龊的东西。网上有很多意想不到的（也许你不觉得）工具，可以帮助你在命令行下查找海盗湾上的种子。而在这其中，[pirate-get](https://github.com/vikstrous/pirate-get)是我的最爱。它里面蕴藏了大量的选项，你可以通过下面的命令来发现它们：

```
$ pirate-get -h

```

但是还是简单一些吧：

```
$ pirate-get --color -c [category] [query]

```

以上命令会返回与查询内容相关的特定搜索类目中的结果，输出结果也是彩色的！那里头，程序会提示你输入你想要的结果的编号，输入后就可以从磁链上下载种子了。简单又容易，仅限于没有版权的资料哦！

### 5. Twitter

Twitter是迎合潮流的一个很好的搜索引擎。我们已经在[如何在命令行中访问Twitter](http://xmodulo.com/2013/12/access-twitter-command-line-linux.html)一文中介绍了它的用法，但是我个人更喜欢[TTYtter](http://www.floodgap.com/software/ttytter/)。该工具及其强大，它应该有它自身的一席之地，而不再仅仅用于简单搜索了。但在这里，我只想把它当作搜索引擎使用。安装并配置完后，你就可以登陆进去，并使用下面的命令来搜索了：

```
/search [query]

```

界面在视觉上有点粗糙，但是你很快会习惯的。注意，这里头只能用普通的文字，也可以用哈希标记。

最后来小结一下吧，这里列出了我认为人们使用最多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/) 荣誉推出


Linux基础：如何在命令行中查看目录的大小

Summary: 这是写给Liunx新用户的一系列文章中的第一篇，在这系列文章我将会写一些对新用户来说非常好用的Linux基础命令。 注意：本文的目标读者是仅有小量甚至是没有任何Linux命令行使用经验的读者。  作为一个Linux的新用户，我怎样可以在命令行终端中查看某个目录的属性？  要求 唯一的要求是du命令行工具。du基本上是所有Linux发行版本默认提供的工具。用以下的命令来检查你的系统中是否可以使用du命令： man du  du 命令用于输出文件的空间使用情况。 使用du 不带任何参数的运行du命令会显示当前工作目录以及其子目录的文件名和所占用的空间大

我使用的是Ubuntu[爱你]

很有意思的小工具。与dd ，dh并称3D[哈哈]

du -csh

ubuntu也可以

很不错的工具呀

棒棒哒！！！

# Linux基础：如何在命令行中查看目录的大小

这是写给Liunx新用户的一系列文章中的第一篇，在这系列文章我将会写一些对新用户来说非常好用的**Linux基础命令**。

**注意**：本文的目标读者是仅有小量甚至是没有任何Linux命令行使用经验的读者。

>
> 作为一个Linux的新用户，我怎样可以在命令行终端中查看某个目录的属性？
>
>
>

### 要求

唯一的要求是**du**命令行工具。du基本上是所有Linux发行版本默认提供的工具。用以下的命令来检查你的系统中是否可以使用du命令：

```
man du

```

**du** 命令用于输出文件的空间使用情况。

### 使用du

不带任何参数的运行du命令会显示当前工作目录以及其子目录的文件名和所占用的空间大小(以字节为单位)。

```
du

```

使用**-h**参数以对用户友好的方式输出文件大小，即分别以**K, M**和**G**来表示**Kb,Mb**和**Gb**

```
du -h

```

若想查看某个特定目录的文件大小，则在du命令中指定要查看的目录名，如下：

```
du -h Mapmaker

```

使用 **-c** 参数来查看目录所占用磁盘空间的总大小

```
du -ch

```

使用 **-s** 参数只输出指定目录占用空间的大小

```
du -sh Mapmaker Sandbox

```

使用 man du 查看du命令更多参数的用法

```
man du

```

知道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/) 荣誉推出


编程的乐趣：快速终止！

Summary: 当软件出现问题的时候，它应该以一种很容易引起注意的方式马上终止。这种快速终止的方式值得借鉴，我们会在这期专栏里谈谈这个重要的概念。 一开始，快速终止看上去是一种会影响可靠性的不好的实践——为什么一个系统在还可以继续运行的时候要崩溃（或者说终止）？对于这个，我们需要理解，快速终止是和Heisenbugs（对于不易复现bug的一种称呼）紧密联系在一起的。考虑一下Bohrbugs（对于能够重现的bug的一种称呼），它们在一个给定输入的条件下总是会出现，比如，访问空指针。这类问题很容易测试、复现并修复。而如今

# 编程的乐趣：快速终止！

<img src="content_image/album_201407_28_173756ubb1z2d1d3fs1tlt.jpg" alt="" title="">
当软件出现问题的时候，它应该以一种很容易引起注意的方式马上终止。这种“快速终止”的方式值得借鉴，我们会在这期专栏里谈谈这个重要的概念。

一开始，“快速终止”看上去是一种会影响可靠性的不好的实践——为什么一个系统在还可以继续运行的时候要崩溃（或者说终止）？对于这个，我们需要理解，快速终止是和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语句来检查这个参数是否正确，否则的话抛出一个异常，或是提前返回，来适合上下文。然而，断言一般可以用于额外检查代码中所作出的假设，这些假设应该一直为真才正常。例如，用一个语句来检查在进行了入栈操作后，栈应该不是空的（例如，对“不变量”的检查）。

所以，快速终止，随时中断，那么你就走在开发更加健壮代码的道路上了。


ncdu – 基于ncurses库的磁盘使用分析器

Summary: Ncdu (NCurses Disk Usage) 是一个基于Ncurses库的du命令的界面。它通过大家熟知的du命令，为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比，且允许你使用ncurses库的方式在目录之间导航。  安装 ncdu已经被移植到大多数linux发行版本，可从官方资源库中安装. Arch / Manajaro 及其衍生版: sudo pacman -S ncdu   Ubuntu / Debian / Linux Minut 及其衍生版: sudo apt-get install ncdu  Fedora 及其衍生版: sudo yum install ncdu  在这里可以找到其他的发行版。 使用 ncdu 键盘操作:  up, k  向上移动光标 down, j

du 的指令永远记不住。。靠老板和组里各种哥救济。。。

这个必须牛逼，一直在用

# ncdu – 基于ncurses库的磁盘使用分析器

[Ncdu](http://dev.yorhel.nl/ncdu) (NCurses Disk Usage) 是一个基于Ncurses库的du命令的界面。它通过大家熟知的[du](http://www.unixmen.com/linux-basics-find-size-directory-commands/)命令，为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比，且允许你使用ncurses库的方式在目录之间导航。

### 安装

ncdu已经被移植到大多数linux发行版本，可从官方资源库中安装.

Arch / Manajaro 及其衍生版:

```
sudo pacman -S ncdu

```

Ubuntu / Debian / Linux Minut 及其衍生版:

```
sudo apt-get install ncdu

```

Fedora 及其衍生版:

```
sudo yum install ncdu

```

在[这里](http://dev.yorhel.nl/ncdu)可以找到其他的发行版。

### 使用 ncdu

键盘操作:

* up, k — 向上移动光标
* down, j – 向下移动光标
* right/enter — 打开选定的目录
* left, <, h — 打开父目录
* n — 按文件名排序（升序/降序）
* s — 按文件大小排序（升序/降序）
* C – 按项目数排序（升序/降序）
* d – 删除选定的文件或目录
* t — 排序时将目录放在文件前面
* g – 以图形方式显示百分比

为使用ncdu，请打开终端并且运行

```
ncdu

```

开始扫描目录.

当扫描完成后，你能够很容易的看到文件/目录的大小.

确认删除文件:

在[这里](http://dev.yorhel.nl/ncdu/man) 阅读ncdu命令手册或运行:

```
man ncdu

```

**荣誉**: 有两位读者**BasketCase**和**Sama Vim**在阅读“[Linux基础：如何在命令行中查看目录的大小](http://linux.cn/article-3473-1.html)”之后 向我们推荐了这个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/) 荣誉推出


在 Ubuntu 桌面上显示歌词

Summary: 除了免费的流媒体音乐外,我最喜欢Spotify的地方就是它的歌词插件了。有时候我听不懂一首歌里面的所有歌词，尤其是rap。TuneWiki插件在这种情况下就派得上用场了。但TuneWiki仅有支持Windows和iTune的插件，那我们在linux桌面上有什么选择呢？ 如果你使用过一段时间Linux桌面，你也许听过OSD Lyrics。它是一个显示桌面歌词的小程序。你可以借助一些音乐播放器来使用它，比如 Rythmbox，Banshee，Clementine等等。 在Ubuntu 14.04和Linux mint 17上安装OSD Lyrics 两年以前 OSD Lyrics 它的官方仓库还在积极地维护，但现在对它的开发已经停

桌面感觉不错，能附上么。。

这是翻译的外国的文章，人家木有提供这个的桌面壁纸哦，不过你可以搜搜看哦

我不觉得这个桌面壁纸有多好看啊？

从来不关心歌词，基本上也从来听不清楚，外加歌词普遍比较烂。有时候觉得歌手只要配合音乐“啊啊啊……”就够了。

Nice

hao

以前还在OBS上打包，现在我自己都不用了。也许是因为现在电脑屏幕太小？

好的应用。有需求。

可惜了，不维护了，应该有人接手或开发一个新的。

# 在 Ubuntu 桌面上显示歌词

除了免费的流媒体音乐外,我最喜欢[Spotify](http://itsfoss.com/install-spotify-ubuntu-1404/)的地方就是它的歌词插件了。有时候我听不懂一首歌里面的所有歌词，尤其是rap。[TuneWiki](http://www.tunewiki.com/)插件在这种情况下就派得上用场了。但TuneWiki仅有支持Windows和iTune的插件，那我们在linux桌面上有什么选择呢？

如果你使用过一段时间Linux桌面，你也许听过[OSD Lyrics](https://code.google.com/p/osd-lyrics)。它是一个显示桌面歌词的小程序。你可以借助一些音乐播放器来使用它，比如 Rythmbox，[Banshee](http://banshee.fm/)，[Clementine](https://www.clementine-player.org/)等等。

### 在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](https://code.google.com/p/osd-lyrics/downloads/list)，根据你是使用[32位还是64位的ubuntu](http://itsfoss.com/how-to-know-ubuntu-unity-version/)来下载相应的.deb 文件。你会在网页的上方找到这些文件。

下载完成后，双击它通过使用Ubuntu软件中心来安装。另外，你也可以使用[Gdebi](http://itsfoss.com/install-deb-files-easily-and-quickly-in-ubuntu-12-10-quick-tip/) 来快速地安装.deb安装包。

### 怎样在 Ububtu 和 linux mnit 上使用 OSD Lyrics 显示歌词

安装完成后，你可以从Unity Dash运行OSD Lyrics :

首次运行时，OSD Lyrics会检测你的系统中能被它支持的播放器。你可以设定一个默认播放器，以后当你运行OSD Lyrics时它就会自动启动 。

有一件事值得注意，那就是OSD Lyrics不像[Shazam](http://www.shazam.com/)等软件一样，它不是通过音频来寻找歌词，而是通过比如名称，专辑，艺术家等信息来关联音乐文件。所以你得确保你的音乐文件的来源正当，或者是你得保持你的音乐文件的信息是正确并且是已经更新后的。

如果OSD Lyrics辨认出了音乐文件，它就会用卡拉OK格式在桌面上显示歌词了:（译者注：OSD Lyrics可以自动在千千静听和虾米歌词站点在线下载歌词，这对我们中文用户来说是个福音）

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/) 荣誉推出