使用 GIT 备份 linux 上的网页文件

[哈哈]猛然发现换LOGO了

功能很强大，步骤很复杂。

我的备份就一个脚本的事就能全部备份到Dropbox里<br />
在服务器上安装乱七八糟的软件，不干！

专业安防解决方案服务商

1、定制网络高清一体机机芯，模拟高清一体机机芯

2、定制Hi3516A高清网络摄像机，高清一体机机芯

3、定制Hi3531 Hi3532 Hi3521 Hi3520A Hi3520D Hi3515A  DVR软硬件

4、定制Hi3535 Hi3531 Hi3521 Hi3520A Hi3520D Hi3515A  NVR软硬件

5、定制Hi3531 Hi3521 Hi3520A Hi3520D Hi3515A  DVR/NVR混合型软硬件

6、定制Hi3518E Hi3518C Hi3518A Hi3516C卡片机 摇头机软硬件

7、定制TI DM8127  DM8148 DM8168软硬件

8、定制车牌识别  人脸识别等图像处理 视觉处理软件

联系QQ360379857

![](/data/attachment/album/201410/13/174421ad1aqg349jzozpow.png)

BUP 并不单纯是 Git, 而是一款基于 Git 的软件. 一般情况下, 我使用 rsync 来备份我的文件, 而且迄今为止一直工作的很好. 唯一的不足就是无法把文件恢复到某个特定的时间点. 因此, 我开始寻找替代品, 结果发现了 BUP, 一款基于 git 的软件, 它将数据存储在一个仓库中, 并且有将数据恢复到特定时间点的选项.

要使用 BUP, 你先要初始化一个空的仓库, 然后备份所有文件. 当 BUP 完成一次备份是, 它会创建一个还原点, 你可以过后还原到这里. 它还会创建所有文件的索引, 包括文件的属性和验校和. 当要进行下一个备份时, BUP 会对比文件的属性和验校和, 只保存发生变化的数据. 这样可以节省很多空间.

### 安装 BUP (在 Centos 6 & 7 上测试通过)

首先确保你已经安装了 RPMFORGE 和 EPEL 仓库

```
[techarena51@vps ~]$ sudo yum groupinstall "Development Tools"
[techarena51@vps ~]$ sudo yum install python python-devel
[techarena51@vps ~]$ sudo yum install fuse-python pyxattr pylibacl
[techarena51@vps ~]$ sudo yum install perl-Time-HiRes
[techarena51@vps ~]$ git clone git://github.com/bup/bup
[techarena51@vps ~]$ cd bup
[techarena51@vps ~]$ make
[techarena51@vps ~]$ make test
[techarena51@vps ~]$ sudo make install

```

对于 debian/ubuntu 用户, 你可以使用 "apt-get build-dep bup". 要获得更多的信息, 可以查看 <https://github.com/bup/bup>

在 CentOS 7 上, 当你运行 "make test" 时可能会出错, 但你可以继续运行 "make install".

第一步时初始化一个空的仓库, 就像 git 一样.

```
[techarena51@vps ~]$ bup init

```

默认情况下, bup 会把仓库存储在 "~/.bup" 中, 但你可以通过设置环境变量 "export BUP\_DIR=/mnt/user/bup" 来改变设置.

然后, 创建所有文件的索引. 这个索引, 就像之前讲过的那样, 存储了一系列文件和它们的属性及 git 目标 id (sha1 哈希表). (属性包括了软链接, 权限和不可改变字节)

```
bup index /path/to/file
bup save -n nameofbackup /path/to/file

#Example
[techarena51@vps ~]$ bup index /var/www/html
Indexing: 7973, done (4398 paths/s).
bup: merging indexes (7980/7980), done.

[techarena51@vps ~]$ bup save -n techarena51 /var/www/html

Reading index: 28, done.
Saving: 100.00% (4/4k, 28/28 files), done.
bloom: adding 1 file (7 objects).
Receiving index from server: 1268/1268, done.
bloom: adding 1 file (7 objects).

```

"BUP save" 会把所有内容分块, 然后把它们作为对象储存. "-n" 选项指定备份名.

你可以查看备份列表和已备份文件.

```
[techarena51@vps ~]$ bup ls
local-etc    techarena51  test
#Check for a list of backups available for my site
[techarena51@vps ~]$ bup ls techarena51
2014-09-24-064416  2014-09-24-071814  latest
#Check for the files available in these backups
[techarena51@vps ~]$ bup ls techarena51/2014-09-24-064416/var/www/html
apc.php                      techarena51.com              wp-config-sample.php         wp-load.php

```

在同一个服务器上备份文件从来不是一个好的选择. BUP 允许你远程备份网页文件, 但你必须保证你的 SSH 密钥和 BUP 都已经安装在远程服务器上.

```
bup index path/to/dir
bup save-r remote-vps.com -n backupname path/to/dir

```

### 例子: 备份 "/var/www/html" 文件夹

```
[techarena51@vps ~]$bup index /var/www/html
[techarena51@vps ~]$ bup save -r user@remotelinuxvps.com: -n techarena51 /var/www/html
Reading index: 28, done.
Saving: 100.00% (4/4k, 28/28 files), done.
bloom: adding 1 file (7 objects).
Receiving index from server: 1268/1268, done.
bloom: adding 1 file (7 objects).

```

### 恢复备份

登入远程服务器并输入下面的命令

```
[techarena51@vps ~]$bup restore -C ./backup techarena51/latest

#Restore an older version of the entire working dir elsewhere
[techarena51@vps ~]$bup restore -C /tmp/bup-out /testrepo/2013-09-29-195827
#Restore one individual file from an old backup
[techarena51@vps ~]$bup restore -C /tmp/bup-out /testrepo/2013-09-29-201328/root/testbup/binfile1.bin

```

唯一的缺点是你不能把文件恢复到另一个服务器, 你必须通过 SCP 或者 rsync 手动复制文件.

通过集成的 web 服务器查看备份.

```
bup web
#specific port
bup web :8181

```

你可以使用 shell 脚本来运行 bup, 并建立一个每日运行的定时任务.

```
#!/bin/bash

bup index /var/www/html
bup save -r user@remote-vps.com: -n techarena51 /var/www/html

```

BUP 并不完美, 但它的确能够很好地完成任务. 我当然非常愿意看到这个项目的进一步开发, 希望以后能够增加远程恢复的功能.

