Linux有问必答：如何通过命令行创建和设置一个MySQL用户

Summary: 问题：我想要在MySQL服务器上创建一个新的用户帐号，并且赋予他适当的权限和资源限制。如何通过命令行的方式来创建并且设置一个MySQL用户呢？  要访问一个MySQL服务器，你需要使用一个用户帐号登录其中方可进行。每个MySQL用户帐号都有许多与之相关连的属性，例如用户名、密码以及权限和资源限制。"权限"定义了特定用户能够在MySQL服务器中做什么，而"资源限制"为用户设置了一系列服务器资源的使用许可。创建或更新一个用户涉及到了对用户帐号所有属性的管理。  下面展示了如何在Linux中创建和设置一个MySQL用户。 首先以root身份登录到My

Repost

mark

基础的东西都忘了了

这个严格说来不术语 Linux 的范畴，因为 MySQL 是跨平台的。

先记住了

不错

不错，学习力

很给力，支持一下

但是运维却需要掌握哦<br />
现在公司就是这么变态 还要会python

# Linux有问必答：如何通过命令行创建和设置一个MySQL用户

>
> **问题**：我想要在MySQL服务器上创建一个新的用户帐号，并且赋予他适当的权限和资源限制。如何通过命令行的方式来创建并且设置一个MySQL用户呢？
>
>
>

要访问一个MySQL服务器，你需要使用一个用户帐号登录其中方可进行。每个MySQL用户帐号都有许多与之相关连的属性，例如用户名、密码以及权限和资源限制。"权限"定义了特定用户能够在MySQL服务器中做什么，而"资源限制"为用户设置了一系列服务器资源的使用许可。创建或更新一个用户涉及到了对用户帐号所有属性的管理。

下面展示了如何在Linux中创建和设置一个MySQL用户。

首先以root身份登录到MySQL服务器中。

```
$ mysql -u root -p

```

当验证提示出现的时候，输入MySQL的root帐号的密码。

### 创建一个MySQL用户

使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户。

```
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

```

一旦用户被创建后，包括加密的密码、权限和资源限制在内的所有帐号细节都会被存储在一个名为**user**的表中，这个表则存在于**mysql**这个特殊的数据库里。

运行下列命令，验证帐号是否创建成功

```
mysql> SELECT host, user, password FROM mysql.user WHERE user='myuser';

```

### 赋予MySQL用户权限

一个新建的MySQL用户没有任何访问权限，这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。以下是一些可用的权限：

* **ALL**: 所有可用的权限
* **CREATE**: 创建库、表和索引
* **LOCK\_TABLES**: 锁定表
* **ALTER**: 修改表
* **DELETE**: 删除表
* **INSERT**: 插入表或列
* **SELECT**: 检索表或列的数据
* **CREATE\_VIEW**: 创建视图
* **SHOW\_DATABASES**: 列出数据库
* **DROP**: 删除库、表和视图

运行以下命令赋予"myuser"用户特定权限。

```
mysql> GRANT <privileges> ON <database>.<table> TO 'myuser'@'localhost';

```

以上命令中，<privileges> 代表着用逗号分隔的权限列表。如果你想要将权限赋予任意数据库（或表），那么使用星号（\*）来代替数据库（或表）的名字。

例如，为所有数据库/表赋予 CREATE 和 INSERT 权限：

```
mysql> GRANT CREATE, INSERT ON *.* TO 'myuser'@'localhost';

```

验证给用户赋予的全权限：

```
mysql> SHOW GRANTS FOR 'myuser'@'localhost';

```

将全部的权限赋予所有数据库/表：

```
mysql> GRANT ALL ON *.* TO 'myuser'@'localhost';

```

你也可以将用户现有的权限删除。使用以下命令废除"myuser"帐号的现有权限：

```
mysql> REVOKE <privileges> ON <database>.<table> FROM 'myuser'@'localhost';

```

### 为用户添加资源限制

在MySQL中，你可以为单独的用户设置MySQL的资源使用限制。可用的资源限制如下：

