Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法

用不到

马克！

dmesg

收下了

安装在pc上的Ubuntu运行一个段错误程序后，用dmesg可以打印出这个段错误的相关信息：

[695596.585044] xiao[19078]: segfault at 0 ip 080483c4 sp bf815788 error 6 in xiao[8048000+1000]

[710079.934715] a.out[14084]: segfault at 0 ip 080483c4 sp bff93648 error 6 in a.out[8048000+1000]

[712629.489738] xiao[28812]: segfault at 0 ip 080483c4 sp bf965978 error 6 in xiao[8048000+1000]

但我自己编了一个linux内核在ARM上面跑，相关的段错误信息不能用dmesg打印出来，请问这是需要安装什么服务、或是系统配置吗？请指教。

在文中列出的情况下，没有必要用grep，直接在less中就可以。 &pattern          *  Display only matching lines.  -- from help page of less

# Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法

‘dmesg’命令显示linux内核的环形缓冲区信息，我们可以从中获得诸如系统架构、cpu、挂载的硬件，RAM等多个运行级别的大量的系统信息。当计算机启动时，系统内核（操作系统的核心部分）将会被加载到内存中。在加载的过程中会显示很多的信息，在这些信息中我们可以看到内核检测硬件设备。

[](https://camo.githubusercontent.com/433d31191ed6401b5285a33a5b0a6c01d439d0fe/687474703a2f2f7777772e7465636d696e742e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f646d6573672d436f6d6d616e642d4578616d706c65732e706e67)

dmesg 命令的使用范例

‘dmesg’命令设备故障的诊断是非常重要的。在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时，我们可以看到硬件的检测或者断开连接的信息。‘dmesg’命令在多数基于**Linux**和**Unix**的操作系统中都可以使用。

下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例。‘dmesg’命令的使用语法如下。

```
# dmesg [options...]

```

### 1. 列出加载到内核中的所有驱动

我们可以使用如‘**more**’。 ‘**tail**’, ‘**less** ’或者‘**grep**’文字处理工具来处理‘dmesg’命令的输出。由于dmesg日志的输出不适合在一页中完全显示，因此我们使用管道（pipe）将其输出送到more或者less命令单页显示。

```
[root@tecmint.com ~]# dmesg | more
[root@tecmint.com ~]# dmesg | less

```

### 输出

```
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.11.0-13-generic (buildd@aatxe) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 17:26:33 UTC 2013
(Ubuntu 3.11.0-13.20-generic 3.11.6)
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable
[    0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fed003ff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed20000-0x00000000fed9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
.....

```

### 2. 列出所有被检测到的硬件

要显示所有被内核检测到的硬盘设备，你可以使用‘**grep**’命令搜索‘**sda**’关键词，如下：

```
[root@tecmint.com ~]# dmesg | grep sda

[    1.280971] sd 2:0:0:0: [sda] 488281250 512-byte logical blocks: (250 GB/232 GiB)
[    1.281014] sd 2:0:0:0: [sda] Write Protect is off
[    1.281016] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.281039] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.359585]  sda: sda1 sda2 < sda5 sda6 sda7 sda8 >
[    1.360052] sd 2:0:0:0: [sda] Attached SCSI disk
[    2.347887] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   22.928440] Adding 3905532k swap on /dev/sda6.  Priority:-1 extents:1 across:3905532k FS
[   23.950543] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
[   24.134016] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)
[   24.330762] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[   24.561015] EXT4-fs (sda8): mounted filesystem with ordered data mode. Opts: (null)

```

**注解** ‘sda’表示第一块 SATA硬盘，‘sdb’表示第二块SATA硬盘。若想查看IDE硬盘搜索‘hda’或‘hdb’关键词。

### 3. 只输出dmesg命令的前20行日志

在‘dmesg’命令后跟随‘head’命令来显示开始几行，‘dmesg | head -20′命令将显示开始的前20行。

```
[root@tecmint.com ~]# dmesg | head  -20

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.11.0-13-generic (buildd@aatxe) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 17:26:33 UTC 2013 (Ubuntu 3.11.0-13.20-generic 3.11.6)
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable
[    0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reserved

```

### 4. 只输出dmesg命令最后20行日志

在‘dmesg’命令后跟随‘tail’命令（‘ dmesg | tail -20’）来输出‘dmesg’命令的最后20行日志，当你插入可移动设备时它是非常有用的。

```
[root@tecmint.com ~]# dmesg | tail -20

parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
ppdev: user-space parallel port driver
EXT4-fs (sda1): mounted filesystem with ordered data mode
Adding 2097144k swap on /dev/sda2.  Priority:-1 extents:1 across:2097144k
readahead-disable-service: delaying service auditd
ip_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Slow work thread pool: Starting up
Slow work thread pool: Ready
FS-Cache: Loaded
CacheFiles: Loaded
CacheFiles: Security denies permission to nominate security context: error -95
eth0: no IPv6 routers present
type=1305 audit(1398268784.593:18630): audit_enabled=0 old=1 auid=4294967295 ses=4294967295 res=1
readahead-collector: starting delayed service auditd
readahead-collector: sorting
readahead-collector: finished

```

### 5. 搜索包含特定字符串的被检测到的硬件

由于‘dmesg’命令的输出实在太长了，在其中搜索某个特定的字符串是非常困难的。因此，有必要过滤出一些包含‘**usb**’ ‘**dma**’ ‘**tty**’ ‘**memory**’等字符串的日志行。[grep 命令](http://www.tecmint.com/12-practical-examples-of-linux-grep-command/) 的‘**-i**’选项表示忽略大小写。

```
[root@tecmint.com log]# dmesg | grep -i usb
[root@tecmint.com log]# dmesg | grep -i dma
[root@tecmint.com log]# dmesg | grep -i tty
[root@tecmint.com log]# dmesg | grep -i memory

```

### 输出

```
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] initial memory mapped: [mem 0x00000000-0x01ffffff]
[    0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000] init_memory_mapping: [mem 0x37800000-0x379fffff]
[    0.000000] init_memory_mapping: [mem 0x34000000-0x377fffff]
[    0.000000] init_memory_mapping: [mem 0x00100000-0x33ffffff]
[    0.000000] init_memory_mapping: [mem 0x37a00000-0x37bfdfff]
[    0.000000] Early memory node ranges
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x000effff]
[    0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 2003288K/2059928K available (6352K kernel code, 607K rwdata, 2640K rodata, 880K init, 908K bss, 56640K reserved, 1146920K highmem)
[    0.000000] virtual kernel memory layout:
[    0.004291] Initializing cgroup subsys memory
[    0.004609] Freeing SMP alternatives memory: 28K (c1a3e000 - c1a45000)
[    0.899622] Freeing initrd memory: 23616K (f51d0000 - f68e0000)
[    0.899813] Scanning for low memory corruption every 60 seconds
[    0.946323] agpgart-intel 0000:00:00.0: detected 32768K stolen memory
[    1.360318] Freeing unused kernel memory: 880K (c1962000 - c1a3e000)
[    1.429066] [drm] Memory usable by graphics device = 2048M

```

### 6. 清空dmesg缓冲区日志

我们可以使用如下命令来清空dmesg的日志。该命令会清空dmesg环形缓冲区中的日志。但是你依然可以查看存储在‘**/var/log/dmesg**’文件中的日志。你连接任何的设备都会产生dmesg日志输出。

```
[root@tecmint.com log]# dmesg -c

```

### 7. 实时监控dmesg日志输出

在某些发行版中可以使用命令‘tail -f /var/log/dmesg’来实时监控dmesg的日志输出。

```
[root@tecmint.com log]# watch "dmesg | tail -20"

```

**结论**：dmesg命令在系统dmesg记录实时更改或产生的情况下是非常有用的。你可以使用man dmesg来获取更多关于dmesg的信息。

---

[](https://camo.githubusercontent.com/53d677032382a09e50d21d9ee15e621f7c5a7b5c/687474703a2f2f312e67726176617461722e636f6d2f6176617461722f33366337633235313634633334353566326637313162303165333935646530643f733d383026643d626c616e6b26723d47)

Narad Shrestha

* [Twitter profile](http://twitter.com/@nrdshrestha)
* [Facebook profile](http://facebook.com/narad.shrestha.9)
* [Google+ profile](http://plus.google.com/104542109955805873615?rel=author)

他在IT领域拥有超过10年的丰富经验，其中包括各种Linux发行版，开源软件和网络工作。 Narad始终坚持与他人分享IT知识和自如地运用新技术。

---

via: <http://www.tecmint.com/dmesg-commands/>

译者：[cvsher](https://github.com/cvsher) 校对：[Caroline](https://github.com/carolinewuyan)

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


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

Summary: 嗨，极客们，我已经检查了我们的课程，今天我们在八章课程里的第七部分。这就是说下周二我们还有一次课程，但也是最后一次命令行星期二课程。所以，今天，我们讨论一些关于权限的问题！  众所周知，一台机器可能会有多名用户共同使用。为了保证用户之间互不干扰，就需要分配不同的权限。我们已经讨论了文件权限的问题，你可以轻轻点此回顾一下：  chmod chmod命令被用来修改目录或者文件的权限。为了修改权限，首先你得输入chmod命令，之后你得输入规范的权限修改，然后你就可以把目录或者文件的权限修改成你想要的。这可以采用多种方式完

[呵呵]

命令行星期二[嘻嘻]

支持！

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

嗨，极客们，我已经检查了我们的课程，今天我们在八章课程里的第七部分。这就是说下周二我们还有一次课程，但也是最后一次“命令行星期二”课程。所以，今天，我们讨论一些关于**权限**的问题！

众所周知，一台机器可能会有多名用户共同使用。为了保证用户之间互不干扰，就需要分配不同的权限。我们已经讨论了文件权限的问题，你可以轻轻[点此](1)回顾一下：

### chmod

**chmod**命令被用来修改目录或者文件的权限。为了修改权限，首先你得输入chmod命令，之后你得输入规范的权限修改，然后你就可以把目录或者文件的权限修改成你想要的。这可以采用多种方式完成，但是肖茨先生喜欢八进制表示法。

把权限想象成一系列的位，每一个不为空的权限槽就是1，空的权限槽就是0。举个例子：

```
rwx = 111
rw- = 110

```

等等

看一下二进制表示法：

```
rwx = 111 --> in binary = 7
rw- = 110 --> in binary = 6
r-x = 101 --> in binary = 5
r-- = 100 --> in binary = 4

```

现在，如果你想把一个文件的权限改为：文件所有者和文件所有组拥有读，写，执行权限，但是其他用户没有该文件任何权限，我们可以这样做：

```
chmod 770 example_file

```

### su 和 sudo

有些时候普通用户需要成为超级用户，这样才能完成一些任务（通常是一些安装软件任务）。为了暂时的获取超级用户权限，我们可以使用**su**程序，输入：

```
su

```

输入你的超级用户密码，你就成为超级用户了。但是，警告：别忘记用一会之后（不需要的话）就退出超级用户模式。

在openSUSE和Ubuntu也其它的一些可选工具，它叫做sudo，sudo只是在某些方面和su不同，它是分配给制定用户的特殊命令，不像su，你可以用你自己用户的密码执行sudo，而不需要超级用户密码，举个例子：

```
sudo zypper in goodiegoodie

```

### 修改文件和组所有权

想要改变文件的所有者，你可以在超级用户模式下运行**chown**，举个例子，如果我想把文件的所有权从‘nenad’改为‘suse’，我可以这样做：

```
su
[输入密码]
chown suse example_file

```

同样地，我也可以改变组的所有权，使用稍有不同的**chgrp**命令，很简单：

```
chgrp suse_group example_file

```

### 下一次

正如我所阐述的，下一次我们就会结束这个系列。在此之后，相信你会做出自己的选择，和我一起徜徉在终端的黑暗之中，只有一个绿色的闪烁光标作为灯塔。在那之前，极客们，记住

....享受更多的乐趣！

---

via: <https://news.opensuse.org/2014/08/05/command-line-tuesdays-part-seven/>

作者：[Nenad Latinović](https://news.opensuse.org/author/holden87/) 译者：[su-kaiyao](https://github.com/su-kaiyao) 校对：[wxy](https://github.com/wxy)

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


《啊哈C！》点评赠书获奖名单

Summary: 恭喜以下用户获赠图书或@互动出版网china-pub 赠送的30元购书卡。 图书： @众爱喵免礼 KINGJAMES（本站用户） 购书卡： qizhou1987（本站用户） 小马哥很平凡（本站用户）

# 《啊哈C！》点评赠书获奖名单

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

恭喜以下用户获赠图书或@互动出版网china-pub 赠送的30元购书卡。

**图书：**

@众爱喵免礼

KINGJAMES（本站用户）

**购书卡：**

qizhou1987（本站用户）

小马哥很平凡（本站用户）


Summary:
新版本的英特尔Linux图形安装程序可下载。
这个开源工具提供了简单途径在Ubuntu中获取最新因特尔设备支持的图形和视频驱动。
在版本1.0.6中首次使其六月底发布的2014Q2图形堆栈可在Ubuntu 14.04中使用。
它也带来了更好的Bay Trail性能，节能优化，并且改善了对英特尔Broadwell芯片的支持。

这是又要重装系统的节奏吗！！

这是闹怎样啊，又是依赖性不满足，我诅咒ubuntukily，连下载个驱动都失败。

x驱动已经没看头了，快转wayland吧

回复@SSsuesa:可以直接下载包安装啊

什么意思？Intel官方出Linux版驱动了？如果不是，整个蛋疼的安装程序干什么？

更新了下。没啥感觉。本本集显。安装后就很省心。。

# 最新的英特尔Linux图形驱动程序可以在Ubuntu 14.04 LTS上使用了

[](https://camo.githubusercontent.com/404baa28d78beb0ad3ca244824764873cfe7de0c/687474703a2f2f7777772e6f6d677562756e74752e636f2e756b2f77702d636f6e74656e742f75706c6f6164732f323031342f30312f696e74656c2d6472697665722d7570646174652d7574696c6974792d756e6974792e6a7067)

英特尔使驱动安装变得简单

**新版本的英特尔[Linux图形安装程序](https://01.org/linuxgraphics/)可下载。**

这个开源工具提供了简单途径在Ubuntu中获取最新因特尔设备支持的图形和视频驱动。

在**版本1.0.6**中首次使其[六月底](http://www.omgubuntu.co.uk/2014/07/intel-graphics-stack-2014-q2-update)发布的2014Q2图形堆栈可在Ubuntu 14.04中使用。

它也带来了更好的Bay Trail性能，节能优化，并且改善了对英特尔Broadwell芯片的支持。

对Linux用户来说，想要向Intel所说的那样“保持当前最新的改进、优化和修复”，最好的方法就是运行最新可用的堆栈。

### 下载

最新版本的图形安装程序支持Ubuntu 14.04 LTS和Fedora 20。Ubuntu 13.10的用户可以继续使用这个工具，但不能获取最新的驱动程序。

Ubuntu 14.04 LTS [32位](https://download.01.org/gfx/ubuntu/14.04/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.6-0intel1_i386.deb)或[64位](https://download.01.org/gfx/ubuntu/14.04/main/pool/main/i/intel-linux-graphics-installer/intel-linux-graphics-installer_1.0.6-0intel1_amd64.deb)可用的的Deb安装包可在 01.org 网站下载，链接如下。

* [Download Intel Graphics Installer 1.0.6 for Ubuntu](https://01.org/linuxgraphics/downloads/2014/intelr-graphics-installer-1.0.6-linux)

---

via: <http://www.omgubuntu.co.uk/2014/08/intel-graphics-installer-linux-updated-1-0-6>

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

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


Echo命令实例

Summary: echo命令是内建的shell命令，用于显示变量的值或者打印一行文本。 echo命令在构建shell脚本时扮演着重要的角色。  语法： # echo    方括号中的项目是可选的。字符串可以定义为字符的有限序列（如字母，数字，符号，标点符号）。 当echo命令不带任何选项或字符串使用时，它会在显示屏上返回一个空白行，后面换一行跟上命令提示符。这是因为按下回车键就是发送一个信号给系统以开始一个新行，而echo重复了该信号。 选项：  -n 不要输出衍生的新行 -e 启用反斜线转义解释 -E 禁用反斜线转义解释（默认）  如果使用-e选项，则可以使用如下转

#Echo命令实例# echo命令是内建的shell命令，用于显示变量的值或者打印一行文本。 echo命令在构建shell脚本时扮演着重要的角色。  语法： # echo    方括号中的项目是可选的。字符串可以定义为字符的有限序列（如字母，数字，符号，标点符号）。

@我的印象笔记

Repost

Linux Echo命令实例

马

# Echo命令实例

echo命令是内建的**shell命令**，用于显示**变量**的值或者**打印一行文本**。

echo命令在构建shell脚本时扮演着重要的角色。

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

### 语法：

```
# echo [Options] [String]

```

方括号中的项目是可选的。字符串可以定义为字符的有限序列（如字母，数字，符号，标点符号）。

当echo命令不带任何选项或字符串使用时，它会在显示屏上返回一个空白行，后面换一行跟上命令提示符。这是因为按下回车键就是发送一个信号给系统以开始一个新行，而echo重复了该信号。

### 选项：

* -n 不要输出衍生的新行
* -e 启用反斜线转义解释
* -E 禁用反斜线转义解释（默认）

如果使用-e选项，则可以使用如下转义序列：

* \ 反斜线
* \a 警告（BEL）
* \b 反斜线
* \c 不产生进一步输出
* \e 转义
* \f 换页
* \n 新行
* \r 换行字符
* \t 水平制表
* \v 垂直制表
* \0NNN 八进制值表示的字节NNN（1到3个数字）
* \xHH 十六进制值表示的字节NNN（1到2个数字）

### 样例：1 显示系统定义的变量的值

使用set命令，我们可以列出系统定义的变量。而要打印这些变量的值，我们可以使用echo命令：

```
jack@localhost:~$ echo $USER
jack
jack@localhost:~$ echo $HOME
/home/jack

```

### 样例：2 显示用户定义的变量的值

```
jack@nextstep4it:~$ var1=`date`
jack@nextstep4it:~$ echo "Today's date  time is : $var1"
Today's date  time is : Mon Jul 28 13:11:37 IST 2014

```

### 样例：3 显示文本字符串

```
jack@nextstep4it:~$ echo " Hi this echo command testing"
Hi this echo command testing

```

### 样例：4 在echo命令中使用反斜线

```
jack@nextstep4it:~$ echo -e "Ubuntu \bis \bthe \bbest \bDesktop \bOS"

```

上述命令将打印：

UbuntuisthebestDesktopOS

### 样例：5 在echo命令中使用制表符空格

```
nextstep4it@nextstep4it:~$ echo -e "Ubuntu \tis \tthe \tbest \tDesktop \tOS"

```

上述命令将显示如下输出：

Ubuntu is the best Desktop OS

### 样例：6 在echo命令中使用垂直制表符

```
jack@nextstep4it:~$ echo -e "Ubuntu \vis \vthe \vbest \vDesktop \vOS"
Ubuntu
       is
              the
                     best
                            Desktop
                                          OS

```

### 样例：7 设置echo命令彩色输出

echo命令可以修改字体类型，字体背景色以及字体颜色，转义序列\033可以用于改变字体属性。要使转义序列生效，必须使用-e选项。下面列出了部分转义代码：

* [0m: 正常
* [1m: 粗体
* [4m: 字体加上下划线
* [7m: 逆转前景和背景色
* [8m: 不可见字符
* [9m: 跨行字体
* [30m: 灰色字体
* [31m: 红色字体
* [32m: 绿色字体
* [33m: 棕色字体
* [34m: 蓝色字体
* [35m: 紫色字体
* [36m: 浅蓝色字体
* [37m: 浅灰字体
* [38m: 黑色字体
* [40m: 黑色背景
* [41m: 红色背景
* [42m: 绿色背景
* [43m: 棕色背景
* [44m: 蓝色背景
* [45m: 紫色背景
* [46m: 浅蓝色背景
* [47m: 浅灰色背景

下面的命令将用红色打印输出。

```
jack@nextstep4it:~$ echo -e "\033[31mMagic of Linux\033[0m"
Magic of Linux

```

下面的命令将以粗体以及红色背景打印出“Magic of Linux”。

```
nextstep4it@nextstep4it:~$ echo -e "\033[1m\033[41mMagic of Linux\033[0m"
Magic of Linux

```

---

via: <http://www.nextstep4it.com/categories/unix-command/echo-command/>

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

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


Linux 内核的测试和调试（1）

赞

# Linux 内核的测试和调试（1）

### Linux 内核测试哲学

不管是开源还是闭源，所有软件的开发流程中，测试是一个重要的、不可或缺的环节，Linux 内核也不例外。开发人员自测、系统测试、回归测试、压力测试，都有各自不同的目的，但是从更高一个层次上看，这些测试的最终目的又是一样的：保证软件能一直运行下去，当有新功能加进去时，要保证新功能可以正常工作。

在软件释出 release 版之前，不用回归测试就能保证稳定性，并且尽量避免在软件发布后被用户发现 bug。调试被用户发现的 bug 是一项非常浪费时间和精力的工作。因此测试是一项非常重要的工作。不像闭源和专有的操作系统，Linux 内核的开发过程是完全开放的。这种处理方式即是它的优点，也是它的缺点。多个开发者持续增加新功能、修 bug、不断集成与测试 —— 当环境有新的硬件或功能时，这种开发方式能够保证内核能持续工作。在开源项目中，开发者与用户共享测试的结果，这也是开源项目与闭源项目之间的一个很重要的差别。

几乎所有 Linux 内核开发者都是活跃的 Linux 用户。内核测试人员不一定非得是内核开发者，相反，用户和开发者如果对新增的代码不是很熟悉，他们的测试效果会比代码开发人员自己测试的效果要好很多。也就是说，开发者的单元自测能验证软件的功能，但并不能保证在其他代码、其他功能、其他软件、硬件环境下面运行时会出现什么问题。开发者无法预料、也没有机会和资源来测试所有环境。因此，用户在 Linux 内核开发过程中起到非常重要的角色。

现在我们已经了解了持续集成测试的重要性，接下来我们会详细介绍测试的知识。但在此之前，我还是向你介绍一下开发的过程，以便让大家了解它是怎么工作的，以及如何把补丁打进内核主线。

全世界共有3000多个内核开发者为 Linux 内核贡献代码，每天都有新代码添加到内核，结果是大概2个月就能产生一个release ，包括几个稳定版和扩展稳定版。新功能的开发与已发布的稳定版集成测试流程在同时进行。

关于开发流程的详细描述，请参考[Greg Kroah-Hartman 的 Linux 内核开发的介绍](http://events.linuxfoundation.org/images/stories/pdf/als2012_gregkh.pdf)。

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

这份教程适合与初学者以及有经验的内核开发者，如果你想加入到内核开发者行列，那么它也适合你。有经验的开发人员可以跳过那些介绍基础测试和调试的章节。

这份教程介绍如何测试和调试 Linux 内核、工具、脚本以及在回归测试和集成测试中使用的调试机制。另外，本文还会介绍如何使用 git 把针对一个 bug 的补丁分离出来，再介绍把你的补丁提交到内核的邮件列表之前需要做些什么。我将会使用 Linux PM 作为测试它调试的对象。尽管本文讨论的是 Linux 内核，但是介绍的方法也适用于任何其他软件开发项目。

### 配置开发与测试的系统

第一步，找一个满足你需求的开发环境，x86-64 是一个比较理想的选择，除非你必须用特别的架构。

第二步，安装 Linux 发行版，我推荐 Ubuntu，所以本教程会介绍基于 Ubuntu 的配置过程。你可以参考[如何使用 Ubuntu](http://howtoubuntu.org/) 来安装一个 Ubuntu 系统。

在开发和测试环境，最好要保证你的 boot 分区有足够的空间来存放内核文件。你可以为 boot 分区留下 3GB 空间，或把 boot 分区直接放到根目录下，这样 boot 分区可以使用整个磁盘的空间。

安装好操作系统后，确保 root 用户可用，确保你的用户身份可以使用 sudo 命令。你的系统也许已经安装了 build-essential，它是编译内核必备的软件包，如果没安装，运行下面的命令：

```
sudo apt-get install build-essential

```

然后运行下面的命令，保证你的系统能够交叉编译内核。下面的 ncurses-dev 安装包是运行 make menuconfig 命令必须用到的。

```
sudo apt-get install binutils-multiarch
sudo apt-get install ncurses-dev
sudo apt-get install alien

```

然后安装一些每个内核开发者都会用到的工具包：

```
sudo apt-get install git
sudo apt-get install cscope
sudo apt-get install meld
sudo apt-get install gitk

```

如果你喜欢把内核通过交叉编译以支持非 x86\_64 架构的环境，请参考[在 x86\_64 上交叉编译 Linux 内核](http://linuxdriverproject.org/mediawiki/index.php/Cross-compiling_Linux_kernel_on_x86_64)。

### 稳定的内核

使用 git 克隆一个稳定的内核，然后编译安装。你可以参考[Linux 内核结构](https://www.kernel.org/)来找到最新的稳定版和开发主线。

```
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
```

上面的步骤将会创建一个新的目录，名为 linux-stable，并把源码下载到里面。

你也可以直接下载压缩包并解压出源码，无需使用 git：

```
tar xvf linux-3.x.y.tar.xz

```

---

via: <http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,0>

译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


如何在Oh-My-Zsh中启用Heroku命令补全功能

Summary: Heroku客户端是创建和管理Heroku应用的命令行界面工具。  需求:  Heroku toolbelt Oh-My-Zsh (如何安装)  本文不是讲关于heroku的知识，也不是讲关于heroku的使用细节，而是仅仅展示给用户他们怎样可以使用oh-my-zsh来方便地敲入heroku命令。此外你还应该安装heroku toolbelt来进行本文的相应的操作。对于Ubuntu和Debian发行版，你可以通过运行下面的命令来安装： wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh  打开终端，用你在创建的用户登陆heroku： heroku login Enter your Heroku credentials. Email: enockseth@

# 如何在Oh-My-Zsh中启用Heroku命令补全功能

**Heroku**客户端是创建和管理Heroku应用的命令行界面工具。

需求:

* Heroku toolbelt
* Oh-My-Zsh ([如何安装](http://www.unixmen.com/install-oh-zsh-ubuntu-arch-linux-fedora/))

本文不是讲关于heroku的知识，也不是讲关于heroku的使用细节，而是仅仅展示给用户他们怎样可以使用oh-my-zsh来方便地敲入heroku命令。此外你还应该安装[heroku toolbelt](https://toolbelt.heroku.com/)来进行本文的相应的操作。对于Ubuntu和Debian发行版，你可以通过运行下面的命令来安装：

```
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh

```

打开终端，用你在[这里]创建的用户登陆heroku：

```
heroku login
Enter your Heroku credentials.
Email: enockseth@unixmen.com
Password (输入是隐藏的):
Authentication successful.

```

这显示heroku正在运行。

用你惯用的文本编辑器打开**.zshrc**：

```
vim .zshrc

```

这里，git是唯一默认启用的插件。

在下图显示的插件选择区添加**heroku**：

重启终端，输入**heroku**，按下tab键，到此就搞定啦：

---

via: <http://www.unixmen.com/enable-tab-complete-heroku-commands-oh-zsh/>

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

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


[小技巧]修复Moka图标主题丢失的扬声器图标

Summary: Moka是一个漂亮的图标主题，它在Ubuntu可用的最佳图标主题中扮演着重要的角色。但在Ubuntu 14.04中，Moka有那么点小缺憾。如果你在Ubuntu 14.04的Unity中使用摩卡，你会发现用于调节声音的扬声器图标不见了：  使用Moka图标主题时修复丢失的声音图标 虽然你可能已经添加的官方Moka PPA源，但为了检查起见，再次添加它吧： sudo add-apt-repository ppa:moka/stable sudo apt-get update  现在，接下来要做的是安装单色面板图标。使用下面的命令来安装： sudo apt-get install faba-mono-icons  一旦你安装完Faba单色图标后，将你的图标主

dropbox......

支持呀！

# [小技巧]修复Moka图标主题丢失的扬声器图标

[Moka](http://mokaproject.com/)是一个漂亮的图标主题，它在[Ubuntu可用的最佳图标主题](http://itsfoss.com/best-icon-themes-ubuntu-1404/)中扮演着重要的角色。但在Ubuntu 14.04中，Moka有那么点小缺憾。如果你在Ubuntu 14.04的Unity中使用摩卡，你会发现用于调节声音的扬声器图标不见了：

### 使用Moka图标主题时修复丢失的声音图标

虽然你可能已经添加的官方Moka PPA源，但为了检查起见，再次添加它吧：

```
sudo add-apt-repository ppa:moka/stable
sudo apt-get update

```

现在，接下来要做的是安装单色面板图标。使用下面的命令来安装：

```
sudo apt-get install faba-mono-icons

```

一旦你安装完Faba单色图标后，将你的图标主题从Moka修改为Faba。这会给你Unity中的Moka图标主题的顶部面板配上漂亮的单色图标：

我希望这会帮助你修复丢失的声音图标。享受Moka带来的点点滴滴吧。

---

via: <http://itsfoss.com/fix-missing-speaker-icon-from-moka/>

原文作者：[Abhishek](http://itsfoss.com/author/Abhishek/)

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

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


【Linux中国】“游戏”栏目正式上线！

Summary: Linux中国携手Gamux打造Linux中国旗下游戏频道，分享Linux原生游戏及大型客户端游戏。致力于满足广大Linux游戏爱好者需求，引领Linux游戏潮流。我们时刻关注Linux游戏的最新动态，提供最快的Linux游戏资讯服务以及下载服务。 最新最热的游戏为您推荐，高清游戏截图为您呈现。 玩得开心！ 关于游戏频道，如您有任何建议，请在下方评论区给我们提出，您的宝贵建议是我们前进的动力。

《韦诺之战》《Dota2》《马基埃亚尔的传说》《突袭油田》《骑马与砍杀-战团》《饥荒》《FEZ》……@SteamCN官方微博

哇哦！

现在linux上玩的已经很多了。。什么时候来个本土化的MMRPG也是可以的。。

@gamux 憋大招了？

问题是。。。显卡驱动。

# 【Linux中国】“游戏”栏目正式上线！

Linux中国携手Gamux打造Linux中国旗下游戏频道，分享Linux原生游戏及大型客户端游戏。致力于满足广大Linux游戏爱好者需求，引领Linux游戏潮流。

（游戏新闻、最新动态）

我们时刻关注Linux游戏的最新动态，提供最快的Linux游戏资讯服务以及下载服务。

（最新游戏推荐）

（高清游戏截图）

最新最热的游戏为您推荐，高清游戏截图为您呈现。

玩得开心！

关于游戏频道，如您有任何建议，请在下方评论区给我们提出，您的宝贵建议是我们前进的动力。


都灵市成为意大利首个开源城市

Summary: 都灵当局决定采用开源软件，与 Microsoft 产品划清界限。此举为当地政府节约了大量经费。 这次的迁移任务旨在摆脱专利软件，使都灵市成为意大利首个开源城市，并节约大约 600 万欧元财政支出。600 万欧元啊！！！真是一笔巨款，对吧？ 据 republica.it 网站的统计数据，当地行政部门大约 8300 台计算机不久将安装预装了 Mozilla Firefox 浏览器和 Open Office 的 Ubuntu。和 Microsoft Office 以及 Internet Explorer 说再见吧。 与其花费大量经费购买授权许可和专利软件，为什么就不试试更好的且免费的解决方案呢？如果都灵市全面升级一

[奥特曼][威武]

微软要哭了

真能省钱？代价巨大啊

这是真的吗？当更多的人使用linux，它就变得更容易使用。希望中国也出现这样的事情。

迁移经费是多少？

把眼光放长远点，肯定会省钱的。

这是真的吗？希望在中国也会有这种事情发生。

有气魄！！！！！！！！！

中国哪个城市能够成为第一个吃螃蟹的呢？

我想肯定不是北京这种老古董

大快人心！

这是IT技能成为个人基本技能的前奏

# 都灵市成为意大利首个开源城市

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

都灵当局决定采用开源软件，与 Microsoft 产品划清界限。此举为当地政府节约了大量经费。

这次的迁移任务旨在摆脱专利软件，使都灵市成为意大利首个开源城市，并节约大约 600 万欧元财政支出。600 万欧元啊！！！真是一笔巨款，对吧？

据 [republica.it](http://torino.repubblica.it/cronaca/2014/08/03/news/il_comune_rinnova_i_pc_e_d_laddio_a_microsoft_risparmiamo_6_milioni-93067980/?ref=search) 网站的统计数据，当地行政部门大约 8300 台计算机不久将安装预装了 Mozilla Firefox 浏览器和 Open Office 的 Ubuntu。和 Microsoft Office 以及 Internet Explorer 说再见吧。

与其花费大量经费购买授权许可和专利软件，为什么就不试试更好的且免费的解决方案呢？如果都灵市全面升级一次 Windows 操作系统，你们知道需要花多少钱吗？

2200 万欧元！那你知道如果当地行政部门使用 Ubuntu 的话，这笔钱能节约多少吗？嗯，如果他们使用 Ubuntu，600 万欧元就省下来了，你算算这笔账。

欧洲很多城市都意识到了，作为 IT 基础设施，Linux 是比 Windows 更好的解决方案。举个例子，德国慕尼黑市就抛弃了 Microsoft 转而使用开源软件。据慕尼黑公布的数据，这一举动为其节约了约 1000 万欧元。

大家怎么看都灵的这次决定？在文章下方留言说说你的想法吧。

---

via: <http://www.unixmen.com/turin-first-italian-open-source-city/>

作者：[oltjano terpollari](http://www.unixmen.com/author/oltjano/) 译者：[sailing](https://github.com/blueabysm) 校对：[wxy](https://github.com/wxy)

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


Linux 缺乏一款杀手级应用程序吗？

Summary: Linux 最需要的就是游戏， Hyperlogos 的博主 Martin Espinoza 如是说。然而，如果您把它限定到一款应用程序的话，最需要的很可能仍是 Photoshop 。尽管大家都在谈论 GIMP 已经变得多么多么强大，但它的易用性仍然是个悲催的噩梦；虽然开源社区有些相关的文档，但 GIMP 仍是处在缺乏文档的可怜状态。 这些日子这儿越来越热了，Linux 博客世界和 FOSS 论坛的粉丝们都蜂拥入带有破窗的休息室，边吹着冷空调，边讨论此话题。 甚至是 Linux Girl，这些天也被这些越来越多的潮流所冲击，正在 blogobar 上寻求能使其降温的慰籍，而且越来越频繁

杀手级应用？就一只企鹅够了~

qq

将linux图形介面做得更清晰美观，就是一种很重要的应用。

Repost

需要毛游戏

Google+用户就别评论Gimp不好用了。

缺乏N款

汗~~

提高linux的图形界面的清晰度和美观性，是很重要的。

科技类文章，相互转来转去。51CTO转了此博文

呵呵，大家互相转~~

# Linux 缺乏一款杀手级应用程序吗？

**Linux 最需要的就是游戏， Hyperlogos 的博主 Martin Espinoza 如是说。然而，“如果您把它限定到一款应用程序的话，最需要的很可能仍是 Photoshop 。尽管大家都在谈论 GIMP 已经变得多么多么强大，但它的易用性仍然是个悲催的噩梦；虽然开源社区有些相关的文档，但 GIMP 仍是处在缺乏文档的可怜状态。”**

这些日子这儿越来越热了，Linux 博客世界和 FOSS 论坛的粉丝们都蜂拥入带有破窗的休息室，边吹着冷空调，边讨论此话题。

甚至是 [Linux Girl](http://www.linux-girl.com)，这些天也被这些越来越多的潮流所冲击，正在 blogobar 上寻求能使其降温的慰籍，而且越来越频繁。

虽然她们这样做比较正确，但或许她们已经错过了最鲜最美味可口的辩论大餐。“Linux 缺少什么样的杀手级应用程序？”这个问题[已经扩大化了](http://www.linuxvoice.com/voice-of-the-masses-what-killer-app-is-linux-missing/),关于此的讨论越演越烈，已经超出以往任何时候。

“开源软件世界的软件是如此令人难以置信的丰富，几乎涵盖了所有的领域，” **Linux Voice** 的 Mike Saunders 开头说到。“我们有桌面端的、服务端的、开发相关的及多媒体工具等一大笔来自开源世界的财富可以选择 -- 其中的某些还是在相关领域中最好的呢。”

“但还缺少什么吗？” Sanders 接下来提出可争议的话题。“是不是存在一款杀手级应用程序，它会使你的主机不能 24x7 小时的在运行？”

参与者围绕着吧台考虑这话题的时候，出现了短暂的间歇。Linux Girl 也享受着这短暂的平静，但并没有持续多久。

### '取决于您的所需'

“很久以前，Linux 需要很多东西，” Google+ 的博主 Alessandro Ebersol 发言了。“当任何软件和厨房水槽都迁移到云端的那些日子，做任何的事情都得考虑多平台兼容性。”

“我想说的是我们缺少游戏，但这种情况也正在被改变，” Ebersol 说道。“所以我觉得我们并不是那么迫切的需要一个杀手级应用了。”

“杀手级应用程序？取决于你想用计算机做什么，” consultant 和 [Slashdot](http://slashdot.org/) 博客的 Gerhard Mack 认为。“如果您正准备拟稿做设计，那么杀手级应用程序就是 AUTOCAD 。但对其它行业来说杀手级应用程序将是别的。”

### '企业平台空间'

Google+ 博客的 Kevin O'Brien 有相似的观点。

“在消费级存在的应用程序不算太多，” O'Brien 说。“我虽然会抱怨游戏或者 Nvidia 驱动程序，并且我看还没有任何东西能真正替代 Quicken。（译者注：Quicken 是一款家庭及个人财务管理软件，可管理个人及家庭的日常收支、银行卡、支票、信用卡及税务等财务信息，有着丰富的功能和简单快捷的操作。）但对我来说最大的不同是企业平台空间。”

“微软就拥有企业平台空间，没有什么比得过 Outlook/Exchange 服务, Sharepoint 等这些应用的，”他断言到。“我猜测部分原因可能是真正关心这些的开源开发者很少很少。”

### '浪潮正发生改变'

与其说是“缺乏应用程序”这种情况，不如说是“临界的质量不够”的问题，Google+ 博客 Gonzalo Velasco C. 建议说。

比起五年前，现在用 Linux 的人已经越来越多了，他指出；但同时很人都依赖于非 Linux 友好的应用程序。

“虽然每个人都在使用 Skype ，但一大半的应用程序都是基于 GNU/Linux 协议的，从简单易用的 Pidgin(我的最爱)到 Ekiga 和通用 VoIP 等等，” Gonzalo Velasco C. 解释说。“一些用户仍宣称他们需要 PhotoShop，并不想花时间来掌握和改进 GIMP、Inkscape、Bender 及其它的。”

“曾经是很缺乏游戏，“但这状况正发生改变，主要是（但并不是唯一）因为 Valve 的勇敢开创 SteamOS 之举，”他补充道。

### '零售货架空间'

“我认为这段时期根本就没有‘杀手级’应用程序，”[Robert Pogson](http://mrpogson.com/) 博客上的观点。“在 Debian GNU/Linux 系统上，有 40000以上 的软件包，虽然我的 PC 只安装了 3000 多的软件，但我一样都不缺。我有多个浏览器、编辑器、编译器/解释器、多个操作平台和像 KVM 这样的虚拟机，我可以根据需要在多个操作系统和不同版本的软件中尽情玩乐。”

“在局域网内，我可以把多台机器当做一台机器来使用，” Pogson 补充道。“在局域网内我能从任何机器上访问存储在任意节点的资源。还有什么不能满足的吗？”

"有些说法，几个专业人士告诉我，在 GNU/Linux 上的视频和图像编辑是有点弱，”他说。 “GIMP 正在比特级别的图像上改进，所以应该不算了。Lightworks（译者注：好莱坞级专业电影编辑软件） 最终会被当做 FLOSS（译者注：自由/开源软件：世界影响研究） 发布，所以视频应该不算。”

"尽管如此，在 IT 行业中还有特少数的专业功能软件，”他指出。“很多普通用户几十年都不会使用那些极其特殊的应用程序软件，所有我认为 GNU/Linux 系统已经不需要什么了。”

但是真正的杀手在市场上，在零售商店缺乏货架空间，Pogson 断言到。“只要解决这问题，GNU/Linux 必定蓬勃发展。”

### 'Linux 已经输给 OS X'

Chris Travers，一名工作于 [LedgerSMB](http://www.ledgersmb.org/) 的[博主](http://ledgersmbdev.blogspot.com/)，有不同的观点。

“我认为杀手级应用程序并不是关键问题，”他开始说到。“真正的问题是，虽然跟 BSD 系统一样，Linux 正在占据服务器市场，但在桌面市场 Linux 已经普遍输于 OS X 了。Linux 用户正在寻找开放的桌面系统。”

Linux “既需要微软的增长势头，又需要 OS X 系统的精致用户界面和引人入胜的细节设计，”Travers 说到。“这些迟早会来有的。”

### 文档问题

“Linux 并不是缺少杀手级应用程序” -- "缺少的是一如既往的打磨抛光，" [Hyperlogos](http://hyperlogos.org/) 的博主 Martin Espinoza 认为。“根本就没有 Linux 的桌面环境能像 Windows XP 系统那样精雕细琢，更别说是 Windows 7 系统了。”

"除了可以用臃肿复杂的 GNOME 或 [KDE](http://www.kde.org/) 的色拉一样的小部件，难道还要用拥有极其可怕的文件管理器和非常原始的面板的 Xface 或 LXDE 吗？" Espinoza 增加道。"GNOME 仅仅只是非常接近 DE。真正的 DE 是十分简洁的，还会隐藏他们的存在。"

Windows 也仅仅是“表现的比较好，”他断言说。

不过，如果 Linux 要获得广泛的接受的话，“最缺的正是游戏，”Espinoza 说到。“如果您把它限定到一款应用程序的话，最需要的很可能仍是 Photoshop 。尽管大家都在谈论 GIMP 已经变得多么多么强大，但它的易用性仍然是个悲催的噩梦；虽然开源社区有些相关的文档，但 GIMP 仍是处在缺乏文档的可怜状态。”

"GIMP “也许能做 Photoshop 能做的大部分事情，但我很可能并不知道，”Espinoza 的结论。“我想，如果我花了几个小时逛论坛就可以找出如何使用 GIMP 了。这就是大多数开源软件项目失败的地方，包括那些认为他们是真的是有了足够多的说明文档的。”

### '易用和有技术支持'

SoylentNews 的博主 hairyfeet 定义说易用和有技术支持就是 “杀手级应用”。

“嗯，一个新手安装好一个看起来很漂亮的 Linux 发行版系统，它工作得也很正常；但问题是它不会一直正常工作或一直都让人赏心悦目，”他解释到。“第一个更新，哎哟！WPA V2 无线网用不了了。第二个更新呢，像脉冲呕吐一样，声音没了。还有第一个‘升级’？呃，都不需要继续了！”

“这正是 Linux 欠缺而 Windows 和 OS X 已经具有的：易用性及技术支持，”hairyfeet 结束道。“相同的时段有 15 款以上的 Linux 发行版本跟仅仅只是一款 Windows 发行版本所获得的技术支持生命周期能一样吗？不好意思的说，您们的产品不是同一重量级的 -- 您是拿高中棒球赛跟职业联赛在比较。”

### 'Windows 8'

最后但并非是不重要的，[Linux Rants](http://linuxrants.com/) 的博主 Mike Stone 提供了一个让人惊讶的建议。

“这些年 Linux 缺乏的杀手级应用是 Windows 8，”Stone 打趣说。

"说真的，我认为并没有一个特定的应用程序可以被称为'杀手级应用'，“他说，”Linux 需要有更多的主流应用的支持，而这将意味着 Photoshop 和微软的 Office 是必须具有的。值得庆幸的是，微软已经做了最大的努力以使 Office 可以跨平台，至于 Photoshop 的话大多数人并不需要的。"

Linux "应该是很争议性的话题，上面我所说的 Windows 8 仅仅只是个玩笑，"他总结说。“基于 Linux 的应用程序正如火如荼，而当前的 Windows 系统明显不受欢迎。祈祷我们能很快就看到这一变化。”

---

via: <http://www.linuxvoice.com/voice-of-the-masses-what-killer-app-is-linux-missing/>

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

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


[图灵赠书]《只是为了好玩》点评赠书

只是为了好玩

因为注孤生，爱折腾。

Repost

感觉好新鲜啊，竟然把所有事物归类成三个阶段，生存，秩序，娱乐。被吸引住了，好像入手一本看看。。。[鼓掌]

可以体会到linux之父的想法

Just for fun

喜欢开源精神

Repost

做技术，其实也只是为了好玩，不喜欢玩你喜欢的技术，那就不叫玩，不叫玩，何为技术！？@linux中国

Linus大神一直是我的偶像，只是为了好玩为了自己的兴趣，却推动了世界进步，造福了我等爱折腾的Linuxer，尤其对于从事或准备从事编程的童鞋非常值得一读，语言幽默而引人细细咀嚼。。。

[可爱]开源

喜欢ubuntu所以喜欢Linux！

被书名吸引

只是为了好玩

怎么玩出来的...想看看

想了解一下

又是邮电的书又是linux简直点赞～希望中啊@Linux中国 @图灵教育

Linux这个缩写是不是故意的……//@发现的乐趣: 转发微博

Linux学习中[爱你]

一个人的“好玩”，成就了大家的“有趣”。

只是为了好玩儿[doge]//@图灵教育:【生存、秩序、娱乐】//@_阿左__: 感觉好新鲜啊，竟然把所有事物归类成三个阶段，生存，秩序，娱乐。被吸引住了，好想入手一本看看。。。[鼓掌]

只是为了好玩儿[doge]求中

对于我来说，林纳斯无疑与乔布斯、比尔盖茨一样都是神一样的人物，他们所创造的“帝国”，从不同方明占据了几乎全世界的电脑、移动设备。《只是为了好玩》带我们认识这位改变世界的大神。

只是为了好玩儿

没有见到书怎么评论呀 我只是崇敬理想主义者 给我吧给我吧

没有他，我早就饿死了。[嘻嘻]

想要一本

just for fun？ 看看大神的成长史

个人英雄式的程序员自传，想看看哇~~JUST FOR FUN ！

买！ //@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

想要知道linux怎么好玩出来的

林纳斯~原来五百年前是一家啊~~难怪这么投缘~[嘻嘻]

只是为了好玩。Linux,

windows帝国下的大鳄[嘻嘻]

昨天面试官问我“你业余时间做这些（指独立完成的小项目）的目的是什么？” “好玩”[酷]

日常所用，工作所需，技术偶像。

当年的嵌入式课程只是小菜，我要吃荤

☔没有林大师的发明基础，就不会有智能手机操作系统的今天……

大赞啊！//@图灵教育: 大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

有玩笑又有严肃的思考，收益匪浅 //@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

爱都在心里啊。//@图灵教育: 大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

Mr. Linux. King of Geeks

King of Geeks！曾翻看过某不知名的早期译本，错误有些多。

Just for fun

只是为了好玩

点评：只是为了好玩。。

（剧透勿入）Linus 特别幽默，高中的时候只能买已经绝版的《乐者为王》影印版，虽说翻译，印刷质量都挺差，但还是能感受到Linus 的幽默，看了两遍。尤其是Linus 跟Tove 相识的那段，特精彩。Tove 能让 Linus 忘掉代码，陪她去耍。单身狗羡慕死了。@小耳朵伶鼬 我会买本送给你的，之前的版本太烂了。

是他开创了另一个世界，是他拯救了我们程序猿，是他带我们走进智能的时代，是他给予我们与微软抗衡的力量，是他让每个有能力的人参与到其中。让我们一起来为着linux之父鼓掌，凑分母吧！ //@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

让一个程序员变得幽默风趣的同时学到林纳斯的技术心得，好啊！

买

linux是一个创奇得开源的系统，他倡导了开源精神，从1994年至今许多领域都离不开他，所以他比windows更强大，接触linux这么长时间里让我更加爱上了他， 这本书又是linux创造着林纳斯写，的所以我没理由不喜欢他！

主页君~我能中么[可怜]

开源鼻祖级人物啊！ 深深改变了这个时代，你家服务器是神马系统

好书不多言，妙趣在其中@Linux中国 @图灵教育 //@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

爱死你了，我也喜欢那一段[嘻嘻]//@咧威: （剧透勿入）Linus 特别幽默，高中的时候只能买已经绝版的《乐者为王》影印版，虽说翻译，印刷质量都挺差，但还是能感受到Linus 的幽默，看了两遍。尤其是Linus 跟Tove 相识的那段，特精彩。Tove 能让 Linus 忘掉代码，陪她去耍。单身狗羡慕死了。

之前读过一些林纳斯的一些个人传记， 非常喜欢他， 也看过@池建强 写的关于林纳斯的微信， 确实很喜欢，喜欢他的作品，更喜欢他的精神。玩即是学，另一种境界，希望有机会这本令人振奋的《只是为了好玩

我就是冲书去的

我们搞Linux User Group不是也是for fun的精神嘛

有玩笑又有严肃的思考，收益匪浅，名字很有意思

偶像，仅此而已//@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

爱偶像就是这么简单

linus本人的行事风格也代表了极客们，当初没有可用的unix系统，于是就自己写了个，而且just for fun!解决问题的同时也乐在其中。也许，这也是一种值得学习的人生态度吧。

很好。

很好

看他怎么好玩

只是单纯喜欢linux相关的内容和书籍。当然啦，对这本书，就和对乔布斯传一样的感情。

Just for fun!于是林纳斯创造了一个正在深刻的改变这个世界的系统内核，推动了开源事业的发展，而这一切，只是当初为了好玩而已……也许，这就是极客精神的一部分吧。

hehe

《只是为了好玩》

从这本书开始，发觉他的伟大在于那些思考模式~//@池建强: 哈哈，推荐这本书里的后记：附录：中国程序员眼中的林纳斯——林纳斯，一生只为寻找欢笑，比正文好看。

林纳斯能够创造出Linux是出于一种乐趣，但他能够有能力做出来，跟他平时的努力是息息相关的，对比当年的他，现在的我连他一毛都不及，大家都是好玩的，为什么他能够做出跨时代的Linux，而我却一无是处，我要好好反思呀！！！

The King Of Geek //@Onetaway://@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

喜爱的理由：Linux最初就是程序员写给程序员用的系统[爱你]

有理，有趣，死磕自己，愉悦大家//@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

看过@池建强 写的Linus系列文章，发现林纳斯这人特有意思，此书必须要看！//@池建强:哈哈，推荐这本书里的后记：附录：中国程序员眼中的林纳斯——林纳斯，一生只为寻找欢笑，比正文好看。.

为了好玩而改变了世界

一直感慨芬兰诞生了那么多辉煌的企业 以及程序员 而且开源是一种风尚。

Linus发明Linux纯粹是为了兴趣，还发明了Git。大牛就是大牛。

为了看书而评论

我不是为了得到这本书，只是觉得好玩。。不赠给我我就去买一本

just for fun--热爱是最好的老师~

对后记更感兴趣，池老师让我知道这本书。还有，linux的正确发音到底是啥？

好奇这本书都会说些什么[呵呵]//@图灵教育:大爱啊，这个理由真够劲儿！！！//@西西弗与卡夫卡: 没有他，我早就饿死了。[嘻嘻]

满满的支持

好玩选Linux

喜欢就是放肆，爱就是克制。[偷乐]我要，give me love

还记得第一次在学校接触linux是从鸟哥私房菜基础篇开始的，不断的折腾我那256M的古董。

尝试书中的各种命令，出现各种问题，反反复复学习。

现在终于有所领悟，工作后开始学校linux内核了，希望能给我一本大牛的著作<只是为了好玩>, 开启我全新的linux世界。

大神的书，必须来顶一下。如果抽不到，以后也很可能自己去买一本。用Linux已经快5年了，已经离不开它，手机也是安卓。这一切都要感谢大神！

一直在做linux的开发，很喜欢林纳斯，如果抽不到我会去买一本的，想看看他对linux的思考，还有就是他平时的思维方式和生活习惯，看到有这本书出版心里很激动

linus最是这么的谦逊 只是为了好玩 最要的是他开创了开源合作开发软件的理念

只是为了好玩 @Linux中国 @图灵教育

就是要看

自己是学Javaweb开发的，但是当初学Linux其实也是因为好玩，当然还有Linux之父开发Linux的传奇故事，以及它为什么能超越Unix,成为一个传奇的操作系统

为啥呢？Linux是每个做网站运维的人都要接触的吧，从大学到现在这么多年了，是时候了解一下他爸的为人了！[偷乐]

好书，帮顶一下！

最近在学Linux，考古一下，行不？

linux就是好玩，折腾是王道阿

只是为了好玩，Woz完成Apple I的原型机，从此开启PC时代。只是为了好玩，Tim Berners-Lee爵士实现BS模式的WWW技术，从此Internet借助Web开始焕发青春光彩。只是为了好玩，Linus将Linux的源代码公布到互联网上，从此开源社区有了一个可靠的核心。没错，Just For Fun。

看大家是怎么玩出来的，享受开发的乐趣，最好最成功的商业模式，没有之一。

学习要有兴趣才能做好。自己的兴趣是工作的一部分真是万幸啊。

网站首推图书呢，大爱linux，让linux的特色走进千家万户把

工作一直用linux很方便。还想了解下背后的故事。大牛都是玩出了经典。

里面有托瓦兹的个人经历，看着试读的部分，语言幽默诙谐，挺有趣的，像个小说一样，不跟介绍技术类的书籍，读这种书，最大的价值我想就是大神的思想了。

有句老话叫“吃得苦中苦，方为人上人”，这本书告诉我们，如今世道i变啦，兴趣是最好的推进剂，把你最喜欢的东西玩到极致，就算最后没成为Linus，你的生命也圆满了。

六月份回顾了revelutionary os 去amazon买了原版的Just for fun ,等了两个礼拜才到货 2001年的书了 现在居然出中文版了，真是太棒了

跟书名一样《只是为了好玩》（Just For Fun），这本书的阅读给我带来了很大了乐趣，书的封面上的Linus Torvalds的照片也让我不仅联想起很多他的有趣的照片，比如他歪嘴吐舌等等之类的，当然了，书里讲了很多我十分感兴趣的话题。<br />
　 生活的意义，OMG，我是认真的，这是最近我一直在思考的东东。Linus给出了很有意思的解释，他说生活或者说任何事情都可以分成三个阶段：生存、社会交往、寻找乐趣。正如性，它开始只是一种延续声明的手段，后来变成了一种社会的行为，比如你要结婚才能得到性，再后来它成了一种娱乐。联系到人类的发展，如果说工业时代解决了人类的生存问题，那么信息时代则满足了人类交往的需求，即人类社会化的行为，之后呢？按照“Linus法则”，人类将进入娱乐社会。这个理论解决了我之前的一个疑问，为什么在以前演员歌手在社会的地位和收入都不高，而现在他们却拥有很多。因为，在以前生存问题还没有解决时，人们无法将更多的时间、金钱和精力投入到那里，而在现在生存已经不是问题（对于发达国家），人们想获得更多的娱乐，所以他们的地位改变了。Linus如是说：“是的，你可以为事业而奋斗，然而最终，生活的终极目标是快乐。”正如很多童话故事的结尾。

本科为了好玩，给自己的Y450装了ubuntu和win双系统，现在研究生学习嵌入式，要在linux下编译，慢慢体会到了它的强大，好书求送

计算机是科学，是一门非常年轻但是激情飞扬，嚣张跋扈的科学。W.RichardStevens万岁，Ken Thompson万岁，Bjarne Stroustrup万岁，Richard Stallman万岁... 最后教主万岁！！那个曾经的帅小伙现在的胖大叔，没有你，计算机该会是多么的无趣，单调和沉闷。无法想象一个没有Linux和没有Linus的世界是什么样子。我不是拍马屁，也不是脑残粉，我只是怀着一份至纯的敬意，感谢Linus，感谢Linux，感谢所有为这个伟大科学贡献过力量的大牛们。

大神出自传了

Just for fun 期待中

起初只是为了好玩，linux的高效稳定和漂亮简洁的界面让我真的喜欢上了它，在去年刚上大学时就安装了kali linux和win双系统，之后又装了fedora ，linux给了我找到自己真正感兴趣的方向，还在研究中，加油[爱你]

成功人士成功之后多半说自己成功的原因只是兴趣爱好，没成功你说啥都没人理会，要找背后的原因，兴趣是首先的，最主要的是要牛逼，牛逼之后就可以吹各种牛逼，呵呵粗俗了点。

想看啊

从入门至今，已五年有余，一句话：只是为了好玩，兴趣所在，愿意更加深入的学习和研究！

说不定中了呢！[挖鼻屎]//@Linux中国:转发微博

linux现在已经是一个传奇啦，和盖茨出书不一样，我更关心他是怎么玩的和呵呵

给我一本！//@Linux中国: 转发微博

只是为了好玩，哈哈

很简单，linux之父，开源界的先驱，程序设计大牛，一个有自己坚持，有自己梦想，干预挑战不可能。。。他是无数程序员的瞻仰的对象！！//@Linux中国: 转发微博

呦 有中文版了 当年我看的还是草纸一样的英文版呢 //@Linux中国:转发微博

已买//@Linux中国: 转发微博

我觉得技术牛逼的人都是从觉得技术好玩开始～就像这本书一样～好的东西终究会成为精华～

对编程也好大影响

好想得到这本书

我看的是英文版，之前的译本很早就没有卖了。我觉得Linus说到每一件事物都有三个阶段：生存、社会秩序和娱乐的这个观点特别到位。Linus的Just for fun的态度我也特别赞同，因为我也“只是为了好玩”。有一种人生来就要带领千军万马，有一种人生来就要写出改变世界的软件，但只有Linus都做到了。Linus加

嘿嘿嘿我来了[嘻嘻][嘻嘻] //@Linux中国:转发微博

从来没有拿到过奖品//@Linux中国:转发微博

教这门课十年了，感觉还是有太多东西不会。因此更佩服李纳斯。

卧槽！这个可以入！ //@BirdZhang:已买//@Linux中国: 转发微博

just for fun就是理由呀！[嘻嘻]

就是因为好玩才对linux有了极大的兴趣，一直奋斗到现在

就是因为好玩才对linux有了极大的兴趣，一直奋斗到现在

大神[好棒]

@Swallow_421 @自言自语大闲希 求送//@Linux中国:转发微博

看看大牛背后的故事励志将这个世界看得明白。Linux是将改变世界。

linux和ms，apple本身就是集众人智慧和集一家智慧的博奕。。。在前半个世界，一家智慧给世界带来了优美的产

dos到windows的时代，作为80后的一员，对于新鲜事物总是有一种强烈的好奇！颇有时代弄潮儿的感觉。<br />
现在作为一个linux新手，或者说菜鸟，但是依然渴望接触学习新鲜食物，与时代共同进步，一起玩起来，兴趣和娱乐是持续进步的王道！

linux之父，追慕那些极客的人和精神

林纳斯自传，转起来～ //@Linux中国:转发微博

只中过一本编程语录。现在都看完了，求再次中

有趣的东西不一定是优秀的，但优秀的东西一定有趣，引人入胜。

读过阮老师的这篇博文，之后我才去看linus的的乐者为王。这本书着实不错，培养兴趣，做一个有趣的人。

好玩又好用的东西，谁不喜欢。

just for fun//@Linux中国: //@仓裡巷:“既然他们要让在场的哲学家讨论技术的问题，那我何不作为技术专家来讨论哲学问题呢？”这位“社交静物”的极客太特么有种了。#只是为了好玩#

封面不错，内容必须不错。[哈哈]

封面不错，内容肯定不错。

只是为了好玩[哈哈][哈哈][可爱]

理由如书名，只是为了好玩。

学习linux是在《鸟哥的Linux私房菜》，接触linux之后才发现，原来蓝屏是一种可以解决的错误，而不是一种不可避免的常态。学习了linux之后，深刻体会到电脑能给我们带来很大的帮助，而不是在一堆按钮面前尝试理解这个世界。

是《乐者为王》的老书新出吗?

买买买 //@Linux中国://@仓裡巷:“既然他们要让在场的哲学家讨论技术的问题，那我何不作为技术专家来讨论哲学问题呢？”这位“社交静物”的极客太特么有种了。#只是为了好玩#

看牛逼的人吹牛逼，活血化瘀！//@Linux中国: //@仓裡巷:“既然他们要让在场的哲学家讨论技术的问题，那我何不作为技术专家来讨论哲学问题呢？”这位“社交静物”的极客太特么有种了。#只是为了好玩#

好书啊！上市了吗？

好书啊！上市了吗？

Just for fun....他的车牌最有意思，Dad of 3，三个孩子的父亲，这是他最值得骄傲的；但上面的小字是Mr. Linux，这是他的成就；下面的小字是King of Geeks，这是他的自我评价；以后会不会加个github呢，哈哈

Just for fun!

想了解他的过去,仅此而已

想了解他的过去,仅此而已

已经上市啦

just for fun //@Linux中国: //@仓裡巷:“既然他们要让在场的哲学家讨论技术的问题，那我何不作为技术专家来讨论哲学问题呢？”这位“社交静物”的极客太特么有种了。#只是为了好玩#

因为工作而接触，因为兴趣而坚持~~

书本已买，明天中午就可以看了[嘻嘻][嘻嘻]

林纳斯，一位与比尔盖茨，与乔布斯同一级别的大神级人物，他们所创造的计算机帝国世界已经占据了我们生活中很大的一部分，而与比尔，与乔布斯不同的是，林纳斯我们提供的这一切都是开源的、免费的。从小的他与众不同，而“只是为了好玩”就诠释了他的不同之处~如果看完本书，对Linux系统产生的兴趣的话，还可以看看新出版的《Linux就是这个范》，哈哈~~

疯狂的人推出让全世界疯狂的产品！

只是为了好玩

# [图灵赠书]《只是为了好玩》点评赠书

林纳斯唯一口述自传，充满各种笑料以及对技术和软件的严肃思考。

即日起关注@LINUX中国 @图灵教育 对本书进行评论，说说你喜爱它的理由，即有机会获得《只是为了好玩》图书1本（共5本）

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

### 活动内容

活动时间：2014年8月13日-2014年8月22日

活动要求：

**活动形式一** ：在新浪微博关注[@LINUX中国](http://linux.cn/home.php?mod=space&uid=16101) [@图灵教育](http://weibo.com/turingbooks) 转发本微博并添加有效评论。
**活动形式二：**在Linux中国（[http://linux.cn](http://linux.cn/)）对本书进行评论，说说你喜爱它的理由。

活动奖品：《只是为了好玩》图书一本（共5本）

**特此注意：**

**1、本站论坛评论方式参与的用户，评论前需登录您的Linux中国账号，匿名评论无效**

**2、微博用户参与活动，活动结束后注意查看[@LINUX中国](http://linux.cn/home.php?mod=space&uid=16101) 官方微博公布的中奖名单或留意您的微博私信，本站用户参与活动，注意查看您注册Linux中国时所填写的邮箱。 我们会通过微博私信以及电子邮件两种方式获取您的邮寄信息。**

### **基本信息**

作者：Linus Torvalds（林纳斯·托瓦兹）David Diamond（大卫·戴蒙）

译者： 陈少芸

出版社：人民邮电出版社

出版时间：2014-08-01

页数：280

版次：1

### 编辑推荐

　　“此书极其有趣，一点儿不枯燥，充满了各种好玩的笑料，以及对技术和软件的严肃思考。如果你是一名程序员，我高度推荐此书。”
　　——阮一峰，知名博主，著有《如何变得有思想》

　　“目前几乎整个互联网都是运行在Linux及其衍生产品之上的，可以说没有Linux，互联网不可能得到如此迅猛的发展。林纳斯用自己精彩的编程人生和对自由软件的热爱演绎了现代社会中一个书呆子的胜利。”
　　——池建强，瑞友科技IT应用研究院副院长，著有《MacTalk·人生元编程》

### 内容简介

 《只是为了好玩：Linux之父林纳斯自传》是Linux 之父林纳斯·托瓦兹的自传，内容不只包括他的成长经历、Linux 系统的诞生过程、与之相关的争议，还有他本人对于版权、开源、商业软件等的看法以及对生活意义的思考。
　　《只是为了好玩：Linux之父林纳斯自传》语言幽默活泼，读来生动有趣且发人深思，适合所有人，尤其是对Linux 感兴趣的读者阅读。

### 作者简介

 林纳斯·托瓦兹，当今世界最著名的程序员、黑客，开源操作系统Linux之父。生于芬兰，毕业于赫尔辛基大学，1997年～2003年任职于美国加州硅谷的全美达公司，现受聘于开放源代码开发实验室，全力开发Linux内核。2004年，他被《时代周刊》评为世界最有影响力的人之一。

　　大卫·戴蒙，职业撰稿人，曾为《纽约时报》《连线》《美国周末》及许多刊物供稿。

**样张地址：**<http://www.ituring.com.cn/book/1115>

**购买链接：**<http://item.jd.com/11514065.html>

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


正在经历变革的 Linux 系统管理员技能

Summary: 你上次编译内核是多久以前的事儿了？新生代 Linux 管理员的答案很简单：我压根儿没编译过内核。我也从没编译过内核，当然自己弄着玩儿的不算。我实在想不到我为啥需要自定义内核，所以我就用我的开箱即用内核了。 Linux 老鸟们可能会笑话我们，但你不能否认：随着越来越多的企业采用 Linux，新生代的 Linux 管理员虽然生就一身相当不错的技术实力，却因缺乏编译内核这类简单却基础的技能而和一个优秀的 Linux 管理员之间存在差距。我们能用时下最前沿的技术搭建一套高性能、高可用的 Web 基础设施，但你别让我们修理一台无法启动的 Linux

@我的印象笔记

[太阳]配图

弄着玩?差点把人整疯。大约8年前吧！

mark

工作上搞过，自己电脑没搞过

这个还真没见有人干过

saltstack比起puppet,架構更簡單,更加靈活,部署相比容易的多且二者功能差不多.個人覺得salt好用.

这个倒是没听说过~~回头找点资料发发

# 正在经历变革的 Linux 系统管理员技能

你上次编译内核是多久以前的事儿了？新生代 Linux 管理员的答案很简单：我压根儿没编译过内核。我也从没编译过内核，当然自己弄着玩儿的不算。我实在想不到我为啥需要自定义内核，所以我就用我的“开箱即用”内核了。

Linux 老鸟们可能会笑话我们，但你不能否认：随着越来越多的企业采用 Linux，新生代的 Linux 管理员虽然生就一身相当不错的技术实力，却因缺乏编译内核这类简单却基础的技能而和一个优秀的 Linux 管理员之间存在差距。我们能用时下最前沿的技术搭建一套高性能、高可用的 Web 基础设施，但你别让我们修理一台无法启动的 Linux 机器——我们会建议你扔了它，然后换个新的虚拟机。

<img src="content_image/album_201408_13_223414zhsrhhgs4oojastz.gif" alt="" title="">

过去的十来年里发生了很多有意思的事儿：Linux 不但变成了商品，而且其层出不穷的发行版也越来越强大和灵活。如今，一个普通的系统管理员完全不必掌握编译内核这类底层技能了。

然后，我们又见证了虚拟机技术的商品化。使用 Amazon 云主机或者 VPS 的用户也许永远不用在裸机上部署 Linux。随着混合云和私有云的日益普及，甚至很多企业级的系统管理员都不需要在裸机上部署 Linux——登录 Web 管理界面，一次性就能搞定不止 5 台 Apache 虚拟机。

时下最新的两个趋势：一个是配置管理，另一个看起来很前沿（其实一点儿都不前沿）—— 像 docker 这样的部署工具包，它们隐藏了更多 Linux 底层技术细节。每当客户要求我们在 [OlinData](http://olindata.com/) 上配置 Linux 机器时，我们的第一个动作就是架设 [Puppet](http://puppetlabs.com/)。有了功能强大值得信赖的 Puppet 模块，手工配置也更快更简单了。

例如，我可以这样使用 Puppet 在新机器上安装 Apache:

```
node 'web01.olindata.com' {
  include apache
  apache::vhost{ 'www.olindata.com':
    docroot => '/var/www/olindata'
  }
}

```

在这种环境下，我甚至都不用在机器上打开日志。通过 [Jenkins](http://jenkins.org/) 这样的不间断部署工具，我可以完全自动化部署我的基础设施代码，并确保它们通过了我预置的测试。

### 系统管理员技能日益升级

就算有更新的工具对我们隐藏更多的技术细节，坚持 Linux 训练对系统管理员来说仍然很有价值。了解基础知识很关键，这些抽象高级工具把管理员从旧的任务中解放了出来，那么系统管理员就应该强化自己使用这些高级工具的能力。熟悉高级工具对系统管理员提升层次来说很关键，这会迫使系统管理员不断练习编写代码一类的能力，并借此发挥这些新玩意儿更大的潜力。

底层 Linux 技能需求会完全消失么？当然不会。除了商业服务器部署之外，Linux 还有大量其他用途。同时，人们也从底层操作知识中获益颇丰。最重要的是，如果你的简历上体现出了这些技能，我（还有很多其他老板）总是会优先选择你，而不是那些尚未掌握这些技能的候选人。因为你也不知道啥时候你就用上这些技能了！

*Walter Heck 是 荷兰开源培训顾问公司 Olindata（一个 Linux 基金会授权的培训机构）的创始人兼 CEO，这里是计划中[由 OlinData 提供的 Linux 基金会官方培训课程单](http://www.olindata.com/training/upcoming?technology=295)。*

---

via: <http://www.linux.com/news/enterprise/systems-management/780956-linux-system-administration-skills-are-changing>

原文作者：[Walter Heck](http://www.linux.com/community/forums/person/59207)

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

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


LibreOffice 4.3发布，修复了一个11年之久的Bug

Summary: 如果你长时间地在开源办公套件中写'巨兽段落'，此次的发行版本正是你需要的。   ** 新的一个月，新发行版本的LibreOffice开源办公套件将默认的安装在Ubuntu中 ** LibreOffice 4.3是2010年从OpenOffice分离以来的第八个主要发行版本软件，也是4.x发行版本系列的第三个次要版本。 有那些新功能? 每一个主要的办公套件发行版本都有着巨大的变化，包括修复和更新，如果你有很多的空余时间，你可以在文档基金会查看最新更新的所有变更日志 wiki : wiki.documentfoundation.org/ReleaseNotes/4.3。 为了节省您的时间，关于这次更新，我们已经将

是呀，linux桌面就是这样被各部分拖累毁掉的。

LO 版面还原不是一般的残疾，办公或写论文，还是永中或 WPS 吧～

Office是微软最后的堡垒

马

与微软办公格式的兼容性还有待提高

“巨兽段落”是什么意思？

monster  ，根据下文的意思是，超过65,000字符的大段落。

已装wps

在中文方面差强人意啊

# LibreOffice 4.3发布，修复了一个11年之久的Bug

>
> 如果你长时间地在开源办公套件中写'巨兽段落'，此次的发行版本正是你需要的。
>
>
>

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

**新的一个月，新发行版本的LibreOffice开源办公套件将默认的安装在Ubuntu中**

LibreOffice 4.3是2010年从OpenOffice分离以来的第八个主要发行版本软件，也是4.x发行版本系列的第三个次要版本。

### 有那些新功能?

每一个主要的办公套件发行版本都有着巨大的变化，包括修复和更新，如果你有很多的空余时间，你可以在文档基金会查看最新更新的所有变更日志 [wiki : wiki.documentfoundation.org/ReleaseNotes/4.3](https://wiki.documentfoundation.org/ReleaseNotes/4.3)。

为了节省您的时间，关于这次更新，我们已经将更多面向用户和头条的新特性整理成了一个简短的摘要。

### 文档的互操作性

作为许多办公套件之一的LibreOffice，在处理、打开、保存其他办公文件格式的功能方面有着很大的改进。

在LibreOffice 4.3中，这将导致一系列的OOXML改进，包括DrawingML特性、主题字体、文件嵌套。字体、段落、表格单元格的主题颜色现在会被保存，同样的，4.3也支持给图片和形状增加样式、填补和其他一些操作。

Microsoft Office**用户会发现LibreOffice支持30个额外的Excel公式**，Mac用户会很高兴地发现老的ClarisWorks, MacWorks 和 SuperPaint文件现在可以在LibreOffice中打开。

在文档中的嵌套注释得益于格式化的整理，而且现在可以同时导入导出为.doc、.rft和.docs文件（等等）。

### 其他值得注意的变化

* 支持3D动画模型
* 支持Collada和.kmz文件
* 在Windows和Linux中支持初始化HiDPI
* 启动中心现已预览所有文件，而不只是.odf
* .docx导入时的进度条
* PDF导入时的调整，包括旋转的的文本支持

最后，一个11年的bug：阻止超过65,000字符的‘巨兽’段落的输入，最后被修复了。TDF说这个归结于“**LibreOffice** 的一个专有功能---OOo源码的现代化”。

### 下载LibreOffice 4.3

LibreOffice 4.3可以从官方网站上下载 [libreoffice.org/download](http://www.libreoffice.org/download/), 或者直接通过下面的链接：

* [Linux x64 (.deb)](http://www.libreoffice.org/download/libreoffice-fresh/?type=deb-x86_64&version=4.3.0&lang=en-US) // [Torrent](http://download.documentfoundation.org/libreoffice/stable/4.3.0/deb/x86_64/LibreOffice_4.3.0_Linux_x86-64_deb.tar.gz.torrent)
* [Linux x86 (.deb)](http://www.libreoffice.org/download/libreoffice-fresh/?type=deb-x86&version=4.3.0&lang=en-US) // [Torrent](http://download.documentfoundation.org/libreoffice/stable/4.3.0/deb/x86/LibreOffice_4.3.0_Linux_x86_deb.tar.gz.torrent)

如果你不喜欢升级，你可以找到包含在Ubuntu 14.10中的发行版本，这将于今年晚些时候发布。

---

via: <http://www.omgubuntu.co.uk/2014/07/libreoffice-4-3-released-includes-fix-11-year-old-bug>

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

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


Linux有问必答：如何检查我是否处于一个运行着的screen会话中

Summary: 问题：我经常使用screen命令来运行多个伪终端会话。好多次，我发现都记不得自己是否在一个screen会话中，还是在一个常规终端中。是否有一种简便的方法来检查我是否在一个运行着的screen会话中？  一个快捷而又简单的方法来检查你是否处于一个screen伪终端中，还是在一个常规终端中，就是检查STY环境变量。当调用了screen，就会把STY变量值设置为会话名。因此，如果STY环境变量被设置为任何非空字符串，就意味着你正处于一个screen会话中。  $ echo $STY   2858.pts-3.my_host  然而，请注意，上面的方法只有当你是在本地计算机上运行scree

screenrc

你需要一个陀螺？

谢谢分享.经验啊.

Linux软件不能一键卸载，软件安装麻烦，是因为i和Windows内核不同导致的吗？

能直接安装卸载的啊，基本上每个发行版都可以

# Linux有问必答：如何检查我是否处于一个运行着的screen会话中

>
> **问题**：我经常使用screen命令来运行多个伪终端会话。好多次，我发现都记不得自己是否在一个screen会话中，还是在一个常规终端中。是否有一种简便的方法来检查我是否在一个运行着的screen会话中？
>
>
>

一个快捷而又简单的方法来检查你是否处于一个screen伪终端中，还是在一个常规终端中，就是检查STY环境变量。当调用了screen，就会把STY变量值设置为会话名。因此，如果STY环境变量被设置为任何非空字符串，就意味着你正处于一个screen会话中。

```
 $ echo $STY

```

>
> 2858.pts-3.my\_host
>
>
>

然而，请注意，上面的方法**只有当**你是在本地计算机上运行screen命令的时候。如果你从本地计算机的screen会话中SSH到任何远程计算机上，远程计算机上的STY变量不会被设置，尽管在技术上看，你仍然处于一个screen会话中。

事实上，一个更为可靠的检查你是否处于一个screen会话中的方法，是按“Ctrl-a”+“Ctrl-t”。如果你处于screen会话中，终端会在底部显示时间信息。

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

---

via: <http://ask.xmodulo.com/check-running-screen-session.html>

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

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


Linux有问必答：如何查看Linux上程序或进程用到的库

Summary: 问题：我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库。是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系？  查看可执行程序的共享库依赖关系 要找出某个特定可执行依赖的库，可以使用ldd命令。这个命令调用动态链接器去找到程序的库文件依赖关系。 $ ldd /path/to/program   注意！并不推荐为任何不可信的第三方可执行程序运行ldd，因为某些版本的ldd可能会直接调用可执行程序来明确其库文件依赖关系，这样可能不安全。 取而代之的是用一个更安全的方式来显示一个未知应用程序二进制文件的库文件依赖，使

这个很有用！

去年遇到过这个问题。

@我的印象笔记

get√

Repost

看图不是objdump？

上海FreeTech（群号:348891690）聚焦高端技术交流、项目对接；打造免费、开放、分享、合作的技术氛围，非上

是的.

没有显示program header而已,只显示了dynamic section.

不懂啊

樓主 對  objdump -p /usr/bin/git 輸出結果進行了過濾.  打印出來的信息是Dynamic section一部分. 即所有依賴.

哦哦~~

# Linux有问必答：如何查看Linux上程序或进程用到的库

****

>
> **问题**：我想知道当我调用一个特定的可执行文件在运行时载入了哪些共享库。是否有方法可以明确Linux上可执行程序或运行进程的共享库依赖关系？
>
>
>

### 查看可执行程序的共享库依赖关系

要找出某个特定可执行依赖的库，可以使用ldd命令。这个命令调用动态链接器去找到程序的库文件依赖关系。

```
$ ldd /path/to/program

```

注意！并不推荐为任何不可信的第三方可执行程序运行ldd，因为某些版本的ldd可能会直接调用可执行程序来明确其库文件依赖关系，这样可能不安全。

取而代之的是用一个更安全的方式来显示一个未知应用程序二进制文件的库文件依赖，使用如下命令：

```
$ objdump -p /path/to/program | grep NEEDED

```

### 查看运行进程的共享库依赖关系

如果你想要找出被一个运行中的进程载入的共享库，你可以使用pldd命令，它会显示出在运行时被载入一个进程里的所有共享对象。

```
$ sudo pldd <PID>

```

注意你需要root权限去执行pldd命令。

或者，也可以选择一个叫做pmap的命令行工具。它报告一个进程的内存映射，也能显示出运行进程的库文件依赖。

```
$ sudo pmap <PID>

```

---

via: <http://ask.xmodulo.com/check-library-dependency-program-process-linux.html>

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

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


5个让Cinnamon桌面环境完美运行在ubuntu上的方法

Summary: Cinnamon桌面环境最新稳定版本发行了，ubuntu用户可以去安装使用了 在已经安装好的基础上，我们可以做一些微调来拥有更棒的体验。 你的Ubuntu如果没有安装Cinnamon，你可以参照我们之前的文章进行安装。 更改Mint菜单图标 Mint菜单图标是Cinnamon的特色之一，它给予用户一种简单、快速、熟悉的方式来搜索、打开、组织应用程序，默认情况下，菜单使用启动程序项中的Linux Mint Logo。既然你是在ubuntu系统下使用它，而不是Mint，为什么不使用ubuntu熟悉的橙色朋友圈logo来替换原有的菜单图标呢？ 实现很简单：  想要将Cinnamon菜单图标改变

opensuse呢？

Repost

Cinnamon是我最喜欢的linux桌面工具，没有之一。

跟mint还有区别吗

哈哈哈，这个不好说啊。

# 5个让Cinnamon桌面环境完美运行在ubuntu上的方法

**Cinnamon桌面环境最新稳定版本发行了，[ubuntu用户可以去安装使用了](http://www.omgubuntu.co.uk/2014/07/new-cinnamon-ubuntu-14-04-ppa-stable)**

在已经安装好的基础上，我们可以做一些微调来拥有更棒的体验 。

你的Ubuntu如果没有安装Cinnamon，你可以参照我们[之前的文章进行安装](http://www.omgubuntu.co.uk/2014/07/new-cinnamon-ubuntu-14-04-ppa-stable)。

### 更改Mint菜单图标

Mint菜单图标是Cinnamon的特色之一，它给予用户一种简单、快速、熟悉的方式来搜索、打开、组织应用程序，默认情况下，菜单使用启动程序项中的Linux Mint Logo。既然你是在ubuntu系统下使用它，而不是Mint，为什么不使用ubuntu熟悉的橙色朋友圈logo来替换原有的菜单图标呢？

实现很简单：

想要将Cinnamon菜单图标改变为ubuntu风格的，只需点击applet，选择‘config‘，在设置窗口，就会出现‘Use a custom icon‘，然后你就输入下面的路径来使用ubuntu logo了：

```
/usr/share/icons/ubuntu-mono-dark/actions/24/package-supported.svg

```

你可以使用任何支持的图片类型，只需要在刚才的填写区域写入正确的图片路径，或者点击后面的方框来打开文件选择器，选择你要使用的图标。

### 尝试Cinnamon主题

和GNOME Shell一样，Cinnamon也支持自定义主题，我所说的主题并不只是应用程序的GTK主题和简单的窗口装饰，而是将面板，菜单，程序等等结合为一个整体的视觉风格。

不用离开桌面就可以浏览、下载Cinnamon主题。打开Cinnamon Settings tool中的Appearance pane，然后选择‘Online Themes‘。

下面是一些受欢迎的主题：

* [**Android Holo**](http://cinnamon-spices.linuxmint.com/themes/view/122) — Android 4.x style theme
* [**Zukitwo**](http://cinnamon-spices.linuxmint.com/themes/view/219) — Sleek, stylish and light
* [**Minty**](http://cinnamon-spices.linuxmint.com/themes/view/25) — Dark theme with bold green accents
* [**Metro**](http://cinnamon-spices.linuxmint.com/themes/view/188) — Based on the visual style of Windows 8.

### 找出你最喜欢的布局

Unity认为应用程序启动器永远只应该固定地待在屏幕的一侧，但是Cinnamon并不这样认为，它可以让你重新设计最符合你的桌面布局。

手动面板可以增加，编辑和移动，或选择三种预设的布局。

打开Settings > Panel > Layout Options > Panel Layout，然后下面这几个中选择：

* Traditional — 这是默认的布局，控制面板在屏幕的顶部
* Flipped ——和Traditional一样，控制面板在屏幕顶部
* Classic ——两个控制面板，一个在顶部，一个在底部

你需要注销或者重启Cinnamon才能生效。

### 添加面板小程序

Cinnamon和GNOE Shell一样具有可扩展性，丰富的社区插件和扩展程序提供了额外的特性和功能，比如天气，系统监测，窗口管理工具等，这些都可以被浏览，安装并能从桌面直接启动。

选择控制面板，右键点击要添加小程序，选择 ‘…Add Appls to the Panel‘，一些著名的小程序如下：

* [**Weather**](http://cinnamon-spices.linuxmint.com/applets/view/17) - does what it forecasts (ho ho)
* [**Stark Menu**](http://cinnamon-spices.linuxmint.com/applets/view/168) - Clone of the Windows 7 Start Menu
* [**Screenshot**](http://cinnamon-spices.linuxmint.com/applets/view/35) — Easy way to grab screenshots with delay

### 改变日期的显示格式

Cinnamon的时间日期程序很方便，它可以让你很容易就记住日期

但是它显示时间的默认格式是24小时制，但是我们很容易就能调整时钟格式

右击然后选择‘Configure‘，在设置窗口中出现“Use a custom date format“的选择框上打勾，或者使用下面的几种格式（复制粘帖粗体字段）

* **%B %e, %I:%M %p** (July 13, 7:19 PM)
* **%m/%d/%Y** (07/13/2014)
* **%l:%M %p** (7:19 PM)

改变立马生效，如果中途发生了错误，你可以取消自定义时间格式选项恢复到默认状态

### 更多

在Cinnamon桌面环境中只有少部分定制选择供使用者使用，但是我们认为上述所讲的调整是不断探索的很好跳板，通过下面的评论栏让我们了解你最喜欢的调整是什么吧，你可以通过Facebook或者Google+

---

via: <http://www.omgubuntu.co.uk/2014/07/5-things-installing-cinnamon-ubuntu>

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

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


【Linux中国】“招聘”栏目正式上线！

Summary: 撒花，Linux中国“招聘”栏目正式上线！（http://linux.cn/jobs/）为您打造优质专业的招聘平台，第一时间为您提供最新最全的招聘信息，让您找到施展才能的舞台。

支持[给力]

这个确实还是很不错的。

# 【Linux中国】“招聘”栏目正式上线！

各位Linux中国的小伙伴们，Linux中国“招聘”栏目正式上线了！（<http://linux.cn/jobs/>）为您打造优质专业的招聘平台，第一时间提供最新最全的招聘信息，让您找到施展才能的平台。

功能简介
----

### 浏览

1、“招聘”首页热门公司招聘“轮播”展示。

2、“招聘”首页右侧热门职位为您推荐。

3、最新职位实时更新。

### 搜索/筛选

1、“招聘”首页搜索栏输入职位相关内容，选择城市，准确定位招聘信息。

2、热门招聘城市定位。

### 注册/投递简历

点击您心仪的职位名称，注册用户，填写简历并投递！

完成！

关于“招聘”，如您有任何建议，可以给我们提出，您的宝贵建议是我们前进的动力。

Linux中国


如何用CentOS上的SARG日志分析器来分析Squid日志

Summary: 上一节教程中，我们展示了如何在CentOS上使用Squid配置透明代理。Squid提供了很多有用的特性，但是分析一个原始Squid日志文件并不直接。比如，你如何分析下面Squid日志中的时间戳和数字？SARG（或者说是Squid分析报告生成器）是一款基于web的工具，用于从Squid日志中生成报告。SARG提供了一个由Squid处理的网络流量视图，易于理解，并且它可以很容易地设置和维护。在下面的教程中，我们会展示如何在CentOS平台上设置SARG。

# 如何用CentOS上的SARG日志分析器来分析Squid日志

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

[上一节教程](http://xmodulo.com/2014/06/squid-transparent-web-proxy-centos-rhel.html)中，我们展示了如何在CentOS上使用Squid配置透明代理。Squid提供了很多有用的特性，但是分析一个原始Squid日志文件并不直接。比如，你如何分析下面Squid日志中的时间戳和数字？

```
1404788984.429   1162 172.17.1.23 TCP_MISS/302 436 GET http://facebook.com/ - DIRECT/173.252.110.27 text/html
1404788985.046  12416 172.17.1.23 TCP_MISS/200 4169 CONNECT stats.pusher.com:443 - DIRECT/173.255.223.127 -
1404788986.124    174 172.17.1.23 TCP_MISS/200 955 POST http://ocsp.digicert.com/ - DIRECT/117.18.237.29 application/ocsp-response
1404788989.738    342 172.17.1.23 TCP_MISS/200 3890 CONNECT www.google.com:443 - DIRECT/74.125.200.106 -
1404788989.757    226 172.17.1.23 TCP_MISS/200 942 POST http://clients1.google.com/ocsp - DIRECT/74.125.200.113 application/ocsp-response
1404788990.839   3939 172.17.1.23 TCP_MISS/200 78944 CONNECT fbstatic-a.akamaihd.net:443 - DIRECT/184.26.162.35 -
1404788990.846   2148 172.17.1.23 TCP_MISS/200 118947 CONNECT fbstatic-a.akamaihd.net:443 - DIRECT/184.26.162.35 -
1404788990.849   2151 172.17.1.23 TCP_MISS/200 76809 CONNECT fbstatic-a.akamaihd.net:443 - DIRECT/184.26.162.35 -
1404788991.140    611 172.17.1.23 TCP_MISS/200 110073 CONNECT fbstatic-a.akamaihd.net:443 - DIRECT/184.26.162.35 –
```

我们使用yum来安装安装必要的依赖。

```
# yum install gcc make wget httpd crond

```

在启动时加载必要的服务

```
# service httpd start; service crond start
# chkconfig httpd on; chkconfig crond on

```

现在我们下载并解压SARG

```
# wget http://downloads.sourceforge.net/project/sarg/sarg/sarg-2.3.8/sarg-2.3.8.tar.gz?
# tar zxvf sarg-2.3.8.tar.gz
# cd sarg-2.3.8

```

**注意**: 对于64位的Linux，log.c的源代码需要用下面的文件打补丁。

```
1506c1506
<            if (fprintf(ufile->file, "%s\t%s\t%s\t%s\t%"PRIi64"\t%s\t%ld\t%s\n",dia,hora,ip,url,nbytes,code,elap_time,smartfilter)<=0) {
---
>            if (fprintf(ufile->file, "%s\t%s\t%s\t%s\t%"PRIi64"\t%s\t%ld\t%s\n",dia,hora,ip,url,(int64_t)nbytes,code,elap_time,smartfilter)<=0) {
1513c1513
<                fprintf(fp_log, "%s\t%s\t%s\t%s\t%s\t%"PRIi64"\t%s\t%ld\t%s\n",dia,hora,user,ip,url,nbytes,code,elap_time,smartfilter);
---
>                fprintf(fp_log, "%s\t%s\t%s\t%s\t%s\t%"PRIi64"\t%s\t%ld\t%s\n",dia,hora,user,ip,url,(int64_t)nbytes,code,elap_time,smartfilter);
1564c1564
<                printf("LEN=\t%"PRIi64"\n",nbytes);
---
>                printf("LEN=\t%"PRIi64"\n",(int64_t)nbytes);

```

如下继续并编译/安装SARG

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

```

SARG安装之后，配置文件可以按你的要求修改。下面是一个SARG配置的例子。

```
# vim /usr/local/etc/sarg.conf

```

---

```
access_log /var/log/squid/access.log
temporary_dir /tmp
output_dir /var/www/html/squid-reports
date_format e     ## We use Europian DD-MM-YYYY format here ##
## we don’t want multiple reports for single day/week/month ##
overwrite_report yes

```

现在是时候测试运行了，我们用调试模式运行sarg来查看是否存在错误。

```
# sarg -x

```

如果i一切正常，sarg会根系Squid日志，并在/var/www/html/squid-reports下创建报告。报告也可以在浏览器中通过地址http://<服务器IP>/squid-reports/访问。

[](https://camo.githubusercontent.com/5f3e90eaa7c9f09de466633855fa7e6ea3e0c03c/68747470733a2f2f6661726d332e737461746963666c69636b722e636f6d2f323933312f31343633313430333933355f346666333465303762395f7a2e6a7067)

[](https://camo.githubusercontent.com/73b63de6bf943e4082f4ac9372cee93a5ceb8090/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333930312f31343632393238313634345f666563333130313463355f7a2e6a7067)

、SARG可以用于创建日、周、月度报告。时间范围用“-d”参数来指定，值的形式很可能为day-n、 week-n 或者 month-n，n的值为向前推移的天/周/月的数量。比如，使用week-1,SARG会生成之前一星期的报告。使用day-2,SARG会生成之前两天的报告。

作为演示，我们会准备一个计划任务来每天运行SARG。

```
# vim /etc/cron.daily/sarg

```

---

```
#!/bin/sh
/usr/local/bin/sarg -d day-1

```

文件需要可执行权限。

```
# chmod 755 /usr/local/bin/sarg

```

现在SARG应该会每天准备关于Squid管理的流量报告。这些报告可以很容易地通过SARG网络接口访问。

总结一下，SARG一款基于网络的工具，它可以分析Squid日志，并以更详细的方式展示分析。系统管理员可以利用SARG来监视哪些网站被访问了，并跟踪访问量最大的网站和用户。本教程包含了SARG配置工作。你可以进一步自定义配置来满足自己的要求。

希望这篇教程对您有帮助。

---

[Sarmed Rahman](http://amar-linux.blogspot.com/)

* [Twitter 地址](http://twitter.com/SarmedRahman)
* [LinkedIn 地址](http://www.linkedin.com/in/sarmedrahman)

Sarmed Rahman是一名孟加拉国的IT专业人士。他坚持时不时地写作技术文章，并坚信技术可以通过分享而提高。在空闲时间里，他喜欢打游戏，喜欢和朋友一起度过。

---

via: <http://xmodulo.com/2014/07/analyze-squid-logs-sarg-log-analyzer-centos.html>

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

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


Linux 3.16 内核中有什么新东西？

Summary: 就在我们在梦乡中沉醉的的时间里，莱纳斯托沃兹却一直处在忙碌之中。 是的，大家应该已经知道了，不久之前，Linux 3.16已经释出了稳定版本。 在他购买的一张跑步机办公桌上（或许不是，但是他的性格中的幽默实在是难以让人招架）Linux的创始人终于公布了最新的稳定版本:  虽然3.16有一阵看起来有点玄乎，但是后来一切进展顺利，没有理由去做一些额外的候选发布版，就像几个星期前我担心的那样。  Linux 3.16有什么新特性？ 代号为Shuffling Zombie Juror的Linux 3.16 的发布伴随着一系列的关键性改进。它们包括了复杂的和完整的 - 例如，u

越来越胖了。。

越来越胖了[黑线]

感觉胖了

内核还是要精简、精炼，最好能有选择的安装！

诺基亚N900……

大家都是那句话啦：感觉胖了

反正在用了

Tegra 要逆袭~？？？

# Linux 3.16 内核中有什么新东西？

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

**就在我们在梦乡中沉醉的的时间里，莱纳斯·托沃兹却一直处在忙碌之中。**

是的，大家应该已经知道了，不久之前，Linux 3.16已经释出了稳定版本。

在他购买的一张跑步机办公桌上（或许不是，但是他的性格中的幽默实在是难以让人招架）Linux的创始人终于[公布](https://lkml.org/lkml/2014/8/3/82)了最新的稳定版本:

>
> “虽然3.16有一阵看起来有点玄乎，但是后来一切进展顺利，没有理由去做一些额外的候选发布版，就像几个星期前我担心的那样。”
>
>
>

### Linux 3.16有什么新特性？

代号为“Shuffling Zombie Juror”的Linux 3.16 的发布伴随着一系列的关键性改进。它们包括了复杂的和完整的 - 例如，“[unified control group hierarchy](https://lwn.net/Articles/601840/)（注：统一控制组层次结构）” ， 给更多的用户访问权限，如新的和改进的驱动程序。

多亏了[Linux Weekly News](https://lwn.net/) 和 [Phoronix](http://www.phoronix.com/scan.php?page=news_item&px=MTc1NDM) 的辛勤工作（还有google在linux内核邮件列表上的出色贡献），我们整理了一些在这个版本中出现的的显着的变化和特性。

* 在多个ARM SoC的多平台的ARM内核映像（包括Exynos）
* 对Nvidia的Tegra K1和开普勒GPU的各种支持
* 诺基亚N900的调制解调器驱动程序包含在主线
* 加入对英特尔Cherryview支持
* 改善对SIXAXIS和DUALSHOCK 4控制器的支持
* Sony-HID驱动程序的改进
* Synaptics触摸板的RMI驱动程序
* Saitek RAT7游戏鼠标的修复
* 戴尔 FreeFall driver
* 对[Btrfs 文件系统](http://lkml.iu.edu/hypermail/linux/kernel/1406.1/02366.html)的80的改变和修正，
* 新的音频驱动程序杂项。Cirrus，瑞昱 和 Analog 设备。
* Tegra的高清音频HDMI 支持

### 安装Linux 3.16

新的内核发布了，你想要吗？好吧，先别急。 Linux的3.16很有可能在Ubuntu Linux14.10将作为默认内核而在今年晚些时候发布。而14.10版的内核也将不久后通过小版本更新提供给LTS的用户们。

如果你是一个急性子，**最重要的**是具备足够娴熟的技能，你可以使用在Canonical维护的主线内核档案中列出的相应的安装器 , 在为你的Ubuntu 14.04 LTS上安装Linux 3.16内核。

* [访问Ubuntu的内核存档网站](http://kernel.ubuntu.com/)

---

via: <http://www.omgubuntu.co.uk/2014/08/linux-kernel-3-16-changes-drivers>

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

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


给linux用户的11个高级MySQL数据库面试问题和答案

Summary: 我们已经发表了两篇MySQL的文章，非常感谢Tecmint社区的大力支持。这是MySQL面试系列的第三篇文章,并且在面试专栏中排第16。  15个基本的MySQL面试问题 给中级人员的10个MySQL面试问题   因为有大家的支持，我们才能做到现在，感谢你们这一路上对我们的支持.在这篇文章中，我们将主要针对MySQL的实用技巧，讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并打印出当前数据库的名称? 答：下面的语句的结果会显示服务器的版本和当前的数据库名称  mysql SELECT VERSION(), DATABASE(); +------------------------

@我的印象笔记

@西邮Linux兴趣小组

谢谢学姐推荐[擠眼][擠眼]

@小月月鸟pp

多谢～

3. ‘AND’运算符有可能带着非运算符(!)一起用吗？<br />
不能一起用吗？

确定这是高级MySQL应用的考题？这么简单！？

"a='xxx' AND b!='yyy'"这样用肯定是可以的~这个说的大概是不能“a='xxx' !AND b='yyy'”这么用……

确实挺简单的……不过原文说是高级……那就高级吧………………大概老外有时候要求比较低……

这个基本和window 下的一样~~~~

-e 是execute额，不是export

# 给linux用户的11个高级MySQL数据库面试问题和答案

我们已经发表了两篇MySQL的文章，非常感谢Tecmint社区的大力支持。这是MySQL面试系列的第三篇文章,并且在面试专栏中排第16。

* [15个 MySQL 基础面试题，DBA 们准备好了吗？](http://linux.cn/article-2445-1.html)
* [给中级人员的10个MySQL面试问题](http://www.tecmint.com/basic-mysql-interview-questions-for-database-administrators/)

<img src="content_image/album_201408_15_152534bppsppsgssii0g0a.jpeg" alt="11个MySQL面试问题" title="11个MySQL面试问题">

因为有大家的支持，我们才能做到现在，感谢你们这一路上对我们的支持.在这篇文章中，我们将主要针对MySQL的实用技巧，讲讲面试中相关的问题.

### 1. 如何使用SELECT语句找到你正在运行的服务器的版本并打印出当前数据库的名称?

**答**：下面的语句的结果会显示服务器的版本和当前的数据库名称

```
 mysql> SELECT VERSION(), DATABASE();

 +-------------------------+------------+
 | VERSION()               | DATABASE() |
 +-------------------------+------------+
 | 5.5.34-0ubuntu0.13.10.1 | NULL       |
 +-------------------------+------------+
 1 row in set (0.06 sec)

```

在Database一列中显示**NULL**是因为我们当前没有选择任何数据库。因此，使用下面的语句先选择一个数据库,就能看到相应的结果。

```
mysql> use Tecmint;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

```

```
mysql> select VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | tecmint    |
+-------------------------+------------+
1 row in set (0.00 sec)

```

### 2. 使用非运算符(!)从表"Tecmint"中列出除了"SAM"以外的所有user记录

**答**：使用下面的语句

```
mysql> SELECT * FROM Tecmint WHERE user !=SAM;

+---------------------+---------+---------+---------+---------+-------+
| date                | user    | host   | root     | local   | size  |
+---------------------+---------+---------+---------+---------+-------+
| 2001-05-14 14:42:21 | Anthony | venus  | barb     | venus   | 98151 |
| 2001-05-15 08:50:57 | TIM     | venus  | phil     | venus   | 978   |
+---------------------+---------+---------+---------+---------+-------+

```

### 3. ‘AND’运算符有可能带着非运算符(!)一起用吗？

**答**：当我们使用‘=’号时用‘AND’连接，用‘!=’时用‘OR’连接，下面是‘=’和AND运算符一起用的例子

```
mysql> SELECT * FROM mail WHERE user = SAM AND root = phil

```

‘!=’和OR运算符的例子

```
mysql> SELECT * FROM mail WHERE user != SAM OR root != phil

+---------------------+---------+---------+---------+---------+-------+
| date                | user    | host    | root    | local   | size  |
+---------------------+---------+---------+---------+---------+-------+
| 2001-05-14 14:42:21 | Anthony | venus   | barb    | venus   | 98151 |
+---------------------+---------+---------+---------+---------+-------+

```

* = : 等于
* != : 不等于
* ! : 代表“非”的运算符

AND和OR在MySQL中被看作连接运算符

### 4. IFNULL()当打在MySQL中有什么作用?

**答**：使用**IFNULL()**方法能使MySQL中的查询更加精确。IFNULL()方法将会测试它的第一个参数，若不为NULL则返回该参数的值，否则返回第二个参数的值

```
mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;

+---------+---------+
| name    | id      |
+---------+---------+
| bernina | 198-48  |
| bertha  | Unknown |
| ben     | Unknown |
| bill    | 475-83  |
+---------+---------+

```

### 5. 如果你只想知道从一个结果集的开头或者结尾开始的特定几条记录，该如何实现？

**答**：我们需要把**LIMIT**语句接在**ORDER BY**语句后使用，以达到上述效果。

#### 显示一行记录

```
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+
| id | name | birth      | color | foods                | cats |
+----+------+------------+-------+----------------------+------+
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    |
+----+------+------------+-------+----------------------+------+

```

#### 显示5行记录

```
mysql> SELECT * FROM profile LIMIT 5;

+----+------+------------+-------+-----------------------+------+
| id | name | birth      | color | foods                 | cats |
+----+------+------------+-------+-----------------------+------+
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza  | 0    |
| 2  | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3    |
| 3  | Brit | 1957-12-01 | red   | burrito,curry,pizza   | 1    |
| 4  | Carl | 1973-11-02 | red   | eggroll,pizza         | 4    |
| 5  | Sean | 1963-07-04 | blue  | burrito,curry         | 5    |
+----+------+------------+-------+-----------------------+------+

```

#### 显示按照ORDER BY排序后的第一条记录

```
mysql> SELECT * FROM profile ORDER BY birth LIMIT 1;

+----+------+------------+-------+----------------+------+
| id | name | birth      | color | foods          | cats |
+----+------+------------+-------+----------------+------+
| 9  | Dick | 1952-08-20 | green | lutefisk,fadge | 0    |
+----+------+------------+-------+----------------+------+

```

### 6. Oracle 和 MySQL该如何选择，为什么?

**答**：它们都有各自的优点和缺点。考虑到时间因素，我倾向于MySQL。

#### 选择MySQL而不选orcale的原因

* MySQL开源
* MySQL轻便快捷
* MySQL对命令行和图形界面的支持都很好
* MySQL支持通过Query Browser进行管理

### 7. MySQL中如何得到当前日期?

**答**：在MySQL中获取当前日期就是如下的SELECT语句这么简单。

```
mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+

```

### 8. MySQL中如何将表导出为XML文件?

**答**：我们可以使用'-e'(export)选项来把MySQL表或整个数据库导出到XML文件。当处理大型表的时候我们可能需要手动导出，不过对于小表的话可以直接使用想phpMyAdmin等这样的工具。

```
mysql -u USER_NAME -xml -e 'SELECT * FROM table_name' > table_name.xml

```

上面的例子中USER\_NAME是数据库的用户名，table\_name是待导出为xml文件的表名，table\_name.xml是存放数据的xml文件

### 9. MySQL\_pconnect是什么? 它和MySQL\_connect有什么区别?

**答**：MySQL\_pconnect()打开一个持久的数据库连接，这意味着数据库不是在每次页面加载的时候被打开一个新连接，因此我们不能使用MySQL\_close()来关闭一个持久的连接。

MySQL\_pconnect和MySQL\_connect最简要的区别是：

与MySQL\_pconnect不同，MySQL\_connect在每次页面被加载的时候打开连接，这个连接可以使用MySQL\_close()语句来关闭。

### 10. 当你需要查看一个名为'mysql'的数据库中'user'表中的所有索引时，你会如何做?

**答**：下面的命令将会显示出‘user’表中所有的索引

```
mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| user  |          0 | PRIMARY  |            1 | Host        | A         |        NULL |     NULL | NULL   |      | BTREE      |         |               |
| user  |          0 | PRIMARY  |            2 | User        | A         |           4 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)

```

### 11. 什么是CSV表?

**答**：CSV是逗号分隔值（Comma-Separated Values）或也被称为字符分隔值（Character-Separated Values）的缩写。CSV表以纯文本和表格形式来存储数据。

每一条记录都使用特定的分隔符隔开(如逗号,分号,...)，并且每条记录都有着顺序相同的列。CSV表最广泛地被用来存储用于导入和导出的电话联系人，并能够用来存储任何类型的纯文本数据。

以上就是这次要讲的全部内容。我还会带来其他你们应该会喜欢的有趣的文章。到那时敬请关注并访问Tecmint，不要忘了在下方的评论栏中留下你们的宝贵意见。

---

via: <http://www.tecmint.com/mysql-advance-interview-questions/>

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

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


红帽旨在标准化Linux的64位ARM服务器

Summary: 红帽希望通过 Linux for ARM 服务器来避免困扰在Unix身上的几十年的分裂的发生 。  IDG通讯社 - 红帽公司已经开发出一个服务器版本的Linux操作系统，可以用来测试基于ARMv8-A 64-bit架构的芯片及其周边硬件，志在统一服务器市场。  该发行版基于该公司的红帽企业Linux（RHEL），是红帽在周三为潜在的ARM硬件厂商推出的的合作伙伴计划的一部分。 我们并不称其为RHEL，但它作为一种功能性，不提供技术支持，可以用在合作伙伴的开发中使用的操作系统，红帽平台产品营销高级主管Mark Coggin说。 红帽的设计方案符合硬件厂商的ARMv8-A规格实施

[给力]

故事的开头很美#你们这样对intel真的大丈夫么#

# 红帽旨在标准化Linux的64位ARM服务器

>
> 红帽希望通过 Linux for ARM 服务器来避免困扰在Unix身上的几十年的分裂的发生 。
>
>
>

IDG通讯社 - 红帽公司已经开发出一个服务器版本的Linux操作系统，可以用来测试基于ARMv8-A 64-bit架构的芯片及其周边硬件，志在统一服务器市场。

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

该发行版基于该公司的红帽企业Linux（RHEL），是红帽在周三为潜在的[ARM硬件厂商](https://engage.redhat.com/arm-s-201407291033)推出的的[合作伙伴计划](http://connect.redhat.com/early-access-programs/red-hat-and-64-bit-arm-ecosystem)的一部分。

“我们并不称其为RHEL，但它作为一种功能性，不提供技术支持，可以用在合作伙伴的开发中使用的操作系统”，红帽平台产品营销高级主管Mark Coggin说。

红帽的设计方案符合硬件厂商的ARMv8-A规格实施标准。 ARM本身并不生产自己的处理器，而是将其设计产权授权于芯片制造商。

标准的解决方案将意味着用户可以从任何制造商购买ARMv8-A的服务器，他们知道自己的ARM 64位操作系统和软件将能完美地工作在不管是谁生产的芯片上，Coggin说。红帽希望Linux的ARM能避免像AT＆T的Unix操作系统，分裂成许多不同不兼容的版本的命运。

“我们看到了早期进入市场的重要性，并且确信我们不会陷入到这样的碎片化：如果你想运行一个AMD的ARM解决方案；你需要一个相应的Linux版本，如果你想运行博通的ARM解决方案，你就需要另外一个版本”Coggin说。

今年早些时候开始，一些ARM的服务器的标准化工作已经制定完成，这是由一个被称为服务器系统基础架构（SBSA）规范的行业协会以及Linaro企业集团完成的。 Red Hat尚未命名的ARM Linux发行版使用着来自这两个组织的规范。

红帽不仅希望能影响到芯片生产商同时也包括硬件供应商、OEM 和 ODM。

迄今为止，像Advanced Micro Devices公司，American Megatrends，AppliedMicro，博通，Cavium公司，戴尔和惠普这样的制造商都承诺将支持Red Hat的标准化工作。

“如果ARM在服务器领域终将成为一个有力的的竞争者的话，[硬件提供商]将达成一种共识，即这种架构的服务器也是可行的。当前，客户及其需求都处于x86世界， “Yan Fisher，红帽技术产品营销经理说。

通过这种方式，红帽将了解到更多有关制造商对企业版 64位 ARM Linux 发行版的需求，Coggin说。可能有一天基础操作系统会成为RHEL的ARM版本。

“我们正在试图从技术层面了解其平台的需求，”Coggin说。 “我们不知道它是否或何时会成为一个产品，但是我们有自我定位的方式，在某些时候，我们相信可以我们进入市场。”

尽管Red Hat的Fedora项目过去和现在一直在提供ARM架构的发行版，但是基于Fedora的工作，可以支持更多的 ARM 服务器使用。

尽管ARM处理器在大多数移动设备使用广泛，但是直到最近才出现了在同行业中使用它们作为数据中心的迹象，它们的低功耗设计可以大大降低能源消耗。

目前只有极少数的ARMv8-A处理器和相关的硬件是可用的，大部分是一些早期的开发者预览版的或预装的专有系统。

AMD皓龙A1100系列ARM处理器，专为服务器设计，周三将会释放给开发者。 AMD还提供了专为SOC(注：system-on-a-chip 片上系统)架构设计的Cortex-A57 ARMv8。

AppliedMicro提供已经产品级的ARM服务器，在X-Gene的品牌之下，惠普正在准备推出其准备试水的ARM服务器产品线。主板制造商美国Megatrends提供了一个BIOS芯片用来启动ARM处理器。

---

via: <http://www.computerworld.com/s/article/9250061/Red_Hat_aims_to_standardize_Linux_for_64_bit_ARM_servers?taxonomyId=122>

作者：Joab Jackson 译者：[owen-carter](https://github.com/owen-carter) 校对：[wxy](https://github.com/wxy)

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


Linux有问必答：如何在Linux Mint Cinnamon启用桌面共享

Summary: 问题：我试着在Linux Mint 17 Cinnamon桌面上通过Vino VNC服务器（vino-server）启用桌面共享。但是，我发现用来配置vino-server（如，共享选项，安全，通知开/关）的vino首选项工具已经不复存在了。同时，我也的Cinnamon桌面上也找不到共享菜单。我怎样才能在最新的Linux Mint 17 Cinnamon桌面上通过vino-server配置桌面共享？  最新的Linux Mint 17 Cinnamon桌面附带了预安装用于VNC桌面共享的vino-server，但是它报告说桌面共享菜单丢失了。 一个配置vino-server并启用桌面共享的可选方式，是使用dconf-editor的图形界面。 首先安装dco

# Linux有问必答：如何在Linux Mint Cinnamon启用桌面共享

>
> **问题**：我试着在Linux Mint 17 Cinnamon桌面上通过Vino VNC服务器（vino-server）启用桌面共享。但是，我发现用来配置vino-server（如，共享选项，安全，通知开/关）的vino首选项工具已经不复存在了。同时，我也的Cinnamon桌面上也找不到共享菜单。我怎样才能在最新的Linux Mint 17 Cinnamon桌面上通过vino-server配置桌面共享？
>
>
>

最新的Linux Mint 17 Cinnamon桌面附带了预安装用于VNC桌面共享的vino-server，但是它报告说桌面共享菜单丢失了。

一个配置vino-server并启用桌面共享的可选方式，是使用dconf-editor的图形界面。

首先安装dconf-editor：

```
$ sudo apt-get install dconf-editor

```

启动dconf-editor。

```
$ dconf-editor

```

在dconf-editor的左边面板中导航到“org->gnome->desktop->remote-access”，然后你将会看到各种各样的桌面共享选项。

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

最重要的是，点击“enabled”来激活桌面远程访问。除此之外，你还可以自定义其它选项。

例如，你可以通过修改以下字段来启用VNC密码验证：

* **authentication-methods**: 设置为 ['vnc']
* **vnc-password**: 将你喜欢的密码修改为Base64编码的字符串。

在本例中，我们选择“password”为VNC密码，它的Base64编码字符串为“cGFzc3dvcmQ=”。

你也可以选择启用其它选项：

* notify-on-connect: 当vino-server接收到连接请求时显示桌面通知。
* prompt-enabled: 远程用户不允许通过VNC工具访问桌面，除非VNC请求被该桌面的拥有者许可。

### 排障

1. 当启动vino-server时，我碰到了下面的错误。

\*\* (vino-server:4280): WARNING \*\*: The desktop sharing service is not enabled, so it should not be run.

要启用桌面共享服务，请使用上面讲过的dconf-editor。 也可以选择运行以下命令：

```
 # gsettings set org.gnome.Vino enabled true

```

---

via: <http://ask.xmodulo.com/enable-configure-desktop-sharing-linux-mint-cinnamon-desktop.html>

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

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


教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

Summary: 我们都知道，在基于红帽的Linux系统中，一个RPM包，需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户，RPM的安装、更新、删除中存在的依赖关系已经被工具透明化了（如 yum或 DNF等)。但如果你是系统管理员或者RPM包的管理员，你需要谙熟RPM包的依赖关系，以便及时更新、删除适当的包来保证系统的正常运行。 在本教程中，我将教大家如何检查RPM包的依赖关系。无论这个包是否已经安装进操作系统中，我们都有一些办法来检查它们的依赖性。  方法一 使用RPM命令可以列出目标包所依赖的所有包，如下： $ rpm -qR  注意，这种方法只

yum在手，安装卸载不再愁

对离线安装帮助挺大

mark

@我的印象笔记

这个配图上的齿轮，怎么越看越不对劲......

mark

哈哈哈哈我才发现图上写着 `Dependencies\' 哈哈哈哈哈//@Arthur2e5:这个齿轮的特性和伪基百科（呆丸）对 Linux 依赖的特性描述非常相近。好图。切题。@比尔盖子V

@我的印象笔记 //@王依依:linux 包依赖基本就是图中齿轮那个样子，很多情况下都是需要强拆一个然后才能更新。。呵呵//@Linux中国: [good]//@Arthur2e5: 这个齿轮的特性和伪基百科（呆丸）对 Linux 依赖的特性描述非常相近。好图。切题。@比尔盖子V

arch用pactree命令就好啦//@Linux中国: [good]//@Arthur2e5: 这个齿轮的特性和伪基百科（呆丸）对 Linux 依赖的特性描述非常相近。好图。切题。@比尔盖子V

我在学校的时候装lamp…老师说不能用yum，依赖包有个9个G的光盘可是还是一个一个查的…花了一周了都很麻烦其中也试过那个下载不安装的，可是还是用yum下载的，有没有简单完全离线依赖？我可是有的处理依赖包的方法，我记得那时候找包都是查依赖一个一个看过来的，好辛苦，就没离线简单方法？

有用,收藏.

不讓你YUM是讓你好好去深入研究,學習呢.如果YUM安裝,幾條命令完成了,還有什麼意思.

Mk //@Linux中国:[good]//@Arthur2e5: 这个齿轮的特性和伪基百科（呆丸）对 Linux 依赖的特性描述非常相近。好图。切题。@比尔盖子V

这么多方法，我都不知道。。

# 教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

我们都知道，在基于红帽的Linux系统中，一个RPM包，需要把先将它依赖的其他包安装好才能正常的工作。对于终端用户，RPM的安装、更新、删除中存在的依赖关系已经被工具透明化了（如 yum或 DNF等)。但如果你是系统管理员或者RPM包的管理员，你需要谙熟RPM包的依赖关系，以便及时更新、删除适当的包来保证系统的正常运行。

在本教程中，我将教大家**如何检查RPM包的依赖关系**。无论这个包是否已经安装进操作系统中，我们都有一些办法来检查它们的依赖性。

### 方法一

使用RPM命令可以列出目标包所依赖的所有包，如下： $ rpm -qR

注意，这种方法只适用于**已安装**的包。如果你需要检查一个**未安装**包的依赖关系，你首先需要把这个包先下载到本地来（不需要安装）。

要下载一个 RPM 包而不安装，可以使用叫做'yumdownloader'的工具，下面我们先安装yumdownloader：

```
$ sudo yum install yum-utils

```

现在我们来检查一个未安装的RPM包的依赖关系(本例使用 tcpdump)。首先，我们使用yumdownloader把tcpdump的RPM包下载下来

```
$ yumdownloader --destdir=. tcpdump

```

然后再使用 "-qpR"参数显示该包的依赖关系。

```
# rpm -qpR tcpdump-4.4.0-2.fc19.i686.rpm

```

### 方法二

你可以使用repoquery工具来罗列包的依赖关系，它与包是否安装无关，这个工具包含在yum-utils中。

```
$ sudo yum install yum-utils

```

显示目标包所依赖的包：

```
$ repoquery --requires --resolve <package-name>

```

为让repoquery正常的工作，需要保持网络的畅通，应为repoquery需要在Yum库中查找信息。

### 方法三

第三个方法是使用rpmreaper工具。这个工具本来是用作清理系统中无用以及它们所依赖的包，rpmreaper有很直观的ncurses界面来展示已安装的包和它们依赖关系的树形图。

安装rpmrepater，在CentOS中，你需要先[设置好EPEL库](http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html)

```
$ sudo yum install rpmreaper

```

只需运行rpmreaper就可以看到RPM包的依赖关系：

```
$ rpmreaper

```

rpmrepater会向用户显示已安装包的列表，你可以使用上/下箭头来滚动屏幕。

你可以在指定包上使用"r"键来显示其依赖关系，循环在指定包上按下"r"键可以展示出余下的信息。

"L"标志的意思是说这个包是一片“孤叶”，意思说说没有任何包依赖它。

"o"标志是说这个包是整个依赖链的中间部分。

按下"b"键会显示其他依赖于该包的其他包。

### 方法四

还有一个办法是使用rpmdep工具，rpmdep是一个命令行工具，可以显示已安装包的完整包依赖关系图。该工具会分析RPM包的依赖性，从完整的排完序的拓扑图中摘取部分包的信息，形成列表展示给用户。该工具的输出结果可以直接使用到Dotty（可视化展示工具）中去。

在Fedora中安装rpmdep和dotty：

```
$ sudo yum install rpmorphan graphviz

```

在CentOs中安装： $ wget <http://downloads.sourceforge.net/project/rpmorphan/rpmorphan/1.14/rpmorphan-1.14-1.noarch.rpm> $ sudo rpm -ivh rpmorphan-1.14-1.noarch.rpm $ sudo yum install graphviz

生成包依赖的拓扑关系图（例如 gzip）：

```
$ rpmdep.pl -dot gzip.dot gzip
$ dot -Tpng -o output.png gzip.dot

```

教程到这个地方，我们用到了几种办法来检查包的依赖关系。如果您想知道如何在居于Debian的系统中检查.deb的包依赖关系，请阅读另外一篇[文档](http://xmodulo.com/2013/07/how-to-check-package-dependencies-on-ubuntu-or-debian.html)。

---

via: <http://xmodulo.com/2014/07/check-rpm-package-dependencies-fedora-centos-rhel.html>

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

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


Lime Text: 一款可以替代 Sublime Text 的开源项目

Summary: Sublime Text 是为程序员准备的最好的文本编辑器之一（尽管不是最最好的）。Sublime 囊括了众多特性并且拥有很棒的界面外观，在三大主流桌面操作系统上均能运行，即 Windows, Mac 还有 Linux 之上。 但这并不表示 Sublime Text 是完美的。它有不少 bug、会崩溃而且几乎没有任何技术支持。如果你有关注过 Sublime Text 的开发过程，你就会发现此时 Sublime Text beta 版已经公布超过一年了，却没有告知用户任何关于它的发行日期的确切信息。最重要的是，Sublime Text 既不免费也不开源。 这一系列问题也使 Fredrik Ehnbom 感到沮丧，因此他

mark

[威武]

为啥不用slickedit呢？

mark

@我的印象笔记

一定要试用下

马！看起来好酷炫，正愁着家里那台电脑没有好看的编辑器。

额，我还是用vim好了

@大神经病驾到

我去试试看吧

如果ubuntu下sublime完美支持中文，我就不会用vim,但是用了vim我就不想再用别的了

vim放着好久，忽然发现YouCompleteMe果断又用回来了，扩展太重要！

还在吹这个~期待Atom吧~

看到过不少同事用 Sublime Text，但我还没用过。

可以试试，除了配置不太方便（其实一般也不需要改），其它确实还不错

好假

程序猿都是折騰的命,明明有很好現成的不用偏偏要捨近求遠去弄個新的.

# Lime Text: 一款可以替代 Sublime Text 的开源项目

[Sublime Text](http://www.sublimetext.com/) 是为程序员准备的最好的文本编辑器之一（尽管不是最最好的）。Sublime 囊括了众多特性并且拥有很棒的界面外观，在三大主流桌面操作系统上均能运行，即 Windows, Mac 还有 Linux 之上。

但这并不表示 Sublime Text 是完美的。它有不少 bug、会崩溃而且几乎没有任何技术支持。如果你有关注过 Sublime Text 的开发过程，你就会发现此时 Sublime Text beta 版已经公布超过一年了，却没有告知用户任何关于它的发行日期的确切信息。最重要的是，Sublime Text 既不免费也不[开源](http://itsfoss.com/category/open-source-software/)。

这一系列问题也使 [Fredrik Ehnbom](https://github.com/quarnster) 感到沮丧，因此他在 [Github](https://github.com/) 上发起了一个开源项目 —— [Lime Text](http://limetext.org/)，希望能开发出一款新的、外观与工作方式完全与 Sublime Text 一致的文本编辑器。在被问到为什么他决定去“克隆”一款现有的文本编辑器这个问题时，Frederic 说道：

>
> 因为没有一款我试过的其他文本编辑器能达到我对 Sublime Text 的喜爱程度，我决定了我不得不开发出我自己的文本编辑器。
>
>
>

Lime Text 的后端采用 Go 实现，前端则使用了 ermbox，Qt (QML) 及 HTML/JavaScript。开发正根据完全明确可见的[目标](https://github.com/limetext/lime/wiki/Goals)逐步进行中。你能够在它的 [Github 页面](https://github.com/limetext/lime/issues)中为项目贡献自己的力量。

如果你想要试用 beta 版本，你可以根据 [wiki](https://github.com/limetext/lime/wiki/Building) 中的介绍搭建 Lime Text。同时，如果你想找寻其他强大的文本编辑器的话，试一试 [SciTE](http://itsfoss.com/scite-the-notepad-for-linux/) 吧。

---

via: <http://itsfoss.com/lime-text-open-source-alternative/>

作者：[bhishek](http://itsfoss.com/author/Abhishek/) 译者：[SteveArcher](https://github.com/SteveArcher) 校对：[ReiNoir](https://github.com/reinoir)

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


Linux 内核测试与调试（2）

Summary: 编译安装稳定版内核 如果你用 git 下载源码，就执行以下命令： cd linux-stable git checkout linux-3.x.y  如果是直接下载压缩文件，用以下命令进入源码目录： cd linux-3.x.y  如果你想把内核安装到自己的系统上，最安全的方法是使用你安装好的发行版拥有的配置文件。你可以在 /boot 目录找到当前发行版的内核配置文件： cp /boot/config-3.x.y-z-generic .config  运行下面的命令，可以在当前内核配置的基础上修改一些小地方，然后产生新的内核配置文件。比如说新的内核比你的 Ubuntu 发行版自带的内核多了些新功能，而你正好需要用到

@我的印象笔记

@我的印象笔记

# Linux 内核测试与调试（2）

### 编译安装稳定版内核

如果你用 git 下载源码，就执行以下命令：

```
cd linux-stable
git checkout linux-3.x.y

```

如果是直接下载压缩文件，用以下命令进入源码目录：

```
cd linux-3.x.y

```

如果你想把内核安装到自己的系统上，最安全的方法是使用你安装好的发行版拥有的配置文件。你可以在 /boot 目录找到当前发行版的内核配置文件：

```
cp /boot/config-3.x.y-z-generic .config

```

运行下面的命令，可以在当前内核配置的基础上修改一些小地方，然后产生新的内核配置文件。比如说新的内核比你的 Ubuntu 发行版自带的内核多了些新功能，而你正好需要用到它们，这个时候你就要修改配置了。

```
make oldconfig

```

完成配置后，就可以编译了：

```
make all

```

完成编译后，安装这个新的内核：

```
sudo "make modules_install install"

```

上面的命令安装新内核，并把新内核作为启动项添加到 grub 文件（LCTT：就是你下次开机时会多出一个开机选项）。好了你可以重启电脑，然后选择新的内核启动系统。等等！先别冲动，在重启电脑之前，我们保存下编译内核产生的日志，用于比较和查找错误（如果有错误发生的话）：

```
dmesg -t > dmesg_current
dmesg -t -k > dmesg_kernel
dmesg -t -l emerg > dmesg_current_emerg
dmesg -t -l alert > dmesg_current_alert
dmesg -t -l crit > dmesg_current_alert
dmesg -t -l err > dmesg_current_err
dmesg -t -l warn > dmesg_current_warn

```

正常的话，dmesg 不会输出 emerg, alert, crit 和 err 级别的信息。如果你不幸看到这些输出了，说明内核或者你的硬件环境有问题。

再介绍一些重启前的需要执行的操作。谁也不能保证新内核能够正常启动，所以请不要潇洒地把老内核删除，至少保留一个稳定可用的内核在系统上。修改一下 /etc/default/grub 文件：

使用 earlyprink=vga 作为内核启动选项，把系统早期启动的信息打印到显示屏上：

```
GRUB_CMDLINE_LINUX="earlyprink=vga"

```

将 GRUB\_TIMEOUT 的值设置成10秒到15秒之间的值，保证在开机启动的时候你有足够的时间来选择启动哪个内核：

取消对 GRUB\_TIMEOUT 的注释，并把它设置为10：GRUB\_TIMEOUT=10

注释掉 GRUB\_HIDDEN\_TIMEOUT 和 GRUB\_HIDDEN\_TIMEOUT\_QUIET

运行 update-grub 命令，更新 /boot 目录下的 grub 配置文件：

```
sudo update-grub

```

现在可以重启系统了。新内核起来后，比较新老内核的 dmesg 信息，看看新的内核有没有编译错误。如果新内核启动失败，你需要通过老内核启动系统，然后分析下为什么失败。

### 跟上节奏，永不落后（编译最新版内核）

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

如果你想开上内核快车道，追求与时俱进，那就去下载 mainline 状态的内核或 linux-next 状态的内核（LCTT：读者可进入 kernel.org 获取代码，linux 代码被分为4种状态：mainline, stable, longterm, linux-next）。安装测试 mainline 状态或 linux-next 状态的内核，你就可以在正式发布之前帮助内核找到并修复里面的 bug。

mainline 状态的内核源码：

```
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

```

linux-next 状态的内核源码：

```
git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

```

编译安装这两种内核的步骤与编译安装稳定版内核一样。按之前讲过的步骤来就行了。

### 打补丁

Linux 内核的补丁是一个文本文件，包含新源码与老源码之间的差异。每个补丁只包含自己所依赖的源码的改动，除非它被特意包含进一系列补丁之中。打补丁方法如下：

```
patch -p1 < file.patch
git apply --index file.patch

```

两种方法都可以打补丁。但是，如果你要打的补丁包含一个新文件，git 命令不能识别这个新增的文件，也就是说这个新文件在 git 里面属于 untracked 文件（LCTT：玩 git 的人对这个会比较熟悉，就是文件处于未被跟踪的状态，你需要使用 git add 命令将文件放入暂存区）。git diff 命令不会将这个文件的增量显示出来，并且 git status 命令会显示这个文件处于 untracked 状态。

大多数情况下，有个没被跟踪的文件，对于编译安装内核来说没什么问题，但是 git 操作就会出现一些问题了： git reset --hard 命令不会删除这个新加的文件，并且接下来的 git pull 操作也会失败。你有多种选择来避免上面所说的状况：

选项1，不跟踪这个新文件：

>
> 如果打补丁后新添加了文件，在 git reset --hard 前使用 git clean 命令来删除没有被跟踪的文件。举个例子，git clean -dfx 命令会强制删除未被跟踪的目录和文件，忽略在 .gitigniore 文件内规定的文件。如果你不在乎哪些文件会被删除，你可以使用 -q 选项让 git clean 命令进入安静模式，不输出任何处理过程。
>
>
>

选项2，跟踪新文件：

>
> 你可以在使用 git apply --index file.patch 命令后让 git 跟踪打完补丁后新产生的文件（LCTT：使用 git add 命令），就是让 git 把文件放入 index 区域。做完这个后，git diff 命令会将新文件的增量打印出来，git status 也会显示者这是一个正常的新增文件。
>
>
>

---

via: <http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,1>

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

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


Linux 内核测试与调试（3）

Summary: 基本测试 安装好内核后，试试能不能启动它。能启动的话，检查 dmesg 看看有没有隐藏的错误。试试下面的功能：  网络（Wifi 或者网线）是否可用？ ssh 是否可用？ 使用 ssh 远程传输文件。 使用 git clone 和 git pull 命令。 用用网络浏览器。 查看 email。 使用 ftp, wget 等软件下载文件。 播放音频视频文件。 连上 USB 鼠标等设备。   检查内核日志 使用 dmesg 查看隐藏的问题，对于定位新代码带来的 bug 是一个好方法。一般来说，dmesg 不会输出新的 crit, alert, emerg 级别的错误信息，也不应该出现新的 err 级别的信息。你要注意的

mark

# Linux 内核测试与调试（3）

### 基本测试

安装好内核后，试试能不能启动它。能启动的话，检查 dmesg 看看有没有隐藏的错误。试试下面的功能：

* 网络（Wifi 或者网线）是否可用？
* ssh 是否可用？
* 使用 ssh 远程传输文件。
* 使用 git clone 和 git pull 命令。
* 用用网络浏览器。
* 查看 email。
* 使用 ftp, wget 等软件下载文件。
* 播放音频视频文件。
* 连上 USB 鼠标等设备。

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

### 检查内核日志

使用 dmesg 查看隐藏的问题，对于定位新代码带来的 bug 是一个好方法。一般来说，dmesg 不会输出新的 crit, alert, emerg 级别的错误信息，也不应该出现新的 err 级别的信息。你要注意的是那些 warn 级别的日志信息。请注意 warn 这个级别的信息并不是坏消息，新代码带来新的警告信息，不会给内核带去严重的影响。

* dmesg -t -l emerg
* dmesg -t -l crit
* dmesg -t -l alert
* dmesg -t -l err
* dmesg -t -l warn
* dmesg -t -k
* dmesg -t

下面的脚本运行了上面的命令，并且将输出保存起来，以便与老的内核的 dmesg 输出作比较（LCTT：老内核的 dmesg 输出在本系列的[第二篇文章](http://linux.cn/article-3629-1.html)中有介绍）。然后运行 diff 命令，查看新老内核 dmesg 日志之间的不同。这个脚本需要输入老内核版本号，如果不输入参数，它只会生成新内核的 dmesg 日志文件后直接退出，不再作比较（LCTT：话是这么说没错，但点开脚本一看，没输参数的话，这货会直接退出，连新内核的 dmesg 日志也不会保存的）。如果 dmesg 日志有新的警告信息，表示新发布的内核有漏网之“虫”，这些 bug 逃过了自测和系统测试。你要看看，那些警告信息后面有没有栈跟踪信息？也许这里有很多问题需要你进一步调查分析。

* [**dmesg 测试脚本**](http://linuxdriverproject.org/mediawiki/index.php/Dmesg_regression_check_script)

### 压力测试

执行压力测试的一个好办法是同时跑三四个内核编译任务。下载各种版本的内核，同时编译它们，并记录时间。比较新内核跑压力测试和老内核跑压力测试所花的时间，然后可以定位新内核的性能。如果新内核跑压力测试的时间比老内核的更长，说明新内核的部分模块性能退步了。性能问题很难调试出来。第一步是找出哪里导致的性能退步。同时跑多个内核编译任务对检测内核整体性能来说是个好方法，但是这种方法涵盖了多个内核模块，比如内存管理、文件系统、DMA、驱动等（LCTT：也就是说，这种压力测试没办法定位到是哪个模块造成了性能的下降）。

```
time make all

```

### 内核测试工具

我们可以在 Linux 内核本身找到多种测试方法。下面介绍一个很好用的功能测试工具集： ktest 套件

ktest 是一个自动测试套件，它可以提供编译安装启动内核一条龙测试服务，也可以跑交叉编译测试，前提是你的系统有安装交叉编译所需要的软件。ktest 依赖于 flex 和 bison。详细信息请参考放在 tools/testing/ktest 目录下的文档，你可以自学成材。另外还有一些参考资料教你怎么使用 ktest：

* [**ktest-eLinux.org**](http://elinux.org/Ktest#Git_Bisect_type)

### tools/testing/selftests 套件

我们来玩玩自测吧。内核源码的多个子系统都有自己的自测工具，到目前为止，断点、cpu热插拔、efivarfs、IPC、KCMP、内存热插拔、mqueue、网络、powerpc、ptrace、rcutorture、定时器和虚拟机子系统都有自测工具。另外，用户态内存的自测工具可以利用 test*user*copy 模块来测试用户态内存到内核态的拷贝过程。下面的命令演示了如何使用这些测试工具：

编译测试：

```
make -C tools/testing/selftests

```

测试全部：（有些测试需要 root 权限，你需要以 root 用户登入系统然后运行命令）

```
make -C tools/testing/selftests run_tests

```

只测试单个子系统：

```
make -C tools/testing/selftests TARGETS=vm run_tests

```

### tools/testing/fault-injection 套件

在 tools/testing 目录下的另一个测试套件是 fault-injection。failcmd.sh 脚本用于检测 slab 和内存页分配器的错误。这些工具可以测试内核能否很好地从错误状态中恢复回来。这些测试需要用到 root 权限。下面简单介绍了一些当前能提供的错误检测方法。随着错误检测方法的增加，这份名单也会不断增长。最新的名单请参考 Documentation/fault-injection/fault-injection.txt 文档。

failslab （默认选项）

>
> 产生 slab 分配错误。作用于 kmalloc(), kmem*cache*alloc() 等函数（LCTT：产生的结果是调用这些函数就会返回失败，可以模拟程序分不到内存时是否还能稳定运行下去）。
>
>
>

fail\_page\_alloc

>
> 产生内存页分配的错误。作用于 alloc*pages(), get*free\_pages() 等函数（LCTT：同上，调用这些函数，返回错误）。
>
>
>

fail\_make\_request

>
> 对满足条件（可以设置 /sys/block//make-it-fail 或 /sys/block///make-it-fail 文件）的磁盘产生 IO 错误，作用于 generic\_make\_request() 函数（LCTT：所有针对这块磁盘的读或写请求都会出错）。
>
>
>

fail\_mmc\_request

>
> 对满足条件（可以设置 /sys/kernel/debug/mmc0/fail\_mmc\_request 这个 debugfs 属性）的磁盘产生 MMC 数据错误。
>
>
>

你可以自己配置 fault-injection 套件的功能。fault-inject-debugfs 内核模块在系统运行时会在 debugfs 文件系统下面提供一些属性文件。你可以指定出错的概率，指定两个错误之间的时间间隔，当然本套件还能提供更多其他功能，具体请查看 Documentation/fault-injection/fault-injection.txt。 Boot 选项可以让你的系统在 debugfs 文件系统起来之前就可以产生错误，下面列出几个 boot 选项：

* failslab=
* fail\_page\_alloc=
* fail\_make\_request=
* mmc\_core.fail\_request=[interval],[probability],[space],[times]

fault-injection 套件提供接口，以便增加新的功能。下面简单介绍下增加新功能的步骤，详细信息请参考上面提到过的文档：

使用 DECLARE\_FAULT*\_*INJECTION(name) 定义默认属性；

>
> 详细信息可查看 fault-inject.h 中定义的 struct fault\_attr 结构体。
>
>
>

配置 fault 属性，新建一个 boot 选项;

>
> 这步可以使用 setup\_fault\_attr(attr, str) 函数完成，为了能在系统启动的早期产生错误，添加一个 boot 选项这一步是必须要有的。
>
>
>

添加 debugfs 属性；

>
> 使用 fault\_create\_debugfs\_attr(name, parent, attr) 函数，为新功能添加新的 debugfs 属性。
>
>
>

为模块设置参数；

>
> 为模块添加一些参数，对于配置错误属性来说是一个好主意，特别是当新功能的应用范围受限于单个内核模块的时候（LCTT：不同内核，你的新功能可能需要不同的测试参数，通过设置参数，你的功能可以不必为了迎合不同内核而每次都重新编译一遍）。
>
>
>

添加一个钩子函数到错误测试的代码中。

>
> should\_fail(attr, size) —— 当这个钩子函数返回 true 时，用户的代码就应该产生一个错误。
>
>
>

应用程序使用这个 fault-injection 套件可以指定某个具体的内核模块产生 slab 和内存页分配的错误，这样就可以缩小性能测试的范围。

---

via: <http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,2>

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

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


CentOS 7最小化安装后找不到‘ifconfig’命令——修复小提示

Summary: 就像我们所知道的，“ifconfig”命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息，包括IP地址，MAC地址，以及网络接口卡状态之类。但是，该命令已经过时了，而且在最小化版本的RHEL 7以及它的克隆版本CentOS 7，Oracle Linux 7和Scientific Linux 7中也找不到该命令。

太坑爹了

linux世界就是这点不好，都叫linux，对这些配置文件与软件，你改一点我换一个位置。。东西又差不多的，NND。

要是今年年初你发这贴多好。。。。我已经被虐过一遍了。

netstat -ie [拜拜]

留着//@mrzcs:转发微博

//@一个table补全世界:转发微博

ip addr

Arch 用户应该不会感到惊讶。

http://linux.cn/article-3144-1.html<br />
貌似这个对你而言仍旧太晚了。

已经装了gnome shell桌面的了，联想的ThinkPad E系列的，显卡驱动，无线驱动，触控板驱动全都完美支持。做桌面来用很爽！

小白看《跟着阿铭学Linux》安装CentOS 7，表示被虐残...

同arch路过

刚好帮助到我

他这本书很简单~  很粗浅的内容！

谢谢

尽情享受吧，说的不错，谢谢分享，很有用~~~~~~~~

showtime1990 [Internet Explorer 11.0|Windows 7]

谢谢楼主

不行

开业

# CentOS 7最小化安装后找不到‘ifconfig’命令——修复小提示

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

就像我们所知道的，“**ifconfig**”命令用于配置GNU/Linux系统的网络接口。它显示网络接口卡的详细信息，包括IP地址，MAC地址，以及网络接口卡状态之类。但是，该命令已经过时了，而且在最小化版本的RHEL 7以及它的克隆版本CentOS 7，Oracle Linux 7和Scientific Linux 7中也找不到该命令。

### 在CentOS最小化服务器版本中如何查找网卡IP和其它详细信息？

CentOS 7最小化系统，使用“**ip addr**”和“**ip link**”命令来查找网卡详情。要知道统计数据，可以使用“**ip -s link**”。

要查看网卡细节，输入以下命令：

```
ip addr

```

输出样例：

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/void
    inet 127.0.0.1/32 scope host venet0
    inet 192.168.1.101/32 brd 192.168.1.101 scope global venet0:0

```

要查看网络接口统计数据，输入命令：

```
ip link

```

输出样例：

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT
    link/void

```

或者

```
ip -s link

```

输出样例：

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    0          0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT
    link/void
    RX: bytes  packets  errors  dropped overrun mcast
    8515667    6667     0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    300403     4249     0       0       0       0

```

### 在CentOS 7最小化服务器版本中如何启用并使用“ifconfig”命令？

如果你不知道在哪里可以找到ifconfig命令，请按照以下简单的步骤来找到它。首先，让我们找出哪个包提供了ifconfig命令。要完成这项任务，输入以下命令：

```
yum provides ifconfig

```

输出样例：

```
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.aol.in
 * extras: centos.aol.in
 * updates: centos.aol.in
net-tools-2.0-0.17.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /usr/sbin/ifconfig

```

或者你也可以使用以下命令。

```
yum whatprovides ifconfig

```

这里，“provides”或者“whatprovides”开关用于找出某个包提供了某些功能或文件。

就像你在上面的输出中所看到的，**net-tools**包提供了ifconfig命令。因此，让我们安装net-tools包来使用ifconfig命令。

```
yum install net-tools

```

现在，你就可以像以往一样使用**ifconfig**命令了。

```
ifconfig -a

```

输出样例：

```
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 127.0.0.1  netmask 255.255.255.255  broadcast 0.0.0.0  destination 127.0.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)
        RX packets 7073  bytes 8549159 (8.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4611  bytes 359201 (350.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 192.168.1.101  netmask 255.255.255.255  broadcast 192.168.1.101  destination 192.168.1.101
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 0  (UNSPEC)

```

尽情享受吧！

---

via: <http://www.unixmen.com/ifconfig-command-found-centos-7-minimal-installation-quick-tip-fix/>

作者：[Senthilkumar](http://www.unixmen.com/author/sk/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[Caroline](https://github.com/carolinewuyan)

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


10个调整让Ubuntu宾至如归

Summary: 不久前我提供给大家12个调整Ubuntu的小建议。 然而，已经是一段时间以前的事情了，现在我们又提出了另外10个建议，能够使你的Ubuntu宾至如归。这10个建议执行起来十分简单方便，那就让我们开始吧！1. 安装 TLP

@我的印象笔记

转发微博.

Repost

@我的印象笔记

Ubuntu

安装我这个，才能感觉到宾至如归 ：http://www.kashu.org/3130.html

赞

这种东西还是得看个人需求

mark了自己用

有QQ就更宾至如归了

没有一键安装就能吓走一波守旧者。。

# 10个调整让Ubuntu宾至如归

[](https://camo.githubusercontent.com/c2880f3256f71f0d3f940b64b952e4790aaabef0/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30382f7562756e74752d686f6d652d383430783432302e6a70673f313566316132)

不久前我提供给大家[12个调整Ubuntu的小建议](http://www.makeuseof.com/tag/11-tweaks-perform-ubuntu-installation/)。 然而，已经是一段时间以前的事情了，现在我们又提出了另外10个建议，能够使你的Ubuntu宾至如归。

这10个建议执行起来十分简单方便，那就让我们开始吧！

### 1. 安装 TLP

[](https://camo.githubusercontent.com/23e7aeafcae5df29cf815f2928d255b6db03e499/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30312f746c705f737461742e6a70673f313566316132)

[我们不久前涉及到了TLP](http://www.makeuseof.com/tag/easily-increase-battery-life-tlp-linux/), 这是一款优化电源设置的软件，可以让你享受更长的电池寿命。之前我们深入的探讨过TLP， 并且我们也在列表中提到这软件真不错。要安装它，在终端运行以下命令：

```
sudo add-apt-repository -y ppa:linrunner/tlp && sudo apt-get update && sudo apt-get install -y tlp tlp-rdw tp-smapi-dkms acpi-call-tools && sudo tlp start

```

上面的命令将添加必要的仓库，更新包的列表以便它能包含被新仓库提供的包，安装TLP并且开启这个服务。

### 2. 系统负载指示器

[](https://camo.githubusercontent.com/d2ce9d34a70a0f68185ba855130491776a46c8f5/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f7562756e74755f747765616b5f73797374656d6c6f61642e6a70673f313566316132)

给你的Ubuntu桌面添加一个系统负载指示器能让你快速了解到你的系统资源占用率。 如果你不想在桌面上添加这个技术图表，那么可以不要添加， 但是对于那些对它感兴趣的人来说，这个扩展真是很好。 你可以运行这个命令去安装它：

```
sudo apt-get install indicator-multiload

```

然后在Dash里面找到它并且打开。

### 3. 天气指示器

[](https://camo.githubusercontent.com/83382da1510f59e1e4f5ccba0bab0fb4c8ab98fb/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f7562756e74755f747765616b5f77656174686572696e642e6a70673f313566316132)

Ubuntu过去提供内置的天气指示器，但是自从它切换到Gnome 3以后，就不再默认提供了。你需要安装一个独立的指示器来代替。 你可以通过以下命令安装它：

```
sudo add-apt-repository -y ppa:atareao/atareao && sudo apt-get update && sudo apt-get install -y my-weather-indicator

```

这将添加另外一个仓库，更新包的列表，并且安装这个指示器。然后在Dash里面找到并开启它。

### 4. 安装 Dropbox 或其他云存储解决方案

[](https://camo.githubusercontent.com/c0b6ee77baf32773cd0aa18b0476ca8d06fda564/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30352f44726f70626f782d322e706e673f313566316132)

我在我所有的Linux系统里面都安装过的一个软件，那就是Dropbox。没有它，真的就找不到家的感觉，主要是因为我所有经常使用的文件都储存在Dropbox中。安装Dropbox非常直截了当，但是要花点时间执行一个简单的命令。 在开始之前，为了你能在系统托盘里看到Dropbox的图标，你需要运行这个命令：

```
sudo apt-get install libappindicator1

```

然后你需要去Dropbox的下载页面，接着安装你已下载的.deb文件。现在你的Dropbox应该已经运行了。

如果你有点讨厌Dropbox, 你也可以尝试使用Copy [或者OneDrive](http://www.makeuseof.com/tag/synchronize-files-ubuntu-onedrive/)。两者提供更多免费存储空间，这是考虑使用它们的很大一个原因。比起OneDrive我更推荐使用Copy，因为Copy能工作在所有的Linux发行版上。

### 5. 安装Pidgin和Skype

[](https://camo.githubusercontent.com/c3c5c60e5a252f26bb33cd360020dc06cc8991fc/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031332f31322f736b7970655f6c696e75785f636f6e766572736174696f6e2e6a70673f313566316132)

和朋友们保持联系特别好，并且如果你使用即时通讯，那么你很幸运。 Pidgin和Skype在Linux都十分出色，它们都能连接所有主要网络。安装Pidgin就像运行这个命令一样简单：

```
sudo apt-get install pidgin

```

安装Skype也很简单 — 你仅仅需要去Skype的下载页面并且下载你Ubuntu12.04对应架构的.deb文件就可以了。

### 6. 移除键盘指示器

[](https://camo.githubusercontent.com/8ee3184f9619facfccecdf91fdde6ddd651a487e/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f7562756e74755f747765616b5f6b6579626f6172645f696e64696361746f722e6a70673f313566316132)

在桌面上显示键盘指示器可能让一些人很苦恼。对于讲英语的人来说，它仅仅显示一个“EN”，这可能是恼人的，因为很多人不需要改变键盘布局或者被提醒他们正在使用英语。要移除这个指示器，选择系统设置，然后文本输入，接着去掉“在菜单栏显示当前输入源”的勾。 （译注:国人可能并不适合这个建议。）

### 7. 回归传统菜单

[](https://camo.githubusercontent.com/1d18a19f2335d434566674441a504788e26bf898/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f7562756e74755f747765616b5f636c61737369636d656e752e6a70673f313566316132)

在Ubuntu切换到Unity之前，它使用Gnome 2 作为默认的桌面环境。 这包含一个简单的菜单去访问已安装的应用，菜单包含的很多分类，比如： 游戏，办公， 互联网，等等。 你可以用另外一个简单的包找回这个“传统菜单” 。要安装它，运行这个命令：

```
sudo add-apt-repository -y ppa:diesch/testing && sudo apt-get update && sudo apt-get install -y classicmenu-indicator

```

### 8. 安装Flash和Java

在之前的文章中我提到了安装解码器和Silverlight，我应该也提到了Flash和Java是它们所需要的主要插件，虽然有时可能它们可能被遗忘。要安装它们只需运行这个命令：

```
sudo add-apt-repository -y ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java7-installer flashplugin-installer

```

安装Java需要新增仓库，因为Ubuntu不再包含它的专利版本（大多数人为了最好的性能推荐使用这个版本），而是使用开源的OpenJDK。

### 9. 安装VLC

[](https://camo.githubusercontent.com/5a9079f2a1d2ec97830da59d476b0ebe7ed963de/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f7562756e74755f747765616b735f766c632e6a70673f313566316132)

默认的媒体播放器Totem十分优秀但是它依赖很多独立安装的解码器才能很好的工作。我个人推荐你安装VLC媒体播放器， 因为它包含所有解码器并且实际上它支持世界上每一种媒体格式。要安装它，仅仅需要运行如下命令：

```
sudo apt-get install vlc

```

### 10. 安装PuTTY (或者不)

[](https://camo.githubusercontent.com/8e70f8c7b572b49fa6928dbd3d580c1d618b9edc/687474703a2f2f6d61696e2e6d616b657573656f666c696d697465642e6e6574646e612d63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30372f7562756e74755f747765616b735f70757474792e6a70673f313566316132)

最近，如果你出于SSH的需要而使用PuTTY，你有两个选择：为Linux安装PuTTY，或者直接使用终端。如果你想使用终端安装PuTTY，需要用到这个命令：

```
sudo apt-get install putty

```

然而，并不需要直接安装它，因为你可以使用这个命令来连接任何远程主机。

```
ssh username@this.domain.here

```

用你想要连接的用户名来替换掉“username”，然后用主机的直接域名或者IP地址替换掉“this.domain.here” 都可以。

### 你推荐如何调整？

补充了这10个调整，你应该感觉你的Ubuntu真的有家的感觉，这很容易建立起或击溃你的Linux体验。有许多不同的方式去定制你自己的体验去让它更适合你的需要；你只需自己寻找来发现你想要的东西。

**您有什么其它的调整和建议想和读者分享？**在评论中告诉我们吧！

*图片致谢: Home doormat Via Shutterstock*

---

via: <http://www.makeuseof.com/tag/10-tweaks-make-ubuntu-feel-like-home/>

作者：[Danny Stieben](http://www.makeuseof.com/tag/author/danny/) 译者：[guodongxiaren](https://github.com/guodongxiaren) 校对：[Caroline](https://github.com/carolinewuyan)

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