你也许喜欢阅读这篇——使用[inotify-tools](http://techarena51.com/index.php/inotify-tools-example/)实时文件同步.

---

via: <http://techarena51.com/index.php/using-git-backup-website-files-on-linux/>

作者：[Leo G](http://techarena51.com/) 译者：[wangjiezhe](https://github.com/wangjiezhe) 校对：[Caroline](https://github.com/carolinewuyan)

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


Linux Kernel 3.17 带来了很多新特性

Summary: Linus Torvalds已经发布了最新的稳定版内核3.17。  Torvalds以他典型的放任式的口吻在Linux内核邮件列表中解释说：  过去的一周很平静，我对3.17的如期发布没有疑虑（相对于乐观的我应该早一周发布么的计划而言）。  由于假期，Linux说他还没有开始合并3.18的改变：  我马上要去旅行了- 在我期盼早点发布的时候我希望避免一些事情。这意味着在3.17发布后，我不会在下周非常活跃地合并新的东西，并且下下周是LinuxCon EU  Linux 3.17有哪些新的? 最新版本的 Linux 3.17 加入了最新的改进，硬件支持，修复等等。范围从不明觉厉的 - 比如：me

Repost

公司的ubuntu14.04已经更新内核 笔记本就不更新了 还是跟随官方推送比较好

「新的包括Rockchip RK3288和AllWinner A23 SoC的ARM芯片支持」@瑞芯-Rockchip

在用最新的内核，只是不知道有什么不同，反正在某些方面已经无所谓啦。

Linus Torvalds已经发布了最新的稳定版内核3.17。

![](/data/attachment/album/201410/14/000935vh874dq4r9s4hll6.jpg)

Torvalds以他典型的[放任式](http://lkml.iu.edu/hypermail/linux/kernel/1410.0/02818.html)的口吻在Linux内核邮件列表中解释说：

>
> “过去的一周很平静，我对3.17的如期发布没有疑虑（相对于乐观的“我应该早一周发布么”的计划而言）。”
>
>
>

由于假期，Linux说他还没有开始合并3.18的改变：

>
> “我马上要去旅行了- 在我期盼早点发布的时候我希望避免一些事情。这意味着在3.17发布后，我不会在下周非常活跃地合并新的东西，并且下下周是LinuxCon EU”
>
>
>

### Linux 3.17有哪些新的?

最新版本的 Linux 3.17 加入了最新的改进，硬件支持，修复等等。范围从不明觉厉的 - 比如：[memfd 和 文件密封补丁](http://lwn.net/Articles/607627/) - 到大多数人感兴趣的，比如最新硬件的支持。

下面是这次发布的一些亮点的列表，但它们并不详尽：

* Microsoft Xbox One 控制器支持 (没有震动反馈)
* 额外的Sony SIXAXIS支持改进
* 东芝 “主动防护感应器” 支持
* 新的包括Rockchip RK3288和AllWinner A23 SoC的ARM芯片支持
* 安全计算设备上的“跨线程过滤设置”
* 基于Broadcom BCM7XXX板卡的支持（用在不同的机顶盒上）
* 增强的AMD Radeon R9 290支持
* Nouveau 驱动改进，包括Kepler GPU修复
* 包含Intel Broadwell超级本上的Wildcatpoint Audio DSP音频支持

### 在Ubuntu上安装 Linux 3.17

虽然被列为稳定版，但是目前对于大多数人而言只有很少的功能需要我们“现在去安装”。

但是如果你很耐心——**更重要的是**——有足够的技能去处理从中导致的问题，你可以通过在由Canonical维护的主线内核存档中找到一系列合适的包安装在你的Ubuntu 14.10中，升级到Linux 3.17。

**警告：除非你知道你正在做什么，不要尝试从下面的链接中安装任何东西。**

* [访问Ubuntu内核主线存档](http://kernel.ubuntu.com/%7Ekernel-ppa/mainline/?C=N;O=D)

---

via: <http://www.omgubuntu.co.uk/2014/10/linux-kernel-3-17-whats-new-improved>

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

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


Linux日历程序California 0.2 发布了

Summary: 随着上月的Geary和Shotwell的更新，非盈利软件套装Yobra又回来了，同时带来了是新的California日历程序。 一个合格的桌面日历是工作井井有条（以及想要井井有条）的必备工具。Chrome Web Store上广受欢迎的Sunrise应用的发布让我们的选择比以前更丰富了，而California又为之增添了新的生力军！ Yorba的Jim Nelson在Yorba博客上写道：发生了很多变化，接着写道：...很高兴的告诉大家，初次发布比我预想的加入了更多的特性。  California 0.2在GNOME上看上去棒极了。 最突出变化的是添加了自然语言解析器。这使得添加事件更容易。你可以直接

@我的印象笔记

**随着[上月的Geary和Shotwell的更新](http://www.omgubuntu.co.uk/2014/09/new-shotwell-geary-stable-release-available-to-downed)，非盈利软件套装Yobra又回来了，同时带来了是新的[California](https://wiki.gnome.org/Apps/California)日历程序。**

一个合格的桌面日历是工作井井有条（以及想要井井有条）的必备工具。[Chrome Web Store上广受欢迎的Sunrise应用](http://www.omgchrome.com/sunrise-calendar-app-for-google-chrome/)的发布让我们的选择比以前更丰富了，而California又为之增添了新的生力军！

Yorba的Jim Nelson在Yorba博客上写道：“发生了很多变化“，接着写道：“...很高兴的告诉大家，初次发布比我预想的加入了更多的特性。”

![California 0.2 Looks Great on GNOME](/data/attachment/album/201410/14/003640uyeurwaa8rm73jy0.jpg)

*California 0.2在GNOME上看上去棒极了。*

最突出变化的是添加了“自然语言”解析器。这使得添加事件更容易。你可以直接输入“**在下午2点就Nachos会见Sam**”接着California就会自动把它安排下接下来的星期一的下午两点，而不必你手动输入位的信息（日期，时间等等）。（LCTT 译注：显然你只能输入英文才行）

![](/data/attachment/album/201410/14/003642jmzp6p9ljj5j9tkm.png)

这个功能和我们我们在5月份评估开发版本时一样好用，甚至还修复了一个bug：事件重复。

要创建一个重复时间（比如：“每个星期四搜索自己的名字”），你需要在日期前包含文字“every”（每个）。要确保地点也在内（比如：中午12点和Samba De Amigo在Boston Tea Party喝咖啡）。条目中需要有“at”或者“@”。

至于详细信息，我们可以见[GNOME Wiki上的快速添加页面](https://wiki.gnome.org/Apps/California/HowToUseQuickAdd)：

其他的改变包括：

-以‘月’和‘周’视图查看事件 -添加/删除 Google，CalDAV和web（.ics）日历 -改进数据服务器整合 -添加/编辑/删除远程事件（包括重复事件） -用自然语言安排计划
 -按下F1获取在线帮助 -新的动画和弹出窗口

### 在Ubuntu 14.10上安装 California 0.2

作为一个GNOME 3的程序，它在 Gnome 3下运行的外观和体验会更好。

不过，Yorba也没有忽略Ubuntu用户。他们已经努力（也可以说是耐心地）地解决导致Ubuntu需要同时安装GTK+和GNOME的主题问题。结果就是在Ubuntu上程序可能看上去有点错位，但是同样工作的很好。

California 0.2在[Yorba稳定版软件PPA](https://launchpad.net/%7Eyorba/+archive/ubuntu/ppa?field.series_filter=utopic)中可以下载，只用于Ubuntu 14.10。

---

via: <http://www.omgubuntu.co.uk/2014/10/california-calendar-natural-language-parser>

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

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


Ubuntu 有这功能吗？－回答4个新用户最常问的问题

Summary: **在谷歌输入Can Ubunt，一系列的自动建议会展现在你面前。这些建议都是根据最近搜索用户最频繁检索而形成的。 对于Linux老用户来说，他们都胸有成竹的回答这些问题。但是对于新用户或者那些还在探索类似Ubuntu这样的发行版是否适合的人来说，他们不是十分清楚这些答案。这都是中肯，真实而且是基本的问题。 所以，在这片文章，我将会去回答4个最常会被搜索到的"Can Ubuntu...?"问题。 Ubuntu可以取代Windows吗？  Windows 并不是每个人都喜欢或都必须的 是的。Ubuntu（和其他Linux发行版）是可以安装到任何一台有能力运行微软系统的电脑

Fedora, OpenSUSE也没好到哪里去嘛

頭像……

=_=//@Linux中国:→_→//@Maxiee_SIGHUP: 搜了下 can Gentoo ,结果全是“Gentoo can’t XXX”的问题……倒是第一条结果很逗“can gentoo penguins fly”……

回复@陈伟琪在肇庆:怎么？

回复@Linux中国:沒有之前的好看。

回复@陈伟琪在肇庆:[泪]

搜了下can fedora，然后网页挂了//@Linux中国:是老滚挂么？[嘻嘻]//@周源M: 搜下can arch linux，第一条竟然是can arch linux be stable[哈哈] //@Linux中国:→_→ //@Maxiee_SIGHUP: 搜了下 can Gentoo ,结果全是“Gentoo can’t XXX”的问题……倒是第一条结果很逗“can gentoo penguins fly”……

用过一段时间ubuntu，然后换iMac了。ubuntu上上网听听歌是够了。//@Linux中国: 是老滚挂么？[嘻嘻]//@周源M: 搜下can arch linux，第一条竟然是can arch linux be stable[哈哈]

噗哈哈哈哈哈哈哈//@Linux中国:是老滚挂么？[嘻嘻]//@周源M: 搜下can arch linux，第一条竟然是can arch linux be stable[哈哈] //@Linux中国:→_→ //@Maxiee_SIGHUP: 搜了下 can Gentoo ,结果全是“Gentoo can’t XXX”的问题……倒是第一条结果很逗“can gentoo penguins fly”……

[哈哈]挂了上官网看下怎么回事，不过太久没有滚过的话估计挂的机率超级大，话说，我用arch那么久，没有很不稳定的说，第一条竟然是can arch linux be stable。。。。。[可怜] //@Linux中国:是老滚挂么？[嘻嘻] //@周源M: 搜下can arch linux，第一条竟然是can arch linux be stable[哈哈]

我觉得如果用来办公只是简单用用offic之类的，那完全可以用deepin等linux发行版来代替windows。

![](/data/attachment/album/201410/14/104815fp8pp2yppzn9lsnz.png)

\*\*在谷歌输入‘Can Ubunt[u]’，一系列的自动建议会展现在你面前。这些建议都是根据最近搜索用户最频繁检索而形成的。

对于Linux老用户来说，他们都胸有成竹的回答这些问题。但是对于新用户或者那些还在探索类似Ubuntu这样的发行版是否适合的人来说，他们不是十分清楚这些答案。这都是中肯，真实而且是基本的问题。

所以，在这片文章，我将会去回答4个最常会被搜索到的"Can Ubuntu...?"问题。

### Ubuntu可以取代Windows吗？

![Windows isn’t to everyones tastes — or needs](/data/attachment/album/201410/14/104818wfgri5g1571r8cx1.png)

*Windows 并不是每个人都喜欢或都必须的*

是的。Ubuntu（和其他Linux发行版）是可以安装到任何一台有能力运行微软系统的电脑。

无论你觉得**应不应该**取代它，要不要替换只取决于你自己的需求。

例如，你在上大学，所需的软件都只是Windows而已。暂时而言，你是不需要完全更换你的系统。对于工作也是同样的道理。如果你工作所用到的软件只是微软Office, Adobe Creative Suite 或者是一个AutoCAD应用程序，不是很建议你更换系统，坚持你现在所用的软件就足够了。

但是对于那些用Ubuntu完全取代微软系统的我们，Ubuntu 提供了一个安全的桌面工作环境。这个桌面工作环境可以运行与支持很广的硬件环境。基本上，每个东西都有软件的支持，从办公套件到网页浏览器，视频应用程序，音乐应用程序到游戏。

### Ubuntu 可以运行 .exe文件吗？

![你可以在Ubuntu运行一些Windows应用程序。](/data/attachment/album/201410/14/104819dbbdn6118pqjge7z.png)

*你可以在Ubuntu运行一些Windows应用程序*

是可以的，尽管这些程序不是一步到位，或者不能保证运行成功。这是因为这些软件原本就是在Windows下运行的，本来就与其他桌面操作系统不兼容，包括Mac OS X 或者 Android （安卓系统）。

那些专门为Ubuntu（和其他 Debian 系列的 Linux 发行版本）的软件安装包都是带有“.deb”的文件后缀名。它们的安装过程与安装 .exe 的程序是一样的 －双击安装包，然后根据屏幕提示完成安装。 （LCTT 译注：RedHat 系统采用.rpm 文件，其它的也有各种不同的安装包格式，等等，作为初学者，你可以当成是各种压缩包格式来理解）

但是Linux是很多样化的。它使用一个名为"Wine"的兼容层，可以运行许多当下很流行的应用程序。 (Wine不是一个模拟器，但是简单来看可以当成一个快捷方式。）这些程序不会像在Windows下运行得那么顺畅，或者有着出色的用户界面。然而，它足以满足日常的工作要求。

一些很出名的Windows软件是可以通过Wine来运行在Ubuntu操作系统上，这包括老版本的Photoshop和微软办公室软件。 有关兼容软件的列表，[参照Wine应用程序数据库](https://appdb.winehq.org/)。

### Ubuntu会有病毒吗？

![它可能有错误，但是它并没有病毒](/data/attachment/album/201410/14/104820kzf5i888vitz9fiv.jpg)

*它可能有错误，但是它并有病毒*

理论上，它会有病毒。但是，实际上它没有。

Linux发行版本是建立在一个病毒，蠕虫，隐匿程序都很难被安装，运行或者造成很大影响的环境之下的。

例如，很多应用程序都是在没有特别管理权限要求，以普通用户权限运行的。病毒要访问系统关键部分的请求也是需要用户管理权限的。很多软件的提供都是从那些维护良好的而且集中的资源库，例如Ubuntu软件中心，而不是一些不知名的网站。 由于这样的管理使得安装一些受感染的软件的几率可以忽略不计。

你应不应该在Ubuntu系统安装杀毒软件？这取决于你自己。为了自己的安心，或者如果你经常通过Wine来使用Windows软件，或者双系统，你可以安装ClamAV。它是一个免费的开源的病毒扫描应用程序。你可以在Ubuntu软件中心找到它。

你可以在Ubuntu维基百科了解更多关于病毒在Linux或者Ubuntu的信息。 [Ubuntu 维基百科](https://help.ubuntu.com/community/Antivirus)。

### 在Ubuntu上可以玩游戏吗？

![Steam有着上百个专门为Linux设计的高质量游戏。](/data/attachment/album/201410/14/104822lih3dihlihh0e3iz.jpg)

*Steam有着上百个专门为Linux设计的高质量游戏*

当然可以！Ubuntu有着多样化的游戏，从传统简单的2D象棋，拼字游戏和扫雷游戏，到很现代化的AAA级别的要求显卡很强的游戏。

你首先可以去 **Ubuntu 软件中心**。这里你会找到很多免费的，开源的和收费的游戏，包括广受好评的独立制作游戏，像World of Goo 和Braid。当然也有其他传统游戏的提供，例如，Pychess(国际象棋)，four-in-a-row（四子棋）和Scrabble clones（猜字拼字游戏）。

对于游戏狂热爱好者，你可以安装**Steam for Linux**。在这里你可以找到各种这样最新最好玩的游戏。

另外，记得留意这个网站：[Humble Bundle](https://www.humblebundle.com/)。每个月都会有两周的这种“只买你想要的”的套餐。作为游戏平台，它是对Linux特别友好的支持者。因为每当一些新游戏出来的时候，它都保证可以在Linux下搜索到。

---

via: <http://www.omgubuntu.co.uk/2014/08/ubuntu-can-play-games-replace-windows-questions>

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

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


Linux有问必答：如何修复“X11 forwarding request failed on channel 0”错误

Summary: 问题: 当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" （X11 转发请求在通道0上失败）的错误。 我为什么会遇到这个错误，并且该如何修复它？  首先，我们假设你已经正确启用了SSH的X11转发。  如果你在登录时遇到"X11 forwarding request failed on channel 0" （X11 转发请求在通道0上失败），这里可能有不同的原因，解决的方法也不同。 方案一 出于安全原因，OpenSSH服务默认将X11转发请求绑定到本地回环地址上，并且在DISPLAY环境变量中将主机名设置为localhost。

>
> **问题**: 当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" （X11 转发请求在通道0上失败）的错误。 我为什么会遇到这个错误，并且该如何修复它？
>
>
>

首先，我们假设你已经正确启用了[SSH的X11转发](http://xmodulo.com/2012/11/how-to-enable-x11-forwarding-using-ssh.html)。

![](/data/attachment/album/201410/15/210304f7pu3n4pvt79j0rn.png)

如果你在登录时遇到"X11 forwarding request failed on channel 0" （X11 转发请求在通道0上失败），这里可能有不同的原因，解决的方法也不同。

![](/data/attachment/album/201410/15/211718yj3fnfdd71ls7cid.jpg)

### 方案一

出于安全原因，OpenSSH服务默认将X11转发请求绑定到本地回环地址上，并且在DISPLAY环境变量中将主机名设置为“localhost”。在这样的设定下，一些 X11客户端不能正确处理X11转发，这会导致报告中的错误。要解决这个问题，在/etc/ssh/sshd配置文件中加入下面这几行，它可以将X11转发请求绑定到外网卡地址上。

```
$ sudo vi /etc/ssh/sshd_config

```

---

```
X11Forwarding yes
X11UseLocalhost no

```

重启SSH使设置生效:

```
$ sudo /etc/init.d/ssh restart (Debian 6, Ubuntu or Linux Mint)
$ sudo systemctl restart ssh.service (Debian 7, CentOS/RHEL 7, Fedora)
$ sudo service sshd restart (CentOS/RHEL 6)

```

### 方案二

如果远程主机的SSH服务禁止了IPv6，那么X11转发失败的错误也有可能发生。要解决这个情况下的错误。打开/etc/ssh/sshd配置文件，取消对"AddressFamily all" （如果有这条的话）的注释。接着加入下面这行。这会强制SSH服务只使用IPv4而不是IPv6。（LCTT 译注：此处恐有误，AddressFamily 没有 all 这个参数，而 any 代表同时支持 IPv6和 IPv4，以此处的场景而言，应该是关闭IPv6支持，只支持 IPv4，所以此处应该是“注释掉 AddressFamily any”才对。）

```
$ sudo vi /etc/ssh/sshd_config

```

---

```
AddressFamily inet

```

再说一次，重启SSH服务来完成设置

---

via: <http://ask.xmodulo.com/fix-broken-x11-forwarding-ssh.html>

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

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


在命令行中管理 Wifi 连接

Summary: 无论何时要安装一款新的 Linux 发行系统，一般的建议都是让您通过有线连接来接到互联网的。这主要的原因有两条：第一，您的无线网卡也许安装的驱动不正确而不能用；第二，如果您是从命令行中来安装系统的，管理 WiFi 就非常可怕。我总是试图避免在命令行中处理 WiFi 。但 Linux 的世界，应具有无所畏惧的精神。如果您不知道怎样操作，您需要继续往下来学习之，这就是写这篇文章的唯一原因。所以我迫使自己学习如何在命令行中管理 WiFi 连接。  通过命令行来设置连接到 WiFi 当然有很多种方法，但在这篇文章里，同时也是一个建议，我使用最

get

转发微博.

爱折腾就是好玩

但是比如像cmcc这种，在dhcp获取ip后还需要在它们的网站上登陆的该怎么办？

好像不行的。

用w3m登录到网页上登录i。。。能行不- -

为什么呢？这是什么原理...是因为需要在网络服务提供商的网站上登陆注册么？

是，我对这个没研究，但是这种后验证的，似乎是另外一套机制。

不行的，那个登录到网页上填信息，用命令行发post未免有点太玄幻了

不行的，那个登录到网页上填信息，用命令行发post未免有点太玄幻了

无论何时要安装一款新的 Linux 发行系统，一般的建议都是让您通过有线连接来接到互联网的。这主要的原因有两条：第一，您的无线网卡也许安装的驱动不正确而不能用；第二，如果您是从命令行中来安装系统的，管理 WiFi 就非常可怕。我总是试图避免在命令行中处理 WiFi 。但 Linux 的世界，应具有无所畏惧的精神。如果您不知道怎样操作，您需要继续往下来学习之，这就是写这篇文章的唯一原因。所以我迫使自己学习如何在命令行中管理 WiFi 连接。

![](/data/attachment/album/201410/15/213452kymvmph5phl9ljjl.png)

通过命令行来设置连接到 WiFi 当然有很多种方法，但在这篇文章里，同时也是一个建议，我使用最基本的方法：那就是使用在任何发布版本中都有的包含在“默认包”里的程序和工具。或者说我偏向于使用这一种方法。使用此方法显而易见的好处是这个操作过程能在任意有 Linux 系统的机器上复用。不好的一点是它相对来说比较复杂。

首先，我假设您们都已经正确安装了无线网卡的驱动程序。没有这前提，后续的一切都如镜花水月。如果您你机器确实没有正确安装上，您应该看看关于您的发布版本的维基和文档。

然后您就可以用如下命令来检查是哪一个接口来支持无线连接的：

```
$ iwconfig

```

![](/data/attachment/album/201410/15/213057mpwiw9pw9fsipws4.jpg)

一般来说，无线接口都叫做 wlan0。当然也有例外的，但在这篇教程中我们将会一直用通用叫法。

以防万一，你得确认下以使此接口服务是启动着的：

```
$ sudo ip link set wlan0 up

```

一但确认了无线接口是工作着的，你就可以用如下命令来扫描附近的无线网络了：

```
$ sudo iw dev wlan0 scan | less

```

![](/data/attachment/album/201410/15/213457euqbiqibebezo0yu.jpg)

根据扫描出的结果，可以得到网络的名字（它的 SSID），它的信息强度，以及它使用的是哪个安全加密的（如：WEP、WPA/WPA2）。从此时起，将会分成两条路线：情况很好、很容易的以及情况稍微复杂的。

如果您想连接的网络是没有加密的，您可以用下面的命令直接连接：

```
$ sudo iw dev wlan0 connect [网络 SSID]

```

如果网络是用 WEP 加密的，也非常容易：

```
$ sudo iw dev wlan0 connect [网络 SSID] key 0:[WEP 密钥]

```

但网络使用的是 WPA 或 WPA2 协议的话，事情就不好办了。这种情况，您就得使用叫做 wpa*supplicant 的工具，它默认是没有的。然后需要修改 /etc/wpa*supplicant/wpa\_supplicant.conf 文件，增加如下行：

```
network={
    ssid="[网络 ssid]"
    psk="[密码]"
    priority=1
}

```

我建议你在文件的末尾添加它，并确保其他配置都注释掉。要注意 SSID 和密码字串都是大小写敏感的。在技术上您也可以把接入点的名称当做是 SSID，使用 wpa\_supplicant 工具的话会有合适的 SSID 来替代这个名字。

一旦配置文件修改完成后，在后台启动此命令：

```
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

```

最后，无论是连到开放的网络还是加密的安全网络，您都得获取 IP 地址。简单地使用如下命令：

```
$ sudo dhcpcd wlan0

```

如果一切顺利的话，您应该已经通过 DHCP 获取到了一个全新的本地 IP，这个过程是在后台自动完成的。如果想确认下是否真正连接上的话，您可以再一次输入如下命令检查：

```
$ iwconfig

```

![](/data/attachment/album/201410/15/213501zpb7zlrtrbaaaenp.jpg)

最后，我认为多次重复第一步的检查操作是很有必要的。您永远不会知道什么时候您的图形用户界面挂了，或者是什么时候不能访问无线连接了，所以现在就准备着用命令来检测吧。还有，前面提到过的，有很多种方式（如 NetworkManager、[wicd](http://wicd.sourceforge.net/)、[netcfg](https://www.archlinux.org/netcfg/)、[wifi](https://github.com/rockymeza/wifi) 等等）来管理无线连接。我坚持使用最基本的方式，但在某些情况下，我使用的工具可能您还没有，所以您在之前就得先下载它们。另一方面，有很多高级的应用程序，他们确实是不包含在“默认包”里面的，使用它们会大大简化操作过程。但一般建议是开始的话最好从基本的来。

关于从命令行来管理连接 WiFi 您还有其他方式方法吗？请在评论中让我们知道。

---

via: <http://xmodulo.com/2014/08/manage-wifi-connection-command-line.html>

作者：[Adrien Brochard](http://xmodulo.com/author/adrien) 译者：[runningwater](https://github.com/runningwater) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


如何清理 Ubuntu 14.04 的最近打开文件历史列表

Summary: 这个简明教程对Ubuntu 14.04历史文件清理进行了说明，它用于初学者。 要从dash搜索删除历史记录，请遵循以下程序。 转到系统设置（System Settings）并打开安全与隐私（Security  Privacy）。  在文件与应用（Files and Applications）标签下，点击清除用户数据（Clear Usage Data）。  你也可以关闭记录文件与应用使用（Record file and Application usage）以阻止系统记录你当前使用的文件和应用。   via: http://www.ubuntugeek.com/how-to-delete-recently-opened-files-history-in-ubuntu-14-04.html 译者：GOLinux 校对：wxy 本文由

@我的印象笔记

大神求gank啊

这个简明教程对Ubuntu 14.04历史文件清理进行了说明，它用于初学者。

要从dash搜索删除历史记录，请遵循以下程序。

转到系统设置（System Settings）并打开安全与隐私（Security & Privacy）。

![](/data/attachment/album/201410/15/221755dq0rhzg2hgvrqu15.png)

在文件与应用（Files and Applications）标签下，点击清除用户数据（Clear Usage Data）。

![](/data/attachment/album/201410/15/221756hpps2iuk45rq5555.png)

你也可以关闭“记录文件与应用使用（Record file and Application usage）以阻止系统记录你当前使用的文件和应用。

![](/data/attachment/album/201410/15/221800rtqqpv4ws3j5jv44.png)

---

via: <http://www.ubuntugeek.com/how-to-delete-recently-opened-files-history-in-ubuntu-14-04.html>

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

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


技巧：在CentOS 7上安装Vmware 10

Summary: 在CentOS 7上安装Vmware 10.0.3，我来介绍下我的经验。通常，这个版本是不能在CentOS 7工作的，因为它只能运行在比较低的内核版本3.10上。 首先，以正常方式下载并安装（没有问题）。唯一的问题是在后来运行vmware程序的时候。 如何修复？ 1  进入 /usr/lib/vmware/modules/source。 cd /usr/lib/vmware/modules/source  2  解压 vmnet.tar. tar -xvf vmnet.tar  3  进入 vmnet-only 目录。 cd vmnet-only  4  编辑filter.c文件。 vi filter.c  在206和259行，替换以下字符串： #if LINUX_VERSION_CODE  KERNEL_VERSION(3, 13, 0)  为： #

///有点尴尬啊，没看清标题，还以为安装的是VC呢。呵呵。不过在CENTOS7下用VM workstation...... 倒是新鲜啊..... 呵呵.....

买不起 License……

没有登录.....

没有登录.....

什么？

我换浏览器发表评论忘记登录了。呵呵。   我个人是比较期待linux环境下使用VC的。呵呵。

VC啊，我估计没多大可能。。

介面不太漂亮哈。

在CentOS 7上安装Vmware 10.0.3，我来介绍下我的经验。通常，这个版本是不能在CentOS 7工作的，因为它只能运行在比较低的内核版本3.10上。

首先，以正常方式下载并安装（没有问题）。唯一的问题是在后来运行vmware程序的时候。

### 如何修复？

**1 – 进入 /usr/lib/vmware/modules/source。**

```
cd /usr/lib/vmware/modules/source

```

**2 – 解压 vmnet.tar.**

```
tar -xvf vmnet.tar

```

**3 – 进入 vmnet-only 目录。**

```
cd vmnet-only

```

**4 – 编辑filter.c文件。**

```
vi filter.c

```

在206和259行，替换以下字符串：

```
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)

```

为：

```
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)

```

保存并退出。

**5 – 回到先前文件夹。**

```
cd ../

```

**6 – 再次压缩文件夹。**

```
tar -uvf vmnet.tar vmnet-only

```

**7 – 移除旧目录。**

```
rm -fr vmnet-only

```

**8 – 启动vmware并体验。**

![](/data/attachment/album/201410/15/222550bb323z90bzy927yy.png)

---

via: <http://www.unixmen.com/install-vmware-10-centos-7/>

作者： M.el Khamlichi 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

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


绿盟科技增资国内 Linux 厂商深之度(Deepin)，占股10%

Summary: 据最新消息：  经北京神州绿盟信息安全科技股份有限公司（以下简称公司或绿盟科技）第二届董事会第七次会议审议通过，拟以超募资金人民币2000万元向全资子公司北京神州绿盟信息技术有限公司（以下简称绿盟信息或投资方）增资，再由绿盟信息以人民币2000万元，与北京世界星辉科技有限责任公司（以下简称世界星辉）共同向武汉深之度科技有限公司（以下简称深之度或目标公司）增资。本次增资完成后，绿盟信息取得深之度10%股权，深之度成为绿盟信息的参股公司。   本次交易背景： 1、国产操作系统市场潜力巨大 国产操作系统是国家大力支持培

deepin做的确实好看

回复@Nevea-: 他理念是让Linux进入寻常百姓家。。而不是仅仅是程序员用。。。看linux现状，任重而道远，一方面普通软件厂商不做，qq阿里都不搞。。显卡厂商对于linux独显的支持烂的一坨，尤其英伟达。。导致游戏厂商推进困难。。问题很多啦

回复@贱贱mephisto:软件的支持确实是个长期的过程 但是……它比别的Linux要好看的多 这就可以吸引很多用户 有些Linux界面做的太简陋了 还有直接就相当于windows的外壳

绿盟，什么来头？@Deepin官方微博 @Linux中国 @Linux_cn PS:话说Linux中国和Linux_cn什么关系？

卧槽

请问 intel芯片的 win8平板 能安装linux么？ 触屏可以无效。

支持

喜闻乐见。核高基本来就应该由商业公司来做，政府做辅助推动。

Deepin的同学们， 大家一起加油， 好戏还在后面！

[good]

赞//@ManateeLazyCat_deepin: Deepin的同学们， 大家一起加油， 好戏还在后面！

竟然是绿盟，什么时候deepin这么吊了。

deepin越来越强大了！[酷]//@ManateeLazyCat_deepin: Deepin的同学们， 大家一起加油， 好戏还在后面！

好戏还在后头！[耶]

什么好戏？据说这次增资的两家公司其中有一家和奇虎360有关！//@Deepin官方微博: 好戏还在后头！[耶]

什么好戏？真吊胃口，求剧透 //@Deepin官方微博:好戏还在后头！[耶]

爱@Deepin官方微博

[鼓掌]有了资金就有人，有人就会发展壮大//@Deepin官方微博: 好戏还在后头！[耶]

绿盟科技，记住了//@Deepin官方微博:好戏还在后头！[耶]

加油！//@Deepin官方微博: 好戏还在后头！[耶]

这是不是就预示着deepin系统上将有杀毒软件可供运行？？？//@Deepin官方微博:好戏还在后头！[耶]

增资8000万了哦！厉害。

LINUX上并不需要杀毒，

[据最新消息](http://stock.jrj.com.cn/share,disc,2014-10-16,300369,0000000000000aab73.shtml)：

>
> 经北京神州绿盟信息安全科技股份有限公司第二届董事会第七次会议审议通过，拟以超募资金人民币2000万元向全资子公司北京神州绿盟信息技术有限公司增资，再由绿盟信息以人民币2000万元，与北京世界星辉科技有限责任公司共同向武汉深之度科技有限公司增资。本次增资完成后，绿盟信息取得深之度10%股权，深之度成为绿盟信息的参股公司。
>
>
>

![](/data/attachment/album/201410/15/234149yjoajwwwj0cm0wd8.png)

本次交易背景：

**1、国产操作系统市场潜力巨大**

国产操作系统是国家大力支持培育的战略性产业领域，国务院于2011年发布《进一步鼓励软件产业和集成电路产业发展的若干政策》中提到包括操作系统在内的基础软件是国家重点支持的产业。2014年4月微软宣布停止对XP系统提停止服务，停止提供补丁和安全更新；5月中央国家机关政府采购中心发布关于进行信息类协议供货软件产品补充招标的通知，其中要求所有计算机类产品不允许安装windows 8操作系统，这为国产操作系统全面在政府机关采购和预装做出关键性推动。

目前，政府已经有多个国产化试点项目正在推进和规划中。预计三年后，国产操作系统在政府机关的办公终端年市场空间将达到数亿元人民币。金融、能源等多个各行业也正在根据国家要求，制定未来三到五年的国产化替代时间表。以银行业为例，银监会2014年39号文颁布了《关于应用安全可控信息技术加强银行业网络安全和信息化建设的指导意见》，其中明确提出“从2015年起，各银行业金融机构对安全可控信息技术的应用以不低于15％的比例逐年增加，直至2019年达到不低于75％的总体占比”。其中“安全可控信息技术”主要指使用国产化软硬件技术。就相关技术的研究开发方面，文中还专门提到“2015年起，银行业金融机构应安排不低于5％的年度信息化预算，专门用于支持本机构围绕安全可控信息系统开展前瞻性、创新性和规划性研究，支持本机构掌握信息化核心知识和技能。”此举将对银行业的IT国产化、信息安全产生深远影响，国产操作系统、数据库等领域的中国企业将有更多参与机会。预计未来将出现更多的自主可控示范项目，从而拉动本土企业市场份额持续提升。其中行业专用设备市场，包括自助式服务终端、智能哑终端，国产操作系统也有较大的市场机会。

**2、深之度具备较强的竞争力**

Deepin操作系统具有全球范围内同类操作系统产品中为数不多的独立桌面环境，深之度为Deepin操作系统独立自主开发完成包括深度翻译、深度音乐、深度影院、深度游戏和深度商店等一系列国内独具特色的应用软件，该系列所有软件都是深之度针对中国用户的使用习惯进行设计优化。

深之度的战略合作伙伴包括科大讯飞、烽火科技、金山科技、网易科技、傲游科技、达梦科技等国内相关领域内领先IT企业； 典型客户包括中华人民共和国环境保护部、广东省版权局、中国银行监督管理委员会、厦门大学、湖北大学等政府机关及高校事业单位。

深之度获得 “2012年中日韩东北亚开源软件竞赛优胜奖”、OSCHINA颁发的“2012年最受欢迎中国开源奖”，中国开源软件推进联盟颁发的“2014年度中国开源优秀项目”，并于2014年进入中央国家机关政府采购中心操作系统采购名录。

**3、双方合作共赢，共拓国产操作系统市场**

公司凭借在操作系统领域的深厚安全技术积累，可帮助深之度打造安全的国产操作系统，从而提升Deepin操作系统的技术优势和竞争力。

绿盟科技是中国领先的信息安全企业，拥有大量以政府、军队军工、金融、能源等领域优质客户为主的客户群体，这类客户大多有采用国产操作系统的要求，通过本次投资合作，绿盟科技可凭借与上述主要领域客户的密切合作关系，帮助深之度加快行业推广，共同开拓国产操作系统市场。


学习VIM之2014

Forward.

非常喜欢

//@LUPA开源社区:转发微博

除了vim自带的语法高亮插件和一个bufferexplorer插件外, 其他插件从不用.  vim就是一高效文本编辑器 无需让vim做过多的事. <br />
还有我觉得来篇介绍如何使用help资源. 如何阅读手册 之类的文章更好.  过多的介绍插件 失去了重点

不偏不倚，我认同您的意见！过于将 VIM 神化，万事都在 VIM 内解决——和 emacs 一样，我也认为是走入了极端。

补全算不算高效编辑的一部分呢？

作为一名开发者，你不应该把时间花费在考虑如何去找你所要编辑的代码上。在我转移到完全使用 VIM 的过程中，感到最痛苦的就是它处理文件的方式。从之前主要使用 Eclipse 和 Sublime Text 过渡到 VIM，它没有捆绑一个常驻的文件系统查看器对我造成了不少阻碍，而其内建的打开和切换文件的方式总是让我泪流满面。

就这一点而言，我非常欣赏VIM文件管理功能的深度。在工作环境上我已经装配了这些工具，甚至比起那些视觉编辑器好很多。因为这个是纯键盘操作，可以让我更快地在代码里面穿梭。搭建环境需要花费一些时间，安装几个插件。首先第一步是我明白vim内建功能只是处理文件的一种选择。在这篇文章里我会带你去认识vim文件管理功能与使用更高级的插件。

![](/data/attachment/album/201410/16/130912bqrggi02r0zolru2.png)

### 基础篇:打开新文件

学习vim其中最大的一个障碍是缺少可视提示，不像现在的GUI图形编辑器，当你在终端打开一个新的vim是没有明显的提示去提醒你去走什么，所有事情都是靠键盘输入，同时也没有更多更好的界面交互，vim新手需要习惯如何靠自己去查找一些基本的操作指令。好吧，让我开始学习基础吧。

创建新文件的命令是**:e 或:e** 打开一个新缓冲区保存文件内容。如果文件不存在它会开辟一个缓冲区去保存与修改你指定文件。缓冲区是vim是术语，意为"保存文本块到内存"。文本是否能够与存在的文件关联，要看是否每个你打开的文件都对应一个缓冲区。

打开文件与修改文件之后，你可以使用**:w**命令来保存在缓冲区的文件内容到文件里面，如果缓冲区不能关联你的文件或者你想保存到另外一个地方，你需要使用**:w** 来保存指定地方。

这些是vim处理文件的基本知识，很多的开发者都掌握了这些命令，这些技巧你都需要掌握。vim提供了很多技巧让人去深挖。

### 缓冲区管理

基础掌握了，就让我来说更多关于缓冲区的东西，vim处理打开文件与其他编辑器有一点不同，打开的文件不会作为一个标签留在一个可见的地方，而是只允许你同时只有一个文件在缓冲区打开，vim允许你打开多个缓存区。一些会显示出来，另外一些就不会，你需要用**:ls**来查看已经打开的缓存，这个命令会显示每个打开的缓存区，同时会有它们的序号，你可以通过这些序号使用**:b** 来切换或者使用循序移动命令 **:bnext** 和 **:bprevious** 也可以使用它们的缩写**:bn**和**:bp**。

这些命令是vim管理文件缓冲区的一个基础，我发现他们不会按照我的想法映射出来。我不想关心缓冲区的顺序，我只想按照我的想法去到那个文件或者想在当前这个文件.因此必需了解vim更深入的缓存模式，我不是推荐你必须用内部命令来作为主要的文件管理方案。但这些的确是很强大可行的选择。

![](/data/attachment/album/201410/16/130916uqwohgssgs51zfs5.jpeg)

### 分屏

分屏是vim其中一个最好用的管理文件功能，在vim中你可以将当前窗口同时分开为2个窗口，可以按照你喜欢的配置去重设大小和分配，个别时候，我可以在同时打开6文件每个文件，每个都拥有不同大小。

你可以通过命令**:sp** 来新建水平分割窗口或者 **:vs** 垂直分割窗口。你可以使用这些关键命令去调整你想要的窗口大小，老实说，我喜欢用鼠标处理vim任务，因为鼠标能够给我更加准确的两列的宽度而不需要猜大概的宽度。

创建新的分屏后，你需要使用**ctrl-w [h|j|k|l]**来向后向前切换。这个有一点笨拙，但这个却是很重要、很普遍、很容易、很高效的操作。如果你经常使用分屏,我建议你去.vimrc使用以下代码去设置别名为**ctrl-h** **ctrl-j** 等等。

```
nnoremap <C-J> <C-W><C-J> "Ctrl-j to move down a split
nnoremap <C-K> <C-W><C-K> "Ctrl-k to move up a split
nnoremap <C-L> <C-W><C-L> "Ctrl-l to move    right a split
nnoremap <C-H> <C-W><C-H> "Ctrl-h to move left a split

```

### 跳转表

分屏是解决多个关联文件同时查看问题,但我们仍然不能解决已打开文件与隐藏文件之间快速移动问题。这时跳转表是一个能够解决的工具。

跳转表是众多插件中看起来奇怪而且很少使用的一个。vim能够追踪每一步命令还有切换你正在修改的文件。每次从一个分屏窗口跳到另外一个，vim都会添加记录到跳转表里面。它记录你去过的地方，这样就不需要担心之前的文件在哪里，你可以使用快捷键去快速追溯你的踪迹。**Ctrl-o**允许你返回你上一次地方。重复操作几次就能够返回到你最先编写的代码段地方。你可以使用**ctrl-i**来向前返回。当你在调试多个文件或在两个文件之间切换时，它能够发挥极大的快速移动功能。

### 插件

如果你想vim像Sublime Text 或者Atom一样，我就让你认清一下，这里有很好的机会让你看清一些难懂，可怕和低效的事情。例如大家会发出"当Sublime有了模糊查找功能，为什么我一定要输入全路径才能够打开文件" "没有侧边栏显示目录树我怎样查看项目结构" 等等。但vim有了解决方案。这些方案不需要破坏vim的核心。我只需要经常修改vim配置与添加一些最新的插件，这里有3个有用的插件可以让你像Sublime管理文件

* [CtrlP](https://github.com/kien/ctrlp.vim) 是一个跟Sublime的"Go to Anything"栏一样模糊查找文件.它快如闪电并且非常可配置性。我使用它主要用来打开文件。我只需知道部分的文件名字不需要记住整个项目结构就可以查找了。
* [The NERDTree](https://github.com/scrooloose/nerdtree) 这个一个文件管理夹插件，它重复了很多编辑器都有的侧边文件管理夹功能。我实际上很少用它，对于我而言模糊查找会更加快。对于你接手一个项目，尝试学习项目结构与了解什么可以用是非常方便的，NERDTree是可以自己定制配置，安装它能够代替vim内置的目录工具。
* [Ack.vim](https://github.com/mileszs/ack.vim) 是一个专为vim的代码搜索插件，它允许你跨项目搜索文本。它封装了Ack 或 Ag 这[两个极其好用的搜索工具](http://benmccormick.org/2013/11/25/a-look-at-ack/)，允许你在任何时候在你项目之间快速搜索跳转。

在vim核心与它的插件生态系统之间，vim 提供足够的工具允许你构建你想要得工作环境。文件管理是软件开发系统的最核心部分并且你值得拥有体验的权利。

开始时需要通过很长的时间去理解它们，然后在找到你感觉舒服的工作流程之后再开始在上面添加工具。但依然值得你去使用，你不用爆头就可以理解如何去使用，能够轻易编写你的代码。

### 更多插件资源

* [Seamlessly Navigate Vim & Tmux Splits](http://robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits) 这个插件需要每一个想使用它的人都要懂得使用[tmux](http://tmux.sourceforge.net/)，这个跟vim的splits 一样简单好用。
* [Using Tab Pages](http://vim.wikia.com/wiki/Using_tab_pages) 它是一个vim的标签功能插件，虽然它的名字用起来有一点疑惑，但它不是文件管理器。对如何在有多个工作可视区使用"tab pages" 在vim wiki 网站上有更好的概述。
* [Vimcasts: The edit command](http://vimcasts.org/episodes/the-edit-command/) 一般来说 Vimcasts 是大家学习vim的一个好资源。这个屏幕截图与一些内置工作流程很好地描述了之前说的文件操作方面的知识。

---

via: <http://benmccormick.org/2014/07/07/learning-vim-in-2014-working-with-files/>

作者：[Ben McCormick](http://benmccormick.org/2014/07/07/learning-vim-in-2014-working-with-files/) 译者：[haimingfg](https://github.com/haimingfg) 校对：[wxy](https://github.com/wxy)

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


使用vmstat和iostat命令进行Linux性能监控

Summary: 这是我们正在进行的Linux命令和性能监控系列的一部分。vmstat和iostat两个命令都适用于所有主要的类unix系统（Linux/unix/FreeBSD/Solaris）。 如果vmstat和iostat命令在你的系统中不可用，请安装sysstat软件包。vmstat，sar和iostat命令都包含在sysstat（系统监控工具）软件包中。iostat命令生成CPU和所有设备的统计信息。你可以从这个连接中下载源代码包编译安装sysstat，但是我们建议通过YUM命令进行安装。  在Linux系统中安装sysstat #yum -y install sysstat   vmstat - 内存，进程和分页等的简要信息。 iostat - CPU统计信息，设备

学习中。。。。。。

po主，在下有一个问题请教一下。使用iostat的时候，输入“iostat -xtc”，有些会显示出“actv ”指标和其他的一些指标，但是我自己动手尝试的时候一直是没有的，不知道是怎么一回事情呢？问题比较小白。自己搜索了一下也没有找到合理的答案。

这是我们正在进行的**Linux**命令和性能监控系列的一部分。**vmstat**和**iostat**两个命令都适用于所有主要的类**unix**系统（**Linux/unix/FreeBSD/Solaris**）。

如果**vmstat**和**iostat**命令在你的系统中不可用，请安装**sysstat**软件包。**vmstat**，**sar**和**iostat**命令都包含在**sysstat**（系统监控工具）软件包中。iostat命令生成**CPU**和所有设备的统计信息。你可以从[这个连接](http://sebastien.godard.pagesperso-orange.fr/download.html)中下载源代码包编译安装sysstat，但是我们建议通过**YUM**命令进行安装。

![](/data/attachment/album/201410/16/135830wdoddx9ww1pvwkg3.png)

### 在Linux系统中安装sysstat

```
#yum -y install sysstat

```

* **vmstat** - 内存，进程和分页等的简要信息。
* **iostat** - CPU统计信息，设备和分区的输入/输出统计信息。

### Linux下vmstat命令的6个范例

#### 1. 列出活动和非活动的内存

如下范例中输出6列。**vmstat**的man页面中解析的每一列的意义。最重要的是内存中的**free**属性和交换分区中的**si**和**so**属性。

```
[root@tecmint ~]# vmstat -a

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0

```

* **Free** – 空闲的内存空间
* **si** – 每秒从磁盘中交换进内存的数据量（以KB为单位）。
* **so** – 每秒从内存中交换出磁盘的数据量（以KB为单位）。

**注意**：如果你不带参数的执行**vmstat**命令，它会输出自系统启动以来的总结报告。

#### 2. 每X秒执行vmstat，共执行N次

下面命令将会每2秒中执行一次**vmstat**，执行6次后自动停止执行。

```
[root@tecmint ~]# vmstat 2 6

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 810420  22064 101368    0    0    56     3   50   57  0  3 95  2  0
 0  0      0 810412  22064 101368    0    0     0     0   16   35  0  0 100  0  0
 0  0      0 810412  22064 101368    0    0     0     0   14   35  0  0 100  0  0
 0  0      0 810412  22064 101368    0    0     0     0   17   38  0  0 100  0  0
 0  0      0 810412  22064 101368    0    0     0     0   17   35  0  0 100  0  0
 0  0      0 810412  22064 101368    0    0     0     0   18   36  0  1 100  0  0

```

#### 3. 带时间戳的vmstat命令

带**-t**参数执行**vmstat**命令，该命令将会在每一行输出后都带一个时间戳，如下所示。

```
[tecmint@tecmint ~]$ vmstat -t 1 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 632028  24992 192244    0    0    70     5   55   78  1  3 95  1  0        2012-09-02 14:57:18 IST
 1  0      0 632028  24992 192244    0    0     0     0  171  514  1  5 94  0  0        2012-09-02 14:57:19 IST
 1  0      0 631904  24992 192244    0    0     0     0  195  600  0  5 95  0  0        2012-09-02 14:57:20 IST
 0  0      0 631780  24992 192244    0    0     0     0  156  524  0  5 95  0  0        2012-09-02 14:57:21 IST
 1  0      0 631656  24992 192244    0    0     0     0  189  592  0  5 95  0  0        2012-09-02 14:57:22 IST

```

#### 4. 统计各种计数器

**vmstat**命令的**-s**参数，将输出各种事件计数器和内存的统计信息。

```
[tecmint@tecmint ~]$ vmstat -s

      1030800  total memory
       524656  used memory
       277784  active memory
       185920  inactive memory
       506144  free memory
        26864  buffer memory
       310104  swap cache
      2064376  total swap
            0  used swap
      2064376  free swap
         4539 non-nice user cpu ticks
            0 nice user cpu ticks
        11569 system cpu ticks
       329608 idle cpu ticks
         5012 IO-wait cpu ticks
           79 IRQ cpu ticks
           74 softirq cpu ticks
            0 stolen cpu ticks
       336038 pages paged in
        67945 pages paged out
            0 pages swapped in
            0 pages swapped out
       258526 interrupts
       392439 CPU context switches
   1346574857 boot time
     2309 forks

```

#### 5. 磁盘统计信息

**vmstat**的**-d**参数将会输出所有磁盘的统计信息。

```
[tecmint@tecmint ~]$ vmstat -d

disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
ram1       0      0       0       0      0      0       0       0      0      0
ram2       0      0       0       0      0      0       0       0      0      0
ram3       0      0       0       0      0      0       0       0      0      0
ram4       0      0       0       0      0      0       0       0      0      0
ram5       0      0       0       0      0      0       0       0      0      0
ram6       0      0       0       0      0      0       0       0      0      0
ram7       0      0       0       0      0      0       0       0      0      0
ram8       0      0       0       0      0      0       0       0      0      0
ram9       0      0       0       0      0      0       0       0      0      0
ram10      0      0       0       0      0      0       0       0      0      0
ram11      0      0       0       0      0      0       0       0      0      0
ram12      0      0       0       0      0      0       0       0      0      0
ram13      0      0       0       0      0      0       0       0      0      0
ram14      0      0       0       0      0      0       0       0      0      0
ram15      0      0       0       0      0      0       0       0      0      0
loop0      0      0       0       0      0      0       0       0      0      0
loop1      0      0       0       0      0      0       0       0      0      0
loop2      0      0       0       0      0      0       0       0      0      0
loop3      0      0       0       0      0      0       0       0      0      0
loop4      0      0       0       0      0      0       0       0      0      0
loop5      0      0       0       0      0      0       0       0      0      0
loop6      0      0       0       0      0      0       0       0      0      0
loop7      0      0       0       0      0      0       0       0      0      0
sr0        0      0       0       0      0      0       0       0      0      0
sda     7712   5145  668732  409619   3282  28884  257402  644566      0    126
dm-0   11578      0  659242 1113017  32163      0  257384 8460026      0    126
dm-1     324      0    2592    3845      0      0       0       0      0      2

```

#### 6. 以MB为单位输出统计信息

**vmstat**的**-S**和**-M**参数（大写和MB）将会以MB为单位输出。**vmstat**默认以KB为单位输出统计信息。

```
[root@tecmint ~]# vmstat -S M 1 5

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0    346     53    476    0    0    95     8   42   55  0  2 96  2  0
 0  0      0    346     53    476    0    0     0     0   12   15  0  0 100  0  0
 0  0      0    346     53    476    0    0     0     0   32   62  0  0 100  0  0
 0  0      0    346     53    476    0    0     0     0   15   13  0  0 100  0  0
 0  0      0    346     53    476    0    0     0     0   34   61  0  1 99  0  0

```

### linux下的Iostat命令的6个范例

#### 1. 输出CPU和输入/输出（I/O）的统计信息

不带参数的**iostat**命令将会输出**CPU**和每个分区的**输出/输出**的统计信息，如下所示。

```
[root@tecmint ~]# iostat

Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.12    0.01    1.54    2.08    0.00   96.24

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               3.59       161.02        13.48    1086002      90882
dm-0              5.76       159.71        13.47    1077154      90864
dm-1              0.05         0.38         0.00       2576          0

```

#### 2. 只输出CPU的统计信息

**iostat**命令的**-c**参数仅输出**CPU**的统计信息，如下所示。

```
[root@tecmint ~]# iostat -c

Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.12    0.01    1.47    1.98    0.00   96.42

```

#### 3. 只输出磁盘的输入/输出统计信息

**iostat**命令的**-d**参数仅输出磁盘的所有分区的**输入/输出**的统计信息，如下所示。

```
[root@tecmint ~]# iostat -d

Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU)

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               3.35       149.81        12.66    1086002      91746
dm-0              5.37       148.59        12.65    1077154      91728
dm-1              0.04         0.36         0.00       2576          0

```

#### 4. 只输出某个磁盘的输入/输出统计信息

在默认情况下iostat命令会输出所有分区的统计信息，但是若在iostat命令后加上**-p**参数和磁盘设备名，该命令将会仅输出列出的磁盘的输入/输出统计信息，如下所示。

```
[root@tecmint ~]# iostat -p sda

Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.11    0.01    1.44    1.92    0.00   96.52

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               3.32       148.52        12.55    1086002      91770
sda1              0.07         0.56         0.00       4120         18
sda2              3.22       147.79        12.55    1080650      91752

```

#### 5. 输出逻辑卷管理（LVM）的统计信息

iostat命令的**-N**(大写)参数将会输出**LVM**（LCTT译注：[LVM](http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux))是linux环境下对磁盘分区进行管理的一种机制，是磁盘分区和文件系统间的一个逻辑层）的统计信息，如下所示。

```
[root@tecmint ~]# iostat -N

Linux 2.6.32-279.el6.i686 (tecmint.com)         09/03/2012      _i686_  (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.11    0.01    1.39    1.85    0.00   96.64

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               3.20       142.84        12.16    1086002      92466
vg_tecmint-lv_root     5.13       141.68        12.16    1077154      92448
vg_tecmint-lv_swap     0.04         0.34         0.00       2576          0

```

#### 6. iostat版本信息

iostat的**-V**(大写)参数将会输出**iostat**的版本信息，如下所示。

```
[root@tecmint ~]# iostat -V

sysstat version 9.0.4
(C) Sebastien Godard (sysstat  orange.fr)

```

**注意**：**vmstat**和**iostat**的输出中包含多列的数据和标志，限于篇幅无法在本文中进行详细的解析。如果你想知道更多的信息，请查看**vmstat**和**iostat**的man帮助手册。如果你觉得本文对你有价值，请在下面的评论框中与你的朋友分享。

---

via: <http://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/>

作者：[Ravi Saive](http://www.tecmint.com/author/admin/) 译者：[cvsher](https://github.com/cvsher) 校对：[wxy](https://github.com/wxy)

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


全能冠军：Linux系统性能和使用活动监控工具 sysstat

Summary: Sysstat是一个非常方便的工具，它带有众多的系统资源监控工具，用于监控系统的性能和使用情况。我们在日常使用的工具中有相当一部分是来自sysstat工具包的。同时，它还提供了一种使用cron表达式来制定性能和活动数据的收集计划。  下表是包含在sysstat包中的工具  iostat: 输出CPU的统计信息和所有I/O设备的输入输出（I/O）统计信息。 mpstat: 关于CPU的详细信息（单独输出或者分组输出）。 pidstat: 关于运行中的进程/任务、CPU、内存等的统计信息。 sar: 保存并输出不同系统资源（CPU、内存、IO、网络、内核等。。。）的详细信息。 sadc

有点意思。。。

可以，学习了

不建议使用yum remove 删除软件，这样会把依赖的也给删掉。要是删除可以使用rpm -e 。

好长时间没有折腾Linux了

**Sysstat**是一个非常方便的工具，它带有众多的系统资源监控工具，用于监控系统的性能和使用情况。我们在日常使用的工具中有相当一部分是来自sysstat工具包的。同时，它还提供了一种使用cron表达式来制定性能和活动数据的收集计划。

![](/data/attachment/album/201410/16/141737dy24thy1om12dof2.png)

下表是包含在sysstat包中的工具

* [**iostat**](http://linux.cn/article-4024-1.html): 输出CPU的统计信息和所有I/O设备的输入输出（I/O）统计信息。
* **mpstat**: 关于CPU的详细信息（单独输出或者分组输出）。
* **pidstat**: 关于运行中的进程/任务、CPU、内存等的统计信息。
* **sar**: 保存并输出不同系统资源（CPU、内存、IO、网络、内核等。。。）的详细信息。
* **sadc**: 系统活动数据收集器，用于收集sar工具的后端数据。
* **sa1**: 系统收集并存储sadc数据文件的二进制数据，与sadc工具配合使用
* **sa2**: 配合sar工具使用，产生每日的摘要报告。
* **sadf**: 用于以不同的数据格式（CVS或者XML）来格式化sar工具的输出。
* **Sysstat**: sysstat工具的man帮助页面。
* **nfsiostat**: NFS（Network File System）的I/O统计信息。
* **cifsiostat**: CIFS(Common Internet File System)的统计信息。

最近(在2014年6月17日)，**sysstat 11.0.0**（稳定版）已经发布了，同时还新增了一些有趣的特性，如下：

pidstat命令新增了一些新的选项：首先是“-R”选项，该选项将会输出有关策略和任务调度的优先级信息。然后是“**-G**”选项，通过这个选项我们可以使用名称搜索进程，然后列出所有匹配的线程。

sar、sadc和sadf命令在数据文件方面同样带来了一些功能上的增强。与以往只能使用“**saDD**”来命名数据文件。现在使用**-D**选项可以用“**saYYYYMMDD**”来重命名数据文件，同样的，现在的数据文件不必放在“**var/log/sa**”目录中，我们可以使用“SA\_DIR”变量来定义新的目录，该变量将应用与sa1和sa2命令。

### 在Linux系统中安装sysstat

在主要的linux发行版中，‘**sysstat**’工具包可以在默认的程序库中安装。然而，在默认程序库中的版本通常有点旧，因此，我们将会下载源代码包，编译安装最新版本（**11.0.0**版本）。

首先，使用下面的连接下载最新版本的sysstat包，或者你可以使用**wget**命令直接在终端中下载。

* <http://sebastien.godard.pagesperso-orange.fr/download.html>

```
# wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.0.0.tar.gz

```

![Download Sysstat Package](/data/attachment/album/201410/16/142016e9porbbyvj9msbfp.png)

*下载sysstat包*

然后解压缩下载下来的包，进去该目录，开始编译安装

```
# tar -xvf sysstat-11.0.0.tar.gz
# cd sysstat-11.0.0/

```

这里，你有两种编译安装的方法：

#### a)

第一，你可以使用**iconfig**(这将会给予你很大的灵活性，你可以选择/输入每个参数的自定义值)

```
# ./iconfig

```

![Sysstat iconfig Command](/data/attachment/album/201410/16/142019wgf5motvf1vflvil.png)

*sysstat的iconfig命令*

#### b)

第二，你可以使用标准的**configure**，在命令行中定义所有选项。你可以运行 **./configure –help 命令**来列出该命令所支持的所有限选项。

```
# ./configure --help

```

![Sysstat Configure Help](/data/attachment/album/201410/16/142023a16kvh1ih616n1i3.png)

*stsstat的cofigure -help*

在这里，我们使用标准的**./configure**命令来编译安装sysstat工具包。

```
# ./configure
# make
# make install

```

![Configure Sysstat in Linux](/data/attachment/album/201410/16/142026u9fdbdwhdddwdvb9.png)

*在Linux系统中配置sysstat*

在编译完成后，我们将会看到一些类似于上图的输出。现在运行如下命令来查看sysstat的版本。

```
# mpstat -V

sysstat version 11.0.0
(C) Sebastien Godard (sysstat <at> orange.fr)

```

### 更新Linux 系统中的sysstat

默认的，sysstat使用“**/usr/local**”作为其目录前缀。因此，所有的二进制数据/工具都会安装在“**/usr/local/bin**”目录中。如果你的系统已经安装了sysstat 工具包，则上面提到的二进制数据/工具有可能在“**/usr/bin**”目录中。

因为“**$PATH**”变量不包含“**/usr/local/bin**”路径，你在更新时可能会失败。因此，确保“**/usr/local/bin**”路径包含在“$PATH”环境变量中，或者在更新前，在编译和卸载旧版本时将**-prefix**选项指定值为“**/usr**”。

```
# yum remove sysstat            [On RedHat based System]
# apt-get remove sysstat        [On Debian based System]

```

---

```
# ./configure --prefix=/usr
# make
# make install

```

现在，使用‘mpstat’命令的‘**-V**’选项查看更新后的版本。

```
# mpstat -V

sysstat version 11.0.0
(C) Sebastien Godard (sysstat <at> orange.fr)

```

**参考**: 更多详细的信息请到 [Sysstat Documentation](http://sebastien.godard.pagesperso-orange.fr/documentation.html)

在我的下一篇文章中，我将会展示一些sysstat命令使用的实际例子，敬请关注更新。别忘了在下面评论框中留下您宝贵的意见。

---

via: <http://www.tecmint.com/install-sysstat-in-linux/>

作者：[Kuldeep Sharma](http://www.tecmint.com/author/kuldeepsharma47/) 译者：[cvsher](https://github.com/cvsher) 校对：[wxy](https://github.com/wxy)

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


Sysstat性能监控工具包中20个实用命令

Summary: 在我们上一篇文章中，我们已经学习了如何去安装和更新sysstat，并且了解了包中的一些实用工具。  今天，我们将会通过一些有趣的实例来学习mpstat, pidstat, iostat和sar等工具，这些工具可以帮组我们找出系统中的问题。这些工具都包含了不同的选项，这意味着你可以根据不同的工作使用不同的选项，或者根据你的需求来自定义脚本。我们都知道，系统管理员都会有点懒，他们经常去寻找一些更简单的方法来完成他们的工作。 mpstat - 处理器统计信息 1.不带任何参数的使用mpstat命令将会输出所有CPU的平均统计信息 tecmint@tecmint ~ $ mpstat L

[good]

感谢LCTT,感谢楼主分享... 学到不少!

另:ubuntu 通过软件源安装 sa1/sa2 位置 在 /usr/lib/sysstat 下面

好强大的工具

在我们[上一篇文章](http://linux.cn/article-4025-1.html)中，我们已经学习了如何去安装和更新**sysstat**，并且了解了包中的一些实用工具。

![](/data/attachment/album/201410/17/103100atqcchddz99pzzlh.jpg)

今天，我们将会通过一些有趣的实例来学习**mpstat**, **pidstat**, **iostat**和**sar**等工具，这些工具可以帮组我们找出系统中的问题。这些工具都包含了不同的选项，这意味着你可以根据不同的工作使用不同的选项，或者根据你的需求来自定义脚本。我们都知道，系统管理员都会有点懒，他们经常去寻找一些更简单的方法来完成他们的工作。

### mpstat - 处理器统计信息

1.不带任何参数的使用mpstat命令将会输出所有CPU的平均统计信息

```
tecmint@tecmint ~ $ mpstat

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:23:57  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:23:57  IST  all   37.35    0.01    4.72    2.96    0.00    0.07    0.00    0.00    0.00   54.88

```

2.使用‘**-p**’ (处理器编号)和‘ALL’参数将会从0开始独立的输出每个CPU的统计信息，0表示第一个cpu。

```
tecmint@tecmint ~ $ mpstat -P ALL

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:29:26  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:29:26  IST  all   37.33    0.01    4.57    2.58    0.00    0.07    0.00    0.00    0.00   55.44
12:29:26  IST    0   37.90    0.01    4.96    2.62    0.00    0.03    0.00    0.00    0.00   54.48
12:29:26  IST    1   36.75    0.01    4.19    2.54    0.00    0.11    0.00    0.00    0.00   56.40

```

3.要进行‘**N**’次，平均每次间隔n秒的输出CPU统计信息，如下所示。

```
tecmint@tecmint ~ $ mpstat -P ALL 2 5

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:36:21  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:36:23  IST  all   53.38    0.00    2.26    0.00    0.00    0.00    0.00    0.00    0.00   44.36
12:36:23  IST    0   46.23    0.00    1.51    0.00    0.00    0.00    0.00    0.00    0.00   52.26
12:36:23  IST    1   60.80    0.00    3.02    0.00    0.00    0.00    0.00    0.00    0.00   36.18

12:36:23  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:36:25  IST  all   34.18    0.00    2.30    0.00    0.00    0.00    0.00    0.00    0.00   63.52
12:36:25  IST    0   31.63    0.00    1.53    0.00    0.00    0.00    0.00    0.00    0.00   66.84
12:36:25  IST    1   36.73    0.00    2.55    0.00    0.00    0.00    0.00    0.00    0.00   60.71

12:36:25  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:36:27  IST  all   33.42    0.00    5.06    0.25    0.00    0.25    0.00    0.00    0.00   61.01
12:36:27  IST    0   34.34    0.00    4.04    0.00    0.00    0.00    0.00    0.00    0.00   61.62
12:36:27  IST    1   32.82    0.00    6.15    0.51    0.00    0.00    0.00    0.00    0.00   60.51

```

(LCTT译注： 上面命令中‘2’ 表示每2秒执行一次‘mpstat -P ALL’命令， ‘5’表示共执行5次)

4.使用‘**I**’参数将会输出每个处理器的中断统计信息

```
tecmint@tecmint ~ $ mpstat -I

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:39:56  IST  CPU    intr/s
12:39:56  IST  all    651.04

12:39:56  IST  CPU        0/s        1/s        6/s        8/s        9/s       12/s       16/s       17/s       20/s       21/s       22/s       23/s       45/s       46/s       47/s      NMI/s      LOC/s      SPU/s      PMI/s      IWI/s      RTR/s      RES/s      CAL/s      TLB/s      TRM/s      THR/s      MCE/s      MCP/s      ERR/s      MIS/s
12:39:56  IST    0      76.27       1.73       0.00       0.00       0.42       0.33       0.00       0.06      11.46       0.00       0.00       0.01       7.62       1.87       0.05       0.33     182.26       0.00       0.33       3.03       0.00      22.66       0.16       5.14       0.00       0.00       0.00       0.00       0.00       0.00
12:39:56  IST    1      70.88       1.44       0.00       0.00       0.41       0.33       0.00      27.91      10.33       0.00       0.00       0.01       7.27       1.79       0.05       0.32     184.11       0.00       0.32       5.17       0.00      22.09       0.13       4.73       0.00       0.00       0.00       0.00       0.00       0.00

12:39:56  IST  CPU       HI/s    TIMER/s   NET_TX/s   NET_RX/s    BLOCK/s BLOCK_IOPOLL/s  TASKLET/s    SCHED/s  HRTIMER/s      RCU/s
12:39:56  IST    0       0.00     116.49       0.05       0.27       7.33       0.00       1.22      10.44       0.13      37.47
12:39:56  IST    1       0.00     111.65       0.05       0.41       7.07       0.00      56.36       9.97       0.13      41.38

```

5.使用‘**A**’参数将会输出上面提到的所有信息，等同于‘**-u -I All -p ALL**’。

```
tecmint@tecmint ~ $ mpstat -A

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:41:39  IST  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:41:39  IST  all   38.70    0.01    4.47    2.01    0.00    0.06    0.00    0.00    0.00   54.76
12:41:39  IST    0   39.15    0.01    4.82    2.05    0.00    0.02    0.00    0.00    0.00   53.95
12:41:39  IST    1   38.24    0.01    4.12    1.98    0.00    0.09    0.00    0.00    0.00   55.57

12:41:39  IST  CPU    intr/s
12:41:39  IST  all    651.73
12:41:39  IST    0    173.16
12:41:39  IST    1    225.89

12:41:39  IST  CPU        0/s        1/s        6/s        8/s        9/s       12/s       16/s       17/s       20/s       21/s       22/s       23/s       45/s       46/s       47/s      NMI/s      LOC/s      SPU/s      PMI/s      IWI/s      RTR/s      RES/s      CAL/s      TLB/s      TRM/s      THR/s      MCE/s      MCP/s      ERR/s      MIS/s
12:41:39  IST    0      76.04       1.77       0.00       0.00       0.41       0.36       0.00       0.06      11.60       0.00       0.00       0.01       7.42       1.83       0.05       0.34     182.89       0.00       0.34       2.97       0.00      22.69       0.16       5.22       0.00       0.00       0.00       0.00       0.00       0.00
12:41:39  IST    1      70.70       1.48       0.00       0.00       0.40       0.36       0.00      27.47      10.46       0.00       0.00       0.01       7.08       1.75       0.05       0.32     184.83       0.00       0.32       5.10       0.00      22.19       0.13       4.91       0.00       0.00       0.00       0.00       0.00       0.00

12:41:39  IST  CPU       HI/s    TIMER/s   NET_TX/s   NET_RX/s    BLOCK/s BLOCK_IOPOLL/s  TASKLET/s    SCHED/s  HRTIMER/s      RCU/s
12:41:39  IST    0       0.00     116.96       0.05       0.26       7.12       0.00       1.24      10.42       0.12      36.99
12:41:39  IST    1       0.00     112.25       0.05       0.40       6.88       0.00      55.05       9.93       0.13      41.20

```

### pidstat - 进程和内核线程的统计信息

该命令是用于监控进程和当前受内核管理的线程。pidstat还可以检查子进程和线程的状态。

#### 语法

```
# pidstat <OPTIONS> [INTERVAL] [COUNT]

```

6.不带任何参数使用pidstat将会输出所有活跃的任务。

tecmint@tecmint ~ $ pidstat

```
Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:47:24  IST   UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:47:24  IST     0         1    0.01    0.12    0.00    0.13     1  init
12:47:24  IST     0         3    0.00    0.01    0.00    0.01     0  ksoftirqd/0
12:47:24  IST     0         9    0.00    0.04    0.00    0.04     0  rcu_sched
12:47:24  IST     0        10    0.00    0.00    0.00    0.00     0  watchdog/0
12:47:24  IST     0        11    0.00    0.00    0.00    0.00     1  watchdog/1
12:47:24  IST     0        12    0.00    0.00    0.00    0.00     1  migration/1
12:47:24  IST     0        13    0.00    0.01    0.00    0.01     1  ksoftirqd/1
12:47:24  IST     0        23    0.00    0.00    0.00    0.00     0  kworker/u9:0
12:47:24  IST     0        29    0.00    0.61    0.00    0.61     0  kworker/0:1
12:47:24  IST     0        30    0.00    0.06    0.00    0.06     1  kworker/1:1
12:47:24  IST     0       224    0.00    0.01    0.00    0.01     1  jbd2/sda1-8
12:47:24  IST     0       360    0.00    0.00    0.00    0.00     1  upstart-udev-br
12:47:24  IST     0       365    0.01    0.00    0.00    0.01     0  systemd-udevd
12:47:24  IST     0       476    0.00    0.00    0.00    0.00     0  kworker/u9:1

```

7.使用‘**-p**’(进程)参数输出所有活跃和非活跃的任务。

```
tecmint@tecmint ~ $ pidstat -p ALL

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

12:51:55  IST   UID       PID    %usr %system  %guest    %CPU   CPU  Command
12:51:55  IST     0         1    0.01    0.11    0.00    0.12     1  init
12:51:55  IST     0         2    0.00    0.00    0.00    0.00     0  kthreadd
12:51:55  IST     0         3    0.00    0.01    0.00    0.01     0  ksoftirqd/0
12:51:55  IST     0         5    0.00    0.00    0.00    0.00     0  kworker/0:0H
12:51:55  IST     0         7    0.00    0.00    0.00    0.00     0  migration/0
12:51:55  IST     0         8    0.00    0.00    0.00    0.00     0  rcu_bh
12:51:55  IST     0         9    0.00    0.04    0.00    0.04     1  rcu_sched
12:51:55  IST     0        10    0.00    0.00    0.00    0.00     0  watchdog/0
12:51:55  IST     0        11    0.00    0.00    0.00    0.00     1  watchdog/1
12:51:55  IST     0        12    0.00    0.00    0.00    0.00     1  migration/1
12:51:55  IST     0        13    0.00    0.01    0.00    0.01     1  ksoftirqd/1
12:51:55  IST     0        15    0.00    0.00    0.00    0.00     1  kworker/1:0H
12:51:55  IST     0        16    0.00    0.00    0.00    0.00     1  khelper
12:51:55  IST     0        17    0.00    0.00    0.00    0.00     0  kdevtmpfs
12:51:55  IST     0        18    0.00    0.00    0.00    0.00     0  netns
12:51:55  IST     0        19    0.00    0.00    0.00    0.00     0  writeback
12:51:55  IST     0        20    0.00    0.00    0.00    0.00     1  kintegrityd

```

8.使用‘**-d 2**’参数，我们可以看到I/O统计信息，2表示以秒为单位对统计信息进行刷新。这个参数可以方便的知道当系统在进行繁重的I/O时，那些进行占用大量的资源的进程。

```
tecmint@tecmint ~ $ pidstat -d 2

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

03:26:53  EDT       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

03:26:55  EDT       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
03:26:57  EDT       574      0.00    148.00      2.00  miniserv.pl

03:27:01  EDT       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
03:27:03  EDT         1      0.00      8.00      2.00  init
03:27:03  EDT       450      0.00      2.00      0.00  rsyslogd
03:27:03  EDT       534    138.00     10.00      4.00  crond
03:27:03  EDT     25100      0.00      6.00      0.00  sendmail
03:27:03  EDT     30829      0.00      6.00      0.00  java

```

9.想要每间隔**2**秒对进程**4164**的cpu统计信息输出**3**次，则使用如下带参数‘**-t**’（输出某个选定进程的统计信息）的命令。

```
tecmint@tecmint ~ $ pidstat -t -p 4164 2 3

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

01:09:06  IST   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
01:09:08  IST  1000      4164         -   22.00    1.00    0.00   23.00     1  firefox
01:09:08  IST  1000         -      4164   20.00    0.50    0.00   20.50     1  |__firefox
01:09:08  IST  1000         -      4171    0.00    0.00    0.00    0.00     0  |__Gecko_IOThread
01:09:08  IST  1000         -      4172    0.00    0.00    0.00    0.00     0  |__Socket
01:09:08  IST  1000         -      4173    0.00    0.00    0.00    0.00     0  |__JS
01:09:08  IST  1000         -      4174    0.00    0.00    0.00    0.00     0  |__JS
01:09:08  IST  1000         -      4175    0.00    0.00    0.00    0.00     0  |__Hang
01:09:08  IST  1000         -      4176    0.00    0.00    0.00    0.00     1  |__gdbus
01:09:08  IST  1000         -      4177    0.00    0.00    0.00    0.00     1  |__gmain

```

10.使用‘**-rh**’参数，将会输出进程的内存使用情况。如下命令每隔2秒刷新经常的内存使用情况。

```
tecmint@tecmint ~ $ pidstat -rh 2 3

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1409816695  1000      3958   3378.22      0.00  707420 215972   5.32  cinnamon
 1409816695  1000      4164    406.93      0.00 1252024 461404  11.36  firefox
 1409816695  1000      6676    168.81      0.00    4436    984   0.02  pidstat

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1409816697     0      1601    644.00      0.00  506728 316788   7.80  Xorg
 1409816697  1000      3958   3412.00      0.00  707420 215972   5.32  cinnamon
 1409816697  1000      4164   2667.00      0.00 1259576 471724  11.62  firefox
 1409816697  1000      6676    172.50      0.00    4436   1020   0.03  pidstat

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1409816699     0      1601    644.00      0.00  506728 316788   7.80  Xorg
 1409816699  1000      3958   4094.00      0.00  710148 218700   5.39  cinnamon
 1409816699  1000      4164    599.00      0.00 1261944 476664  11.74  firefox
 1409816699  1000      6676    168.00      0.00    4436   1020   0.03  pidstat

```

11.要使用‘**-G**’参数可以输出包含某个特定字符串的进程信息。如下命令输出所有包含‘**VB**’字符串的进程的统计信息，使用‘**-t**’参数将线程的信息也进行输出。

```
tecmint@tecmint ~ $ pidstat -G VB

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

01:09:06  IST   UID      PID      %usr  %system  %guest    %CPU   CPU   Command
01:09:08  IST  1000    1492     22.00     1.00       0.00        23.00     1        VBoxService
01:09:08  IST  1000    1902     4164      20.00      0.50        0.00       20.50       VBoxClient
01:09:08  IST  1000    1922     4171      0.00       0.00        0.00       0.00        VBoxClient

```

---

```
tecmint@tecmint ~ $ pidstat  -t -G VB
Linux 2.6.32-431.el6.i686 (tecmint) 09/04/2014 _i686_   (2 CPU)

03:19:52 PM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
03:19:52 PM     0      1479         -    0.01    0.12    0.00    0.13     1  VBoxService
03:19:52 PM     0         -      1482    0.00    0.00    0.00    0.00     0  |__timesync
03:19:52 PM     0         -      1483    0.01    0.06    0.00    0.06     0  |__vminfo
03:19:52 PM     0         -      1485    0.00    0.01    0.00    0.01     1  |__memballoon
03:19:52 PM     0         -      1486    0.00    0.01    0.00    0.01     1  |__vmstats
03:19:52 PM     0         -      1487    0.00    0.05    0.00    0.05     0  |__automount
03:19:52 PM     0      1913         -    0.00    0.00    0.00    0.00     0  VBoxClient
03:19:52 PM     0         -      1913    0.00    0.00    0.00    0.00     0  |__VBoxClient
03:19:52 PM     0         -      1942    0.00    0.00    0.00    0.00     0  |__SHCLIP
03:19:52 PM     0      1933         -    0.04    0.89    0.00    0.93     0  VBoxClient
03:19:52 PM     0         -      1936    0.04    0.89    0.00    0.93     1  |__X11-NOTIFY

```

12.使用‘**-R**’参数输出实时的进程优先级和调度信息。

```
tecmint@tecmint ~ $ pidstat -R

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

01:09:06  IST   UID      PID     prio      policy   Command
01:09:08  IST  1000    3         99        FIFO     migration/0
01:09:08  IST  1000    5         99          FIFO   migration/0
01:09:08  IST  1000    6         99          FIFO   watchdog/0

```

因为我们已经学习过iostat命令了，因此在本文中不在对其进行赘述。若想查看iostat命令的详细信息，请参看“[使用Iostat和Vmstat进行Linux性能监控](http://linux.cn/article-4024-1.html)”

### sar - 系统活动报告

我们可以使用‘**sar**’命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈，并且有助于我们找出这些烦人的性能问题的解决方法。

Linux内核维护着一些内部计数器，这些计数器包含了所有的请求及其完成时间和I/O块数等信息，sar命令从所有的这些信息中计算出请求的利用率和比例，以便找出瓶颈所在。

sar命令主要的用途是生成某段时间内所有活动的报告，因此，必需确保sar命令在适当的时间进行数据采集（而不是在午餐时间或者周末。）

13.下面是执行sar命令的基本用法。它将会在当前目录下创建一个名为‘**sarfile**’的文件。‘**-u**’参数表示CPU详细信息，**5**表示生产5次报告，**2**表示每次报告的时间间隔为2秒。

```
tecmint@tecmint ~ $ sar -u -o sarfile 2 5

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

01:42:28  IST     CPU     %user     %nice   %system   %iowait    %steal     %idle
01:42:30  IST     all     36.52      0.00      3.02      0.00      0.00     60.45
01:42:32  IST     all     43.32      0.00      5.04      0.00      0.00     51.64
01:42:34  IST     all     56.46      0.00      4.05      0.00      0.00     39.49
01:42:36  IST     all     44.44      0.00      3.79      0.00      0.00     51.77
01:42:38  IST     all     50.75      0.00      3.75      0.00      0.00     45.50
Average:        all     46.30      0.00      3.93      0.00      0.00     49.77

```

14.在上面的例子中，我们交互的执行sar命令。sar命令也提供了使用cron进行非交互的执行sar命令的方法，使用**/usr/local/lib/sa1**和**/usr/local/lib/sa2**脚本（如果你在安装时使用了**/usr/local**作为前缀的话）

* **/usr/local/lib/sa1**是一个可以使用cron进行调度生成二进制日志文件的shell脚本。
* **/usr/local/lib/sa2**是一个可以将二进制日志文件转换为用户可读的编码方式。

使用如下Cron项目来将sar命令非交互化。

```
# 每10分钟运行sa1脚本来采集数据
*/2 * * * * /usr/local/lib/sa/sa1 2 10

#在每天23:53时生成一个用户可读的日常报告
53 23 * * * /usr/local/lib/sa/sa2 -A

```

在sa1脚本的后端，sa1脚本会调用**sabc**(系统活动数据收集器，System Activity Data Collector)工具采集特定时间间隔内的数据。**sa2**脚本会调用sar来将二进制日志文件转换为用户可读的形式。

15.使用‘**-q**’参数来检查运行队列的长度，所有进程的数量和平均负载

```
tecmint@tecmint ~ $ sar -q 2 5

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

02:00:44  IST   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
02:00:46  IST         1       431      1.67      1.22      0.97         0
02:00:48  IST         4       431      1.70      1.23      0.97         0
02:00:50  IST         2       431      1.70      1.23      0.97         0
02:00:52  IST         2       431      1.70      1.23      0.97         0
02:00:54  IST         0       431      1.64      1.23      0.97         0
Average:            2       431      1.68      1.23      0.97         0

```

16.使用‘**-F**’参数查看当前挂载的文件系统的使用统计信息

```
tecmint@tecmint ~ $ sar -F 2 4

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

02:02:31  IST  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
02:02:33  IST      1001       449     30.95    1213790475088.85  18919505    364463      1.89 /dev/sda1

02:02:33  IST  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
02:02:35  IST      1001       449     30.95    1213790475088.85  18919505    364463      1.89 /dev/sda1

02:02:35  IST  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
02:02:37  IST      1001       449     30.95    1213790475088.85  18919505    364463      1.89 /dev/sda1

02:02:37  IST  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
02:02:39  IST      1001       449     30.95    1213790475088.86  18919505    364463      1.89 /dev/sda1

Summary      MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
Summary          1001       449     30.95    1213790475088.86  18919505    364463      1.89 /dev/sda1

```

17.使用‘**-n DEV**’参数查看网络统计信息

```
tecmint@tecmint ~ $ sar -n DEV 1 3 | egrep -v lo

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

02:11:59  IST     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:12:00  IST     wlan0      8.00     10.00      1.23      0.92      0.00      0.00      0.00
02:12:00  IST    vmnet8      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:00  IST      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:12:00  IST    vmnet1      0.00      0.00      0.00      0.00      0.00      0.00      0.00

```

18.使用‘**-d**’参数查看块设备统计信息（与iostat类似）。

```
tecmint@tecmint ~ $ sar -d 1 3

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

02:13:17  IST       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:13:18  IST    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:13:18  IST       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:13:19  IST    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:13:19  IST       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:13:20  IST    dev8-0      7.00     32.00     80.00     16.00      0.11     15.43     15.43     10.80

```

19.使用‘**-r**’参数输出内存统计信息。

```
tecmint@tecmint ~ $ sar -r 1 3

Linux 3.11.0-23-generic (tecmint.com)   Thursday 04 September 2014  _i686_  (2 CPU)

02:14:29  IST kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
02:14:30  IST   1465660   2594840     63.90    133052   1549644   3710800     45.35   1133148   1359792       392
02:14:31  IST   1472724   2587776     63.73    133060   1549792   3715504     45.40   1125816   1360000       836
02:14:32  IST   1469112   2591388     63.82    133060   1550036   3705288     45.28   1130252   1360168       804
Average:      1469165   2591335     63.82    133057   1549824   3710531     45.34   1129739   1359987       677

```

20.使用‘**sadf -d**’参数可以将数据导出为数据库可以使用的格式。

```
tecmint@tecmint ~ $ safd -d /var/log/sa/sa20140903 -- -n DEV | grep -v lo

 # hostname;interval;timestamp;IFACE;rxpck/s;txpck/s;rxkB/s;txkB/s;rxcmp/s;txcmp/s;rxmcst/s;%ifutil
tecmint;2;2014-09-03 07:53:29 UTC;eth0;1.50;0.00;0.13;0.00;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 07:53:31 UTC;eth0;2.00;0.00;0.18;0.00;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 07:53:33 UTC;eth0;1.00;0.00;0.09;0.00;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 07:53:35 UTC;eth0;2.00;0.00;0.18;0.00;0.00;0.00;0.00;0.00
tecmint;14778;2014-09-03 11:59:54 UTC;eth0;1.78;1.17;1.10;0.18;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 11:59:56 UTC;eth0;3.50;3.00;0.60;0.77;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 11:59:58 UTC;eth0;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:00 UTC;eth0;0.00;0.00;0.00;0.00;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:02 UTC;eth0;0.50;0.50;0.48;0.03;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:04 UTC;eth0;2.50;3.50;0.21;2.05;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:06 UTC;eth0;1.49;1.00;0.62;0.06;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:08 UTC;eth0;0.50;0.00;0.03;0.00;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:10 UTC;eth0;0.50;0.50;0.03;0.04;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:12 UTC;eth0;1.00;0.50;0.12;0.04;0.00;0.00;0.00;0.00

```

你也可以将这些数据存储在一个csv文档中，然后绘制成图表展示方式，如下所示

![Network Graph](/data/attachment/album/201410/17/103102w2bfrru2f8vu21v5.png)

*网络信息图表*

现在，你可以参考man手册来后去每个参数的更多详细信息，并且请在文章下留下你宝贵的评论。

---

via: <http://www.tecmint.com/sysstat-commands-to-monitor-linux/>

作者：[Kuldeep Sharma](http://www.tecmint.com/author/kuldeepsharma47/) 译者：[cvsher](https://github.com/cvsher) 校对：[wxy](https://github.com/wxy)

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


Linux有问必答：如何在PDF中嵌入LaTex中的所有字体

Summary: 提问: 我通过编译LaTex源文件生成了一份PDF文档。然而，我注意到，并不是所有字体都嵌入到了PDF文档中。我怎样才能确保所有的字体嵌入在由LaTex生成的PDF文档中？  当你创建一个PDF文件时，在PDF文件中嵌入字体是一个好主意。如果你不嵌入字体，PDF浏览器可以在计算机上没有字体的情况下使用其他东西代替。这将导致文件被在不同的PDF浏览器或操作系统平台上呈现不同的样式。当你打印出来的文档时，缺少的字体是一个问题。  当你从LaTex中生成PDF文档时（例如用pdflatex或dvipdfm），可能并不是所有的字体都嵌入在PDF文档中。例如，pdffont

转发微博.

@mywiz

>
> **提问**: 我通过编译LaTex源文件生成了一份PDF文档。然而，我注意到，并不是所有字体都嵌入到了PDF文档中。我怎样才能确保所有的字体嵌入在由LaTex生成的PDF文档中？
>
>
>

当你创建一个PDF文件时，在PDF文件中嵌入字体是一个好主意。如果你不嵌入字体，PDF浏览器可以在计算机上没有字体的情况下使用其他东西代替。这将导致文件被在不同的PDF浏览器或操作系统平台上呈现不同的样式。当你打印出来的文档时，缺少的字体是一个问题。

![](/data/attachment/album/201410/17/104341dh3y118pufmd95lp.png)

当你从LaTex中生成PDF文档时（例如用pdflatex或dvipdfm），可能并不是所有的字体都嵌入在PDF文档中。例如，[pdffonts](http://ask.xmodulo.com/check-which-fonts-are-used-pdf-document.html)下面的输出中提示PDF文档中有缺少的字体（如Helvetica）。

![](/data/attachment/album/201410/17/104347a274143022b5sz3s.jpg)

为了避免这样的问题，下面是如何在LaTex编译时嵌入所有的字体。

```
$ latex document.tex
$ dvips -Ppdf -G0 -t letter -o document.ps document.dvi
$ ps2pdf -dPDFSETTINGS=/prepress \
-dCompatibilityLevel=1.4 \
-dAutoFilterColorImages=false \
-dAutoFilterGrayImages=false \
-dColorImageFilter=/FlateEncode \
-dGrayImageFilter=/FlateEncode \
-dMonoImageFilter=/FlateEncode \
-dDownsampleColorImages=false \
-dDownsampleGrayImages=false \
document.ps document.pdf

```

现在你可以看到所有的字体都被嵌入到PDF中了。

![](/data/attachment/album/201410/17/104350km46d6nijimmm9nn.jpg)

---

via: <http://ask.xmodulo.com/embed-all-fonts-pdf-document-latex.html>

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

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


如何开始一个开源项目

Summary: 循序渐进的指导  你有这个问题：你已经权衡了开源代码的优劣势，你也已经知道你的软件需要成为一个开源项目，但是，你不知道怎么做好的开源项目。 当然，你也许已经知道如何创建Github帐号并开始，但是这些事实上是做开源比较简单的部分。而真真正正难的部分是如何让足够多的人，关注你的项目并给你的项目做贡献。  接下来的原则是会指导你构建和发布其他人愿意关注的代码。 基本原则 选择开源可能有许多原因。也许你希望吸引一个社区来帮助编写你的代码。也许，总所周知，你明白开源  一个开发小团队内部编写代码的倍增器。 或者你只是认

跟一个德国的biochemist聊天 那家伙精通编程并且自己弄了个开源软件 他激动的跟我说几个MPI的人发现了他们并且帮助修改了一下代码:it seems they come down the throne and touch our heads! 我好奇的注视着他的光头...

@我的印象笔记

>
> 循序渐进的指导
>
>
>

**你有这个问题**：你已经权衡了[开源代码的优劣势](http://readwrite.com/2014/07/07/open-source-software-pros-cons)，你也已经知道[你的软件需要成为一个开源项目](http://readwrite.com/2014/08/15/open-source-software-business-zulily-erp-wall-street-journal)，但是，你不知道怎么做好的开源项目。

当然，你也许已经知道[如何创建Github帐号并开始](http://www.cocoanetics.com/2011/01/starting-an-opensource-project-on-github/)，但是这些事实上是做开源比较简单的部分。而真真正正难的部分是如何让足够多的人，关注你的项目并给你的项目做贡献。

![](/data/attachment/album/201410/17/110104o6ooeo0mfiem98sm.jpg)

接下来的原则是会指导你构建和发布其他人愿意关注的代码。

### 基本原则

选择开源可能有许多原因。也许你希望吸引一个社区来帮助编写你的代码。也许，[总所周知](http://werd.io/2014/the-roi-of-building-open-source-software)，你明白“开源 —— 一个开发小团队内部编写代码的倍增器。”

或者你只是认为这是必须做的事，[如同英国政府一样](https://www.gov.uk/design-principles)。

无论何种原因，为了开源能够成功，是必须要做很多的计划去给将来使用这个软件的人们。如同[我在2005写道](http://asay.blogspot.com/2005/09/so-you-want-to-build-open-source.html)，如果你“需要大量的人做贡献（bug修复，扩展等等）”，那么你需要“写一个好的文档，使用易于接受的编程语言，和使用模型架构”。

对了，你也需要写人们在乎的软件。

每天思考你依靠的技术：操作系统，web应用框架，数据库，等等。远离像航天这样，特殊行业的小生态技术，让开源拥有更多的可能性以便外部的（人的）产生兴趣和做出贡献。更广泛的应用技术，找到更多的贡献者和用户。

总的来说，任何成功的开源项目有以下共同点：

1.最佳的时间时机（解决市场实际需求）

2.一个健壮，包括开发者和非开发者的团队

3.一个易于参与的结构（更多详见下文）

4.模块化编码，使新贡献者更容易找到一个项目损坏的部分去贡献，比强迫他们理解巨大的代码的每一部分要好

5.代码可以广泛应用（或者达到一个狭窄的流行都比一个“自生自灭的”小生态更吸引人）

6.很好初始源码（如果你放垃圾在Github，你也只会得到垃圾回报）

7.一个自由的许可证-我[个人更爱Apache型的许可证](http://www.cnet.com/news/apache-better-than-gpl-for-open-source-business/)，因为它让开发者采用时障碍最低，当然许多成功的项目（如Linux和MySQL）使用GPL许可证也有很棒的效果。

上述几项，是一个项目成功邀请参与者最难的部分。这是因为他们不是关于代码而是关于人。

### 开源不单是一个许可证

今年，最棒的一件事是我读到是来自 Vitorio Miliano ([@vitor\_io](https://twitter.com/vitor_io))的文章，他是用户体验交互设计师，来自德州的奥斯丁。[Miliano](http://opensourcedesign.is/blogging_about/import-designers/)指出，那些不在你的项目上工作的人才是“外行”，从本质上说无论他们技术能力的级别，他们仅仅懂一点代码（也没关系）。

所以你的工作，他认为，是使人加入，为你贡献你的代码变得简单。当阐述如何涉及非程序员到开源项目中，他指出项目的一些事项，项目领导应需要有效地得加入一些任何技术或不懂技术的人到开源项目。

> 1. 一种方法去了解你的项目价值
> 2. 一种方法去了解他们可以为项目提供的价值
> 3. 一种方法去了解他们可以从贡献代码获得的价值
> 4. 一种方法去了解贡献流程，端到端
> 5. 贡献机制适用于现有的工作流
>

经常，项目领导者想要集中于上述的第五步，却不提供理解1到4的路径。如果潜在的贡献者不欣赏“为什么”，“如何”共享就变得不重要了。

注意，至关重要的，Miliano写道，建立拥有一个通俗易懂的简介的项目很有价值，如同任何时候通过简介给每一个人演示可访问性和包容性。他断言道，这增加了额外的好处，文档和其他的版本介绍的内容变得通俗易懂。

关于第二点，程序员或非程序员同样地需要能够明白到底你需要什么，这样他们就可以认识到他们的贡献（方向）。有时就像MongoDB解决方案架构师[Henrik Ingo告诉我](https://twitter.com/h_ingo/status/501323333301190656)那样，"一个聪明的人可以贡献很棒的代码，但是项目成员不能理解它（代码）"，如果在组织内承认这个贡献并且研究后理解，那么这就不是一个糟糕的问题。

但是不会经常发生。

### 你真的想领导一个开源项目吗？

许多开源项目的领导提倡包容性，但是他们拥有任何事除了包容。如果你不想要人们做贡献，不要假装开源。

是的，有时这是老生常谈的话题。就像HackerNews最近的报道[一个开发者的开发工作](https://news.ycombinator.com/item?id=8122814)。

>
> 小项目可以得到很多，基本不需要很多人合作来完成。我看到了他们的进步，但是我没有看到我自己的进步:如果我帮助了他们，显然，如果我花费了有限的时间在与那些计算机科学的硕士管理合作上，而没有参与编码，这不是我想要的。所以我忽略了他们。
>
>
>

这是一个保持理智的的好方法，但这个态度并不能预示着这个项目会被广阔的分享。

如果你确实很少关心非程序员设计的贡献、文档，或者无论其他什么，那么请首先了解那些。再次强调，如果这是实情，你的项目就不能成为一个开源项目。

当然，排除感觉不总是可靠的。 就像ActiveState的副总裁Bernard Golden告诉过我，“一些将会成为开发人员将会对现有的“小集团”开发团体这种感觉感到恐惧，虽然这不一定正确。”

现在，若使了解开发人员为什么要贡献并邀请做开发，意味着更多的开源项目投资，更长久地生存。

图片由[Shutterstock](http://www.shutterstock.com/)提供

---

via: <http://readwrite.com/2014/08/20/open-source-project-how-to>

作者：[Matt Asay](http://readwrite.com/author/matt-asay) 译者：[Vic\_\_\_/VicYu](http://www.vicyu.net) 校对：[wxy](https://github.com/wxy)

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


慕尼黑市市长透露重返 Windows 的费用

Summary: 摘要: 慕尼黑市市长透露了在该市摆脱微软十年之后再次放弃 Linux 重返 Windows 的费用，大约需要数以百万计的欧元。  慕尼黑市市长透露，重返 Windows 将需要花费上百万欧元购买新的硬件。 今年早些时候，该市新当选的市长提出慕尼黑可能重返 Windows，尽管市当局用了若干年才迁移到基于 Linux 的操作系统和开源软件。（摘要译文：http://linux.cn/article-2294-1.html） 作为最著名的从微软迁移到 Linux 桌面系统的案例，慕尼黑投向开源软件的做法一直引发各种争议和讨论。慕尼黑的迁移始于2004年，还有一些德国的地方当局也追随它的脚步

用了10年的ODF文档格式，有本事就换吧！

看了好久

都看不懂limux是什么系统

而部署 Limux 并从微软 Office 迁移的项目实施

因为基于 Ubuntu 的 Limux 操作系统

既然市长是软粉，那还有什么好说的

Limux 是他们专门定制的一个 Linux 发行版。基于 Ubuntu 的。可以参考相关文章的信息。

>
> **摘要**: 慕尼黑市市长透露了在该市摆脱微软十年之后再次放弃 Linux 重返 Windows 的费用，大约需要数以百万计的欧元。
>
>
>

慕尼黑市市长透露，重返 Windows 将需要花费上百万欧元购买新的硬件。

今年早些时候，该市新当选的市长提出慕尼黑可能重返 Windows，尽管市当局[用了若干年才迁移到基于 Linux 的操作系统和开源软件](http://www.techrepublic.com/article/how-munich-rejected-steve-ballmer-and-kicked-microsoft-out-of-the-city/)。（摘要译文：[http://linux.cn/article-2294-1.html）](http://linux.cn/article-2294-1.html%EF%BC%89%E3%80%82)

作为最著名的从微软迁移到 Linux 桌面系统的案例，慕尼黑投向开源软件的做法一直引发各种争议和讨论。慕尼黑的迁移始于2004年，还有一些德国的地方当局也[追随它的脚步转向开源](http://www.techrepublic.com/blog/european-technology/its-not-just-munich-open-source-gains-new-ground-in-germany/)。

![](/data/attachment/album/201410/18/110513dwnljnjwnnp3opwj.jpg)

目前还没有[制定好返回 Windows 桌面的计划](http://www.techrepublic.com/article/no-munich-isnt-about-to-ditch-free-software-and-move-back-to-windows/)，但是当局正在调研哪种操作系统和软件包（包括专有软件和开源软件）更适合他们的需求。调研报告也将统计迁移到开源软件所花费的费用。

Dieter Reiter市长在[回应慕尼黑的绿党的问询（PDF）](http://www.ris-muenchen.de/RII2/RII/DOK/ANTRAG/3456728.pdf)时透露了重返 Windows 的费用。

Reiter 说，迁移到 Windows 7 需要替换它14000名以上的职员的所有个人电脑，此举将花费 315万欧元。这还没有包括软件许可证费用和基础设施的投入，Reiter 说由于没有进一步计划，所以还没办法测算。他说，如果迁移到 Windows 8 将花费更多。

Reiter 说，返回微软将导致迁移到 [Limux](http://en.wikipedia.org/wiki/LiMux)、OpenOffice 及其它开源开源所花费的1400万欧元打了水漂。而部署 Limux 并从微软 Office 迁移的项目实施、支持、培训、修改系统以及 Limux 相关软件的授权等工作都将被搁置，他补充道。

他还透露说，（之前）迁移到 Limux 为市政府节约了大概1100万欧元的许可证和硬件费用，因为基于 Ubuntu 的 Limux 操作系统要比升级较新版本的 Windows 对硬件的需要要低。

在这个回应中 Reiter 告诉 Stadtbild 杂志说，他是微软的粉丝，但是这并不会影响到这份 IT 审计报告。

“在接受 Stadtbild 杂志的采访中我透露我是微软粉丝后，我就收到了大量的信件，询问我们的 IT 团队是否能令人满意的满足用户在任何时候的需求，以及是否有足够的能力为一个现代化大都市的政府服务。”

“这件事有许多方面，用户满意度是其中之一。这和我个人偏好无关，也和我在开源方面的经验无关。”

在他的回应中，并不是由于职员们的对迁移到开源的抱怨而导致本次审计的决定。他说，这是来自对职员在 IT 方面的调查而产生的审计，并不独是 Limux OS。

他还提到了一个 Windows 和基于 Linux 的操作系统的相对安全的问题。他指出，根据德国国家安全局 BSI 的信息，发现 Linux 要比 Windows 漏洞更多，不过只是使用量较少罢了。然而他也补充说，这种比较也许有不同的解释。

---

via: <http://www.zdnet.com/munich-sheds-light-on-the-cost-of-dropping-linux-and-returning-to-windows-7000034718/>

作者：[Avishek Kumar](http://www.zdnet.com/meet-the-team/uk/nick-heath/) 译者：[wxy](https://github.com/wxy)

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


命令行基础工具的更佳替代品

Summary: 命令行听起来有时候会很吓人，特别是在刚刚接触的时候，你甚至可能做过有关命令行的噩梦。然而渐渐地，我们都会意识到命令行实际上并不是那么吓人，反而是非常有用。实际上，没有命令行正是每次我使用 Windows 时让我感到崩溃的地方。这种感觉上的变化是因为命令行工具实际上是很智能的。 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的， 但还远说不上是足够强大。 如果你想使你的命令行生涯更加愉悦， 这里有几个程序你可以下载下来替换原来的默认程序， 它还可以给你提供比原始程序更多的功能。 dfc 作为一个 LVM 使用者,

原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！

Repost

常用命令的高级替代品，赞！//@Linux中国:噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！

dog这个不错呀

干货[馋嘴]

原来的命令都用惯了，看到这里列出的一些命令还是蛮好用的，尤其是那个acp和amv哇，不过觉得这些功能还是最好酌情整合到原来的命令中去，这样原来的命令行工具才能不断进化，变得越来越强大，而且能够与时俱进，增强易用性．

Windows是可以通過多種方式在命令行查詢磁盤空間

想改需要取得原来程序的维护者的同意和支持，有时候并不可行。。。

嗯嗯！不错，这些需要单独安装的吧？功能真不错！

牢记命令行。//@Linux中国:噩梦。。。//@我的图书我做主: 原来噩梦总是相似的，因为记不住命令死活学不好linux的来观摩了！

这些命令哪里有下。。。。。。。

用centos的朋友在YUM里可能找不到dfc这个工具，我找了很久找到了，贴出地址，需要的朋友可以下载来自己编译

projects.gw-computing.net/projects/dfc/files

解压后README里有详细步骤

谢谢！

额。advcp我找了很久没有找到。 哪位有地址发一下。

请按译者注自己构建一个试试。

来学习学习，advcp还不错

命令行听起来有时候会很吓人，特别是在刚刚接触的时候，你甚至可能做过有关命令行的噩梦。然而渐渐地，我们都会意识到命令行实际上并不是那么吓人，反而是非常有用。实际上，没有命令行正是每次我使用 Windows 时让我感到崩溃的地方。这种感觉上的变化是因为命令行工具实际上是很智能的。 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的， 但还远说不上是足够强大。 如果你想使你的命令行生涯更加愉悦， 这里有几个程序你可以下载下来替换原来的默认程序， 它还可以给你提供比原始程序更多的功能。

### dfc

作为一个 LVM 使用者, 我非常喜欢随时查看我的硬盘存储器的使用情况. 我也从来没法真正理解为什么在 Windows 上我们非得打开资源管理器来查看电脑的基本信息。在 Linux 上， 我们可以使用如下命令：

```
$ df -h

```

![](/data/attachment/album/201410/19/225759fkfn0xjby2v0fb0f.jpg)

该命令可显示电脑上每一分卷的大小、 已使用空间、 可用空间、 已使用空间百分比和挂载点。 注意， 我们必须使用 "-h" 选项使得所有数据以可读形式显示(使用 GiB 而不是 KiB)。 但你可以使用 [dfc](http://projects.gw-computing.net/projects/dfc) 来完全替代 df， 它不需要任何额外的选项就可以得到 df 命令所显示的内容， 并且会为每个设备绘制彩色的使用情况图, 因此可读性会更强。

![](/data/attachment/album/201410/19/225456mdwhg9uthulax7u6.jpg)

另外， 你可以使用 "-q" 选项将各分卷排序， 使用 "-u" 选项指定你希望使用的单位， 甚至可以使用 "-e" 选项来获得 csv 或者 html 格式的输出.

### dog

Dog 比 cat 好， 至少这个程序自己是这么宣称的。 你应该相信它一次。 所有 cat 命令能做的事， [dog](http://archive.debian.org/debian/pool/main/d/dog/) 都做的更好。 除了仅仅能在控制台上显示一些文本流之外， dog 还可以对其进行过滤。 例如， 你可以使用如下语法来获得网页上的所有图片：

```
$ dog --images [URL]

```

![](/data/attachment/album/201410/19/225519wkqo0okkus70zkdd.jpg)

或者是所有链接：

```
dog --links [URL]

```

![](/data/attachment/album/201410/19/225827yyacj1vmceac1a1a.jpg)

另外， dog 命令还可以处理一些其他的小任务， 比如全部转换为大写或小写， 使用不同的编码， 显示行号和处理十六进制文件。 总之, dog 是 cat 的必备替代品。

### advcp

一个 Linux 中最基本的命令就是复制命令： cp。 它几乎和 cd 命令地位相同。 然而， 它的输出非常少。 你可以使用 verbose 模式来实时查看正在被复制的文件， 但如果一个文件非常大的话， 你看着屏幕等待却完全不知道后台在干什么。 一个简单的解决方法是加上一个进度条： 这正是 advcp (advanced cp 的缩写) 所做的！ advcp 是 [GNU coreutils](http://www.gnu.org/software/coreutils/) 的一个 [补丁版本](http://zwicke.org/web/advcopy/)， 它提供了 acp 和 amv 命令， 即"高级"的 cp 和 mv 命令. 使用语法如下：

```
$ acp -g [file] [copy]

```

它把文件复制到另一个位置， 并显示一个进度条。

![](/data/attachment/album/201410/19/225551scimbifntk60zc96.jpg)

我还建议在 .bashrc 或 .zshrc 中设置如下命令别名：

```
alias cp="acp -g"
alias mv="amv -g"

```

(译者注: 原文给出的链接已貌似失效, 我写了一个可用的安装脚本放在了我的 [gist](https://gist.github.com/b978fc93b62e75bfad9c) 上, 用的是 AUR 里的 [patch](https://aur.archlinux.org/packages/advcp)。)

(译者注：由于 GIST 被封，所以我将这个构建脚本贴到这里，大家可以使用它来构建一个自己用的二进制程序。)

```
#!/usr/bin/env bash
set -e

tmpdir=$(mktemp -t -d advcp.XXXXXX)
cd ${tmpdir}

wget https://aur.archlinux.org/packages/ad/advcp/advcp.tar.gz
tar xf advcp.tar.gz

source advcp/PKGBUILD

wget http://ftp.gnu.org/gnu/coreutils/coreutils-"${_pkgver}".tar.xz
tar xf coreutils-"${_pkgver}".tar.xz

cd coreutils-"${_pkgver}"

echo "Patching..."
patch -p1 -i ../advcp/advcpmv-"${_pkgver}"_"${pkgver}".patch || exit 1

echo "Start making..."
./configure || exit 1
make || exit 1

sudo install -Dm 755 "${PWD}"/src/cp /usr/local/bin/acp
sudo install -Dm 755 "${PWD}"/src/mv /usr/local/bin/amv

echo "Installation succeeded!"
echo "Don't forget to add \"alias cp='acp -g'\" and \"alias mv='amv -g'\" in your bashrc!"
```

### The Silver Searcher

[the silver searcher](https://github.com/ggreer/the_silver_searcher) 这个名字听起来很不寻常（银搜索...）， 它是一款设计用来替代 grep 和 [ack](http://xmodulo.com/2014/01/search-text-files-patterns-efficiently.html) 的工具。 The silver searcher 在文件中搜索你想要的部分， 它比 ack 要快， 而且能够忽略一些文件而不像 grep 那样。（译者注： 原文的意思貌似是 grep 无法忽略一些文件， 但 grep 有类似选项） the silver searcher 还有一些其他的功能，比如彩色输出， 跟随软连接， 使用正则表达式， 甚至是忽略某些模式。

![](/data/attachment/album/201410/19/225833ebz3mbfxfh1183r3.jpg)

作者在开发者主页上提供了一些搜索速度的统计数字， 如果它们的确是真的的话， 那是非常可观的。 另外， 你可以把它整合到 Vim 中， 用一个简洁的命令来调用它。 如果要用两个词来概括它， 那就是： 智能、快速。

### plowshare

所有命令行的粉丝都喜欢使用 wget 或其他对应的替代品来从互联网上下载东西。 但如果你使用许多文件分享网站， 像 mediafire 或者 rapidshare。 你一定很乐意了解一款专门为这些网站设计的对应的程序， 叫做 [plowshare](https://code.google.com/p/plowshare/)。 安装成功之后， 你可以使用如下命令来下载文件：

```
$ plowdown [URL]

```

或者是上传文件:

```
$ plowup [website name] [file]

```

前提是如果你有那个文件分享网招的账号的话。

最后， 你可以获取分享文件夹中的一系列文件的链接：

```
$ plowlist [URL]

```

或者是文件名、 大小、 哈希值等等：

```
$ plowprobe [URL]

```

对于那些熟悉这些服务的人来说， plowshare 还是缓慢而令人难以忍受的 jDownloader 的一个很好的替代品。

### htop

如果你经常使用 top 命令， 很有可能你会喜欢 [htop](http://hisham.hm/htop/) 命令。 top 和 htop 命令都能对正在运行的进程提供了实时查看功能， 但 htop 还拥有一系列 top 命令所没有的人性化功能。 比如， 在 htop 中， 你可以水平或垂直滚动进程列表来查看每个进程的完整命令名， 还可以使用鼠标点击和方向键来进行一些基本的进程操作(比如 kill、 (re)nice 等)，而不用输入进程标识符。

![](/data/attachment/album/201410/19/225627nisp9s1dxjjg1px9.jpg)

### mtr

系统管理员的一个基本的网络诊断工具traceroute可以用于显示从本地网络到目标网络的网络第三层协议的路由。mtr（即“My Traceroute”的缩写）继承了强大的traceroute功能，并集成了 ping 的功能。当发现了一个完整的路由时，mtr会显示所有的中继节点的 ping 延迟的统计数据，对网络延迟的定位非常有用。虽然也有其它的 traceroute的变体（如：tcptraceroute 或 traceroute-nanog），但是我相信 mtr 是traceroute 工具里面最实用的一个增强工具。

![](/data/attachment/album/201410/19/225843bqh698h889yhlurs.jpg)

总的来说， 这些十分有效的基本命令行的替代工具就像那些有用的小珍珠一样， 它们并不是那么容易被发现， 但当一旦你找到一个， 你就会惊讶你是如何忍受这么长没有它的时间！ 如果你还知道其他的与上面描述相符的工具， 请在评论中分享给我们。

---

via: <http://xmodulo.com/2014/07/better-alternatives-basic-command-line-utilities.html>

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

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


Linux 上一些很好用的文献目录管理工具

Summary: 你是否写过一些很长很长的文章，以至于你会认为你永远都看不到它的结束？那么你会很明白最糟糕的不是你投入了多少的时间，而是一旦你完成，你仍然要制定和格式化你的所引用的一些参考文献。很幸运的是，Linux 有很多的解决方案：参考书目和文献管理工具。借助BibTex的力量，这些工具可以帮你导入引用源，然后自动生成一个结构化文献目录。这里给大家提供了一些Linux上参考文献管理工具的不完全列表。 1. Zotero  这应该是最著名的参考文献聚集工具，Zotero作为一个浏览器的扩展插件。当然，它也有一个方便的Linux 独立工具。拥有强大的性

[心]

推荐跨平台的mendeley

你是否写过一些很长很长的文章，以至于你会认为你永远都看不到它的结束？那么你会很明白最糟糕的不是你投入了多少的时间，而是一旦你完成，你仍然要制定和格式化你的所引用的一些参考文献。很幸运的是，Linux 有很多的解决方案：参考书目和文献管理工具。借助BibTex的力量，这些工具可以帮你导入引用源，然后自动生成一个结构化文献目录。这里给大家提供了一些Linux上参考文献管理工具的不完全列表。

### 1. Zotero

![](/data/attachment/album/201410/20/105110n07l37n37l70ekjt.jpg)

这应该是最著名的参考文献聚集工具，[Zotero](https://www.zotero.org/)作为一个浏览器的扩展插件。当然，它也有一个方便的Linux 独立工具。拥有强大的性能，Zotero 很容易上手，并且也可以和LibreOffice 或者是其他的文本编辑器配套使用来管理文档的参考文献。我个人很欣赏其操作界面和插件管理器。可惜的是，如果你对参考文献有很多不同的需求的话，很快就会发现 Zotero 功能有限。

### 2. JabRef

![](/data/attachment/album/201410/20/105113bj6n7lk7ae80n7e8.jpg)

[JabRef](http://jabref.sourceforge.net/) 是最先进的文献管理工具之一。你可以导入大量的格式，可以在其外部的数据库里查找相应的条目（像Google Scholar），并且能直接输出到你喜欢的编辑器。JabRef 可以很好的兼容你的运行环境，甚至也支持插件。最后还有一点，JabRef可以连接你自己的SQL 数据库。而唯一的缺点就是其学习使用的难度。

### 3. KBibTex

![](/data/attachment/album/201410/20/105118woc70zhe010vzn57.jpg)

对于 KDE 使用者，这个桌面环境也拥有它自己专有的文献管理工具[KBibTex](http://home.gna.org/kbibtex/)。这个程序的品质，正如你所期望。程序可高度定制，通过快捷键就可以很好的操作和体验。你可以很容易找到副本、可以预览结果、也可以直接输出到LaTex 编辑器。而我认为这款软件最大的特色在于它集成了Bigsonomy ，Google Scholar ，甚至是你的Zotero账号。唯一的缺憾是界面看起来实在是有点乱。多花点时间设置软件可以让你使用起来得心应手。

### 4. Bibfilex

![](/data/attachment/album/201410/20/105123c3qastasfbjb0k4f.jpg)

可以运行在Gtk 和Qt 环境中，[Bibfilex](https://sites.google.com/site/bibfilex/)是一个基于 Biblatex 的界面友好的工具。相对于JabRef 和KBibTex ，缺少了一些高级的功能，但这也让他更加的快速和轻巧。不用想太多，这绝对是快速做文献目录的一个聪明的选择。界面很舒服，仅仅反映了一些必要的功能。我给出了其使用的完全手册，你可以从官方的[下载页面](https://sites.google.com/site/bibfilex/download)去获得。

### 5. Pybliographer

![](/data/attachment/album/201410/20/105126t807108embath8d8.jpg)

正如它的名字一样，[Pybliographer](http://pybliographer.org/)是一个用 Python 写的非图形化的文献目录管理工具。我个人比较喜欢把Pybiographic 当做是图形化的前端。它的界面极其简洁和抽象。如果你仅仅需要输出少数的参考文献，而且也确实没有时间去学习更多的工具软件，那么 Pybliographer 确实是一个不错的选择。有一点点像 Bibfilex 的是，它是以让用户方便、快速的使用为目标的。

### 6. Referencer

![](/data/attachment/album/201410/20/105128qff9nenelo9tbyaz.jpg)

这应该是我归纳这些时候的一个最大的惊喜，[Referencer](https://launchpad.net/referencer) 确实是让人眼前一亮。完美兼容 Gnome ，它可以查找和导入你的文档，然后在网上查询他们的参考文献，并且输出到 LyX ，非常的漂亮和设计良好。为数不多的几个快捷键和插件让它拥有了图书馆的风格。

总的来说，很感谢这些工具软件，有了它们，你就可以不用再担心长长的文章了，至少是不用再担心参考文献的部分了。那么我们还有什么遗漏的吗？是否还有其他的文献管理工具你很喜欢？请在评论里告诉我们。

---

via: <http://xmodulo.com/reference-management-software-linux.html>

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

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


Linux有问必答：如何在CentOS7上改变网络接口名

Summary: 提问: 在CentOS7，我想将分配的网络接口名更改为别的名字。有什么合适的方法来来重命名CentOS或RHEL7的网络接口？  传统上，Linux的网络接口被枚举为eth，但这些名称并不一定符合实际的硬件插槽，PCI位置，USB接口数量等，这引入了一个不可预知的命名问题（例如，由于不确定的设备探测行为），这可能会导致不同的网络配置错误（例如，由无意的接口改名引起的禁止接口或者防火墙旁路）。基于MAC地址的udev规则在虚拟化的环境中并不有用，这里的MAC地址如端口数量一样无常。  CentOS/RHEL6引入了一致和可预测的网络设备命名网络接口的方法。

哎，现在改个名字变得这么复杂了……

我们应该考虑的问题是是否需要修改名称？  修改后是否会有弊端？

根据Centos7的网卡命名规则“接口名称被自动基于固件，拓扑结构和位置信息来确定”，可以看出不修改是有好处的！

我们修改后，如果更换网卡硬件，就会导致eth0配置文件存在，而多出一个新的由Centos7命名规则的网卡，//这里我没有测试，是猜想。

这个不行，，，修改过后启动报错。

>
> **提问**: 在CentOS7，我想将分配的网络接口名更改为别的名字。有什么合适的方法来来重命名CentOS或RHEL7的网络接口？
>
>
>

传统上，Linux的网络接口被枚举为eth[0123...]，但这些名称并不一定符合实际的硬件插槽，PCI位置，USB接口数量等，这引入了一个不可预知的命名问题（例如，由于不确定的设备探测行为），这可能会导致不同的网络配置错误（例如，由无意的接口改名引起的禁止接口或者防火墙旁路）。基于MAC地址的udev规则在虚拟化的环境中并不有用，这里的MAC地址如端口数量一样无常。

![](/data/attachment/album/201410/20/111141dq96m6az91mjt1tc.png)

CentOS/RHEL6引入了[一致和可预测的网络设备命名](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/appe-Consistent_Network_Device_Naming.html)网络接口的方法。这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易，并且在这样一种方式下，无论是否重启机器、过了多少时间、或者改变硬件，其名字都是持久不变的。然而，这种命名规则并不是默认在CentOS/RHEL6上开启。

从CentOS/RHEL7起，这种可预见的命名规则变成了默认。根据这一规则，接口名称被自动基于固件，拓扑结构和位置信息来确定。现在，即使添加或移除网络设备，接口名称仍然保持固定，而无需重新枚举，和坏掉的硬件可以无缝替换。

```
* 基于接口类型的两个字母前缀:
*   en -- 以太网
*   sl -- 串行线路IP (slip)
*   wl -- wlan
*   ww -- wwan
*
* 名字类型:
*   b<number>                             -- BCMA总线和新书
*   ccw<name>                             -- CCW总线组名
*   o<index>                              -- 车载设备的索引号
*   s<slot>[f<function>][d<dev_port>]     -- 热插拔插槽索引号
*   x<MAC>                                -- MAC 地址
*   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
*                                         -- PCI 位置
*   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..]1[i<interface>]
*                                         -- USB端口号链

```

新的命名方案的一个小的缺点是接口名称相比传统名称有点难以阅读。例如，你可能会发现像enp0s3名字。再者，你再也无法来控制接口名了。

![](/data/attachment/album/201410/20/111146cppg7li7qptq54il.jpg)

如果由于某种原因，你喜欢旧的方式，并希望能够选择任意名称分配给CentOS/ RHEL7的设备，你需要重写默认的可预测的命名规则，定义基于MAC地址udev规则。

**下面是如何在CentOS或RHEL7命名网络接口。**

首先，让我们来禁用该可预测命名规则。对于这一点，你可以在启动时传递“net.ifnames=0”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0”到GRUB*CMDLINE*LINUX变量来实现的。

![](/data/attachment/album/201410/20/111148uca6xqaxfyuuau4u.jpg)

然后运行这条命令来重新生成GRUB配置并更新内核参数。

```
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

```

![](/data/attachment/album/201410/20/111150dm7rlp9va7c25z99.jpg)

接下来，编辑（或创建）一个udev的网络命名规则文件（/etc/udev/rules.d/70-persistent-net.rules），并添加下面一行。更换成你自己的MAC地址（08:00:27:a9:7a:e1）和接口（sushi）。

```
 $ sudo vi /etc/udev/rules.d/70-persistent-net.rules

```

---

```
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="sushi"

```

最后，重启电脑并验证新的接口名。

![](/data/attachment/album/201410/20/111152dfj6xgj2va6ifrjx.jpg)

请注意，配置重命名后的接口仍然是你的责任。如果网络配置（例如，IPv4设置，防火墙规则）是基于旧名称（变更前）的，则需要更新的网络配置以反映更改的名称。

---

via: <http://ask.xmodulo.com/change-network-interface-name-centos7.html>

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

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


Git Rebase教程： 用Git Rebase让时光倒流

Summary: 想象一下你正在开发一个激进的新功能。这将是很灿烂的但它需要一段时间。您这几天也许是几个星期一直在做这个。  你的功能分支已经超前master有6个提交了。你是一个优秀的开发人员并做了有意义的语义提交。但有一件事情：你开始慢慢意识到，这个疯狂的东西仍需要更多的时间才能真的做好准备被合并回主分支。 m1-m2-m3-m4 (master) \ f1-f2-f3-f4-f5-f6(feature)  你也知道的是，一些地方实际上是交叉不大的新功能。它们可以更早地合并到主分支。不幸的是，你想将部分合并到主分支的内容存在于你六个提交中的某个地方。更糟糕的是，它也包

用起来感觉很危险

这就是传说中的“变基”。

变基神器。。//@陈伟琪在肇庆: 这就是传说中的“变基”。

长大的标志不是学会做rebase，而是学会不做rebase。//@Linux中国: 变基神器。。//@陈伟琪在肇庆: 这就是传说中的“变基”。

@我的印象笔记  //@Linux中国:变基神器。。//@陈伟琪在肇庆: 这就是传说中的“变基”。

[挖鼻屎]//@米粽粽: 基佬们快来学 //@时趣张首华: //@Linux中国: 变基神器。。//@陈伟琪在肇庆: 这就是传说中的“变基”。

git高级技能--变基

另辟途径不愿变基啊右右右。//@Linux中国:@群英汇蒋鑫 帮忙给看看？是这样么？//@小和平鸽: 为什么不从f2出一个新branch，diff f3 修改以后合并到主分支呢？rebase本身就不是推荐使用的东西。而且这货把Repo搞反了。//@Linux中国: 变基神器。。//@陈伟琪在肇庆: 这就是传说中的“变基”。

rebase在多team合作开发是是很有用的。abc team都要修改某git下的东西，但abc team都不应该直接merge master分支，而是建立自己的分支，然后定期提交commit。当需要提交之前从主枝rebase别的team的改动，把冲突解决在自己branch上。

很好的文章啊，这正是交互式变基大显身手的地方，试试就知道哪个方便了。 //@Linux中国: @群英汇蒋鑫 帮忙给看看？是这样么？//@小和平鸽: 为什么不从f2出一个新branch，diff f3 修改以后合并到主分支呢？rebase本身就不是推荐使用的东西。而且这货把Repo搞反了。

想象一下你正在开发一个激进的新功能。这将是很灿烂的但它需要一段时间。您这几天也许是几个星期一直在做这个。

![](/data/attachment/album/201410/20/120426xxp4qkbxm5vqylk4.jpg)

你的功能分支已经超前master有6个提交了。你是一个优秀的开发人员并做了有意义的语义提交。但有一件事情：你开始慢慢意识到，这个疯狂的东西仍需要更多的时间才能真的做好准备被合并回主分支。

```
m1-m2-m3-m4 (master)
     \
      f1-f2-f3-f4-f5-f6(feature)

```

你也知道的是，一些地方实际上是交叉不大的新功能。它们可以更早地合并到主分支。不幸的是，你想将部分合并到主分支的内容存在于你六个提交中的某个地方。更糟糕的是，它也包含了依赖于你的功能分支的之前的提交。有人可能会说，你应该在第一处地方做两次提交，但没有人是完美的。

```
m1-m2-m3-m4 (master)
     \
      f1-f2-f3-f4-f5-f6(feature)
             ^
             |
        mixed commit

```

在你准备提交的时间，你没有预见到，你可能要逐步把该功能合并入主分支。哎呀！你不会想到这件事会有这么久。

你需要的是一种方法可以回溯历史，把它并分成两次提交，这样就可以把代码都安全地分离出来，并可以移植到master分支。

用图说话，就是我们需要这样。

```
m1-m2-m3-m4 (master)
     \
      f1-f2-f3a-f3b-f4-f5-f6(feature)

```

在将工作分成两个提交后，我们就可以cherry-pick出前面的部分到主分支了。

原来Git自带了一个功能强大的命令git rebase -i ，它可以让我们这样做。它可以让我们改变历史。改变历史可能会产生问题，作为一个经验，应尽快避免历史与他人共享。不过在我们的例子中，我们只是改变我们的本地功能分支的历史。没有人会受到伤害。就这么做了！

好吧，让我们来仔细看看f3提交究竟修改了什么。原来我们共修改了两个文件：userService.js和wishlistService.js。比方说，userService.js的更改可以直接合入主分支而wishlistService.js不能。因为wishlistService.js甚至不存在在主分支里面。它是f1提交中引入的。

>
> 专家提示：即使是在一个文件中更改，git也可以搞定。但这篇博客中我们先简化情况。
>
>
>

我们已经建立了一个[公众演示仓库](https://github.com/thoughtram/interactive-rebase-demo)，我们将使用这个来练习。为了便于跟踪，每一个提交信息的前缀是在上面的图表中使用的假的SHA。以下是git在分开提交f3时的分支图。

![](/data/attachment/album/201410/20/120821pe9ozqp9xbiqnohd.png)

现在，我们要做的第一件事就是使用git的checkout功能checkout出我们的功能分支。用git rebase -i master开始做rebase。

现在接下来git会用所配置的编辑器打开（默认为Vim）一个临时文件。

![](/data/attachment/album/201410/20/120834wb2iizwkkkukaazz.png)

该文件为您提供一些rebase选择，它带有一个提示（蓝色文字）。对于每一个提交，我们可以选择的动作有pick、rwork、edit、squash、fixup和exec。每一个动作也可以通过它的缩写形式p、r、e、s、f和e引用。描述每一个选项超出了本文范畴，所以让我们专注于我们的具体任务。

我们要为f3提交选择edit选项，因此我们把内容改变成这样。

![](/data/attachment/album/201410/20/120848p8h8khxnupur0tt0.png)

现在我们保存文件（在Vim中是按下后输入:wq,最后是按下回车）。接下来我们注意到git在编辑选项中选择的提交处停止了rebase。

![](/data/attachment/album/201410/20/120859uhvo4634w33ww68e.jpg)

这意味这git开始将f1、f2、f3生效仿佛它就是常规的rebase，但是在f3生效**之后**停止。事实上，我们可以看一眼停止的地方的日志就可以证明这一点。

![](/data/attachment/album/201410/20/120912rbjdbljxtjadtesz.png)

要将f3分成两个提交，我们所要做的是重置git的指针到先前的提交（f2）而保持工作目录和现在一样。这就是git reset在混合模式在做的。由于混合模式是git reset的默认模式，我们可以直接用git reset head~1。就这么做并在运行后用git status看下发生了什么。

![](/data/attachment/album/201410/20/120926sk0cqui0iutzucic.png)

git status告诉我们userService.js和wishlistService.js被修改了。如果我们运行 git diff 我们就可以看见在f3里面确切地做了哪些更改。

![](/data/attachment/album/201410/20/120940o0ibunmo3nm49n3u.png)

如果我们看一眼日志我们会发现f3已经消失了。

![](/data/attachment/album/201410/20/120955eib8s88ic6bm8qzz.png)

现在我们有了准备提交的先前的f3提交，而原先的f3提交已经消失了。记住虽然我们仍旧在rebase的中间过程。我们的f4、f5、f6提交还没有缺失，它们会在接下来回来。

让我们创建两个新的提交：首先让我们为可以提交到主分支的userService.js创建一个提交。运行git add userService.js 接着运行 git commit -m "f3a: add updateUser method"。

太棒了！让我们为wishlistService.js的改变创建另外一个提交。运行git add wishlistService.js，接着运行git commit -m "f3b: add addItems method".

让我们在看一眼日志。

![](/data/attachment/album/201410/20/121007qqd5ippt4a4zihth.png)

这就是我们想要的，除了f4、f5、f6仍旧缺失。这是因为我们仍在rebase交互的中间，我们需要告诉git继续rebase。用下面的命令继续：git rebase --continue。

让我们再次检查一下日志。

![](/data/attachment/album/201410/20/121019t1421s43bbv7yks4.png)

就是这样。我们现在已经得到我们想要的历史了。先前的f3提交现在已经被分割成两个提交f3a和f3b。剩下的最后一件事是cherry-pick出f3a提交到主分支上。

为了完成最后一步，我们首先切换到主分支。我们用git checkout master。现在我们就可以用cherry-pick命令来拾取f3a commit了。本例中我们可以用它的SHA值bd47ee1来引用它。

![](/data/attachment/album/201410/20/121042xwprfo2ileil8qzl.png)

现在f3a这个提交就在主分支的最上面了。这就是我们需要的！

![](/data/attachment/album/201410/20/121052f2c0o2lo7oqh2z9a.png)

这篇文章的长度看起来需要花费很大的功夫，但实际上对于一个git高级用户而言这只是一会会。

>
> 注：Christoph目前正在与Pascal Precht写一本关于[Git rebase](https://leanpub.com/rebase-the-complete-guide-on-rebasing-in-git)的书，您可以在leanpub订阅它并在准备出版时获得通知。
>
>
>

![](/data/attachment/album/201410/20/121119uq7zdx4tbz7ohxfb.jpeg)

本文作者 Christoph Burgdorf自10岁时就是一名程序员，他是HannoverJS Meetup网站的创始人，并且一直活跃在AngularJS社区。他也是非常了解gti的内内外外，在那里他举办一个[thoughtram](http://thoughtram.io/)的工作室来帮助初学者掌握该技术。

本的教程最初发表在他的[blog](http://blog.thoughtram.io/posts/going-back-in-time-to-split-older-commits/)。

---

via: <https://www.codementor.io/git-tutorial/git-rebase-split-old-commit-master>

作者：[cburgdorf](https://www.codementor.io/cburgdorf) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Linux中国网站首页改版啦

Summary: 其实这是一个小事情，不过主页君还是想告诉朋友们。 经过考虑，我们将 Linux 中国的首页（http://linux.cn/）的布局进行了部分调整。主要是调整了首页4个主要栏目块的呈现方式，现在不以栏目分区，而是按照时间顺序，平铺了最新文章，以便您可以根据时间顺序来查看文章。另外，您没点击过的文章，其标题是粗体，而点过的则是标准体这一点细心的朋友们可能已经发现了。 要是想就看某个栏目怎么办？看，主导航是固顶的，可以直接进入各个分类栏目。 好与不好，大家都来发表下意见和建议吧。：

原来图标是纯正的又黑又硬，现在弄了一点绿。。。

强烈要求出个手机版本啊

回复@老马睡不醒:现在手机阅读还可以啊？我们做的响应式的。您没试试？

回复@Linux中国:感谢回复，我试了一下，是我的浏览器（UC 8.7 经典版）比较奇葩的缘故，而且为了节省流量，关闭的图片以及缩放模式改成了“适应屏幕”模式，所以显示效果不佳。

新体验，不过还是感觉比以前分栏目的好了。<br />
点击之后不能立即刷新问细体，希望这个可以加强下，只要点击一下打开过了，就局部刷新下。。

恭喜改版，kashu.org发来贺电

linuxdown.net发来贺电。

回复@老马睡不醒:哦哦：》那就好：》谢谢支持：》

谢谢兄弟社区。：》

谢谢兄弟社区的支持：》

好的好的：》

黑色的栏，感觉有点奇怪！

嗯，菜单栏原本是蓝色的，不过浮动固顶后，感觉不够醒目。

立刻刷新细体的，已经有了，看到了么？

感觉还是原来的好看！

OK !perfect！

汗。。。不过没事，我们会不断修改各种细节。

赞！每天刷首页的时候，都不知道有没有漏下哪个。现在好了，刷到底就是没了。

输入框好像不能随着输入内容的增多而自动变大了。

也许是我还不习惯吧 ！只是个人感觉哈！改版之后，整体感觉还是挺不错的。很给力。赞一个。。。

谢谢！:>

哦。好像是。。您是指论坛发帖还是快速回复的位置？

是啊，我就是这样考虑的。不过我还在想是否在底部加上自动更新列表条目的功能。。感觉利弊皆有。

其实这是一个小事情，不过主页君还是想告诉朋友们。

经过考虑，我们将 Linux 中国的首页（<http://linux.cn/>）的布局进行了部分调整。主要是调整了首页4个主要栏目块的呈现方式，现在不以栏目分区，而是按照时间顺序，平铺了最新文章，以便您可以根据时间顺序来查看文章。另外，您没点击过的文章，其标题是粗体，而点过的则是标准体——这一点细心的朋友们可能已经发现了。

要是想就看某个栏目怎么办？看，主导航是固顶的，可以直接进入各个分类栏目。

好与不好，大家都来发表下意见和建议吧。：>

![](/data/attachment/album/201410/20/142327i9iunzaoxuvkoikm.gif)


小技巧："启动器的shell脚本会调用xterm来运行" 的解决办法

Summary:
本文针对 Mate 1.8.1 桌面环境下，CentOS 7.0 (x86_64) 和 ArchLinux 2014.10.01 (x86_64) 版本，也同样适用于存在类似问题的其他发行版本。（我自己仅仅在这两种发行版本下使用）
问题的提出：按照旧思路，在面板中添加启动器指向 .sh 脚本，（以这个为例：/home/myname/Scripts/pacman_Update.sh）
但是运行时会默认调用 xterm 来运行。界面既不美观，也不习惯，更为麻烦的是不支持粘贴操作。
解决办法：需要将启动器指向修改为：/usr/bin/mate-terminal -x /bin/sh -c '/home/myname/Scripts/pacman_Update.sh'并且启动类型需要设置为

本文针对 Mate 1.8.1 桌面环境下，CentOS 7.0 (x86\_64) 和 ArchLinux 2014.10.01 (x86\_64) 版本，也同样适用于存在类似问题的其他发行版本。

![](/data/attachment/album/201410/19/212020xixigeswh5whdnni.png)

（我自己仅仅在这两种发行版本下使用）

### 问题提出

按照旧思路，在面板中添加启动器指向 .sh 脚本，以这个为例：

```
/home/myname/Scripts/pacman_Update.sh
```

![](/data/attachment/album/201410/19/212023tq6lphwmjjpypdqh.png)

但是运行时会默认调用 xterm 来运行。界面既不美观，也不习惯，更为麻烦的是不支持粘贴操作。

![](/data/attachment/album/201410/19/212024ygrzw5nnhccpx7hp.png)

### 解决办法

需要将启动器指向修改为：

```
/usr/bin/mate-terminal -x /bin/sh -c '/home/myname/Scripts/pacman_Update.sh'
```

并且启动类型需要设置为“应用程序”，而不是“终端上的程序”。

![](/data/attachment/album/201410/19/212026wwuvq333v73nzauf.png)

执行结果如下：

![](/data/attachment/album/201410/19/212027djiqwewh3s8wwwg3.png)

如果本文对您有所帮助，欢迎转载和分享，谢谢！


Debian 7.7 更新版发布

Summary: Debian项目已经宣布Debian7.7 Wheezy发布并提供下载。这是常规维护更新，但它打包了很多重要的更新。  Debian在这个发行版里面包含了常规的主要更新，但如果你已经安装的 Debian 保持着不断最新就无需下载安装这个版本。开发者做了一些重要的修复，因此如果还没升级的话建议尽快升级。 此次更新主要是给稳定版修正安全问题，以及对一些严重问题的调整。安全建议的公告已经另行发布了，请查阅。 开发者在正式公告中指出：请注意，此更新并不是Debian 7的新版本，只是更新了部分包，没必要扔掉旧的wheezy CD或DVD，只要在安装后通过 Debian

怎么都出来几天了，我的更新一直没来。。。。

**Debian项目已经宣布Debian7.7 “Wheezy”发布并提供下载。这是常规维护更新，但它打包了很多重要的更新。**

![](/data/attachment/album/201410/22/204448dpxu1c2cc6n1xrvu.jpg)

Debian在这个发行版里面包含了常规的主要更新，但如果你已经安装的 Debian 保持着不断最新就无需下载安装这个版本。开发者做了一些重要的修复，因此如果还没升级的话建议尽快升级。

“此次更新主要是给稳定版修正安全问题，以及对一些严重问题的调整。安全建议的公告已经另行发布了，请查阅。”

开发者在正式[公告](https://www.debian.org/News/2014/20141018)中指出：“请注意，此更新并不是Debian 7的新版本，只是更新了部分包，没必要扔掉旧的wheezy CD或DVD，只要在安装后通过 Debian 镜像来升级那些过期的包就行“。

开发者已经升级了 Bash 包来修复一些重要的漏洞，在启动时SSH登录不再有效，并且还做了其他一些微调。

要了解发布更多的细节请查看官方公告中的完整更新日志。

现在下载 Debian 7.7:

* [Debian GNU/Linux 7.7.0 (ISO) 32-bit/64-bit](http://ftp.acc.umu.se/debian-cd/7.7.0/multi-arch/iso-dvd/debian-7.7.0-i386-amd64-source-DVD-1.iso)
* [Debian GNU/Linux 6.0.10 (ISO) 32-bit/64-bit](http://ftp.au.debian.org/debian/dists/oldstable/)
* [Debian GNU/Linux 8 Beta 2 (ISO) 32-bit/64-bit](http://cdimage.debian.org/cdimage/jessie_di_beta_2/)

---

via: <http://news.softpedia.com/news/Debian-7-7-Is-Out-with-Security-Fixes-462647.shtml>

作者：[Silviu Stahie](http://news.softpedia.com/editors/browse/silviu-stahie) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Linux 下的免费图片查看器

Summary: 我最喜欢的谚语之一是一图胜千言。它指一张静态图片可以传递一个复杂的想法。图像相比文字而言可以迅速且更有效地描述大量信息。它们捕捉回忆，永不让你忘记你所想记住的东西，并且让它时常在你的记忆里刷新。 图片是互联网日常使用的一部分，并且对社交媒体互动尤其重要。一个好的图片查看器是任何操作系统必不可少的一个组成部分。 Linux 系统提供了一个大量开源实用小程序的集合，其中这些程序提供了从显而易见到异乎寻常的各种功能。正是由于这些工具的高质量和多样选择帮助 Linux 在生产环境中而脱颖而出，尤其是当谈到图片查看器时

额，Picasa支持Linux不。。。一直用dolphin的路过

我最喜欢的谚语之一是“一图胜千言”。它指一张静态图片可以传递一个复杂的想法。图像相比文字而言可以迅速且更有效地描述大量信息。它们捕捉回忆，永不让你忘记你所想记住的东西，并且让它时常在你的记忆里刷新。

图片是互联网日常使用的一部分，并且对社交媒体互动尤其重要。一个好的图片查看器是任何操作系统必不可少的一个组成部分。

Linux 系统提供了一个大量开源实用小程序的集合，其中这些程序提供了从显而易见到异乎寻常的各种功能。正是由于这些工具的高质量和多样选择帮助 Linux 在生产环境中而脱颖而出，尤其是当谈到图片查看器时。Linux 有如此多的图像查看器可供选择，以至于让选择困难症患者无所适从~

一个不该包括在这个综述中但是值得一提的软件是 Fragment Image Viewer。它在专有许可证下发行（是的，我知道！），所以不会预先安装在 Ubuntu 上。 但它无疑看起来十分有趣！要是它的开发者们将它在开源许可证下发布的话，它将是明日之星！

现在，让我们亲眼探究一下这 13 款图像查看器。除了一个例外，它们中每个都是在开源协议下发行。由于有很多信息要阐述，我将这些详细内容从当前单一网页综述剥离，但作为替代，我为每一款图片查看器提供了一个单独页面，包括软件的完整描述，产品特点的详细分析，一张软件工作中的截图，以及相关资源和评论的链接。

![](/data/attachment/album/201410/22/210135k6zk9eysyz3y46k6.png)

### 图片查看器

* [**Eye of Gnome**](https://projects.gnome.org/eog/) -- 快速且多功能的图片查看器器
* [**gThumb**](https://wiki.gnome.org/Apps/gthumb) -- 高级图像查看器和浏览器
* [**Shotwell**](https://wiki.gnome.org/Apps/Shotwell/) -- 被设计来提供个人照片管理的图像管理器
* [**Gwenview**](http://gwenview.sourceforge.net/) -- 专为 KDE 4 桌面环境开发的简易图片查看器
* [**Imgv**](http://imgv.sourceforge.net/) -- 强大的图片查看器
* [**feh**](http://feh.finalrewind.org/) -- 基于 Imlib2 的快速且轻量的图片查看器
* [**nomacs**](http://www.nomacs.org/) -- 可处理包括 RAW 在内的大部分格式
* [**Geeqie**](http://geeqie.sourceforge.net/) -- 基于 Gtk+ 的轻量级图片查看器
* [**qiv**](http://spiegl.de/qiv/) -- 基于 gdk/imlib 的非常小且精致的开源图片查看器
* [**PhotoQT**](http://photoqt.org/) -- 好看、高度可配置、易用且快速
* [**Viewnior**](http://siyanpanayotov.com/project/viewnior/) -- 设计时考虑到易用性
* [**Cornice**](http://wxglade.sourceforge.net/extra/cornice.html) -- 设计用来作为 ACDSee 的免费替代品
* [**XnViewMP**](http://www.xnview.com/en/) -- 图像查看器、浏览器、转换器（专有软件）

---

via: <http://www.linuxlinks.com/article/20141018070111434/ImageViewers.html>

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

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