* **MAX\_QUERIES\_PER\_HOUR**: 允许的每小时最大请求数量
* **MAX\_UPDATES\_PER\_HOUR**: 允许的每小时最大更新数量
* **MAX\_CONNECTIONS\_PER\_HOUR**: 允许的每小时最大连接（LCTT译注：[其与 MySQL全局变量： max\_user\_connections 共同决定用户到数据库的同时连接数量](http://dev.mysql.com/doc/refman/5.0/en/user-resources.html)）数量
* **MAX\_USER\_CONNECTIONS**: 对服务器的同时连接量

使用以下命令为"myuser"帐号增加一个资源限制：

```
mysql> GRANT USAGE ON <database>.<table> TO 'myuser'@'localhost' WITH <resource-limits>;

```

在 <resource-limits> 中你可以指定多个使用空格分隔开的资源限制。

例如，增加 MAX*QUERIES*PER*HOUR 和 MAX*CONNECTIONS*PER*HOUR 资源限制：

```
mysql> GRANT USAGE ON *.* TO 'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 30 MAX_CONNECTIONS_PER_HOUR 6;

```

验证用户的资源限制：

```
mysql> SHOW GRANTS FOR 'myuser'@'localhost;

```

创建和设置一个MySQL用户最后的一个重要步骤：

```
mysql> FLUSH PRIVILEGES;

```

如此一来更改便生效了。现在MySQL用户帐号就可以使用了。

---

via: <http://ask.xmodulo.com/create-configure-mysql-user-command-line.html>

译者：[Ping](http://weibo.com/370321376) 校对：[wxy](https://github.com/wxy)

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


Debian 8.0 Jessie 或许能在四月份提前发布

Summary: 虽然几个月前，就尝试过在二月份之前发布 Debian 8.0，但是似乎我们有可能在四月份就看到这个已经等待了太久的 Jessie。 在昨天，Debian 发布组的Niels Thykier写道：...从这一点看，四月份发布也许是可能的，不过，这需要我们埋头苦干，把所有剩下的 bug 搞定才行。  截止至昨晚，还有55个影响 Sid 和 Jessie 的 RC bug 没解决，非关键性的软件包上还有17个 RC bug，而且发行注记也需要做很多修订。

等待已久

等了整整两年了

xfce[奥特曼]

转眼8.0了  //@特价萝卜:转发微博

应该还有个rc2吧。。

新版本美观，适合桌面，可惜我不会安装DSL联网，连不上网就用Ubuntu了，新版本的Debian和CentOS默认都没有DSL直接使用了。

回复@nctime:尽快出来看看

等了好久了//@Linux中国:回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

已经扔了//@Linux中国:回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

甚好甚好//@Linux中国: 回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

终于要来了好激动，我现在sid

昨天才从7.2过度到7.8。。。你妹啊//@Linux中国:回复@nctime:/@nctime:Debian 8后,用Ubuntu的可以把那玩意意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

好用//@Linux中国:回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

搞来玩玩 //@Linux中国:回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

等的黄花菜都凉了。。。。。 //@Linux中国:回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

春假来折腾//@Linux中国: 回复@nctime:尽快出来看看//@nctime:Debian 8后,用Ubuntu的可以把那玩意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

Debian很稳定，服务器一直用。 //@为俊沉沦://@Linux中国://@nctime:Debian 8后,用Ubuntu的可以把那玩意意扔了.目前Jessie的RC1已经相当稳定了.之前的Wheezy经过了4个beta版本,3个RC版本才最终发布.而Jessie只经过了2个beta版本就开始冻结进RC了.可见Jessie将是Debian发行以来最优秀的版本了.

# Debian 8.0 Jessie 或许能在四月份提前发布

虽然几个月前，就[尝试过在二月份之前发布 Debian 8.0](http://www.phoronix.com/scan.php?page=news_item&px=MTgzNDQ)，但是似乎我们有可能在四月份就看到这个已经等待了太久的 Jessie。

在昨天，Debian 发布组的 Niels Thykier [写道](https://lists.debian.org/debian-devel-announce/2015/03/msg00002.html)： “...从这一点看，四月份发布也许是*可能*的，**不过**，这需要我们埋头苦干，把所有剩下的 bug 搞定才行。”

<img src="content_image/album_201503_09_230953fwc626n3csopxmmu.jpeg" alt="" title="">

截止至昨晚，还有55个影响 Sid 和 Jessie 的 RC bug 没解决，非关键性的软件包上还有17个 RC bug，而且发行注记也需要做很多修订。


经过 systemd 争执后，辞职的 Debian TC 席位已被增补

Summary: 去年随着Debian 以 systemd 作为 init 管理器的决议，以及随后的 init 系统投票，有三个人从 Debian 技术委员会退出：Colin Watson, Ian Jackson, 以及 Russ Allbery。现在，这些空缺席位现已由现有的技术委员会成员任命。 新任命的技术委员会成员是 Sam Hartman, Tollef Fog Heen 以及 Didier Raboud。这些新成员加上Bdale Garbee, Don Armstrong, Andreas Barth, Steve Langasek 以及 Keith Packard 组成了现在的Debian技术委员会。由Debian章程确定的 Debian 技术委员会（TC）负责对 Debian 项目中的技术争端做出最后的决定，他们在去

有个人说，Debian成功的完成了“肃反”

# 经过 systemd 争执后，辞职的 Debian TC 席位已被增补

去年随着Debian 以 systemd 作为 init 管理器的决议，以及随后的 [init 系统投票](http://www.phoronix.com/scan.php?page=news_item&px=MTg0MzY)，有三个人从 Debian 技术委员会[退出](http://linux.cn/article-4256-1.html)：Colin Watson, [Ian Jackson](http://www.phoronix.com/scan.php?page=news_item&px=MTg0NDA), 以及 [Russ Allbery](http://www.phoronix.com/scan.php?page=news_item&px=MTg0MjM)。现在，这些空缺席位现已由现有的技术委员会成员任命。

新任命的技术委员会成员是 Sam Hartman, Tollef Fog Heen 以及 Didier Raboud。这些新成员加上Bdale Garbee, Don Armstrong, Andreas Barth, Steve Langasek 以及 Keith Packard 组成了现在的Debian技术委员会。由Debian章程确定的 Debian 技术委员会（TC）负责对 Debian 项目中的技术争端做出最后的决定，他们在去年所有的关于 init 系统的讨论中变得十分重要。

<img src="content_image/album_201503_10_090756tq6u1rowp62fu6fv.jpeg" alt="" title="">

新技术委员会成员的委任公告可以从 [debian-devel-announce列表](https://lists.debian.org/debian-devel-announce/2015/03/msg00003.html) 中获悉。

---

via: <http://www.phoronix.com/scan.php?page=news_item&px=Debian-TC-Three-Appointments>

作者：[Michael Larabel](http://www.michaellarabel.com/) 译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

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


在 Linux 上配置一个 syslog 服务器

Summary: syslog服务器可以用作一个网络中的日志监控中心，所有能够通过网络来发送日志的设施（包含了Linux或Windows服务器，路由器，交换机以及其他主机）都可以把日志发送给它。 通过设置一个syslog服务器，可以将不同设施/主机发送的日志，过滤和合并到一个独立的位置，这样使得你更容易地查看和获取重要的日志消息。 rsyslog 作为标准的syslog守护进程，预装在了大多数的Linux发行版中。在客户端/服务器架构的配置下，rsyslog同时扮演了两种角色：1.作为一个syslog服务器，rsyslog可以收集来自其他设施的日志信息；2.作为一个syslog客户端，rsy

Linux真强大。

@我的印象笔记

Rsyslog 能使用TCP ，以前的Syslog 只能用UDP。

[呵呵]

@我的印象笔记 rsyslog 中心日志服务器

@我的印象笔记

从windows上传到linux的logs，在linux端tail出来的信息包含了乱码，应该是字符格式的问题，有没办法解决的。或者有的客户端可以转换logs的字符格式再上传

# 在 Linux 上配置一个 syslog 服务器

syslog服务器可以用作一个网络中的日志监控中心，所有能够通过网络来发送日志的设施（包含了Linux或Windows服务器，路由器，交换机以及其他主机）都可以把日志发送给它。 通过设置一个syslog服务器，可以将不同设施/主机发送的日志，过滤和合并到一个独立的位置，这样使得你更容易地查看和获取重要的日志消息。

**rsyslog** 作为标准的syslog守护进程，预装在了大多数的Linux发行版中。在客户端/服务器架构的配置下，**rsyslog**同时扮演了两种角色：1.作为一个syslog服务器，**rsyslog**可以收集来自其他设施的日志信息；2.作为一个syslog客户端，**rsyslog**可以将其内部的日志信息传输到远程的syslog服务器。

在此，我们演示了在linux上如何通过**rsyslog**来配置一个中心化syslog服务器。 在进入详解之前，先温习一下syslog标准。

### syslog标准基础

当通过syslog机制来收集日志时，有3个必须要考虑到的重要事情：

* **设施层级**: 监听何种类型的进程
* **严重性 （优先） 级别**: 收集何种级别的日志消息
* **目标**: 发送或记录日志消息到何处

现在我们更加深入地了解一下配置是如何定义的。

设施层级定义了一种用来对内部系统进程进行分类的方法，linux中的一些常见的设施包括:

* **auth**: 身份验证相关的消息（登录时）
* **cron**: 进程或应用调度相关的消息
* **daemon**: 守护进程相关的消息（内部服务器）
* **kernel**: 内核相关的消息
* **mail**: 内部邮件服务器相关的消息
* **syslog**: syslog 守护进程本身相关的消息
* **lpr**: 打印服务相关的消息
* **local0 - local7**: 用户自定义的消息 （local7 通常被Cisco 和 Windows 服务器 使用）

严重性（优先）级别有固定的标准缩写和指代的值，其中的数字7具有最高的级别，这些级别包含了：

* emerg: Emergency（紧急）- 0
* alert: Alerts （报警）- 1
* crit: Critical (关键）- 2
* err: Errors （错误）- 3
* warn: Warnings （警告）- 4
* notice: Notification （通知）- 5
* info: Information （消息）- 6
* debug: Debugging （调试）- 7

最后，目标语句会让一个syslog客户端来执行以下三个任务之一：

1. 保存日志消息到一个本地文件；
2. 通过TCP/UDP将消息路由到远程的syslog服务器中；
3. 将其发送到一个标准输出中，例如控制台。

在 rsyslog里, syslog的配置是基于以下模式进行结构化的。

```
[facility-level].[severity-level]  [destination]

```

### 在Linux中配置Rsyslog

在我们理解syslog之后，现在可以通过rsyslog来将一个Linux服务器配置为一个中心syslog服务器了，另外我们也将看到如何在一个Windows的系统上配置一个syslog客户端来发送内部日志到该syslog服务器中。

### 第1步: 初始化系统需求

要将linux主机设置为一个中央日志服务器， 我们需要创建一个分离的 /var 分区，并分配足够大的磁盘空间或者创建一个特殊的LVM卷组。这样就会使得syslog服务器能够承担在日积月累收集日志所带来的潜在增长。

### 第2步: 让rsyslog 后台进程生效

rsyslog守护进程来自于当前的linux发布版本的预装模块，但是默认并没有启动。为了能够让rsyslog守护进程能够接受外部的消息，需要编辑其配置文件/etc/rsyslog.conf.

打开文件进行编辑，查找到下面的两行所在的位置，通过删除其行首的#字符来取消注释。

```
$ModLoad imudp
$UDPServerRun 514

```

这会使得rsysolog守护进程能够在UDP端口514上接受日志消息了---UDP是一种比TCP速度快，但是并不具有TCP一样的数据流的可靠性。所以如果你需要使用可靠的传送机制，就可以通过取消以下行的注释。

```
$ModLoad imtcp
$InputTCPServerRun 514

```

需要注意的是，TCP和UDP可以被同时生效来监听TCP/UDP 连接。

### 第3步：创建日志接收模板

接下来的这步，需要我们来为远程消息创建模板，并告知rsyslog守护进程如何记录从其他客户端机器所接受到的消息。

使用文本编辑器来打开 /etc/rsyslog.conf，然后在GLOBAL DIRECTIVE块前追加以下的模板。

```
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *
*.*  ?RemoteLogs
& ~

```

在此对该模板进行简单解释，$template RemoteLogs（这里“RemoteLogs” 字符串可以为任何其他的描述性的名称）指令使rsyslog后台进程将日志消息写到/var/log下的单独的本地日志文件中，其中日志文件的名称是基于远程日志发送机器的主机名以及生成该日志的应用程序名进行定义的。其中第二行暗示了我们将RemoteLogs模板应用到所有接收到的日志上。

符号"& ~"表示了一个重定向规则，被用来告知rsyslog守护进程停止对日志消息的进一步处理，并且不要在本地写入。如果没有使用该重定向规则，那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件，这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是syslog服务器本身的日志消息只会被以该机器主机名命名的专有文件中。

如果你想要的话，也可以使用下面的模式对特定的设备或严重性级别使用新的模板直接来记录日志消息。

```
[facility-level].[severity-level]    ?RemoteLogs

```

例如：

将全部优先级别的所有内部用户验证消息指定为RemoteLogs模板：

```
authpriv.*   ?RemoteLogs

```

将所有系统进程中除开mail、用户验证和cron消息之外的进程产生的消息级别的日志指定为RemoteLogs模板：

```
*.info,mail.none,authpriv.none,cron.none    ?RemoteLogs

```

如果我们想要将所有从远程客户端接受到的消息写入到一个以它们的IP地址命名的单个文件中，可以使用以下的模板。在此我们为该模板赋予了“IpTemplate”名称。

```
$template IpTemplate,"/var/log/%FROMHOST-IP%.log"
*.*  ?IpTemplate
& ~

```

在我们启用rsyslog守护进程并编辑好配置文件之后，需要重启该守护进程。

在 Debian，Ubuntu 或 CentOS/RHEL 6中：

```
$ sudo service rsyslog restart

```

在 Fedora 或 CentOS/RHEL 7中：

```
$ sudo systemctl restart rsyslog

```

我们可以通过netstat命令来验证rsyslog守护进程是否正常工作。

```
 $ sudo netstat -tulpn | grep rsyslog

```

在UDP监听端口下工作的rsyslog守护进程会有类似下面的输出。

```
udp     0 0    0.0.0.0:514    0.0.0.0:*      551/rsyslogd
udp6    0 0    :::514         :::*           551/rsyslogd

```

如果rsyslog守护进程被设置在TCP连接端口，那么应该有类似下面所示的输出。

```
tcp     0 0     0.0.0.0:514   0.0.0.0:*     LISTEN    1891/rsyslogd
tcp6    0 0     :::514        :::*          LISTEN    1891/rsyslogd

```

### 发送Windows日志到一个远程的rsyslog服务器

要将一个Windows客户端的日志消息转发到我们的rsyslog服务器，需要一个安装 Windows syslog 代理。当然，有许多的syslog代理可以在windows上运行，在此我们可以使用一个自由软件程序 [Datagram SyslogAgent](http://www.syslogserver.com/download.html).

在下载安装该syslog代理后，需要将其配置为作为服务运行。指定使用何种协议来发送数据，以及远程rsyslog服务器的IP地址和端口，最后指定应该传输的事件日志类型，如下所示。

在我们完成所有的这些配置之后，我们就可以启动该服务并且在中央rsyslog服务器中使用命令行工具tail -f来查看日志文件了。

### 总结

通过创建一个可以收集本地和远程主机的中央rsyslog服务器，我们可以更好地了解在这些系统内部究竟发生着什么，而且可以更加容易地调试它们的问题，是否在它们之间有任何延迟或崩溃存在。

---

via: <http://xmodulo.com/configure-syslog-server-linux.html>

作者：[Caezsar M](http://xmodulo.com/author/caezsar) 译者：[theo-l](https://github.com/theo-l) 校对：[wxy](https://github.com/wxy)

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


让你玩转 Ubuntu 桌面的十一件武器

Summary: 无论你是一个相对的新手还是经验丰富的专家，我们都想从我们的操作系统中得到更多的东西。正如大多数现代的操作系统，相比于乍一看呈现出的内容，Ubuntu 还有更多东西可以向我们提供。 从调整和优化 Unity 桌面的外观、行为、性能到执行系统维护，这里有大量的实用工具和应用可以帮助你调整 Ubuntu ，随时满足你的需求。 注意： Ubuntu 总是配备了合理的默认设置（即工作良好的选项），以达到开箱即用，这些默认设置适合大多数人，并且它们都是经过了测试、采用及推荐等过程的。 但一个尺码并不适合所有人。对于我们当中的能工巧匠和实验

分享#人才芯片#

刚刚翻译完 Unity Tweak Tool

大多知道了

@有道云笔记收藏

@我的印象笔记

马

@我的印象笔记

//@勾三股四:转发微博

我擦看到就头大[泪][泪][泪]

unity橱窗挺实用

@mywiz

各种收藏

//@LUPA---人才芯片工程:分享#人才芯片#

Repost

@MiseryWAYNE

# 让你玩转 Ubuntu 桌面的十一件武器

**无论你是一个相对的新手还是经验丰富的专家，我们都想从我们的操作系统中得到更多的东西。正如大多数现代的操作系统，相比于乍一看呈现出的内容，Ubuntu 还有更多东西可以向我们提供。**

从调整和优化 Unity 桌面的外观、行为、性能到执行系统维护，这里有大量的实用工具和应用可以帮助你**调整 Ubuntu ，随时满足你的需求**。

注意： Ubuntu 总是配备了‘合理的默认设置’（即工作良好的选项），以达到开箱即用，这些默认设置适合大多数人，并且它们都是经过了测试、采用及推荐等过程的。

但一个尺码并不适合所有人。对于我们当中的能工巧匠和实验主义者来说，默认设置只是他们定制系统的起点。

所以，无需更多的唠叨， 这里有 11 个极好的实用工具可以帮助你增强 Ubuntu 使用体验。

### Unity Tweak Tool

我将以这个列表中最重要的一个工具: **Unity Tweak Tool** 来开始这次的介绍。融汇了各种定制选项，Unity Tweak Tool 提供了一系列针对 Ubuntu 和 Unity 桌面的系统综合调整功能。

它被各种开关、切换和控制器塞得满满的，使得你可以任意设置从 Unity 桌面的外观到 Unity 的行为之类的任何东西。你可以使用它**快速简便地改变 GTK 主题和图标集**、设置热区、调整启动器图标尺寸、增加或移除工作区，以及 ---特别地---开启 Unity 桌面中被巧妙隐藏的“通过点击最小化”的功能。

它是免费的，可直接从 Ubuntu 软件中心里找到， Unity Tweak Tool 是非常值得保留在你的口袋里的工具之一。

### Unity 隐私指示器

隐私是一个非常、非常重要的事，事实也恰恰如此，但这个话题要比二进制还难以说明白。让一些数据或习惯，比如说你经常打开的应用，在本地被记录下来，这或许会让你感到高兴，但对于你在 Dash 中的搜索数据被发送到第三方服务机构(尽管这些数据或许是匿名的)这类事情，你就高兴不起来了。

[隐私指示器](http://www.florian-diesch.de/software/indicator-privacy/index.html) 是一个帮助你时刻跟踪 Ubuntu桌面系统中有哪些文件、目录和服务正被获取、记录及搜索的实用工具。

通过快速的点击被添加到桌面面板上的‘眼睛’图标，你可以：

* 开启或关闭在线搜索结果，使用 Zeitgeist 记录系统活动，存储 HUD 使用记录和启用 Ubuntu GeoIP 服务
* 快速清理 Zeitgeist 日志、 ALT-F2 历史、最近访问文件等等的记录数据
* 展示或隐藏桌面图标及面板上显示的用户名

上述的最后一条的功能似乎不应该出现在这个应用程序中，但对于那些要分享截图或截屏的人来说，这将会泄露更少的隐私。

* [从这里下载隐私指示器 (.deb)](http://www.florian-diesch.de/software/indicator-privacy/dist/indicator-privacy_0.04-1_all.deb)

### Unity 橱窗

**Android, iOS, OS X, Chrome OS, 和 GNOME Shell 都有应用橱窗, 借助一个极好的第三方应用，Unity 也可以实现类似功能。**

“Unity 橱窗” 允许你将 Unity 启动器中的应用分组到实用的橱窗中，--- 如游戏，办公，社交等。不必打开 Dash，你就可以快速启动你喜爱的应用，这非常适合你的工作流。

每一个 ‘橱窗’其实上是一个打开在图标附近的应用窗口，但总体效果看上去就像是一个 OS X 风格的“堆栈”或 Android 的分组框。

橱窗的图标可以自定义或根据橱窗内的应用来自动生成。已有的橱窗可以修改和重新组织、重命名以及如下的更多选择：

* 根据你的喜好创建任意多的橱窗
* 选择自定义或自动生成橱窗图标
* 可选择 3 种橱窗样式
* 为添加到橱窗中的应用设定自定义图标
* 编辑现有橱窗

[Unity 橱窗的网址](http://unity-folders.exceptionfound.com/)

### 咖啡因（Caffeine）

对于我们中的许多人来说，咖啡因是必需品，而不仅仅是饮料。而这里的“咖啡因”则提供了一个快速，温和的方式来避免屏保/锁屏占据屏幕。它的有用程度将取决于你的环境(即你系统的怪癖)，并且尽管它不像以前那样好用，它仍然值得你[尝试一下](http://www.omgubuntu.co.uk/2014/05/stop-ubuntu-sleeping-caffeine)。

[下载咖啡因（Caffeine）](https://launchpad.net/%7Ecaffeine-developers/+archive/ppa/+files/caffeine_2.7_all.deb)

### 系统监控指示器

假如你是一个状态迷，即一个喜欢密切关注程序，进程和硬件的状态的人， Linux 很容易满足你的需求。从 Conky 的配置到终端命令，并不缺少监视你的 CPU 使用情况、网络流量或 GPU 温度的方法。

但至今为止，我最喜爱的应用是**系统监控指示器**（也被叫做多负载指示器），它可从 Ubuntu 软件中心获得。它也有着大量的配置选项。

* [点击这个链接，在 Ubuntu 中下载 ‘系统监控指示器’](apt://indicator-mulitload)

### 针对 Linux 笔记本电脑的省电工具

#### TLP

当提到便携式设备上的电池使用效率时，Linux 发行版的声誉并不算好。

如果你的 Linux 笔记本在重新充电前，电池只够让你从沙发走到厨房的话，那么这里有几个你可以试试的工具。

TLP 是最受欢迎的确保延长 Linux 笔记本的电池寿命的自动化后台工具之一，它是通过调整系统进程和硬件的设置及行为来达成省电的，例如 启动 Wi-Fi 省电模式， PCI 总线设备的实时电量管理和处理器的降频调整。

在 Ubuntu 14.04 LTS 以及后续发行版本中可以[使用 TLP 专用的 PPA 来安装它](https://launchpad.net/%7Elinrunner/+archive/ubuntu/tlp/+packages)，通过它的‘一下搞定’的设置就能用起来。在我们之中的高级用户可以潜心研究并根据你自己的硬件来调整设置，一个[关于 TLP 的完整指导 wiki](http://linrunner.de/en/tlp/docs/tlp-configuration.html) 使得设置更加容易。

#### Laptop Mode Tools

假如 TLP 听起来有一点复杂，这也并没有什么可羞耻的，这里有一个更简单的替代品： **Laptop Mode Tools**。 这个软件包可从 Ubuntu 软件中心直接安装，且本身设置好了一系列合理的默认设置(Wi-Fi,蓝牙等等)。

切记，Laptop Mode Tools 不能和 TLP 同时被安装在电脑中。

* [Ubuntu 软件中心里的 Laptop Mode Tools](https://apps.ubuntu.com/cat/applications/laptop-mode-tools/)

### Intel 显卡驱动安装工具

对于那些运行 Intel 显卡硬件，并想使得这些硬件发挥出最佳性能的人来说，Intel 显卡安装工具是必须拥有的。 它使得查找并安装最新的 Intel GPU 驱动变得不再是一件痛苦和大费周折的事，因为这无需 PPA 或任何的终端使用知识。

* [下载针对 Linux平台的 Intel 显卡驱动安装器 0.7 版本](https://01.org/linuxgraphics/downloads/2014/intelr-graphics-installer-linux-1.0.7)

### 硬件信息

假如你计划升级你的 PC 或想替换一个坏掉的零部件，你需要知道一些特定的硬件信息，例如 RAM 类型，CPU插座类型 或查看哪个 PCI 槽是可用的等信息。

**I-Nex**可以使得找出这些以及其他的系统具体配置变得更加容易。使用它来查找你的主板型号、S.M.A.R.T.(注：为 Self-Monitoring, Analysis and Reporting Technology 的缩写，经常写为 SMART ) 状态，以及你想的出的很多东西！

* [可从 Launchpad 了解到更多关于 I-Nex 的信息](https://launchpad.net/i-nex)

### 磁盘空间可视化程序

在这个硬盘以 TB 计数的时代，我们或许不必同以前一样对硬盘空间的使用三思而后行。但对于那些使用小容量的 SSD，分成多个分区或在一个拥有固定大小的虚拟磁盘的虚拟机上工作的人来说，总有“应该释放一些额外空间是必要的”这种想法的时候。

GNOME Disks，在 Ubuntu 中被默认安装，使得查找占用最大磁盘空间的罪魁祸首变得容易。对于定位隐藏的日志、缓存和视频文件，它是非常完美的工具。

### BleachBit (Cruft Cleaner)

Windows 用户可能对像 CCleaner 之类的应用很熟悉，它可以扫描并清理垃圾文件、空白文件夹、臃肿的缓存以及陈旧的软件包。在 Ubuntu 上，一个相似的快速且毫不费力的一键式清理方法可以试试 **BleachBit** 。

它是一个强大的工具，所以一定要注意你正在清理什么。不要漫无目的地确认每个选项框；不是所有的东西它都可以清理。所以请合理地使用它，当你对某个选项有疑问时，就跳过它。

* [从 Ubuntu 软件中心里安装 BleachBit](https://apps.ubuntu.com/cat/applications/bleachbit/)

你已经有了自己最喜欢的系统实用工具了吗？可以在下面的评论中让其他人知晓它。

---

via: <http://www.omgubuntu.co.uk/2014/11/useful-tools-for-ubuntu-do-you-use-them>

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

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


Linux 内核开发社区引入了“冲突准则”

Summary: 以在开源界粗鲁而闻名的 Linux 创始人 Linus Torvalds 在最新的内核4.0-rc3中接受合并了一个冲突准则（code of conflict）文档。这一篇 Greg KH 写的文字，旨在限制代码评审过程中的语言暴力现象。 冲突准则 ---------------- 与传统的软件开发方式相比，Linux 内核的开发是相当个人化的。你的代码及其背后的想法会被仔细评审，而这往往导致了别人的评点和批评。评审总是可以让代码在进入内核前得到改进。我们这样认为，是因为我们知道每个人都希望为了 Linux 的全面成功而尽力做到最好。这一开发过程已经被我们所创建的迄今为止最强大的

防撕逼准则

[汗]

粗鲁而文明

[转发]

排版有问题，没有自动换行。

哈哈哈//@网路冷眼://@风过清秋:粗鲁而文明

[哈哈]

转发微博。

“Be excellent to each other"

@我的印象笔记

/lib/modules/4.0-rc3/kernel/sibi_avoidman.ko[doge]//@网路冷眼://@风过清秋:粗鲁而文明

//@网路冷眼://@风过清秋:粗鲁而文明

没有啊？

//@网路冷眼://@风过清秋:粗鲁而文明

冲突准则下面过长的字段没有换行。

中间那一段在firefox下浏览没有自动换行，在chrome则有，不明白怎么回事。。。

还有“发表评论”的那个框框会置顶跟随，感觉好惊怵

跟随不好么？好像新浪也是这样设计的。

哦哦，看来是浏览器处理不同，我来手工换行下~

主要是从正文到评论区那一段距离会突然跳一下

顺便说个题外话,这个网站的广告被ABP屏蔽了,不去申请白名单么?

跳一下是有点不美，我来看看如何解决。<br />
ABP 白名单也不好申请吧？

哈哈，悬浮的评论框跳动的问题解决了~~

要是世界上没有装逼这回事就好了//@网路冷眼://@风过清秋:粗鲁而文明

# Linux 内核开发社区引入了“冲突准则”

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

以在开源界粗鲁而闻名的 Linux 创始人 Linus Torvalds 在最新的内核4.0-rc3中接受合并了一个[“冲突准则（code of conflict）](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b0bc65729070b9cbdbb53ff042984a3c545a0e34)”文档。这一篇 Greg KH 写的文字，旨在限制代码评审过程中的语言暴力现象。

```
[冲突准则](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/CodeOfConflict?id=b0bc65729070b9cbdbb53ff042984a3c545a0e34)
----------------

与“传统”的软件开发方式相比，Linux 内核的开发是相当个人化的。
你的代码及其背后的想法会被仔细评审，而这往往导致了别人的评点和
批评。评审总是可以让代码在进入内核前得到改进。我们这样认为，是
因为我们知道每个人都希望为了 Linux 的全面成功而尽力做到最好。
这一开发过程已经被我们所创建的迄今为止最强大的操作系统而证实，
我们并不希望做任何可能导致提交质量降低和整体品质劣化的事情。

但是，如果任何人在这一过程中觉得受到了侮辱、歧视或其它不舒服的
感觉，那就是不可接受的。如果发生了这些事情，请联系 Linux 基金
会的技术委员会 （tab@lists.linux-foundation.org）或其成
员，他们会尽最大的努力解决这个问题。关于技术委员会及其职责，请
参看：
  http://www.linuxfoundation.org/programs/advisory-councils/tab

作为代码评审者，请您保持文明并将关注点放在技术问题上。对于我们
所有人来说，评审过程的最终结果于双方都有提升。请牢记 Bill 和
Ted 的名言"Be excellent to each other."
```

Linus 对此准则的提出评价说，“让我们看看它是否有效果。”

也让我们拭目以待，看看是否内核开发社区能从此变得文雅一些？


9款最好的 Javacript 用户的 IDE 和代码编辑器

好东西我一定分享；好工具，保障君不会自私。分享！分享！[害羞]

//@阿里技术保障:好东西我一定分享；好工具，保障君不会自私。分享！分享！[害羞]

@有道云笔记收藏

没有aptana

9) Webstorm估计是最好用的

# 9款最好的 Javacript 用户的 IDE 和代码编辑器

网络应用设计和开发是最近一段时间的发展趋势，也有越来越多的人开始在此寻找他们的职业机会。但是，作为网络开发人员或图形设计人员来说，一个好的机会并不是每个人都能够轻易获得到的，它需要很好的思维展现，以及对于工作的熟练技巧。现在有许多可用的网站来根据你的知识帮助你找到正确的职位描述。但是如果你想要在这个领域有所成就，你仍然需要具有一些出色的技能，例如可以在不同的平台、IDE以及其他的工具上开展工作。

说到根据不同目的和不同语言所用到的不同平台以及IDE，只靠学习一个IDE来轻松获取项目设计最佳方案的惯例已经属于过去时了。今天我们活在一个竞争日益激烈的现代生活节奏中，对于IDE们也是相同的处境，IDE是一个用来创建和部署应用的强大的客户端应用。今天我们打算为网络设计者和开发人员分享一些最好的Javacript IDE。

请访问这个 javascript 用户最好的代码编辑器列表，并将你的想法与我们一起分享。

### 1) [Spket](http://spket.com/)

**Spket IDE** 是 JavaScript 和 XML 开发的强大工具包。这个功能强大的编辑器可以用来进行开发 JavaScript，XUL/XBL 和 Yahoo！小组件。JavaScript 编辑器提供了例如代码补全、语法高亮以及代码内容大纲等特性，可以帮助开发者提高创建高效 JavaScript 代码的生产率。

### 2) [Ixedit](http://www.ixedit.com/)

IxEdit 是一个基于 Javascript 交互的网络设计工具。通过 IxEdit，设计者可以在不需要通过代码改变，添加，删除或变换页面元素的情况下，在网页上进行动态进行 DOM 脚本编写。

### 3) [Komodo Edit](http://komodoide.com/komodo-edit/)

Komodo是一款免费而强大的编辑器，可以用来编辑JavaScript和其他的编程语言。

### 4) [EpicEditor](http://oscargodson.github.io/EpicEditor/)

EpicEditor是一个可嵌入的 JavaScript Markdown 编辑器，具有分割全屏进行编辑，实时预览，自动草稿保存，离线支持等特性。对于开发人员，它提供了健壮的API，可以容易地设置主题，并允许你以任何其他的事物来替换绑定的 Markdown 解析器。

### 5) [codepress](http://codepress.sourceforge.net/)

CodePress是一个基于网络的源代码编辑器，它用 JavaScript 编写，具有语法高亮,并且是在你将代码输入到浏览器后实时进行文本颜色渲染。

### 6) [ACe](http://ace.c9.io/#nav=about)

Ace 是一个使用JavaScript编写的嵌入式代码编辑器，它能够匹配宿主编辑器的特性和性能，例如Sublime，Vim和Textate。它能够容易地嵌入到任何的网页和JavaScript应用中。

### 7) [scripted](https://github.com/scripted-editor/scripted)

Scripted是一个快速的轻量级代码编辑器，最初是为了JavaScript编写实现的。 Scripted是一个基于浏览器的编辑器，而编辑器本身有本地运行的Node.js服务器实例来提供服务支持。

### 8) [Netbeans](https://netbeans.org/)

这是另外的一个更加震撼而且有用的编辑器，可以用来编写javascript和其他的编程语言。

### 9) [Webstorm](http://www.jetbrains.com/webstorm/)

这是最智能的JavaScript IDE。 它是为使用Node.js进行复杂的客户端开发和服务器端开发而装备的一个轻巧而强大的完美IDE。

---

via: <http://devzum.com/2015/01/31/9-best-ides-and-code-editors-for-javascript-users/>

作者：[vikas](http://devzum.com/author/vikas/) 译者：[theo-l](https://github.com/theo-l) 校对：[Caroline](https://github.com/carolinewuyan)

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


在Linux上使用Python和Flask创建你的第一个应用

啊哈，熟悉的界面，刚扫了几个ip

@我的印象笔记

学习；

@我的印象笔记

刚好也正在学习python呢！编程不一定非得做专业程序员，各行各业，各种职位的人都可以编程，让计算机实现我们的简单的想法！

只有一个环境配置啊，能不能来个项目demo。。

翻页哦，还有下一页呢。

真心找不到翻页键……

嗯，不好意思，后来改编取消了翻页了。我修复一下哈。

# 在Linux上使用Python和Flask创建你的第一个应用

无论你在linux上娱乐还是工作，这对你而言都是一个使用python来编程的很好的机会。回到大学我希望他们教我的是Python而不是Java，这学起来很有趣且在实际的应用如yum包管理器中很有用。

本篇教程中我会带你使用python和一个称为flask的微型框架来构建一个简单的应用，来显示诸如[每个进程的内存使用](http://techarena51.com/index.php/linux-memory-usage/)，CPU百分比之类有用的信息。

### 前置需求

Python基础、列表、类、函数、模块。HTML/CSS (基础)。

学习这篇教程你不必是一个python高级开发者，但是首先我建议你阅读 <https://wiki.python.org/moin/BeginnersGuide/NonProgrammers> 。

### 在Linux上安装Python 3

在大多数Linux发行版上Python是默认安装的。下面的你命令可以让你看到安装的版本。

```
[root@linux-vps ~]# python -V
Python 2.7.5

```

我们会使用3.x的版本来构建我们的app。根据[Python.org](https://wiki.python.org/moin/Python2orPython3)所说，现在只对这个版本进行改进，而且不向后兼容Python 2。

**注意**: 在开始之前，我强烈建议你在虚拟机中尝试这个教程，因为Python是许多Linux发行版的核心组件，任何意外都可能会损坏你的系统。

以下步骤是基于红帽的版本如CentOS（6和7），基于Debian的版本如UbuntuMint和Resbian可以跳过这步，Pythonn 3应该默认已经安装了。如果没有安装，请用apt-get而不是yum来安装下面相应的包。

```
[leo@linux-vps] yum groupinstall 'Development Tools'
[leo@linux-vps] yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel
[leo@linux-vps] wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
[leo@linux-vps] tar -xvzf Python-3.4.2.tgz
[leo@linux-vps] cd Python-3.4.2
[leo@linux-vps] ./configure
[leo@linux-vps] make
# 推荐使用 make altinstall 以覆盖当前的 python 库
[leo@linux-vps]   make altinstall

```

成功安装后，你应该可以用下面的命令进入Python3.4的shell了。

```
[leo@linux-vps]# python3.4
Python 3.4.2 (default, Dec 12 2014, 08:01:15)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit ()

```

### 使用pip来安装包

Python有它自己的包管理去，与yum和apt-get相似。你将需要它来下载、安装和卸载包。

```
[leo@linux-vps] pip3.4 install "packagename"
[leo@linux-vps] pip3.4 list
[leo@linux-vps] pip3.4 uninstall "packagename"

```

### Python虚拟环境

在Python中虚拟环境是一个放置你的项目的依赖环境的目录。这是一个将带有不同的依赖环境的项目隔离的好办法。它可以让你不用sudo命令就能安装包。

```
[leo@linux-vps] mkdir python3.4-flask
[leo@linux-vps] cd python3.4-flask
[leo@linux-vps python3.4-flask] pyvenv-3.4 venv

```

要创建虚拟环境你需要使用“pyvenv-3.4”命令。上述命令会在venv文件夹的内部创建一个名为lib的目录，这里会安装项目所依赖的包。这里同样会创建一个bin文件夹容纳该环境下的pip和python可执行文件。

### 为我们的Linux系统信息项目激活虚拟环境

```
 [leo@linux-vps python3.4-flask] source venv/bin/activate
 [leo@linux-vps python3.4-flask] which pip3.4
~/python3.4-flask/venv/bin/pip3.4
[leo@linux-vps python3.4-flask] which python3.4
~/python3.4-flask/venv/bin/python3.4

```

### 使用pip安装flask

让我们继续安装第一个模块flask框架，它可以处理访问路由和渲染显示我们app的模板。

```
[leo@linux-vps python3.4-flask]pip3.4 install flask
```

### 在flask中创建第一个应用

#### 第一步：创建你app的目录

```
 [leo@linux-vps python3.4-flask] mkdir  app
 [leo@linux-vps python3.4-flask] mkdir app/static
 [leo@linux-vps python3.4-flask] mkdir app/templates

```

在python3.4-flask文件夹中创建一个名为app的文件夹，它包含了两个子文件夹“static”和“templates”。我们的Python脚本会放在app文件夹，像css/js这类文件会在static文件夹，template文件夹会包含我们的html模板。

#### 第二步：在app文件夹内部创建一个初始化文件

```
[leo@linux-vps python3.4-flask] vim app/_init_.py
from flask import Flask

app = Flask(__name__)
from app import index

```

这个文件会创建一个Flask的新的实例，并加载我们存储在index.py文件中的python程序——这个文件我们之后会创建。

```
[leo@linux-vps python3.4-flask]vim app/index.py
from app import app

@app.route('/')
def index():
 import subprocess
 cmd = subprocess.Popen(['ps_mem'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
 out,error = cmd.communicate()
 memory = out.splitlines()

    return

```

flask中的访问路由通过“路由装饰器”处理。它用于将一个 URL 绑定到函数。

```
@app.route('/')
@app.route('/index')

```

要在python中运行shell命令，你可以使用Subprocess模块中的Popen类。

```
subprocess.Popen(['ps_mem'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)

```

这个类会使用一个列表作为参数，列表的第一项默认是可执行的程序，下一项会是参数，这里是个另外一个例子。

```
subprocess.Popen(['ls', ‘-l’],stdout=subprocess.PIPE,stderr=subprocess.PIPE)

```

stdout和stderr会相应地存储命令的输出和错误。你可以使用Popen的communicate方法来访问输出。

```
out,error = cmd.communicate()

```

要更好地用html模板显示输出，我会使用splitlines()方法，

```
memory = out.splitlines()

```

关于subprocess模块更多的信息会在教程的最后给出。

#### 第三步：创建一个html模板来显示我们命令的输出。

要做到这个我们使用flask中的Jinja2模板引擎来为我们渲染。

最后你的index.py文件应该看起来像这样：

```
from flask import render_template
from app import app

def index():
 import subprocess
 cmd = subprocess.Popen(['ps_mem'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
 out,error = cmd.communicate()
 memory = out.splitlines()

return render_template('index.html', memory=memory)

```

现在在你的模板目录下创建一个index.html模板，flask会自动搜索这个目录下的模板。

```
[leo@linux-vps python3.4-flask]vim app/templates/index.html

Memory usage per process

{% for line in memory %}
    {{ line.decode('utf-8') }}

   {% endfor %}

```

Jinja2模板引擎允许你使用“{{ … }}”分隔符来输出结果，{% … %}来做循环和赋值。我使用“decode()”方法来格式化。

#### 第四步：运行app

```
[leo@linux-vps python3.4-flask]vim run.py
from app import app
app.debug = True
app.run(host='174.140.165.231', port=80)

```

上面的代码会在debug模式下运行app。如果你不指定 IP 地址和端口，默认则是localhost:5000。

```
[leo@linux-vps python3.4-flask] chmod +x run.py
[leo@linux-vps python3.4-flask] python3.4 run.py

```

我已经加了更多的代码来显示CPU、I/O和平均负载。

你可以在[这里](https://github.com/Leo-g/python-flask-cmd)浏览完整的代码。

这是一个对flask的简短教程，我建议你阅读下面的教程和文档来更深入地了解。

<http://flask.pocoo.org/docs/0.10/quickstart/>

<https://docs.python.org/3.4/library/subprocess.html#popen-constructor>

<http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world>

---

via: <http://techarena51.com/index.php/how-to-install-python-3-and-flask-on-linux/>

作者：[Leo G](http://techarena51.com/) 译者：[geekpi](https://github.com/gekpi) 校对：[wxy](https://github.com/wxy)

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


新面孔、新功能的 Tomahawk 音乐播放器

Summary: 在悄无声息得过了一年之后，Tomahawk音乐播放器中的瑞士军刀带着值得歌颂的全新发行版回归了。   这个0.8版的开源跨平台应用增添了更多在线服务的支持，更新了它的外观，又一次确保了它创新的社交功能完美运行。 Tomahawk两个世界的极品 Tomahawk 将一个传统的应用结构与我们的即时现代文化相结合。它可以浏览和播放本地的音乐和Spotify、Grooveshark以及SoundCloud这类的线上音乐。在最新的发行版中，它把Google Play Music和Beats Music列入了它的名册。 这可能听着很繁复或令人困惑，但实际上它表现得出奇的好。 若你想要播放一首歌

不是特别满意amarok换换试试看

看上去是个不错的音乐播放器，而且还有正在测试android版本，对于当下重度依赖智能手机的人们来说是一个不错的跨平台解决方案，不过，对于国内用户来说，还需要增加一些国内的音乐播放源，如百度音乐、豆瓣fm等，

# 新面孔、新功能的 Tomahawk 音乐播放器

**在悄无声息得过了一年之后，Tomahawk——音乐播放器中的瑞士军刀——带着值得歌颂的全新发行版回归了。**

这个0.8版的开源跨平台应用增添了**更多在线服务的支持**，更新了它的外观，又一次确保了它创新的社交功能完美运行。

### Tomahawk——两个世界的极品

Tomahawk 将一个传统的应用结构与我们的“即时”现代文化相结合。它可以浏览和播放本地的音乐和Spotify、Grooveshark以及SoundCloud这类的线上音乐。在最新的发行版中，它把Google Play Music和Beats Music列入了它的名册。

这可能听着很繁复或令人困惑，但实际上它表现得出奇的好。

若你想要播放一首歌，而且不介意它是从哪里来的，你只需告诉Tomahawk这个音乐的标题和作者，它就会自动从可获取的源里找出高品质版本的音乐——你不需要做任何事。

这个应用还弄了一些附加的功能，比如EchoNest剖析，Last.fm建议，还有对Jabber的支持，这样你就能“播放”朋友的音乐。它还有一个内置的信息服务，以便于你能和其他人快速的分享播放列表和音乐。

>
> “这种从根本上就与众不同的听音乐的方式，开启了前所未有的音乐的消费和分享体验”，该项目的网站上这样写道。而且即便它如此独特，这也没有错。
>
>
>

*支持声音菜单*

### Tomahawk0.8发行版的亮点

* 新的交互界面
* 对Beats Music的支持
* 对Google Play Music的支持（保存的和播放全部链接）
* 支持拖拽iTunes，Spotify这类网站的链接
* 正在播放的提示
* Android应用（测试版）
* 收件箱的改进

### 在Ubuntu上安装Tomahawk0.8

作为一个流媒体音乐的粉丝，我会在接下来的几天里体验一下这个应用软件，然后提供一个关于他的改变的更全面的赏析。与此同时，你也可以尝尝鲜。

在Ubuntu 14.04 LTS和Ubuntu 14.10上可以通过官方PPA获得Tomahawk。

```
sudo add-apt-repository ppa:tomahawk/ppa

sudo apt-get update && sudo apt-get install tomahawk

```

在官方项目网站上可以找的独立安装程序和更详细的信息。

* [访问 Tomahawk 官网](http://gettomahawk.com/)

---

via: <http://www.omgubuntu.co.uk/2014/11/tomahawk-media-player-returns-new-look-features>

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

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


MultiWriter：同时将 ISO 镜像并发写入 20 个 USB 启动盘

Summary: 我的问题是如何把一个Linux ISO 文件烧录到 17 个 USB 启动盘？ 精通代码的人会写一个 bash 脚本来自动化处理，而大部分的人会使用像 USB 启动盘创建器这样的图形用户界面工具来把 ISO 文件一个、一个的烧录到驱动盘中。但剩下的还有一些人也许会很快得出结论，两种方法都不太理想。 问题  解决  GNOME MultiWriter 在运行当中 Richard Hughes，一个 GNOME 开发者，也面临着类似的困境。他要创建一批预装操作系统的 USB 启动盘，需要一个足够简单的工具，使得像他父亲这样的用户也能使用。 他的反应是开发品牌性的新应用程序，使上面的两

我只想说，最后的github地址错了。github显示404页面。

前后貌似不搭？

回复@Cobnst健健:现在好了吧？

依旧。

首先。。。

地址是 https://github.com/GNOME/gnome-multi-writer

谢谢~~

https://github.com/GNOME/gnome-multi-writer 地址变了。。

先得有20个USB接口吧！

量产？

[思考]sub shell+tee？

还不错的东西…… 可是只有一个 U 盘所以刚刚那个评论纯粹取决于其界面

[思考]//@王依依:[思考]sub shell+tee？

Get

@我的印象笔记

这需求。。//@随便就行了: @我的印象笔记

20个USB接口。。//@uptown1919:这需求。。//@随便就行了: @我的印象笔记

可以刻录windows系统吗

这需求应该非常少，及特殊情况才需要批量制作启动盘。即便是大型数据中心运维，比如上百台超算的部署更好的方式是通过PXE+脚本及一些列自动化工具。但是有了总比没有好，感谢作者！

# MultiWriter：同时将 ISO 镜像并发写入 20 个 USB 启动盘

**我的问题是如何把一个Linux ISO 文件烧录到 17 个 USB 启动盘？**

精通代码的人会写一个 bash 脚本来自动化处理，而大部分的人会使用像 USB 启动盘创建器这样的图形用户界面工具来把 ISO 文件一个、一个的烧录到驱动盘中。但剩下的还有一些人也许会很快得出结论，两种方法都不太理想。

### 问题 > 解决

*GNOME MultiWriter 在运行当中*

Richard Hughes，一个 GNOME 开发者，也面临着类似的困境。他要创建一批预装操作系统的 USB 启动盘，需要一个足够简单的工具，使得像他父亲这样的用户也能使用。

他的反应是开发**品牌性的新应用程序**，使上面的两种方法合二为一，创造出易用的一款工具。

它的名字就叫 “[GNOME MultiWriter](https://github.com/GNOME/gnome-multi-writer)”，可以同时把单个的 ISO 或 IMG 文件写入多个 USB 驱动盘。

它不支持个性化自定义或命令行执行的功能，使用它就可以省掉浪费一下午的时间来对相同的操作的重复动作。

您需要的就是这一款应用程序、一个 ISO 镜像文件、一些拇指驱动盘以用许多空 USB 接口。

### 用例和安装

*该应用程序可以在 Ubuntu 上安装*

这款应用程序的定义使用场景很不错，正适合使用于预装正要发布的操作系统或 live 映像的 USB 启动盘上。

那就是说，任何人想要创建一个单独可启动的 USB 启动盘的话，也是一样的适用 - 因我用 Ubuntu 的内置磁盘创建工具来创建可引导的映像从来没有一次成功过的，所以这方案对我来说是个好消息！

它的开发者 Hughes 说它**最高能支持20个 USB 启动盘**，每个盘的大小在 1GB 到 32GB之间。

GNOME MultiWriter 也有不好的地方（到现在为止）就是它还没有一个完结、稳定的成品。它是能工作，但在早期的时候，还没有可安装的二进制版本或可添加到你庞大软件源的 PPA（LCTT 译注：在作者的个人网站上有[编译好的 RPM 包](http://people.freedesktop.org/~hughsient/fedora/21/x86_64/gnome-multi-writer-3.15.5-0.41.20150204git.fc21.x86_64.rpm)）。

如果您知道通常的 configure/make 的操作流程的话，可以获取其源码并随时都可以编译运行。在 Ubuntu14.10 系统上，你可能还需要首先安装以下软件包：

```
sudo apt-get install gnome-common yelp-tools libcanberra-gtk3-dev libudisks2-dev gobject-introspection

```

如果您可以运行起来，已经玩转的话，给我们分享下您的感受！

* 源代码地址（<https://github.com/GNOME/gnome-multi-writer>)

---

via: <http://www.omgubuntu.co.uk/2015/01/gnome-multiwriter-iso-usb-utility>

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

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


五个 Linux 下用户空间的调试工具

你们的转帖机器人挂了。

回复@纤夫张:临时问题，现在好了吧?

依旧，或许微博有缓存。

回复@纤夫张:具体什么情况？您说说？

回复@Linux中国:文不对题。新发的好了，老的没改？

回复@纤夫张:这条微博附带的链接，是这个 DEBUG 的啊，之前是出了一些事情，现在调整好了，也许是你那边的浏览器的缓冲？——手机浏览器好像不能刷新？

回复@Linux中国:微博里标题后面摘要是错的，老是提google code关闭的事情，但到你们网站的链接是对的。

回复@纤夫张:哦，对，这个是错了。。除非删除这条微博了。。

先收藏了

gdb。。。这东西是因为实在没得用了才用的。。。。确实是调试起来很麻烦，我还试过KDBG，界面难看我就不说了，断点的位置很难设置。最后我用上了codeblocks。。。。。

@mark

@我的印象笔记

# 五个 Linux 下用户空间的调试工具

根据定义，调试工具是那些那些使我们能够监测、控制和纠正其他程序的程序。我们为什么应该用调试工具呢? 在有些情况下，运行一些程序的时候我们会被卡住，我们需要明白究竟发生了什么。 例如，我们正在运行应用程序，它产生了一些错误消息。要修复这些错误，我们应该先找出为什么产生这些错误的消息和这些错误消息从哪里产生的。 一个应用程序可能突然挂起，我们必须了解其他什么进程同时在运行。我们可能还必须弄清楚某个进程挂起的时候在做什么。为了剖析这些细节， 我们需要调试工具的帮助。

（题图来自：axxomovies.org）

有几个Linux下的用户空间调试工具和技术，它们用来分析用户空间的问题相当有用。它们是:

* **'print' 语句**
* **查询 (/proc, /sys 等)**
* **跟踪 (strace/ltrace)**
* **Valgrind (memwatch)**
* **GDB**

让我们一个个地了解。

### 1.'print' 语句

这是一个基本的原始的调试问题的方法。 我们可以在程序中插入print语句来了解控制流和变量值。 虽然这是一个简单的技术， 但它有一些缺点。 程序需要进行编辑以添加'print'语句，然后必须重新编译，重新运行来获得输出。 如果要调试的程序相当大，这是一个耗时的方法。

### 2. 查询

在某些情况下，我们需要弄清楚在一个运行在内核中的进程的状态和内存映射。为了获得这些信息，我们不需要在内核中插入任何代码。 相反，可以用 /proc 文件系统。

/proc 是一个伪文件系统，系统一启动运行就收集着运行时系统的信息 (cpu信息, 内存容量等)。

*'ls /proc'的输出*

正如你看到的, 系统中运行的每一个进程在/proc文件系统中有一个以进程id命名的项。每个进程的细节信息可以在进程id对应的目录下的文件中获得。

*'ls /proc/pid'的输出*

解释/proc文件系统内的所有条目超出了本文的范围。一些有用的列举如下：

* /proc/cmdline -> 内核命令行
* /proc/cpuinfo -> 关于处理器的品牌，型号信息等
* /proc/filesystems -> 文件系统的内核支持的信息
* /proc/<pid>/cmdline -> 命令行参数传递到当前进程
* /proc/<pid>/mem -> 当前进程持有的内存
* /proc/<pid>/status -> 当前进程的状态

### 3. 跟踪

strace的和ltrace是两个在Linux中用来追踪程序的执行细节的跟踪工具。

#### strace:

strace拦截和记录系统调用及其接收的信号。对于用户，它显示了系统调用、传递给它们的参数和返回值。strace的可以附着到已在运行的进程或一个新的进程。它作为一个针对开发者和系统管理员的诊断、调试工具是很有用的。它也可以用来当做一个通过跟踪不同的程序调用来了解系统的工具。这个工具的好处是不需要源代码，程序也不需要重新编译。

使用strace的基本语法是：

**strace 命令**

strace有各种各样的参数。可以检查看strace的手册页来获得更多的细节。

strace的输出非常长，我们通常不会对显示的每一行都感兴趣。我们可以用'-e expr'选项来过滤不想要的数据。

用 '-p pid' 选项来绑到运行中的进程.

用'-o'选项，命令的输出可以被重定向到文件。

*strace过滤成只有系统调用的输出*

#### ltrace:

ltrace跟踪和记录一个进程的动态（运行时）库的调用及其收到的信号。它也可以跟踪一个进程所作的系统调用。它的用法是类似与strace。

**ltrace command**

'-i' 选项在调用库时打印指令指针。

'-S' 选项被用来现实系统调用和库调用

所有可用的选项请参阅ltrace手册。

*ltrace捕捉'STRCMP'库调用的输出*

### 4. Valgrind

Valgrind是一套调试和分析工具。它的一个被广泛使用的默认工具——'Memcheck'——可以拦截malloc()，new()，free()和delete()调用。换句话说，它在检测下面这些问题非常有用：

* 内存泄露
* 重释放
* 访问越界
* 使用未初始化的内存
* 使用已经被释放的内存等。

它直接通过可执行文件运行。

Valgrind也有一些缺点，因为它增加了内存占用，会减慢你的程序。它有时会造成误报和漏报。它不能检测出静态分配的数组的访问越界问题。

为了使用它，首先请[下载](http://valgrind.org/downloads.html)并安装在你的系统上。可以使用操作系统上的包管理器来安装。

使用命令行安装需要解压缩和解包下载的文件。

```
tar -xjvf valgring-x.y.z.tar.bz2 (where x.y.z is the version number you are trying to install)

```

进入新创建的目录（的valgrind-XYZ）内运行以下命令：

```
./configure
make
make install

```

让我们通过一个小程序(test.c)来理解valgrind怎么工作的:

```
#include <stdio.h>

void f(void)

{
int x = malloc(10 * sizeof(int));

x[10] = 0;
}

int main()
{
f();
return 0;
}

```

编译程序:

```
gcc -o test -g test.c

```

现在我们有一个可执行文件叫做'test'。我们现在可以用valgrind来检测内存错误：

```
valgrind –tool=memcheck –leak-check=yes test

```

这是valgrind呈现错误的输出：

*valgrind显示堆溢出和内存泄漏的输出*

正如我们在上面看到的消息，我们正在试图访问函数f未分配的内存以及分配尚未释放的内存。

### 5. GDB

GDB是来自自由软件基金会的调试器。它对定位和修复代码中的问题很有帮助。当被调试的程序运行时，它给用户控制权去执行各种动作， 比如:

* 启动程序
* 停在指定位置
* 停在指定的条件
* 检查所需信息
* 改变程序中的数据 等。

你也可以将一个崩溃的程序coredump附着到GDB并分析故障的原因。

GDB提供很多选项来调试程序。 然而，我们将介绍一些重要的选择，来感受如何开始使用GDB。

如果你还没有安装GDB，可以在这里下载：[GDB官方网站](http://www.gnu.org/software/gdb/download/)。

#### 编译程序:

为了用GDB调试程序，必须使用gcc的'-g'选项进行编译。这将以操作系统的本地格式产生调试信息，GDB利用这些信息来工作。

下面是一个简单的程序（example1.c）执行被零除用来显示GDB的用法:

```
#include
int divide()
{
int x=5, y=0;
return x / y;
}

int main()
{
divide();
}

```

*展示GDB用法的例子*

#### 调用 GDB:

通过在命令行中执行'gdb'来启动gdb:

*调用 gdb*

调用后, 它将等待终端命令并执行，直到退出。

如果一个进程已经在运行，你需要将GDB连接到它上面，可以通过指定进程ID来实现。假设程序已经崩溃，要分析问题的原因，则用GDB分析core文件。

#### 启动程序:

一旦你在GDB里面，使用'run'命令来启动程序进行调试。

#### 给程序传参数:

使用'set args'给你的程序传参数，当程序下次运行时将获得该参数。'show args'将显示传递给程序的参数。

#### 检查堆栈:

每当程序停止，任何人想明白的第一件事就是它为什么停止，以及怎么停在那里的。该信息被称为反向跟踪。由程序产生每个函数调用和局部变量，传递的参数，调用位置等信息一起存储在堆栈内的数据块种，被称为一帧。我们可以使用GDB来检查所有这些数据。 GDB从最底层的帧开始给这些帧编号。

* **bt**: 打印整个堆栈的回溯
* **bt**  打印n个帧的回溯
* **frame** : 切换到指定的帧，并打印该帧
* **up** : 上移'n'个帧
* **down** : 下移'n'个帧 ( n默认是1)

#### 检查数据:

程序的数据可以在里面GDB使用'print'命令进行检查。例如，如果'x'是调试程序内的变量，'print x'会打印x的值。

#### 检查源码:

源码可以在GDB中打印。默认情况下，'list'命令会打印10行代码。

* **list** : 列出'linenum'行周围的源码
* **list** : 从'function'开始列出源码
* **disas** : 显示该函数机器代码

#### 停止和恢复程序:

使用GDB，我们可以在必要的地方设置断点，观察点等来停止程序。

* **break** : 在'location'设置一个断点。当在程序执行到这里时断点将被击中，控制权被交给用户。
* **watch** : 当'expr'被程序写入而且它的值发生变化时GDB将停止
* **catch** : 当'event'发生时GDB停止
* **disable** : 禁用指定断点
* **enable** : 启用指定断点
* **delete** : 删除 断点/观察点/捕获点。 如果没有传递参数默认操作是在所有的断点
* **step**: 一步一步执行程序
* **continue**: 继续执行程序，直到执行完毕

#### 退出 GDB:

用'quit'命令还从GDB中退出。

GDB还有更多的可用选项。里面GDB使用help选项了解更多详情。

*在GDB中获得帮助*

### 总结

在这篇文章中，我们已经看到不同类型的Linux用户空间的调试工具。总结以上所有内容，如下是什么时候使用该什么的快速指南：

* 基本调试，获得关键变量 - print 语句
* 获取有关文件系统支持，可用内存，CPU，运行程序的内核状态等信息 - 查询 /proc 文件系统
* 最初的问题诊断，系统调用或库调用的相关问题，了解程序流程 – strace / ltrace
* 应用程序内存空间的问题 – valgrind
* 检查应用程序运行时的行为，分析应用程序崩溃 – gdb

---

via: <http://linoxide.com/linux-how-to/user-space-debugging-tools-linux/>

作者：[B N Poornima](http://linoxide.com/author/bnpoornima/) 译者：[mtunique](https://github.com/mtunique) 校对：[wxy](https://github.com/wxy)

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


Linux有问必答：如何在脚本中获取进程ID（PID）

Summary: 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。  当我在执行shell脚本时，它会启动一个叫子shell的进程。作为主shell的子进程，子shell将shell脚本中的命令作为批处理运行（因此称为批处理进程）。  在某些情况下，你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如，你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程，它可以从进程列表中排除自身的子shell。 在bash中，子shell进程的PID存储在一个特殊的变量$$中。这个变量只读，

@我的印象笔记

$$。很多钱。

$$, 随机数。

@我的印象笔记

长见识了

赞

@我的印象笔记

@我的印象笔记

# Linux有问必答：如何在脚本中获取进程ID（PID）

>
> **提问**: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。
>
>
>

当我在执行shell脚本时，它会启动一个叫子shell的进程。作为主shell的子进程，子shell将shell脚本中的命令作为批处理运行（因此称为“批处理进程”）。

在某些情况下，你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如，你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程，它可以从进程列表中排除自身的子shell。

在bash中，**子shell进程的PID**存储在一个特殊的变量‘$$’中。这个变量只读，你不可以在脚本中修改它。比如：

```
#!/bin/bash

echo "PID of this script: $$"

```

上面的脚本会得到下面的输出：

```
PID of this script: 6583

```

除了`$$`, bash shell还会导出其他的只读变量。比如，PPID存储子shell父进程的ID（也就是主shell）。UID存储了执行这个脚本的当前用户ID。比如：

```
#!/bin/bash

echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"

```

输出是：

```
PID of this script: 6686
PPID of this script: 4656
UID of this script: 1000

```

上面输出中，PID每次执行都会变化。这个因为每次运行都会创建一个新的shell。另一方面，PPID每次都会一样只要你在同一个shell中运行。

对于所有bash内置变量列表，参考man页。

```
$ man bash

```

---

via: <http://ask.xmodulo.com/process-id-pid-shell-script.html>

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

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


Google云服务为Docker应用提供简化版Ubuntu

Summary: Ubuntu Core为运行容器提供了最小的轻量级Linux环境   Google为自己的云服务采用了一个简化版的Canonical Ubuntu Linux发行版，以优化运行Docker和其他容器。 Ubuntu Core被设计成仅提供在云上运行Linux所必需的组件。它发布了一个早期预览版，Canonical命名其为Snappy。这个新版本裁减了大量在普通Linux发行版中常见而在云应用中不实用的库和应用程序。 Google计算引擎(GCE)和Microsoft Azure加入了支持这个新的发行版的行列。 从Canonical了解到，Ubuntu Core将为用户提供一个部署Docker的简单方式，一个日益精简的虚拟容器允许用户快速

[good]

用户最终不会Care什么类型的容器，包含VCS、CI、CD和调度的平台可以称为 ContainerOps 平台//@goroutine: 感觉调度器才是终点，最终用户不care容器跑在哪里，什么系统。控制了调度器就控制了底层系统//@马全一:各种基于容器的 OS 才是今年乱战的终点，容器之乱站应该明年开始，给 Rocket 点时间。

帅！//@ASTA谢:

@有道云笔记收藏 //@文艺复兴记:转发微博

@我的印象笔记

Repost

@有道云笔记收藏 //@文艺复兴记:转发微博

@我的印象笔记

Repost

@有道云笔记收藏 //@文艺复兴记:转发微博

@我的印象笔记

Repost

Repost

点赞就能上Google

//@小和平鸽:转发微博

这个软件好 //@懒蜗牛Gentoo: //@bxeldor: //@王关胜:帅！ //@ASTA谢:

# Google云服务为Docker应用提供简化版Ubuntu

>
> Ubuntu Core为运行容器提供了最小的轻量级Linux环境
>
>
>

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

Google为自己的云服务采用了一个简化版的Canonical Ubuntu Linux发行版，以优化运行Docker和其他容器。

Ubuntu Core被设计成仅提供在云上运行Linux所必需的组件。它发布了一个[早期预览版](http://www.ubuntu.com/cloud/tools/snappy)，Canonical命名其为“Snappy”。这个新版本裁减了大量在普通Linux发行版中常见而在云应用中不实用的库和应用程序。

Google计算引擎(GCE)和Microsoft Azure[加入了](http://www.ubuntu.com/cloud/tools/snappy)支持这个新的发行版的行列。

从Canonical了解到，Ubuntu Core将为用户提供一个部署Docker的简单方式，一个[日益精简的虚拟容器](http://www.ubuntu.com/cloud/tools/snappy)允许用户快速启动工作负载并轻松地转移，甚至可以跨越不同的云服务提供商。

Google是Docker和基于容器的虚拟化的热心支持者。在去年六月份，这家公司[用开源的方式发布了一个容器管理软件](http://www.itworld.com/article/2695383/open-source-tools/docker-all-geared-up-for-the-enterprise.html)：Kubernetes。

Ubuntu Core在设计上类似于另一个[发布于一年前](http://www.itworld.com/article/2696116/open-source-tools/coreos-linux-does-away-with-the-upgrade-cycle.html)的 Linux发行版 CoreOS。CoreOS 主要由两名前Rackspace工程师开发，[CoreOS](https://coreos.com/using-coreos/)是一个轻量级Linux发行版，设计运行在集群中，被那些在网页上完成他们大部分或所有业务的公司所喜好的大规模环境。CoreOS很快被许多云服务提供商采用，包括Microsoft Azure，Amazon网站服务，DigitalOcean以及Google计算引擎。

如同CoreOS一样，Ubuntu Core提供了一个快速引擎来更新组件，减少系统管理员去手动处理的时间。

---

via: <http://www.infoworld.com/article/2860401/cloud-computing/google-cloud-offers-streamlined-ubuntu-for-docker-use.html>

作者：[Joab Jackson](http://www.infoworld.com/author/Joab-Jackson/) 译者：[zpl1025](https://github.com/zpl1025) 校对：[wxy](https://github.com/wxy)

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


WordPress 可以触发 Linux 上的 Ghost 缺陷

Summary: 建议用户马上更新可用的补丁  这个漏洞之前由Qualys的安全研究员发现，并取了绰号叫Ghost，可以利用WordPress或其他PHP应用来攻击网站服务器。 这个瑕疵是一个缓冲区溢出问题，可以被攻击者触发用来获取Linux主机的命令行执行权限。发生在glibc的__nss_hostname_digits_dots()函数中，它会被gethostbyname()函数用到。 PHP应用可以用来利用这个瑕疵 Sucuri的Marc-Alexandre Montpas说之所以这个问题很重要是因为这些函数在大量软件和服务器系统使用。 说这是个严重问题的一个例子是WordPress本身：它使用一个叫wp_http_validate_url()的函

Repost

@有道云笔记收藏

Repost

@有道云笔记收藏

Repost

@有道云笔记收藏

这不是那个鬼漏洞？

是的

# WordPress 可以触发 Linux 上的 Ghost 缺陷

*建议用户马上更新可用的补丁*

<img src="content_image/album_201503_15_235034mrjkfjxflx9rzqkk.jpg" alt="WordPress validating pingback’s post URL" title="WordPress validating pingback’s post URL">

**这个漏洞之前由Qualys的安全研究员发现，并取了绰号叫[Ghost](1)，可以利用WordPress或其他PHP应用来攻击网站服务器。**

这个瑕疵是一个缓冲区溢出问题，可以被攻击者触发用来获取Linux主机的命令行执行权限。发生在glibc的“\_\_nss\_hostname\_digits\_dots()”函数中，它会被“gethostbyname()”函数用到。

### PHP应用可以用来利用这个瑕疵

Sucuri的Marc-Alexandre Montpas说之所以这个问题很重要是因为这些函数在大量软件和服务器系统使用。

“说这是个严重问题的一个例子是WordPress本身：它使用一个叫wp\_http\_validate\_url()的函数来验证每个pingback的发送URL，它是通过PHP应用的“gethostbyname()”函数替代来执行的”，他在周三的一篇博客文章里写到。

攻击者可以用这种方式来引入一个设计用来触发服务器端漏洞的恶意URL，从而获得系统访问权限。

实际上，Trustwave的安全研究人员提供了[验证](http://blog.spiderlabs.com/2015/01/ghost-gethostbyname-heap-overflow-in-glibc-cve-2015-0235.html)代码，可以使用WordPress的pingback功能引起缓冲区溢出。

### 多个Linux发行版受到影响

ghost漏洞存在于glibc 2.17以上版本中，发布于2013年5月21日。glibc当前版本是2.20，发布于2014年9月。

不过，当时并没有升级为一个安全补丁，许多发行版并没有包含进去，特别是提供长期支持（LTS）的发行版。

受影响的系统包括Debian 7（wheezy），Red Hat企业版Linux 6和7，CentOS 6和7，Ubuntu 12.04。幸运的是，Linux供应商已经开始发布可以减轻风险的升级补丁。建议用户马上下载并更新。

为了展示这个漏洞，Qualys建立了一个利用它通过Exim邮件服务器运行远程代码的试验页面。这家安全公司声称在这个漏洞丢掉半条命之前不会关闭这个页面，意思是受影响的系统的数量降到50%的水平。

Linux上存在漏洞的应用包括clockdiff，ping和arping（在某些特定情况下），procmail，pppd，和Exim邮件服务器。

---

via: <http://news.softpedia.com/news/WordPress-Can-Be-Used-to-Leverage-Critical-Ghost-Flaw-in-Linux-471730.shtml>

作者：[Ionut Ilascu](http://news.softpedia.com/editors/browse/ionut-ilascu) 译者：[zpl1025](https://github.com/zpl1025) 校对：[wxy](https://github.com/wxy)

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


意大利艾米利亚-罗马涅大区正在切换到OpenOffice

Summary: 在拥抱开源的道路上，意大利似乎走在了最前面。我们已经知道，很多意大利的城市如乌迪内，都灵，Todi和都灵过去已经选择了开源办公套件以取代微软的Office。现在，位于意大利北部的艾米利亚-罗马涅大区（位于意大利北部，是意大利20个大区之一）也将在下个月完成向Apache OpenOffice的过渡。 切换到 OpenOffice 这次向OpenOffice的迁移将会在下个月完成，而且将会覆盖4200个计算机工作站，涉及到10个部门和5个代理机构。 而且，开源文档格式（ODF）也将成为默认的文档格式。向OpenOffice的过渡最初在2013年底被提出来，原本打算在2014年底

都是因为穷[喵喵]

libreoffice悲剧了

中国走的道路，是国产化替代-例如 wps。因为政府的钱多的花不完，不是因为棱镜门，这个国产化也会比较艰难。

慕尼黑不是换过吗

关键是没钱

其实可以用wps的linux版本。

没有采购，哪里有油水可以捞一笔啊。

# 意大利艾米利亚-罗马涅大区正在切换到OpenOffice

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

在拥抱开源的道路上，意大利似乎走在了最前面。我们已经知道，很多意大利的城市如[乌迪内](http://linux.cn/article-3853-1.html)，[都灵](http://linux.cn/article-3602-1.html)，[Todi和都灵](http://itsfoss.com/italian-cities-switch-libreoffice/)过去已经选择了[开源办公套件以取代微软的Office](http://itsfoss.com/best-free-open-source-alternatives-microsoft-office/)。现在，位于意大利北部的[艾米利亚-罗马涅大区](http://en.wikipedia.org/wiki/Emilia-Romagna)（位于意大利北部，是意大利20个大区之一）也将在下个月完成向[Apache OpenOffice](https://www.openoffice.org/)的过渡。

### 切换到 OpenOffice

这次向OpenOffice的迁移将会在下个月完成，而且将会覆盖4200个计算机工作站，涉及到10个部门和5个代理机构。 而且，开源文档格式（ODF）也将成为默认的文档格式。向OpenOffice的过渡最初在2013年底被提出来，原本打算在2014年底完成。这次从商业办公产品改用OpenOffice，从授权费用来说，据信会[节约大概2 000 000欧元](http://www.slwoods.co.uk/?p=2886)。

为了使这次顺利搬家和方便内部操作，负责这次搬家的团队正在开发许多定制工具和插件。

本次项目的负责人，Giovanni Grazia对本次“搬家”充满激情，但同时他也做好了应对批评的准备：

>
> “改用新的办公套件并不是一件容易完成的工作，我们借这次机会来拥护免费和开源的软件。一些地区的公务员表示高度支持，而另一些则感到厌烦，因为他们已经使用商业产品二十年了。为了处理任何在迁移中发生的问题，一个有着三个IT专家的五人支持团队正在一个部门接一个部门，逐渐地完成这次迁移。”
>
>
>

### 祝愿

我希望其他的国家也能使用OpenOffice套件，祝愿所有迁移到开源软件的人或国家都顺利完成。

---

via: <http://itsfoss.com/emiliaromagna-completes-switch-openoffice/>

作者：[Abhishek](http://itsfoss.com/author/abhishek/) 译者：[wi-cuckoo](https://github.com/wi-cuckoo) 校对：[wxy](https://github.com/wxy)

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


如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击

Summary: 对于SSH服务的常见的攻击就是暴力破解攻击远程攻击者通过不同的密码来无限次地进行登录尝试。当然SSH可以设置使用非密码验证验证方式来对抗这种攻击，例如公钥验证或者双重验证。将不同的验证方法的优劣处先放在一边，如果我们必须使用密码验证方式怎么办？你是如何保护你的 SSH 服务器免遭暴力破解攻击的呢？  fail2ban 是 Linux 上的一个著名的入侵保护的开源框架，它会监控多个系统的日志文件（例如：/var/log/auth.log 或者 /var/log/secure）并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上，fail2ban 在防御对SSH服务

好

wow

@有道云笔记收藏

还是用rsa2048公钥密钥吧

Repost

马克

@mark @我的印象笔记

[doge]

@我的印象笔记

@我的印象笔记

@热情萧远山 @kykij

@我的印象笔记 //@ruochen_SH:@热情萧远山 @kykij

阿里云-云盾自带各种暴力破解防护，欢迎使用。

回复@阿里云安全:哈哈，不兴这么搭车的啊·~ :D

一直在用，效果很好。

对 CentOS 7的支持如何？

最初在centos6上用，centos7没有感觉到有什么不同吧，我在http://www.unixmen.com/install-fail2ban-centos-7/ 也看到过安装方法，我一般fail2ban搭配portsentry来用。都是针对端口进行防护的，防止恶意端口扫描。

很强大

没有 log

但是能正常封 IP

这是怎么回事呢？

系统是 CentOS 6.6

@有道云笔记收藏

衷心感谢 老师  帮我解决了大问题！

感谢大神分享。<br />
可是限制了3次，还是能被人扫描出我linux里面的自定义账号

嗯，建议增加 OTP 或者公钥认证，这个才是解决方案。

你可以自己先试试看错误输入几次，会不会触发保护，并禁闭自己的ip

你可以自己先试试看错误输入几次，会不会触发保护，并禁闭自己的ip

你可以自己先试试看错误输入几次，会不会触发保护，并禁闭自己的ip

你可以自己先试试看错误输入几次，会不会触发保护，并禁闭自己的ip

# 如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击

对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试。当然SSH可以设置使用非密码验证验证方式来对抗这种攻击，例如[公钥验证](http://xmodulo.com/how-to-force-ssh-login-via-public-key-authentication.html)或者[双重验证](http://linux.cn/article-3725-1.html)。将不同的验证方法的优劣处先放在一边，如果我们必须使用密码验证方式怎么办？你是如何保护你的 SSH 服务器免遭暴力破解攻击的呢？

[fail2ban](http://www.fail2ban.org/) 是 Linux 上的一个著名的入侵保护的开源框架，它会监控多个系统的日志文件（例如：/var/log/auth.log 或者 /var/log/secure）并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上，fail2ban 在防御对SSH服务器的暴力密码破解上非常有用。

在这篇指导教程中，我会演示**如何安装并配置 fail2ban 来保护 SSH 服务器以避免来自远程IP地址的暴力攻击**。

### 在linux上安装Fail2ban

为了在CentOS 或 RHEL上安装fail2ban,首先[设置EPEL仓库](http://linux.cn/article-2324-1.html)，然后运行以下命令。

```
$ sudo yum install fail2ban

```

在Fedora上安装fail2ban，简单地运行以下命令：

```
$ sudo yum install fail2ban

```

在ubuntu，Debian 或 Linux Mint上安装fail2ban：

```
$ sudo apt-get install fail2ban

```

### 为SSH服务器配置Fail2ban

现在你已经准备好了通过配置 fail2ban 来加强你的SSH服务器。你需要编辑其配置文件 /etc/fail2ban/jail.conf。 在配置文件的“[DEFAULT]”区，你可以在此定义所有受监控的服务的默认参数，另外在特定服务的配置部分，你可以为每个服务（例如SSH，Apache等）设置特定的配置来覆盖默认的参数配置。

在针对服务的监狱区（在[DEFAULT]区后面的地方），你需要定义一个[ssh-iptables]区，这里用来定义SSH相关的监狱配置。真正的禁止IP地址的操作是通过iptables完成的。

下面是一个包含“ssh-iptables”监狱配置的/etc/fail2ban/jail.conf的文件样例。当然根据你的需要，你也可以指定其他的应用监狱。

```
$ sudo vi /etc/fail2ban/jail.local

```

```
[DEFAULT]
# 以空格分隔的列表，可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24

# 客户端主机被禁止的时长（秒）
bantime = 86400

# 客户端主机被禁止前允许失败的次数
maxretry = 5

# 查找失败次数的时长（秒）
findtime = 600

mta = sendmail

[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
# Debian 系的发行版
logpath = /var/log/auth.log
# Red Hat 系的发行版
logpath = /var/log/secure
# ssh 服务的最大尝试次数
maxretry = 3

```

根据上述配置，fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁，这个IP地址将会在24小时内一直被禁止访问 SSH 服务。这个事件也会通过sendemail发送邮件通知。

一旦配置文件准备就绪，按照以下方式重启fail2ban服务。

在 Debian, Ubuntu 或 CentOS/RHEL 6:

```
$ sudo service fail2ban restart

```

在 Fedora 或 CentOS/RHEL 7:

```
$ sudo systemctl restart fail2ban

```

为了验证fail2ban成功运行，使用参数'ping'来运行fail2ban-client 命令。 如果fail2ban服务正常运行，你可以看到“pong（嘭）”作为响应。

```
$ sudo fail2ban-client ping
Server replied: pong

```

### 测试 fail2ban 保护SSH免遭暴力破解攻击

为了测试fail2ban是否能正常工作，尝试通过使用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击。与此同时，监控 /var/log/fail2ban.log，该文件记录在fail2ban中发生的任何敏感事件。

```
$ sudo tail -f /var/log/fail2ban.log

```

根据上述的日志文件，Fail2ban通过检测IP地址的多次失败登录尝试，禁止了一个IP地址192.168.1.8。

### 检查fail2ban状态并解禁被锁住的IP地址

由于fail2ban的“ssh-iptables”监狱使用iptables来阻塞问题IP地址，你可以通过以下方式来检测当前iptables来验证禁止规则。

```
$ sudo iptables --list -n

```

```
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-SSH  tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-SSH (1 references)
target     prot opt source               destination
DROP       all  --  192.168.1.8          0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

```

如果你想要从fail2ban中解锁某个IP地址，你可以使用iptables命令：

```
$ sudo iptables -D fail2ban-SSH -s 192.168.1.8 -j DROP

```

当然你可以使用上述的iptables命令手动地检验和管理fail2ban的IP阻塞列表，但实际上有一个适当的方法就是使用fail2ban-client命令行工具。这个命令不仅允许你对"ssh-iptables"监狱进行管理，同时也是一个标准的命令行接口，可以管理其他类型的fail2ban监狱。

为了检验fail2ban状态（会显示出当前活动的监狱列表）：

```
$ sudo fail2ban-client status

```

为了检验一个特定监狱的状态（例如ssh-iptables):

```
$ sudo fail2ban-client status ssh-iptables

```

上面的命令会显示出被禁止IP地址列表。

为了解锁特定的IP地址：

```
$ sudo fail2ban-client set ssh-iptables unbanip 192.168.1.8

```

注意，如果你停止了Fail2ban 服务，那么所有的IP地址都会被解锁。当你重启 Fail2ban，它会从/etc/log/secure(或 /var/log/auth.log)中找到异常的IP地址列表，如果这些异常地址的发生时间仍然在禁止时间内，那么Fail2ban会重新将这些IP地址禁止。

### 设置 Fail2ban 自动启动

一旦你成功地测试了fail2ban之后，最后一个步骤就是在你的服务器上让其在开机时自动启动。在基于Debian的发行版中，fail2ban已经默认让自动启动生效。在基于Red-Hat的发行版中，按照下面的方式让自动启动生效。

在 CentOS/RHEL 6中:

```
$ sudo chkconfig fail2ban on

```

在 Fedora 或 CentOS/RHEL 7:

```
$ sudo systemctl enable fail2ban

```

### 总结

在该教程中，我演示了如何安装并配置fail2ban来保护一个SSH服务器。当然fail2ban可以缓解暴力密码攻击，但是请注意，这并不能保护SSH服务器避免来自复杂的分布式暴力破解组织，这些攻击者通过使用成千上万个机器控制的IP地址来绕过fail2ban的防御机制。

---

via: <http://xmodulo.com/how-to-protect-ssh-server-from-brute-force-attacks-using-fail2ban.html>

作者：[Dan Nanni](http://xmodulo.com/author/nanni) 译者：[theo-l](https://github.com/theo-l) 校对：[wxy](https://github.com/wxy)

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


如何配置 fail2ban 来保护 Apache 服务器

Summary: 生产环境中的 Apache 服务器可能会受到不同的攻击。攻击者或许试图通过暴力攻击或者执行恶意脚本来获取未经授权或者禁止访问的目录。一些恶意爬虫或许会扫描你网站下的各种安全漏洞，或者通过收集email地址和web表单来发送垃圾邮件。 Apache服务器具有全面的日志功能，可以捕捉到各种攻击所反映的异常事件。然而，它还不能系统地解析具体的apache 日志并迅速地对潜在的攻击进行反应（比如，禁止/解禁IP地址）。这时候fail2ban可以解救这一切，解放了系统管理员的工作。 fail2ban是一款入侵防御工具，可以基于系统日志检测不同的工具并且可

@我的印象笔记

挺好的

棒棒的

# 如何配置 fail2ban 来保护 Apache 服务器

生产环境中的 Apache 服务器可能会受到不同的攻击。攻击者或许试图通过暴力攻击或者执行恶意脚本来获取未经授权或者禁止访问的目录。一些恶意爬虫或许会扫描你网站下的各种安全漏洞，或者通过收集email地址和web表单来发送垃圾邮件。

Apache服务器具有全面的日志功能，可以捕捉到各种攻击所反映的异常事件。然而，它还不能系统地解析具体的apache 日志并迅速地对潜在的攻击进行反应（比如，禁止/解禁IP地址）。这时候`fail2ban`可以解救这一切，解放了系统管理员的工作。

`fail2ban`是一款入侵防御工具，可以基于系统日志检测不同的工具并且可以自动采取保护措施比如：通过`iptables`禁止ip、通过 /etc/hosts.deny 阻止连接、或者通过邮件发送通知。fail2ban具有一系列预定义的“监狱”，它使用特定程序日志过滤器来检测通常的攻击。你也可以编写自定义的规则来检测来自任意程序的攻击。

在本教程中，我会演示如何配置fail2ban来保护你的apache服务器。我假设你已经安装了apache和fail2ban。对于安装，请参考[另外一篇教程](http://linux.cn/article-5067-1.html)。

### 什么是 Fail2ban 监狱

让我们更深入地了解 fail2ban 监狱。监狱定义了具体的应用策略，它会为指定的程序触发一个保护措施。fail2ban在 /etc/fail2ban/jail.conf 下为一些流行程序如Apache、Dovecot、Lighttpd、MySQL、Postfix、[SSH](http://linux.cn/article-5067-1.html) 等预定义了一些监狱。每个监狱都通过特定的程序日志过滤器（在/etc/fail2ban/fileter.d 下面）来检测通常的攻击。让我看一个例子监狱：SSH监狱。

```
[ssh]
enabled   = true
port      = ssh
filter    = sshd
logpath   = /var/log/auth.log
maxretry  = 6
banaction = iptables-multiport

```

SSH监狱的配置定义了这些参数：

* **[ssh]**： 方括号内是监狱的名字。
* **enabled**：是否启用监狱
* **port**： 端口号(或者对应的服务名称)
* **filter**： 检测攻击的日志解析规则
* **logpath**： 所检测的日志文件
* **maxretry**： 最大失败次数
* **banaction**： 所进行的禁止操作

定义在监狱配置中的任意参数都会覆盖`fail2ban-wide` 中相应的默认配置参数。相反，任何缺少的参数都会使用定义在[DEFAULT] 字段的默认值。

预定义的日志过滤器都放在/etc/fail2ban/filter.d，而可以采取的禁止操作放在 /etc/fail2ban/action.d。

如果你想要覆盖`fail2ban`的默认操作或者定义任何自定义监狱，你可以创建*/etc/fail2ban/jail.local*\*文件。本篇教程中，我会使用/etc/fail2ban/jail.local。

### 启用预定义的apache监狱

`fail2ban`的默认安装为Apache服务提供了一些预定义监狱和过滤器。我要启用这些内建的Apache监狱。由于Debian和RedHat配置的稍微不同，我会分别提供它们的配置文件。

#### 在Debian 或者 Ubuntu启用Apache监狱

要在基于Debian的系统上启用预定义的apache监狱，如下创建/etc/fail2ban/jail.local。

```
$ sudo vi /etc/fail2ban/jail.local

```

---

```
# 检测密码认证失败
[apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

# 检测漏洞和 PHP 脆弱性扫描
[apache-noscript]
enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/apache*/*error.log
maxretry = 6

# 检测 Apache 溢出攻击
[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath  = /var/log/apache*/*error.log
maxretry = 2

# 检测在服务器寻找主目录的尝试
[apache-nohome]
enabled  = true
port     = http,https
filter   = apache-nohome
logpath  = /var/log/apache*/*error.log
maxretry = 2

```

由于上面的监狱没有指定措施，这些监狱都将会触发默认的措施。要查看默认的措施，在/etc/fail2ban/jail.conf中的[DEFAULT]下找到“banaction”。

```
banaction = iptables-multiport

```

本例中，默认的操作是iptables-multiport（定义在/etc/fail2ban/action.d/iptables-multiport.conf）。这个措施使用iptable的多端口模块禁止一个IP地址。

在启用监狱后，你必须重启fail2ban来加载监狱。

```
$ sudo service fail2ban restart

```

#### 在CentOS/RHEL 或者 Fedora中启用Apache监狱

要在基于红帽的系统中启用预定义的监狱，如下创建/etc/fail2ban/jail.local。

```
$ sudo vi /etc/fail2ban/jail.local

```

---

```
# 检测密码认证失败
[apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/httpd/*error_log
maxretry = 6

# 检测抓取邮件地址的爬虫
[apache-badbots]
enabled  = true
port     = http,https
filter   = apache-badbots
logpath  = /var/log/httpd/*access_log
bantime  = 172800
maxretry = 1

# 检测漏洞和 PHP 脆弱性扫描
[apache-noscript]
enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/httpd/*error_log
maxretry = 6

# 检测 Apache 溢出攻击
[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath  = /var/log/httpd/*error_log
maxretry = 2

# 检测在服务器寻找主目录的尝试
[apache-nohome]
enabled  = true
port     = http,https
filter   = apache-nohome
logpath  = /var/log/httpd/*error_log
maxretry = 2

# 检测执行不存在的脚本的企图
# 这些都是流行的网站服务程序
# 如：webmail， phpMyAdmin，WordPress
port     = http,https
filter   = apache-botsearch
logpath  = /var/log/httpd/*error_log
maxretry = 2

```

注意这些监狱文件默认的操作是iptables-multiport（定义在/etc/fail2ban/jail.conf中[DEFAULT]字段下的“banaction”中）。这个措施使用iptable的多端口模块禁止一个IP地址。

启用监狱后，你必须重启fail2ban来加载监狱。

在 Fedora 或者 CentOS/RHEL 7中：

```
$ sudo systemctl restart fail2ban

```

在 CentOS/RHEL 6中：

```
$ sudo service fail2ban restart

```

### 检查和管理fail2ban禁止状态

监狱一旦激活后，你可以用fail2ban的客户端命令行工具来监测当前的禁止状态。

查看激活的监狱列表：

```
$ sudo fail2ban-client status

```

查看特定监狱的状态（包含禁止的IP列表）：

```
$ sudo fail2ban-client status [监狱名]

```

你也可以手动禁止或者解禁IP地址：

要用制定监狱禁止IP：

```
$ sudo fail2ban-client set [name-of-jail] banip [ip-address]

```

要解禁指定监狱屏蔽的IP：

```
$ sudo fail2ban-client set [name-of-jail] unbanip [ip-address]

```

### 总结

本篇教程解释了fail2ban监狱如何工作以及如何使用内置的监狱来保护Apache服务器。依赖于你的环境以及要保护的web服务器类型，你或许要调整已有的监狱或者编写自定义监狱和日志过滤器。查看outfail2ban的[官方Github页面](https://github.com/fail2ban/fail2ban)来获取最新的监狱和过滤器示例。

你有在生产环境中使用fail2ban么？分享一下你的经验吧。

---

via: <http://xmodulo.com/configure-fail2ban-apache-http-server.html>

作者：[Dan Nanni](http://xmodulo.com/author/nanni) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


如何清理你的 Ubuntu 14.10/14.04/13.10 系统

Summary: 前面我们已经讨论了如何清理 Ubuntu GNU/Linux 系统，这篇教程将在原有教程的基础上，增加对新的 Ubuntu 发行版本的支持，并介绍更多的工具。 假如你想清理你的 Ubuntu 主机，你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。  （题图来自：amysplaceforyouth.org） 移除多余软件包 这又是一个内置功能，但这次我们不必使用新得立包管理软件(Synaptic Package Manager)，而是在终端中达到目的。 现在，在终端窗口中键入如下命令： sudo apt-get autoclean  这便激活了包清除命令。这个命令所做的工作是： 自动清除那些当你安装

@我的印象笔记

搞出问题了[哈哈]

@我的印象笔记

@我的印象笔记

@我的印象笔记

留用

为什么有些系统喜欢将终端默认设置为白底黑字，看的时间长了，眼睛舒服吗？

已收藏

先收了

Repost

Repost

sudo rm -rf /

桌面系统总感觉越用越慢，清理的效果不大。

转需

@我的印象笔记

很好的维护帖子

很不错，学习了，谢谢！～！！

不错！

挺好的！

# 如何清理你的 Ubuntu 14.10/14.04/13.10 系统

前面我们已经讨论了[如何清理 Ubuntu GNU/Linux 系统](http://www.ubuntugeek.com/cleaning-up-all-unnecessary-junk-files-in-ubuntu.html)，这篇教程将在原有教程的基础上，增加对新的 Ubuntu 发行版本的支持，并介绍更多的工具。

假如你想清理你的 Ubuntu 主机，你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。

（题图来自：amysplaceforyouth.org）

### 移除多余软件包

这又是一个内置功能，但这次我们不必使用新得立包管理软件(Synaptic Package Manager)，而是在终端中达到目的。

现在，在终端窗口中键入如下命令：

```
sudo apt-get autoclean

```

这便激活了包清除命令。这个命令所做的工作是： 自动清除那些当你安装或升级程序时系统所缓存的 `.deb` 包(即清除 `/var/cache/apt/archives` 目录，不过只清理过时的包)。如果需要使用清除命令，只需在终端窗口中键入以下命令：

```
sudo apt-get clean

```

然后你就可以使用自动移除命令。这个命令所做的工作是：清除那些 在系统中被某个已经卸载的软件 作为依赖所安装的软件包。要使用自动移除命令，在终端窗口中键入以下命令：

```
sudo apt-get autoremove

```

### 移除不需要的本地化数据

为达到此目的，我们需要安装 `localepurge` 软件，它将自动移除一些不需要的本地化数据（LCTT 译注：即各种语言翻译）。这个软件是一个简单的脚本，它将从那些不再需要的本地化文件和本地化联机手册( man pages ) 所占用的空间中回收磁盘空间。这个软件将在任何 apt 安装命令运行时 被自动激活。

在 Ubuntu 中安装 `localepurge：`

```
sudo apt-get install localepurge

```

在通过 `apt-get install` 安装任意软件后， localepurge 将移除所有不是使用你系统中所设定语言的翻译文件和翻译的联机手册。

假如你想设置 `localepurge`，你需要编辑 `/ect/locale.nopurge` 文件。

根据你已经安装的软件，这将为你节省几兆的磁盘空间。

例子：

假如我试着使用 `apt-get` 来安装 `dicus`软件：

```
sudo apt-get install discus

```

在软件安装完毕之后，你将看到如下提示：

>
> localepurge: Disk space freed in /usr/share/locale: 41860K
>
>
>

### 移除孤包

假如你想移除孤包，你需要安装 `deborphan` 软件：

在 Ubuntu 中安装 `deborphan` :

```
sudo apt-get install deborphan

```

使用 deborphan，打开终端并键入如下命令即可:

```
sudo deborphan | xargs sudo apt-get -y remove --purge

```

#### 使用 GtkOrphan 来移除孤包

`GtkOrphan` (一个针对 debian 系发行版本的 Perl/Gtk2 应用) 是一个分析用户安装过程状态并查找孤立库文件的图形化工具，它为 `deborphan` 提供了一个 GUI 前端，并具备移除软件包的功能。

在 Ubuntu 中安装 GtkOrphan，打开终端并运行如下命令：

```
sudo apt-get install gtkorphan

```

一张截图

#### 使用 Wajig 移除孤包

`Wajig`是 Debian 包管理系统中一个简单的软件包管理前端。它将 apt、apt-cache、 dpkg、 /etc/init.d 中的脚本等 通过一个单一命令集成在一起，它的设计初衷是使用简单和为它的所有功能提供丰富的文档。

通过适当的 `sudo`配置，大多数（如果不是全部）的软件包安装和创建等任务可以通过一个用户 shell 来完成。`Wajig` 也适用于一般的系统管理。另外，一个 Gnome GUI 命令 `gjig`也被囊括在这个软件包之中。

在 Ubuntu 中安装 Wajig，打开终端并运行如下命令：

```
sudo apt-get install wajig

```

### Debfoster --- 跟踪你在安装过程中的操作

debfoster 将会维护一个列有被明确需要安装的软件包的列表，但不包括那些作为某个软件的依赖而被安装的软件包。参数是完全可选的，你甚至可以使得在 dpkg 和/或 apt-get 每次运行之后马上激活 debfoster 。

另外，你还可以在命令行中使用 debfoster 来安装或移除某些特定的软件包。那些后缀为 `---` 的软件包将会被移除，而没有后缀的软件包将会被安装。

假如一个新的软件包或 debfoster 注意到作为某个软件包的依赖的软件包是一个孤包，则 debfoster 将会询问你下一步如何操作。若你决定保留这个孤包， debfoster 将只会进行记录并继续安装过程；若你觉得这个软件包不足以引起你的兴趣，在 debfoster 询问这个问题后，它将移除这个软件包。进一步的，如果你的决定使得其他的软件包变为孤包，更多的提问将会接踵而来。

在 Ubuntu 中安装 debfoster，打开终端并运行如下命令：

```
sudo apt-get install debfoster

```

### 使用 debfoster

为了创建一个初始跟踪文件，可以使用如下命令：

```
sudo debfoster -q

```

你总可以编辑 `/var/lib/debfoster/keepers` 文件，来定义那些你想留在系统中的软件包。

为了编辑这个文件，可以键入：

```
sudo vi /var/lib/debfoster/keepers

```

要强制使 debfoster 去移除所有没有被列在上面这个文件的软件包，或安装作为某些列在这个文件中的软件包的依赖，它也同时会添加所有在这个列表中没有被安装的软件包。若要根据这个列表来执行相关操作，只需执行：

```
sudo debfoster -f

```

若需要跟踪你新安装的软件包，你需要时不时地执行如下命令：

```
sudo debfoster

```

### xdiskusage -- 查看你的硬盘空间都去哪儿了

图形化地展示磁盘使用情况的 du。xdiskusage 是一个用户友好型的程序，它将为你展示你所有磁盘的使用情况。 它是在 Phillip C. Dykstra 所写的 “xdu” 程序的基础上设计的。做了一些修改以使得它可以为你运行 “du”命令，并显示磁盘的剩余空间，并且假如你想清晰地了解你的磁盘空间都去哪儿了，它还可以生成一个 PostScript 格式的名为 display.xdiskusage 的文件。

在 Ubuntu 中安装 xdiskusage，只需使用如下命令：

```
sudo apt-get install xdiskusage

```

若你想打开这个应用，你需要使用如下命令：

```
sudo xdiskusage

```

一旦这个应用被打开，你将看到如下图所示的界面：

### Bleachbit

BleachBit 能快速地释放磁盘空间并不知疲倦地保护你的隐私。它可以释放缓存，删除 cookie，清除 Internet 上网历史，粉碎临时文件，删除日志，丢弃你所不知道存在何处的垃圾。为 Linux 和 Windows 系统而设计，它支持擦除清理数以千计的应用程序，如 Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari 等等。除了简单地删除文件，BleachBit 还包括许多高级功能，诸如粉碎文件以防止恢复，擦除磁盘空间来隐藏被其他应用程序所删除文件的痕迹，为火狐“除尘”，使其速度更快等。比免费更好，BleachBit 是一个开源软件。

在 Ubuntu 中安装 Bleachbit，打开终端并运行如下命令：

```
sudo apt-get install bleachbit

```

一张截图

### 使用 Ubuntu-Tweak

最后，你也可以使用 [Ubuntu-Tweak](http://linux.cn/article-3335-1.html) 来清理你的系统。

---

via: <http://www.ubuntugeek.com/cleaning-up-a-ubuntu-gnulinux-system-updated-with-ubuntu-14-10-and-more-tools-added.html>

作者：[ruchi](http://www.ubuntugeek.com/author/ubuntufix) 译者：[FSSlc](https://github.com/FSSlc) 校对：[wxy](https://github.com/wxy)

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


Pinta 1.6发布！在 Ubuntu 和 Linux Mint 上安装

Summary:
Pinta 是一款免费的开源绘图应用软件，它在Linux用户中很受欢迎。你也可以把它看作是微软画图软件的开源替代品。Pinta 可以在很多平台上使用，如 Linux、Windows 以及 Mac OS X。

Gimp 作为一款功能齐全的图像编辑软件而流行，相比Pinta则单纯是一种绘图工具。我常用它在我的截图上画箭头和曲线，而且我可以说这是我在 Linux 上最喜欢的绘图应用软件。

表示只使用命令行的伤不起

Pinta的确设计相对简洁易用，不过令人讨厌的是它是基于.net来开发的，安装的时候还要安装一大堆的mono支持库，哎，真心感觉不爽，还不如不要它呢，而且这款软件本身也够非主流的，无论在哪个平台听说的人都不会很多，还是使用gimp的哈

很少用，学习了

不错

# Pinta 1.6发布！在 Ubuntu 和 Linux Mint 上安装

[](https://camo.githubusercontent.com/44eb0009cc0c6d3cee1ddd190d6ea90f62c2df41/687474703a2f2f697473666f73732e697473666f73732e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031352f30332f50696e74615f5562756e74755f4c696e75782e6a706567)

[Pinta](http://pinta-project.com/) 是一款免费的开源绘图应用软件，它在Linux用户中很受欢迎。你也可以把它看作是**微软画图软件的开源替代品**。Pinta 可以在很多平台上使用，如 Linux、Windows 以及 Mac OS X。

Gimp 作为一款功能齐全的图像编辑软件而流行，相比Pinta则单纯是一种绘图工具。我常用它在我的截图上画箭头和曲线，而且我可以说这是我在 Linux 上最喜欢的绘图应用软件。

### Pinta 1.6 的新功能

经过一年多的时间，Pinta发布了1.6版本，修复了50多个漏洞并且增加了一些新功能。增加的新功能如下：

* 线条工具现在支持绘制曲线和箭头
* 绘制好的图形可以编辑形状
* 所有的图形工具现在支持绘制虚线
* 所有的选择工具现在支持并集、排除，异或和交集模式
* 插件可通过插件管理器安装
* 命令行中加入新选项

新版本同时也修复了一个很烦人的漏洞——右键菜单选项，[在打开方式中使用Pinta不能打开文件](http://itsfoss.com/add-application-list-open-applications-ubuntu-1310/)。你可以在[发布说明](http://pinta-project.com/releases/1-6)阅读所有的改变。

### 在 Ubuntu 和 Linux Mint 中安装 Pinta 1.6

Pinta 1.5 可以在 Ubuntu 14.04，14.10，Linux Mint 17 和 elementary OS 中使用。如果你想安装最新的 1.6 版本，你可以使用 Pinta 团队的官方PPA源。如果你已经安装了 Pinta 1.5 也不必担心。再安装一次将会使版本升级。

打开终端并使用以下命令：

```
sudo add-apt-repository ppa:pinta-maintainers/pinta-stable
sudo apt-get update
sudo apt-get install pinta

```

下载源代码或者获取 Windows 和 Mac OS X 的安装文件，请点击[Pinta下载页面](http://pinta-project.com/releases)。在如下这篇相关文章中，你也可以选出[Linux中最好的照片应用软件](http://itsfoss.com/image-applications-ubuntu-linux/)。

---

via: <http://itsfoss.com/pinta-1-6-ubuntu-linux-mint/>

作者：[Abhishek](http://itsfoss.com/author/abhishek/) 译者：[linuhap](https://github.com/linuhap) 校对：[Caroline](https://github.com/carolinewuyan)

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


Linux 上的最佳 C/C++ IDE

@保存到为知笔记

真正程序员不需要IDE？呵呵。。。一个能一天完成的项目你非得做三天，这样装逼是不是太过了

我就喜欢用文本编辑器写代码看代码,是不是太变态了?

我不用ide是因为电脑太卡[汗]

Sublime//@Linux中国: 推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

没有clion不开心//@韩天峰-Rango: 一直在用Eclipse CDT //@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

我觉得idea的clion还是蛮有希望的[汗]

大二初学JSP的时候，老师一直让用记事本写代码，再建相关的文件夹，因为当时没有办网，不能查资料，而且那个破教材里居然没有介绍eclipse软件写Web程序，以至于最后觉得JSP超级无聊就没学，直到期末老师才介绍了这个软件，但没说怎么用，因为没网，大三学框架的时候走了超多弯路……

@我的印象笔记

CLion 确实很方便啊 最近一直用啊 ide虽然傻瓜化，但是简单粗暴啊 //@网路冷眼: 没有CLion,不开森！话说[最右]是来拉仇恨的么？[doge]//@__叶左左: //@韩天峰-Rango:一直在用Eclipse CDT //@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么?

決定來學學看CLion，不支道有沒有scons集成//@网路冷眼: 没有CLion,不开森！话说[最右]是来拉仇恨的么？[doge]//@__叶左左: //@韩天峰-Rango:一直在用Eclipse CDT //@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

前两个就很好//@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

Linux中国:【Linux 上的最佳 C/C++ IDE - 译者:ZTin......】

不装B会死吗。每天写HelloWorld是不需要IDE

code lock,相当稳定。  //@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

居然没qtcreator//@网路冷眼:没有CLion,不开森！话说[最右]是来拉仇恨的么？[doge]//@__叶左左: //@韩天峰-Rango:一直在用Eclipse CDT //@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

Clion is the best//@韩天峰-Rango: 一直在用Eclipse CDT //@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

[偷笑]//@2gua: Code::Blocks真的很棒。 //@Linux中国: 推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么?

我感觉你是来啦仇恨的，JetBrain Clion c/c++ 去哪里了，以上都是难用死了

Linux上的真心不错，win下的……哎……//@2gua: Code::Blocks真的很棒。 //@Linux中国: 推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

为啥没QT-Creator咧？这个用的应该很多吧？//@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

maybe CLion will win the game.

//@2gua:Code::Blocks真的很棒。 //@Linux中国: 推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

说这句话的人就是瞎JB得瑟!就好比一个人花拳绣腿，一个人拿把枪，花拳绣腿挺好看，有毛用，一个枪子儿搞定！重要的是得出活儿！

马，大概用不上//@Linux中国:推荐了九个 IDE，C/C++开发者可以看看，话说除了 vim/emacs 之争，IDE 也会引发战争么? @2gua @网路冷眼

mark~

居然木有qt creator

@有道云笔记收藏

文本编辑器一直在用vim，ide[拜拜]//@Linux中国:嗯，这是一种典型的模式。//@瘦古龙: 一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了，编译器之类的参数还是直接显示出来比较舒服，而且控制还灵活。

linux编程环境肯定还是编辑器好

niure//@Linux中国:嗯，这是一种典型的模式。//@瘦古龙: 一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了，编译器之类的参数还是直接显示出来比较舒服，而且控制还灵活。

Notepad++很好用//@Linux中国:嗯，这是一种典型的模式。//@瘦古龙: 一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了，编译器之类的参数还是直接显示出来比较舒服，而且控制还灵活。

爱用什么用什么，完全是个人习惯，没意义的争论就是浪费时间。//@Linux中国:嗯，这是一种典型的模式。//@瘦古龙: 一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了

vim用的舒服啊//@瘦古龙: 一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了，编译器之类的参数还是直接显示出来比较舒服，而且控制还灵活。

他人眼里是自虐，自我眼里是优越. 自己喜欢适合就好.

转发微博。

为了高效的工作，我愿意用IDE。本来敲代码就是体力活！你还不愿意用工具…

我用CodeLite

idea 14 ?? 这个不错//@Linux中国: 嗯，这是一种典型的模式。//@瘦古龙: 一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了，编译器之类的参数还是直接显示出来比较舒服，而且控制还灵活。

mark//@瘦古龙:一直不太会用ide， 按钮太多，不知道点哪个，我的php，java代码，甚至html，css代码都是一行行用vim敲出来的。当然还有一个原因就是console使用惯了，编译器之类的参数还是直接显示出来比较舒服，而且控制还灵活。

codeblock我都不知道怎么让它支持c99，差评…

小白用户弱弱地问一句，用这些IDE编译C的源码的时候，这些IDE都是调用GCC吗？还是有各自专用的Compiler？<br />
原谅我只知道GCC

默认应该都是 gcc，如果你有其它的编译器，也可以配置。

CLion 不在其中表示不服

Gnu 需要一个好IDE.

# Linux 上的最佳 C/C++ IDE

"一个真正的程序员是不用IDE（译者注：集成开发环境）的，他们都是用带着某某插件的文本编辑器来写代码。"我们总能在某些地方听到此类观点。然而，尽管越来越多的人同意这样的观点，但是一个IDE仍然非常有用，它设置简单，使用起来也很方便，因此不能比这样更合适编写一个项目了。所以鉴于这点，在这里我想给大家列一份在Linux平台上比较好的C/C++ IDE清单。为什么特地说C/C++呢？因为C语言是我最喜欢的编程语言，而且我们总要找个切入点来开始。另外要注意的是，通常有很多种编写C代码的方法，所以为了消减清单的篇幅，我只选择了"真正好用的IDE"，而不是诸如Gedit或Vim这种注入[插件](http://xmodulo.com/turn-vim-full-fledged-ide.html)的文本编辑器。并不是说这些编辑器不好，只是如果我将文本编辑器包含进去那这份清单就将永无止境了。

### 1. Code::Blocks

用我个人的最爱来开篇，[Code::Blocks](http://www.codeblocks.org/)是一款简单快速的专有C/C++ IDE。就像任何一款强大的IDE一样, 它集成了语法高亮、书签功能、自动补全功能、项目管理和一个调试器。它最闪亮的地方在于它简单的插件系统，里面添加了不可缺少的工具，像Valgrind和CppCheck，还有不太重要的比如像俄罗斯方块这样的小游戏。但是我特别喜欢它的理由是它连贯方便的快捷键设定和大量的却感受不到拥挤的选项设置。

### 2. Eclipse

我知道我只说"真正好用的IDE"而不是带着插件的文本编辑器，但是，[Eclipse](https://eclipse.org/)的确是一款"真正好用的IDE"，只是Eclipse需要一些[插件](http://xmodulo.com/how-to-set-up-c-cpp-development-environment-in-eclipse.html)（或经过一些改装）来编写C程序，所以严格来说我无法反驳我自己。而且，做一份IDE清单不提到Eclipse这个“巨人”是不可能的事情。无论喜欢它与否，Eclipse仍然是一款强大的Java编程工具。这里要感谢[CDT 项目](https://eclipse.org/cdt/)，让Eclipse编写C程序变得可能。你同样可以体验到Eclipse的强大功能，包括它的一些传统功能特点比如自动补全、代码大纲、代码生成器和先进的重构功能。照我话说，它的不足之处在于它不如Code::Blocks那么轻量级，它仍然很臃肿，要花费很多时间去载入。但是如果你的电脑可以驾驭它，或者你是个忠实的Eclipse粉，那么它一定是你的不二选择。

### 3. Geany

牺牲了很多特色功能但是增加了很多灵活性，[Geany](http://www.geany.org/)就是这样一款与Eclipse对立的软件。但是对于它所缺乏的地方（比如说没有调试器）, Geany用一些漂亮小巧的特色功能弥补了它们：一个可以做笔记的区域、基于模板创作、代码大纲、自定义快捷键和插件管理。相比于现在的IDE，Geany仍然是一款作用广泛的文本编辑器，然而，因为它的功能亮点和它的界面设计，所以我把它放在这份列表里。

### 4. MonoDevelop

这又是这份列表里的一个“巨人级”工具，[MonoDevelop](http://www.monodevelop.com/)那无与伦比的体验来源于它的外表和界面。我个人非常喜爱它的项目管理体系和它的一体化版本控制系统。插件系统同样漂亮地让人震惊。但是由于一些原因，所有的设置和对所有编程语言的支持对于我来说让我感觉有点“资源过剩”了。它仍然是我在过去经常使用的伟大工具，但不是我在单单处理C语言时的第一选择。

### 5. Anjuta

它身上有着强烈的“GNOME即视感”，[Anjuta](http://anjuta.org/)的外观很具争议。我倾向于把它看作是带着调试器的Geany升级版，但是它的界面实际上要复杂得多。我确实很享受能在项目、文件夹和代码大纲视图之间来回切换的标签系统，我本想用诸如更多的快捷方法来移动文件，然而，这是一个很好的提供了显著编译功能和构建选项的工具，它能够支持哪些很有特点的需求。

### 6. Komodo Edit

我不是非常熟悉[Komodo Edit](http://komodoide.com/komodo-edit/)，但是在试用了一段时间之后，我被它很多很多的优点给惊喜到了。首先，基于标签的导航功能有很强的可预见性。其次它奇特的代码大纲让我想到了Sublime Text。此外，它的宏系统和文件比较器使得Komodo Edit非常实用。它的插件库让它几乎是完美的，说“几乎”是因为在其它IDE里我的确找不到能与之相媲美的快捷方法了。而且我们能享受到更多特别的C/C++工具，这往往是普通IDE的不足之处。然而，Komodo Edit就能做到。

### 7. NetBeans

就好像Eclipse一样，这又是一款不得不提的“巨人级”软件。拥有的功能包括通过标签进行导航、项目管理、代码大纲、更改历史追踪和大量工具，[NetBeans](https://netbeans.org/)可能是最完整的IDE了，我能用半页来列出它所有让人震惊的特色功能。但是这同时也很容易地向你透露了它的主要缺点，它太臃肿了。比起它的强大，我更喜欢基于插件的软件，因为我觉得不太会有人为了一个同样的项目同时需要Git和Mercurial相结合来工作，我是不是很疯狂？但是如果你有耐心去掌握它所有的选项，那你差不多无论到哪里都是IDE大师了。

### 8. KDevelop

说到这，肯定照顾到所有的KDE粉丝，[KDevelop](https://www.kdevelop.org/)会是你希望的答案。它拥有许多配置选项，如果你设法去征服KDevelop，那它就是你的。你们说我肤浅，但是我真的从来没有深入过除它界面以外的层次了，对于我来说编辑器本身就携带着大量的导航选项和可定制的快捷键简直是一个再糟糕不过的事了。它的调试器也是相当高级，要去练习掌握。然而，这样的耐心是有回报的，就是能领会到这款灵活的IDE的全部能力，并且由于它令人吃惊的嵌入式文件编制，你会给予它一种特殊的信任。

### 9. CodeLite

留在最后的不代表是最差的，[CodeLite](http://codelite.org/)展现给你一种传统的编程规则却仍然能让你从它身上那特有的感觉上有所收获，即使它的界面一开始的确让我想到了Code::Blocks和Anjuta，只是不包括大量的插件库。无论你想要比较文件、插入一条版权块、定义缩略语或者用Git来工作，总有一款插件适合你。如果我不得不挑点毛病，我想说它缺乏一些符合我口味的导航快捷键，但这是真的。

最后，我希望这份清单能让你给自己最喜欢的语言探索到更多新的IDE。虽然Code::Blocks仍然是我的最爱，不过它有一些很强大的对手。当然我们也可以远离Linux上的IDE，而用文本编辑器去编写C/C++代码。所以如果你有什么其它的建议想法，在评论中让我们获悉。或者如果你想要我再说说关于一些其它语言的IDE，也可以评论里提出。

---

via: <http://xmodulo.com/good-ide-for-c-cpp-linux.html>

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

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


你的 Linux 启动时有几只小企鹅？

Summary: 用过 Linux 的人大多都见过 Linux 载入内核时显示在屏幕上的小企鹅。

我最多只见过4个 Tux~

Gentoo也有 好像与cpu核数有关 //@Linux中国:我最多只见过4个 Tux~

6个

为啥我启动时就木有加过小企鹅哇？

//@Linux中国:我最多只见过4个 Tux~

需要启动时候支持FrameBuffer才能显示文本之外图形，通常是内核参数后有 vga=791 之类的参数。

来自 - 河南郑州 的 Firefox 用户

Fedora一只也没有

真的？你没骗我？你的屏幕能显示下吗？求分享照片~

两个……

回复@不知不觉不后悔:你自己编译内核就有了，双核就两个，四核就四个

第一只简直萌到爆！！！

一般的版本默认内核没有开启这个选项！

不会啊，我觉得默认都开的啊。

从来没看到过的路过.

现在的系统是kubuntu14.04，从来就没有见过，我用其他的系统的时候也没有见过。

用过 Linux 的人大多都见过 Linux 载入内核时显示在屏幕上的小企鹅。

# 你的 Linux 启动时有几只小企鹅？

用过 Linux 的人大多都见过 Linux 载入内核时显示在屏幕上的小企鹅。你了解这只小企鹅吗？

这个小企鹅是 Linux 的吉祥物，是 Linux 内核 2.0 评比出来的，它的名字叫做 [Tux](http://en.wikipedia.org/wiki/Tux)。大多数人相信，“Tux” 这个名字来源于**T**orvalds **U**ni**X。**上图是当时评比中选的Larry Ewing所绘。它有几个常见变形的样式，我最喜欢比较有质感的 [水晶版](http://en.wikipedia.org/wiki/File:NewTux.svg)：

Linux 内核的不同版本，曾经有过一些变形，比如：

在 2.6.29 的 Linux 内核中，为支持**拯救[袋獾](http://zh.wikipedia.org/wiki/%E8%A2%8B%E7%8D%BE "袋獾")运动** Tux 被临时地替换成 [Tuz](http://zh.wikipedia.org/wiki/Tuz "Tuz")。

而在 3.11 版本的 Linux 内核，为了纪念 windows for workgroups 3.11，Linus 将该版本的内核命名为 [Linux for workgroups](http://linux.cn/article-1648-1.html)，Tux 打了一支 Windows 的旗帜 :D 。

甚至你在 PS3 上安装 Linux，都会显示不一样的小企鹅们：

Linux 启动时显示的小企鹅的数量，就是你的 CPU 个数，你最多见过几个？欢迎分享给我们。


Windows 10 VS. Linux

Summary: 前阵子 Windows 10 好像占据了绝大部分头条，甚至在一些Linux圈里也是一样。最具代表性的是 betanews.com 的 Brian Fagioli 说 Windows 10 已经为 Linux 桌面系统敲响了丧钟，Microsoft 如今宣布将为忠实的 Windows 用户免费提供 Windows 10，Steven J. Vaughan-Nichols 说这是一个最新的开源公司，然后 Matt Hartley 比较了 Windows 10 和 Ubuntu，Jesse Smith 从 Linux 用户的视角对 Windows 10 做出评估。  Windows 10，在 Microsoft 声明说将免费提供给 Windows 7 及以上用户，这件事成为如今大家闲聊的热门话题。在 Linuxland 这里，

有本事开源啊

#人才芯片#

这什么鬼东西[怒骂]

微软，你白给都没人要是多么悲剧啊[嘻嘻]以为Linux是因为免费才有人用，就太无知了。

win10免费？不过Linux从来就没有靠桌面吸引我们这样的用户。

配图不错，有大图的没

不要以为Linux因为免费才有人用。Windows 10 有本事就开源。

文章里不断重复说微软变成了一家开源软件公司，这没错，因为.net真的开源了，但这和Windows10没啥关系。说微软变成一家有开源思想的互联网服务商，这个我同意。微软正在弱化终端尤其是PC，增强云服务，O365就是代表做，Windows10的出现只不过是把这个事情坐实罢了。

用linux的理由并不仅仅是免费 还有m$不能提供的自由！

说“Microsoft 是最新的开源公司”，哈哈，.NET开发人员是不是鸡冻了一下？

两者根本没可比性，pc桌面领域压根轮不到linux。

桌面元年这种事情永远都不可能发生

软件公司软件服务公司

二者没有可比性，Linux忠实粉丝是不会去用Windows的

[doge]当我死了是不是？

Linux会死？奇了怪了

win10不错，但Linux桌面依然会有市场

娛樂用win10，開發用Linux，不過我更喜歡Linux。

微软这次是强势来袭与多家厂商合作推进win10//@Skogkatt: 桌面元年这种事情永远都不可能发生

正是因为有linux这样的免费系统，windows才会有免费的一天，不然它会免费吗？<br />
另外，免费提供就成了开源公司了吗？不懂。

免费升级，不是免费使用，而且是win7以上用户，也就是说你得先花钱买了win7才行，搞这种烂噱头恶心！

似乎 Linux 圈的用户对 Windows 10 评价不错，但是长期处于 Windows 圈子的人就不都这么看。像 pcbeta 里面有不少人对 Windows 10 的发展充满了担忧。

跟Linux比桌面？有点梦想好嘛。就好像说谁家食品安全超过了中国，房价低过了中国。

Windows和Linux各有各的市场，谁也不会死

微软怒憋大招

linux顶起 微软你不懂[思考][思考]

我怎么感觉是linux相继占领服务器和移动终端阵地后，向最后的桌面市场发起冲锋，windows眼看桌面阵地要失守，不得已断腕求生呢？

linux最贵的是服务费，一次时候十几万，桌面用户吃的消么?

linux是不可能灭亡的，linux占据了绝大数的服务器，还有安卓也是基于linux开发的。更重要的是，不要忘了linux的特色和文化，开源。

Repost

//@LUPA---人才芯片工程:#人才芯片#

什么鬼。

等正式版出来，笔记本先体验一下

有几个 Linux 用户是因为“免费”而用 Linux 的呢？

挂掉肯定不会的，社区开发积累了这么多年的经验和成果，山路纵然十八弯，方向依然是前行的@！～

！！！Microsoft已经成为了一家新的开源公司！？前段时间听闻.NET开源，但是没有看到实际的入口有free.NET[衰]

//@LUPA---人才芯片工程:#人才芯片#

两个不是一个方向的东西 放在一起比较有什么意义？

//@LUPA---人才芯片工程:#人才芯片#

因为自由和信仰用 Linux，才是 Linuxer。

看看今天的新闻，可以有官方盗版，哈哈

盗版Win7/8可以免费升级 Win10，但是还是盗版。

不想升级的说，继续win7

回复@卜路奈特:你从哪听说的Linux桌面用户服务几十万？既然玩的起桌面Linux，想必他绝对不是windows 图形界面控，我只想说谁用谁知道。

回复@扁豆焖面先生:我说的是服务器用户。。。桌面没的赚。。。

做了两个项目，发现很多民企的服务器用的是Windows Server 2008 R2。我觉得太新的系统不用是正确的，但是差也别差个4代吧……那些程序员新的劳动成果就被个不稳定给否了么……

你见过谁在大饭店大酒店吃住后就不回家自己做饭过日子的吗?!你觉得游历山水乡野者会迷恋城市园圃吗?!选择之于人是个品味问题，是价值取向、是习惯。两害相权取其轻/两利并较取其重，个中得失本就见仁见智。微某寻求垄断是本性，可愚昧更是人之本性；选择怯懦，安守愚昧是人常，可别忘了，你唯一能改变的是自我、是以创造来抗争/消弭/优化。微某成功更多是因为长久以来无知无觉者广众，而今时今日仍想继续忽悠/培植信众/自吹自擂，歇了吧！慈善家与义工，你更欣赏谁?谁又更担得信赖?作宠物还是主人，自己看着办吧! ps：It's micro-soft. Yeah... That's mean of a little bit Decay.

GUI这个东西很强大,但是实在是太复杂了,和开发一个内核的工作不相上下,而使用Linux的人员大多都稳定技术圈,既然要话更多的时间为什么不去优化内核呢?要是X始终作为一个运行在Shell下的软件,那么她的春天永远不会到来!尽管X真的很强大.

我觉着linux桌面普及就不可能，但也不可能消失。两者是不同的生态系统。

不是因为他免费我就用他。

来自 - 广西百色 的 Firefox 用户

win10兼容性不好

# Windows 10 VS. Linux

前阵子 Windows 10 好像占据了绝大部分头条，甚至在一些Linux圈里也是一样。最具代表性的是 betanews.com 的 Brian Fagioli 说 Windows 10 已经为 Linux 桌面系统敲响了丧钟，Microsoft 如今宣布将为忠实的 Windows 用户免费提供 Windows 10，Steven J. Vaughan-Nichols 说这是一个最新的开源公司，然后 Matt Hartley 比较了 Windows 10 和 Ubuntu，Jesse Smith 从 Linux 用户的视角对 Windows 10 做出评估。

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

**Windows 10**，在 Microsoft [声明](https://news.google.com/news/section?q=microsoft+windows+10+free&ie=UTF-8&oe=UTF-8)说将免费提供给 Windows 7 及以上用户，这件事成为如今大家闲聊的热门话题。在 Linuxland 这里，也没有被忽视。betanews.com 的 Brian Fagioli，一个自封的 Linux 粉丝，如今这样说，“ Windows 10 把门彻底关上了。Linux 桌面元年将永远不会到来，歇歇吧。”[Fagioli解释](http://betanews.com/2015/01/25/windows-10-is-the-final-nail-in-the-coffin-for-the-linux-desktop/)说 Microsoft 倾听了用户的抱怨而且并不只是记录一下，还更好地解决了这些问题。他说 Linux 错失了由 Windows 8 不受欢迎以及巨大失败带来的机会。然后他总结，拜 Windows 10 所赐，处于边缘地带的我们只能接受一个“破碎的梦”。

不过，来自闻名的 Distrowatch.com 的 Jesse Smith 说 Microsoft 并没有提供一个很明显的下载方式，不过确实可行而且它也升级了。安装程序非常简单，除了分区功能很有限甚至有点吓人。在最终启动进入 Windows 10 后，Smith说界面布局很“松散”，没有 Win7 里被很多人讨厌的大量分散注意的元素，开始菜单又回来了，取消了欢迎屏幕。据Smith所说，还有一个很类似 Ubuntu 和 Android 的新的包管理程序，不过需要 Microsoft 在线账户才可以使用。[Smith的总结](http://blowingupbits.com/2015/01/an-outsiders-perspective-on-windows-10-preview/)里有这样一条，“感觉 Windows 10 像是 Android 的早期 beta 版本，一个设计成时刻保持在线的消费者操作系统。而不像是一个我能用来完成工作的操作系统。”

**S**mith的[完整文章](http://blowingupbits.com/2015/01/an-outsiders-perspective-on-windows-10-preview/)里比较了 Windows 10 和 Linux 的大量细节，不过 Matt Hartley 发表了一份实在的 Windows 10 vs Linux 的报告。[他说](http://www.datamation.com/open-source/windows-vs-linux-the-2015-version-1.html)两者的安装程序都很直观和简单，Windows 的双启动仍然没那么容易，Windows 默认提供了加密而 Ubuntu 只提供了配置选项。在桌面方面 Hartley 说 Windows 10 “纠结地丢弃了它 Windows 8 的根。”他觉得 Windows 10 的 Windows 商店比 Ubuntu 的漂亮很多，但是实在不喜欢通过“一切都是卡片”的方式来查看新安装的应用。Hartley这样总结，“首先是它将为大量 Windows 用户提供免费升级。这意味着大大降低了进入和升级门槛。第二，看起来 Microsoft 这次真的在全力以赴地倾听他们的用户需求了。”

**S**teven J. Vaughan-Nichols 如今声称 Microsoft 是最新的开源公司；不仅因为它将发布 Windows 10 的免费升级，而且 Microsoft 正在从一个软件公司转型为一个软件服务公司。然后，据 Vaughan-Nichols 所说，Microsoft 需要开源来完成这次转型。从Novell/SUSE开始，他们已经致力于这一块儿好多年了。不仅如此，他们也发布过开源软件（不管什么目的）。[Vaughan-Nichols总结](http://www.zdnet.com/article/microsoft-the-open-source-company/)，“很多人不这么认为，但是Microsoft——就是Microsoft——已经成为一家开源公司。”

---

via: <http://ostatic.com/blog/windows-10-versus-linux>

作者：[Susan Linton](http://ostatic.com/member/susan-linton) 译者：[zpl1025](https://github.com/zpl1025) 校对：[Caroline](https://github.com/carolinewuyan)

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


IE被弃之探：开源的垄断才是好垄断

微软就该放弃开发浏览器

其实现在已经大有改进

Repost

opera可惜了，很喜欢的内核技术

网银还是需要IE的，不知道未来会不会改变。

用IE的唯一理由就是国内的网银都TM只支持IE

还得是老版本 IE

多年后可以更具是否使用过IE判断一个人是否时骨灰级的.

# IE被弃之探：开源的垄断才是好垄断

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

微软IE即将寿终正寝。一系列的浏览器技术改进、一系列的广告营销活动，一切都未能挽救已有20多年历史的IE的命运。运行卡顿、网页显示Bug多多、进程不时崩溃，IE的负面形象已成为微软背负的枷锁。不堪重负的微软终于决定，放弃这一伴随许多年轻人长大的浏览器品牌。

对于IE自身存在的问题，业内已有许多讨论。确实，IE需要承担得太多。为了兼容性，微软需要让IE去支持互联网发展早期的许多网页技术。原因很简单：很多企业内网中仍有不少基于过时技术开发的服务，而说服这些企业投资升级这些服务，使其支持最新的网页技术，这难度很大。而为了确保后向兼容，IE只能变得更复杂，当然也就更容易出现问题。

技术只是因素之一，而导致IE最终无法跟上网页技术的发展潮流，原因更多地在于微软的策略问题。

IE诞生于互联网发展的早期。彼时，网页浏览器的开发成本很高，软件公司需要自行开发浏览器内核和脚本引擎，同时也要自行设计各种人机互动功能和界面。这样的工作非微软和网景等大公司无以完成。在90年代与网景的撕逼战中，IE是最终胜出者。这意味着，IE所采用的一系列微软私有技术都获得了温和的生存土壤，而微软可以优哉游哉地慢慢改进浏览器技术，享受着垄断（或者更委婉的说法，“市场主导地位”）带来的红利。

与其他任何垄断一样，IE的创新速度非常缓慢。毕竟，在“创新者困境”中，没有任何领先的公司会去主动变革自己。2005年左右，继承自网景的火狐浏览器开始与微软展开新一轮争夺。微软面对这一竞争仍然游刃有余，牢牢把握着主流用户群体，将火狐压缩在极客和技术工作者这一市场。不过，火狐赖以成功的重要因素：开源，正是IE随后逐渐失去竞争优势的一半原因。

那么另一半原因是什么？简单地说，这就是其他巨头的到来。行业巨头+开源模式，这带来了另一种“市场主导地位”。

谷歌于2008年推出了Chrome浏览器。从一开始，Chrome浏览器就基于开源的WebKit引擎。随后，谷歌对浏览器的优化也包括对WebKit引擎的优化。在谷歌的大力投资之下，变得更好的不只是Chrome浏览器，也包括了WebKit。

随着开源的浏览器内核、JavaScript引擎，以及其他浏览器模块的发展，当代浏览器的开发呈现出模块化的趋势。这意味着，只要遵守开源协议，任何开发者都可以使用这些模块。开发者甚至只需设计自己的界面和标志，并拿出一些独创的小功能，即可推出一款新的浏览器产品。

在这样的情况下，浏览器开发的时间周期从90年代的按年计算下降至目前的按月计算，甚至按天计算。而对于浏览器基本的功能和性能，例如网页渲染速度和JavaScript脚本运行速度，开发者毫无疑问会倾向于选择市面上最优秀的产品。在这种情况下，WebKit成为了当然的选择。

大大小小的软件公司和互联网公司也有动机去开发自主品牌浏览器。浏览器是普通用户的上网入口，可以衍生出多种商业模式，并带来不菲的收益。例如，浏览器的默认登录页面可以提供上网导航服务，而默认搜索引擎既可以推动自主搜索引擎产品的发展，也可以通过为主流搜索引擎导入流量来获得收入。实际上，浏览器是互联网生态系统的重要一环。

市场环境如此，而谷歌不失时机地投资WebKit恰好满足了市场需求。开源的WebKit聚集了一批浏览器开发商。例如，国内常见的360、搜狗和遨游等浏览器都集成了WebKit内核。而在国外，Opera也于2013年放弃了自主内核，倒向了WebKit阵营。通过控制浏览器内核，谷歌实际上已经主导了当代浏览器技术的发展。

近期美国科技圈的一种论调是，谷歌正在成为新的微软。但同样是“市场主导地位”，谷歌的做法要比微软高出几个段位。浏览器内核开发耗费的时间、精力和资金巨大，因此即使已经开源，独立开发者和小公司仍然很难对这样的产品做出突破。通过这种开源产品去主导市场，充分调动市场各方的参与热情为己所用，远比通过私有技术去主导市场更高明。

毫无疑问谷歌已经谙熟此道，而移动操作系统市场的Android就是另一个很好的案例。微软正在开发新的浏览器Project Spartan。而在缺乏生态圈配合的情况下，这款浏览器能取得什么样的成绩仍值得怀疑。或许，这款浏览器未来的命运可能会类似叫好不叫座的Windows Phone，在Android的重压下步履艰难。


Linux 游戏之 2015 动向

Summary: 他们说Linux游戏开发已经死了，已经变得毫无意义 随他们说去吧。一起看看2015乃至以后会为我们带来什么 Linux 游戏。 真的很难跟得上扑面而来的各种形形色色的新事物，但是可以快速浏览一下我们将会看到的变化。   已确认的游戏 冒险游戏  看火人（Firewatch） 失落的天堂：初探（Paradise Lost: First Contact） 时空英豪 1.1（Outcast 1.1） 蒸汽世界:浩劫（SteamWorld Heist）  动作游戏　  暗黑血统（Darksiders） 暗黑血统 2（Darksiders 2） 尸人的世界（Ray's The Dead） 骷髅女孩（Skullgirls）  第一人称游戏  生化奇兵：永恒（B

现在基本没有时间玩游戏啊。

火炬之光已经有linux版了

这么多，不少啦@！～

暗黑血统都有，真是牛逼啊

暗黑血统都有，真是牛逼啊

不错

Repost

显卡驱动招不到

Repost

Repost

你们在吓我么。。

在Linux上1000元的鼠标跟TMD200元的一样,什么时候把X融入内核,Linux的春天才会到来!

# Linux 游戏之 2015 动向

他们说Linux游戏开发已经死了，已经变得毫无意义…… 随他们说去吧。一起看看2015乃至以后会为我们带来什么 Linux 游戏。

真的很难跟得上扑面而来的各种形形色色的新事物，但是可以快速浏览一下我们将会看到的变化。

### 已确认的游戏

#### 冒险游戏

* [看火人（Firewatch）](https://www.gamingonlinux.com/articles/category/17/articles/firewatch-a-first-person-mystery-game-finally-reveals-itself-in-a-trailer.4231)
* [失落的天堂：初探（Paradise Lost: First Contact）](http://www.asthreeworks.com/games/)
* [时空英豪 1.1（Outcast 1.1）](https://www.gamingonlinux.com/articles/outcast-a-real-classic-has-been-revamped-and-linux-is-planned.4736)
* [蒸汽世界:浩劫（SteamWorld Heist）](https://www.gamingonlinux.com/articles/category/17/articles/image-form-announces-steamworld-heist.4304)

#### 动作游戏

* [暗黑血统（Darksiders）](https://www.gamingonlinux.com/articles/darksiders-linux-port-looks-like-it-is-still-happening.4893)
* [暗黑血统 2（Darksiders 2）](https://www.gamingonlinux.com/articles/darksiders-2-confirmed-for-linux.4154)
* [尸人的世界（Ray's The Dead）](http://ragtagstudio.com/?page_id=457)
* [骷髅女孩（Skullgirls）](https://www.gamingonlinux.com/articles/editorial-skullgirls-on-linux-finally-shows-some-progress.4789)

#### 第一人称游戏

* [生化奇兵：无限（Bioshock Infinite）](https://www.gamingonlinux.com/articles/bioshock-infinite-looks-set-for-a-linux-release-confirmed.4668)
* 半条命 3 /troll （Half Life 3 /troll）
* [烽火家园:革命（Homefront: The Revolution）](http://www.homefront-game.com/)
* [叛变（Insurgency）](https://www.gamingonlinux.com/articles/insurgency-fps-is-waiting-on-valve-so-it-can-come-to-linux-updated.4564)
* [杀戮空间 2（Killing Floor 2）](https://www.gamingonlinux.com/articles/category/17/articles/killing-floor-2-fps-has-a-new-trailer.4676)
* 英雄萨姆 4（Serious Sam 4）（目前无官方站点）
* [联合风暴（Storm United）](https://www.gamingonlinux.com/articles/storm-united-online-fps-shows-first-real-gameplay-video-first-alpha-due-soon.4872)
* [烈火击杀（SUPERHOT）](http://superhotgame.com/)

#### 平台游戏

* [武装原型（Broforce）](http://steamcommunity.com/app/274190/discussions/0/540738051503306548/#c540738051518330743)
* [峡谷（Chasm）](https://www.gamingonlinux.com/articles/category/17/articles/chasm-rpg-platformer-will-have-a-same-day-linux-release.4266) #此处游戏中文名尚不确定
* [吉安娜姐妹（Giana Sisters）](https://www.gamingonlinux.com/articles/linux-port-of-platformer-giana-sisters-brought-inhouse-sequel-might-get-sameday-release.4913)
* [心之所向：Alicia（Heart Forth, Alicia）](http://www.alonsomartin.mx/hfa/)
* [热铁皮屋顶（Hot Tin Roof）](http://www.hottinroofgame.com/)
* [无限工厂（Infinifactory）](https://twitter.com/zachtronics/status/566016742825005057)
* [无敌９号（Mighty No. 9）](http://www.mightyno9.com/)
* [林中之夜（Night in the Woods）](http://www.nightinthewoods.com/)
* [夜（Noct）](https://www.gamingonlinux.com/articles/category/17/articles/noct-a-fantastic-top-down-thermal-image-survival-horror-game.4783)
* [奇异的世界：新鲜可口（Oddworld: New 'N' Tasty）](https://www.gamingonlinux.com/articles/puzzle-platformer-oddworld-new-n-tasty-will-release-for-linux-next-month.4836)
* [真红女神（Red Goddess）](https://www.gamingonlinux.com/articles/new-trailer-for-platformer-red-goddesss-looks-really-good.4939)

#### 赛车游戏

* [赛车计划（Project Cars）](http://projectcarsgame.com/)
* [死亡赛车：再生（Carmageddon: Reincarnation）](https://www.gamingonlinux.com/articles/carmageddon-reincarnations-jason-garber-answers-our-questions-on-their-linux-support.3380)

#### 角色扮演游戏

* [神界:原罪（Divinity: Original Sin）](https://www.gamingonlinux.com/articles/divinity-original-sin-is-pushing-ahead-for-the-linux-release.4938)
* [永恒之柱（Pillars Of Eternity）](https://www.gamingonlinux.com/articles/pillars-of-eternity-the-rpg-aims-for-a-sameday-linux-release-on-march-26th.4834)
* [暗影狂奔：香港（Shadowrun: Hong Kong）](https://www.kickstarter.com/projects/webeharebrained/shadowrun-hong-kong)
* [旗帜的传说（The Banner Saga）](https://www.gamingonlinux.com/articles/the-banner-saga-rpg-looks-close-to-a-linux-version.4862)
* [镇魂曲:遗器之潮（Torment: Tides of Numenera）](https://www.gamingonlinux.com/articles/torment-tides-of-numenera-new-video-looks-absolutely-stunning.4320)

#### 策略游戏

* [奇迹时代３（Age of Wonders III）](https://www.gamingonlinux.com/articles/the-linux-port-of-age-of-wonders-iii-is-progressing-a-bit-too-explosive-right-now.4857)
* [At The Gates](http://www.atthegatesgame.com/info) # 尚无中文名
* [放逐之城（Banished）](https://www.gamingonlinux.com/articles/banished-survival-city-building-sim-is-being-ported-to-linux.4813)
* [城：天际（Cities: Skylines）](https://www.gamingonlinux.com/articles/city-builder-game-cities-skylines-now-has-a-release-date.4954)
* [发条帝国（Clockwork Empires）](https://www.gamingonlinux.com/articles/clockwork-empires-still-pushing-towards-a-linux-version-suffering-delays.4734)
* [Parkitect](https://www.gamingonlinux.com/articles/category/17/articles/parkitect-what-roller-coaster-tycoon-should-have-grown-into.4528) # 尚无中文名
* [卷轴（Scrolls）](https://www.gamingonlinux.com/articles/mojangs-scrolls-now-has-an-experimental-linux-build.4450)
* [太空海盗和僵尸 2（Space Pirates And Zombies 2）](https://www.gamingonlinux.com/articles/space-pirates-and-zombies-2-reveals-the-zombies-in-a-brand-new-video.4759)

#### 沙盒游戏

* [泰拉瑞亚（Terraria）](https://www.gamingonlinux.com/articles/terraria-officially-confirmed-to-be-in-development-for-linux-finally.4299)
* [X 重生（X Rebirth）](https://www.gamingonlinux.com/articles/egosofts-x-rebirth-actively-being-ported-to-linux.4822)

#### 体育游戏

* [惊爆美国棒球16（Out of the Park Baseball 16）](http://www.ootpdevelopments.com/newsletters/nl0154/)

### 不太确认，不过可能性高

* [英雄连 2（Company of Heroes 2）](https://www.gamingonlinux.com/articles/company-of-heroes-2-looks-like-it-is-heading-to-linux.4199)
* [逃生（Outlast）](https://www.gamingonlinux.com/articles/outlast-that-really-scary-game-looks-like-its-still-heading-to-linux.4896)
* [影子武士（Shadow Warrior）](https://www.gamingonlinux.com/articles/shadow-warrior-looks-like-it-will-come-to-linux.4859)
* 无光之海 - 其开发商试验性地构建 Linux 版本，不过这要取决于他们的 Windows 版本的销售情况（据邮件沟通信息）
* [火炬之光 2（Torchlight II）](https://www.gamingonlinux.com/articles/torchlight-ii-has-even-more-positive-signs-for-linux.4817)

然而有[两个来自Feral Interactive的移植大作](http://feralinteractive.com/en/upcoming/)，由于不知道他们是什么，所以没有列举出来。

我们猜测Aspyr也在准备新的大制作，但是他们仅仅发布了他们最新的游戏，所以可能要等上几个月我们才能看到些什么。

当然，\*\* 这不是完整的列表 \*\*，我们会轻易忘记如此多的游戏正在走向我们，哇，如此丰富的列表。

我们也期待 GDC 2015 上有一些改变，然而，我们没有什么确切的东西，对于Valve与Steam Machines的合作，我们期待至少会增加一些Linux游戏，否则，如我们担心，炫耀一些过时的游戏会让Valve脸上无光。

希望我们没有错过那些 Linux 中让你感到兴奋的东西！

---

via: <http://www.gamingonlinux.com/articles/a-look-at-what-linux-games-we-will-see-in-2015-and-beyond.4963>

作者：[liamdawe](http://www.gamingonlinux.com/profiles/1) 译者：[wi-cuckoo](https://github.com/wi-cuckoo) 校对：[wxy](https://github.com/wxy)

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


[博文赠书]《精通Perl（第2版）》点评赠书

Summary: 本书由Linux中国站长wxy ＆ Linux中国翻译组译者Tinyeyeser共同翻译并亲力推荐，是通往Perl大师之路必读经典书籍，它体现了一种编程思维，能够帮你解决很多实际的问题。

收藏了，准备入手

@因为我还是个孩子啊

是你哥吗？[哈哈]

估计@beginor 用过

我的oracle 重装报错就是因为它 为什么 困扰好久

[doge] @ARGV

@月終終終終終終 [doge]

@techlivezheng

@高路tonado

@武羡峰

@IT巴巴拉

@比特时代天威

我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

好书难求！

@卧心窝

@wallacewly

《精通Perl（第2版）》是通往Perl大师之路必读经典书籍之一,对Perl有兴趣的读者可以看看了@麒麒icode

哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

@Felix极度深蓝 抽我！！！

中中中//@Linux中国:哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

好吧 at自己 @月灬悠蓝反正我就是眼睛小声音受//@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

[偷笑]//@Linux中国:哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

用过perl的人->@RealAC [bm会心笑]

@2gua //@博文视点Broadview:作者brian d foy 用他生动的第一人称视角向各位读者介绍了精彩的Perl 高级语言知识以及丰富的实战工具与实用技巧。本书各章的内容相对独立，您完全可以根据自己的兴趣或需要直达你所需要的章节。@Winnie说说

[羊年大吉][群体围观]//@博文视点Broadview: 作者brian d foy 用他生动的第一人称视角向各位读者介绍了精彩的Perl 高级语言知识以及丰富的实战工具与实用技巧。本书各章的内容相对独立，您完全可以根据自己的兴趣或需要直达你所需要的章节。@Winnie说说

@美潼妞

@outsider西瓜

@shenwei5566 print "give","me","one","book","\n".

@李杰要做一些漂亮事儿

@一直都在流浪的who [可爱] 找女盆友来帮忙//@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

@Mr邸先森 赶紧看看

@悠哉的可乐冰 再上一层楼

@生于November的Leo 还学不

@大胖子的小美女 你用过没[阴险]

Perl是好东西，转发100送一本啊。

@holly_lee //@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

虽然没有用过Perl，但Perl的大名已经熟知了。Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性，像C一样强大，像awk、sed等脚本描述语言一样方便，被称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。

值得拜读@思聪Allen- #快帮我转发#@北漂奋斗小骚年_YLUN

好东西~~~~

[太开心]

虽然b我自己不用pearl，转发一下露露脸[嘻嘻]

@阿拉瞪神盯

那我就 at 我自己[哈哈] @holly_lee //@王海鹏Seal: @holly_lee //@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

[汗]//@Linux中国:哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

@赤乌_Rsun 他不用

别骗我！@甁樟 //@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

@图灵教育

@大三 貌似你用过

久闻大名，从未用过的语言。哈哈……

@惬小瑞

感觉走上了不归路了

@未完成De梦 //@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

@低摄氏度 [得意地笑]

@装配脑袋 领书喽[花心]

@楚清雅 //@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

算了吧，像Perl这种文本处理语言，看英文原版最好。

我用啊！我的第一本Perl书（小骆驼书）还是钟道隆审校的呢！钟道隆，身边有人知道吗？[嘻嘻][哈哈]//@zhujiang73:[汗]//@Linux中国:哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

我有第一版的影印版 @nctime [doge]//@Linux中国: 哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

@小和平鸽 //@2gua: [doge] @ARGV

@梁嘚儿哈 //@ARGV:@小和平鸽 //@2gua: [doge] @ARGV

不知道和第一版有什么区别？

试试手气

@Linux中国[挖鼻屎][挖鼻屎] //@坐和放宽:试试手气

perl 想玩玩

@江南陈酒 通往Perl大师之路

到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

[马到成功] //@王四哥达家码:爱过 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

汪➡@JustinFincher

爱过，@sakura79 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@计算机技巧秀

@李丶羙羙 求书啊，，，看过这个第一版

纯粹是为了能够够100送出一本书而凑数@王丶嘘嘘

有爱，@羡小b //@王四哥达家码: 爱过，@sakura79 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@王兴宇 @Mr小眼眼眼眼眼眼儿 被译者序感动了[泪]

@斯里兰卡的透明空气 看看有没有运气

[哈哈]@ARGV:@小和平鸽 //@2gua: [doge] @ARGV

@Phodal //@Linux中国_笑语彦然: @王兴宇 @Mr小眼眼眼眼眼眼儿 被译者序感动了[泪]

还是得学门语言的~@YlesanderG

@网路冷眼 应该用过…吧[doge]

@金满鞋店

@钢铁意志-Tom

虽然现在已经不再使用Perl了，但是还是支持翻译人员的。转发之并at @李大尖

@kickluwen 你用过Perl吗 //@Linux中国_笑语彦然:@王兴宇 @Mr小眼眼眼眼眼眼儿 被译者序感动了[泪]

@爱捣乱的码客思

@acmicpc //@福尔摩喵42: 用过 @KDr2 //@王四哥达家码: 爱过，@sakura79 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

工作第一个任务就是perl写个脚本...... 当时还研究过与CPP交互。。嗯，现在忘光了。//@福尔摩喵42: 用过 @KDr2 //@王四哥达家码: 爱过，@sakura79 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@程序媛念茜

爱学习的大学生求赠送一本，已转发

@ShinRa326  //@喵音nekokoe:@梁嘚儿哈 //@ARGV:@小和平鸽 //@2gua: [doge] @ARGV

写测试，太好用了... //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@为什么总是昵称不合法 100斩！

@ScriptingGUY

好那我@胖麦仁 //@胖麦仁:记得amazon发布系统脚本要用perl... //@YangHugh:@kickluwen 你用过Perl吗 //@Linux中国_笑语彦然:@王兴宇 @Mr小眼眼眼眼眼眼儿 被译者序感动了[泪]

@yezx 人生苦短，请用perl//@Linux中国:哈哈哈，你可以at 你自己啊[生病]//@周老尸:我是如此的悲伤，身边竟然没有用过Perl语言的人。好在我有本书影印版。。。

哈哈，真希望你能中啊！！！

@开发者头条

好感动的序啊

好运。

perl爱好者，看我ID[嘻嘻]

@Nettying [挤眼]

@agentzh //@稀滥:perl爱好者，看我ID[嘻嘻]

@为八块而折腰的HomeBoy 好像你用过perl啊

re//@azrle: perl 其实挺好的 //@bnu_chenshuo:[哈哈]//@张岩cg: 你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

过百啦啥时候送书啊

我要发大运了[呵呵][呵呵]

@憨晗喊憾 //@稀滥:perl爱好者，看我ID[嘻嘻]

[笑cry][笑cry][笑cry][笑cry] //@bnu_chenshuo:[哈哈]//@张岩cg: 你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

3cn研究过几天//@王四哥达家码: 爱过，@sakura79 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

我啊我啊 //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

我吧

我去年还写 Perl 赚了点钱。。。//@王四哥达家码: 我当年也是写Perl和cgi的。。。//@时蝇喜箭:刘老师比四哥厉害，会所有以P开头的语言 //@刘鑫Mars: 我啊我啊 //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

到底谁用过Perl啊[思考]，@pscj //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@Ritablabla  //@王四哥达家码:我当年也是写Perl和cgi的。。。//@时蝇喜箭:刘老师比四哥厉害，会所有以P开头的语言 //@刘鑫Mars: 我啊我啊 //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@猴小葱dg //@Linux中国: 要不要译者签名啊[嘻嘻]//@cc诗诗ss-disylee:呜呜呜，看译者序看到我泪眼婆娑，好感动啊，感谢组长一直的努力奉献，打理了LCTT的日常之后还翻译了一本perl的书，虽然我不知道谁用perl，不过我@laiyonghao 写过某python书的作者，求中一本perl的书呀[哈哈]

//@刘鑫Mars:我啊我啊 //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@一个丧心病狂的好人 习惯用Perl处理很多东西，Linux Administrator

a //@Linux中国:→_→//@张岩cg:你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@不着边际

perl的优点是灵活，缺点是太灵活//@Linux中国:→_→//@张岩cg:你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@PAKTC

骆驼书 很经典 //@Linux中国:要不要译者签名啊[嘻嘻]//@cc诗诗ss-disylee:呜呜呜，看译者序看到我泪眼婆娑，好感动啊，感谢组长一直的努力奉献，打理了LCTT的日常之后还翻译了一本perl的书，虽然我不知道谁用perl，不过我@laiyonghao 写过某python书的作者，求中一本perl的书呀[哈哈]

@南非蜘蛛 豆总，送一本吧 //@Linux中国:要不要译者签名啊[嘻嘻]//@cc诗诗ss-disylee:呜呜呜，看译者序看到我泪眼婆娑，好感动啊，感谢组长一直的努力奉献，打理了LCTT的日常之后还翻译了一本perl的书，虽然我不知道谁用perl，不过我@laiyonghao 写过某python书的作者，求中一本perl的书呀[哈哈]

好紧张//@小火车Orz:@为八块而折腰的HomeBoy 好像你用过perl啊

这种。工作不好找啊。瞬间想起我那个学了几年lisp语言的同学，现在在某处集训。。。[doge]

cgi…… //@王四哥达家码:我当年也是写Perl和cgi的。。。//@时蝇喜箭:刘老师比四哥厉害，会所有以P开头的语言 //@刘鑫Mars: 我啊我啊 //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

感觉我要学一种脚本语言了… @十七君

@水凌---Alice

@xu-xiao-xing [doge][doge]

23333//@Linux中国:→_→//@张岩cg:你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@跑焦的大毛毛

岛国啊岛国 //@ghawkgu:用过，但是再也不想用了。这货在岛国还是有一定占有率的 //@sakura79:3cn研究过几天//@王四哥达家码: 爱过，@sakura79 //@装配脑袋: 到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@张骏1 可以at自己么…

我看看你来你看看我，就取对称 的那个值了。

[花心]

万一

@听奇奇怪该电音的小南 任性的@自己

@向琦 这位是高手

@牧童liuych 为测试届的懒人提供了有效的自动化工具。

还能给我一本呀//@Linux中国: 要不要译者签名啊[嘻嘻]//@cc诗诗ss-disylee:呜呜呜，看译者序看到我泪眼婆娑，好感动啊，感谢组长一直的努力奉献，打理了LCTT的日常之后还翻译了一本perl的书，虽然我不知道谁用perl，不过我@laiyonghao 写过某python书的作者，求中一本perl的书呀[哈哈]

@小L爱阅读 //@刘鑫Mars: 我啊我啊 //@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@欣然Sherry //@Linux中国: →_→//@张岩cg:你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

我只要知道这本书已经出版就可以了，买买买！ //@自己是自己的敌人: @PAKTC

看到你们的译者序我都哭了，肯定是一本好书，这序写的也太感动了吧！[泪][泪][泪]。既佩服你们，又让我想到很多。。。

@老闺妮的爸爸

@馒头家的花卷

@辰落凡间

学习学习

转发过百送一本，第一本Perl送出，@装配脑袋 来领书啦，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 喜欢Perl的还等什么？转发吧[哈哈]

@程序员编辑部 @GitLab

@淘念宗 perl

这就中啦，太幸运了[花心] //@Linux中国:转发过百送一本，第一本Perl送出，@装配脑袋 来领书啦，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 喜欢Perl的还等什么？转发吧[哈哈]

拿书

→_→//@张岩cg: 你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@进化生物学

虽然是解释型语言，但 Perl 的高效和优雅是有目共睹的。

之前在 win 平台，我偏好于选用 C++ 写一些程序，

如今，在 Linux 平台下， Perl 几乎是不二之选了。

这本书堪称 Perl 语言经典之作， 值得细细品读！

@王zun 自己算吗。。。//@Linux中国: 转发过百送一本，第一本Perl送出，@装配脑袋 来领书啦，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 喜欢Perl的还等什么？转发吧[哈哈]

@啦啦啦s- @jokerrrrrrrrrrrrv @鹿丶晗笑半步颠 我我我！！！！

Perl~~~//@Linux中国: 转发过百送一本，第一本Perl送出，@装配脑袋 来领书啦，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 喜欢Perl的还等什么？转发吧[哈哈]

转！//@Linux中国:转发过百送一本，第一本Perl送出，@装配脑袋 来领书啦，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 喜欢Perl的还等什么？转发吧[哈哈]

@和昶刘乾

@网络服务队 I Want It!

会不会是我的呢//@Linux中国: 转发过百送一本，第一本Perl送出，@装配脑袋 来领书啦，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 喜欢Perl的还等什么？转发吧[哈哈]

Repost

Repost

@Anarrima //@shengwenbo: @欣然Sherry //@Linux中国: →_→//@张岩cg:你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。

@Linux中国 @ToBeOptimusPrimer 拉低中奖率

@Linux中国 @ToBeOptimusPrime 拉低中奖率

@嘻皮悠

@努力的虾2739759502 每多一百才多一个人中奖，别想了

回复@DengZhiQi:反正我是从没中过。

时间仓促，翻译还有很多值得改进之处。大家多提宝贵意见～

右边还是一只比较搞笑的猴子[赞]//@张岩cg:你给一百万只猴子每猴一台电脑让它们乱敲，总有一只能敲出java程序来，剩下的敲出来的都是perl。你给我一台电脑敲程序，保证次次敲出来都是perl。//@装配脑袋:到底谁用过Perl啊[思考]，@张岩cg //@Skogkatt: @装配脑袋 领书喽[花心]

@bitslife @BGI-王通 @BioMedCentral中国 @测序中国 //@嘻皮悠: @努力的虾2739759502 每多一百才多一个人中奖，别想了

老大和小眼儿翻的 这理由还不够？

@不要温和地走进每个良夜

@YixIaNg-

@涟滟晴方 //@Linux中国_笑语彦然:@王兴宇 @Mr小眼眼眼眼眼眼儿 被译者序感动了[泪]

@十四大盗

@whyzyzy 转发获赠Perl图书

老大和小眼儿翻的 这理由还不够？

@不要温和地走进每个良夜

@杉树林-罗 看起~~~

@ARGV 琳哥赐予我perl神力吧~

@yazhouzou 大神，又有书了。

@辣手股市锅水锤

like perl

老大和小眼儿翻的 这理由还不够？

@不要温和地走进每个良夜

@CurrentTen

老大和小眼儿翻的 这理由还不够？

@hhenihao

恭喜微博用户@一个丧心病狂的好人 获赠第二本《精通perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 转发超过300送出第三本哦[馋嘴]

@卩灬葱葱葱丨

盖高楼为精通perl@布满枫叶的路幸福

@paper虐我千百遍我待paper如初恋

perl是啥？

@启明星IT课堂

第一次中奖哎

老大和小眼儿翻的 这理由还不够？

还是希望好好了解下这门拉里.沃尔大神创造的语言！

@不要温和地走进每个良夜

期待@品味食商

玩过吗@声音de故事

友情来顶，也期待更多的Perl图书问世[哈哈]

老大和小眼儿翻的 这理由还不够？

友情来顶，也期待更多的Perl图书问世[哈哈]

@不要温和地走进每个良夜

回复@SeonWater:[巨汗] 以前买过一本perl 木有然后了

Perl，值得一看啊！

@刘老烦 [思考]猜测砖家玩过Perl~

坐等消息

@刘老烦 [思考]猜测砖家玩过Perl~

好好学习，天天向上！@陈囧___

@石吉飘

@石吉飘 用过

@不要温和地走进每个良夜

@SCAU-耀中Accelerated

@阿煦同学 [来]

拉低中奖率

@不要温和地走进每个良夜

@a栋-sticker

@王神锦丶 [笑哈哈]

[给力]

这是好书，骆驼书全系列都有，看了 2/3 已经受益匪浅。

建议大家都来看 @安曼法云 @陆家嘴灰太狼

@秦蒋慧楠

@knight一叶知秋 //@一个丧心病狂的好人:第一次中奖哎

老大和小眼儿翻的 这理由还不够？

@袁立 @Linux中国 @图灵教育 这本书堪称 Perl 语言经典之作， 值得一读！

@驴小兔在地球表面种太阳

@bwangsmile

@段郎说事

老大和小眼儿翻的 这理由还不够？

@不要温和地走进每个良夜

好像没用过@女人

老大和小眼儿翻的 这理由还不够？

@不要温和地走进每个良夜

like perl 更like python

这是一门有着分裂人格的语言。Perl 同时是很简单并且很富有的语言。Perl之所以强大, 是因为有CPAN, CPAN上面有无数的开源模块。

like perl 更like python

@杨帆

perl 强大的语言

like perl and likepython@Linux中国_笑语彦然

@ddh99 @Shadow_Canna 快来看书

@郭仔的博客 爱计算机和数学的理工男求一本！！已转发！

这种高端的东西身边怎么可能会有人用@Linuxs 嫑打我[笑cry]

@-三月二十八-

希望再送个徽章[爱你][爱你][爱你]

江湖救急。。

@perl

老大和小眼儿翻的 这理由还不够？

@不要温和地走进每个良夜

@C科技

@perl

@不要温和地走进每个良夜

@CocoaChina

@不要温和地走进每个良夜

@髦仔仔

@图灵教育 @慕课网 @Fenng

@玩拼图的阿依达 @45_920_911 @流冬冬 @宝妞的胖爸爸 @陈镝-花生米XT

@saplmm

送俺一本如何呀@-我脑中的橡皮擦-

这个人，@Linux中国 可好[偷笑] 喜欢的程序员/媛们赶快下手，最后一天啦//@Linux中国: 《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信

求转发//@Linux中国: 《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 会有第四本诞生吗？

@稀土部队  //@Linux中国:《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 会有第四本诞生吗？

@蜜斯薯-脑洞该补啦

老大和小眼儿翻的 这理由还不够？

@Linux中国_笑语彦然 会有我的第四本吗？[嘻嘻][嘻嘻][嘻嘻]//@Linux中国:《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 会有第

@louissimons  //@Linux中国:《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 会有第四本诞生吗？

我身边用Perl的就剩下我导师了吧…//@LinuxStory:这个人，@Linux中国 可好[偷笑] 喜欢的程序员/媛们赶快下手，最后一天啦//@Linux中国: 《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄

偶买糕的，偶中奖勒，大赞Linux cn//@Linux中国: 《精通Perl（第二版）》活动最后一天，喜欢这本书的小伙伴速速转起~ 第三个获奖名单火热出炉，恭喜@yezx 获赠第三本《精通Perl（第二版）》，请把姓名、电话、邮寄地址、邮编以及获赠的图书名称私信@Linux中国_笑语彦然 会有第四本诞生吗？

Perl 是因为专业需要。毕竟生物信息，加上对电脑编程挺感兴趣，在学习ing

# [博文赠书]《精通Perl（第2版）》点评赠书

本书由Linux中国站长wxy ＆ [Linux中国翻译组](http://lctt.github.io/)译者Tinyeyeser共同翻译并亲力推荐，是通往Perl大师之路必读经典书籍，它体现了一种编程思维，能够帮你解决很多实际的问题。

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

### **活动内容**

活动时间：2015年3月19日-2015年3月30日

活动要求：

活动形式一：在新浪微博转发本微博，并@ 一位你身边用过perl语言的人，即有机获赠本书。每转发过百，送出一本。

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

活动形式二：在Linux中国（[http://linux.cn](http://linux.cn/)）试读图书样张，并进行评论，或说说你**喜爱perl的理由，**分享一下**使用perl 过程中遇到过哪些有趣/神奇的事情**。

活动奖品：《精通Perl（第2版）》图书一本。

**特此注意：**

**1、本站论坛评论方式参与的用户，评论前需登录您的Linux中国账号，匿名评论无效**

**2、微博用户参与活动，活动结束后注意查看**[@Linux中国\_笑语彦然](http://weibo.com/2797972581)** 微博公布的中奖名单或留意您的微博私信，本站用户参与活动，注意查看您注册Linux中国时所填写的邮箱。 我们会通过微博私信以及电子邮件两种方式获取您的邮寄信息。**

### 基本信息

作者： (美)brian d foy

译者： 王兴宇 刘宸宇

出版社：电子工业出版社

ISBN：9787121254192

出版日期：2015 年3月

开本：16开

页码：395

版次：2-1

### 编辑推荐

- 探索高级的正则表达式功能
- 如何避免程序的常见安全问题
- 对 Perl 程序的性能分析和基准测试可以让你发现改进之处
- 清理 Perl 代码，使之更加直观和易读
- 了解 Perl 如何持续跟踪软件包内的变量
- 动态定义子程序
- 不必改动原有代码即可提升模块
- 使用位操作和位向量更有效地存储更大的数据
- 学习如何检测 Perl 中未报告的错误
- 深入学习日志、数据持久化和绑定变量的魔法

### 内容简介

《精通Perl（第2版）》作者brian d foy 用他生动的第一人称视角向各位读者介绍了精彩的Perl 高级语言知识以及丰富的实战工具与实用技巧。《精通Perl（第2版）》各章的内容相对独立，您完全可以根据自己的兴趣或需要直达你所需要的章节。
《精通Perl（第2版）》的读者主要面对具有较多经验的Perl 编程人员。阅读本书前，建议阅读本书的姊妹篇《Perl 语言入门》和《Perl 进阶》。作者在这本书里针对调试、优化、错误和日志等方面均有深入解析，也揭示了Perl 中如绑定变量、持久化存储等各种魔法般的特性和功能的实现细节和用途。书中还对如何开发、调试自己的模块，以及如何做出更适合使用的模块做了详细介绍。
总之，本书可以作为读者在向Perl 高手进阶过程中的一个助力器，希望读者能在阅读过程中深入思考，加入自己的理解，用Perl 来完成一件件神奇的事情。

### 作者简介

brian d foy是一名多产的 Perl 培训讲师和作家，其出版的 The Perl Review 帮助人们通过教育、咨询、代码审查等方面来学习和使用 Perl。

### 译者序

　　**--献给逝去的和新生的纪念**
　　作为译者，总是有一些特权，比如说，可以在翻译的书前面，用铅字写一些自己想说的话。当然，作为读者，您可能不喜欢，不过，请您谅解我们激动的心情，愿意的话，您可以看看我们的吐槽。
　　我的父亲是一个传统的老知识分子，虽然我自己并不成器，但是他一直告诉我，要我写一些东西出来，留一些文字，因此能出版一些自己的文字一直是我心里长久的梦想。不过，我在各种方面的积淀还远远不够，所以直到现在也没有足以称道的文字可以出版。
　　在一个偶然的机会，我得到了付睿老师的委托，和刘宸宇一同接下了这本《精通Perl》的翻译工作。虽然翻译工作和出版自己的文字还不同，但是我想这也是我给去世的父亲的一点纪念吧。
　　Perl 我用了有十多年了吧，这门语言基本上算是我从事互联网行业以来第一门真正掌握和熟悉的语言了。最初是从一本薄薄的《Perl语言入门》，大约花了一周入门的。当时正值第一波的互联网热潮，工作方面使用Perl甚多，也陆续看过Perl方面的各种书籍，但是从来没有想到自己会有机会翻译一本Perl方面的书，更别说是这本经典Perl三部曲之一的《精通Perl》。
　　虽然现在Perl用的比较少了，但是今年Larry Wall先生来华访问时，还是专门去朝觐了一番。然后不久，就接到了付睿老师的委托，可谓有缘。
　　我平时的工作比较忙，而且也组织运作着一个翻译组：LCTT（Linux中国翻译组- [http://lctt.github.io/](http://lctt.github.io/），业余时间都占满了，所以当时对是否要接下翻译工作有些犹豫。我和LCTT的核心成员之一刘宸宇（tinyeyeser）商量了一番，感觉这个事情还是很有意义的，所以我们两个共同接下了对这本书的翻译工作。王兴宇)），业余时间都占满了，所以当时对是否要接下翻译工作有些犹豫。我和LCTT的核心成员之一刘宸宇（tinyeyeser）商量了一番，感觉这个事情还是很有意义的，所以我们两个共同接下了对这本书的翻译工作。 王兴宇

　　我要把这本书献给我刚出生的小天使，翻译完交稿不到10天，她便降临到我的世界里，成为了我生活中不可缺少的一部分。
　　一直以来，我喜欢翻译对话、评论、调侃性质的技术博客等文章，钟情于感受那种面对面交流的感觉；而技术书籍这种相对较为正式的翻译，对于我来说，反而是件痛苦的事，哪怕只翻译半本（前言、附录及前8章）。但是当我真正深入本书，与brian d foy 正面交锋时，我发现，这不正是我所熟悉的面对面的对话吗？是的！不同于一般的技术书籍，大师的行文，几乎所有的主观句子都是以第一人称"I"开头，这就好像他坐在你面前，手把手讲授一样，生动、客观、幽默、立体！因此，我和王兴宇（wxy）在翻译的时候，把大部分"I"翻译成了"我们"，这样既忠于作者的语境，也更贴合中国课堂上老师的讲课习惯。
　　冯德伦的电影《太极》里有一句词："人这一辈子，干好一件事就足够了"。我自认为不是一个有长性的人，一件事情很难坚持做到最好，总是觉得60分及格就可以了。因此，翻译过程中一度出现了厌烦情绪，但我很高兴自己成功坚持了下来。我要感谢几个月来，整个翻译过程中一直陪伴我督促我的媳妇儿，她怀着身孕，每当我消沉的时候，都会在我耳边给予
　　我支持和鼓励，"翻译完了吗？翻译完了吗？赶紧翻译啊！好好翻译啊！"每个成功男人的背后，都有一个伟（lao）大（dao）的女人。我爱这个唠叨的女人！ 刘宸宇

　　Perl 作为老牌的编程语言，其成熟度和应用广泛令人称道，也是系统管理员和科研工作所必备的技能之一，因此，我们希望这本书的再版翻译，能够帮助读者进一步掌握Perl 语言的应用，也希望能够为开源社区反哺更多的智慧。
　　将来，如果有机会，我们也希望这本书能够以某种开源方式，分享给社区，并接受社区的不断反馈和完善，成为一本真正有生命力的书籍。
　　一本书的出版，其实要感谢很多人，虽然俗套，但是我们觉得依然有必要，占用一点小小的空间感谢他们： 感谢我们的家人的支持。 感谢我们的同事和领导的支持。 感谢编辑付睿老师的信任和委托。 感谢编辑李利健老师的辛勤审校。 感谢所有不知名的工作人员的辛勤工作。 王兴宇＆刘宸宇

试读样章： [【第四章】](http://images.china-pub.com/ebook4590001-4595000/4594222/ch04.pdf) [【第五章】](http://images.china-pub.com/ebook4590001-4595000/4594222/ch05.pdf)

购买链接：<http://product.china-pub.com/4594222>